Commit c0173fc9 authored by 覃振观's avatar 覃振观 👶

Merge remote-tracking branch 'origin/dev' into dev

# Conflicts:
#	topsun/src/main/java/com/huigou/topsun/sap/purchaseOrder/controller/SapPurchaseOrderController.java
parents 60965108 04f2a44b
var itemGridManager = null;
$(function () {
initItemGrid();
bindEvent();
});
function bindEvent() {
}
function initItemGrid() {
itemGridManager = UICtrl.grid('#maingrid', {
columns: getGridColumns(),
dataAction: 'server',
url: web_app.name + '/sapPurchaseOrder/querySapPurchaseOrderItems.ajax',
parms: {sapPurchaseOrderId: getId()},
height: '99.6%',
heightDiff: -4,
sortName: 'id',
sortOrder: 'asc',
checkbox: true,
usePager: true,
rownumbers: true,
enabledEdit: true,
fixedCellHeight: true,
selectRowButtonOnly: true,
}
);
UICtrl.setSearchAreaToggle(itemGridManager);
}
function getGridColumns() {
return [
{display: "项目编号", name: "ebelp", width: "100", align: "left", type: "string"},
{display: "项目类别", name: "pstyp", width: "100", align: "left", type: "string"},
{display: "项目类别描述", name: "knttp", width: "100", align: "left", type: "string"},
{display: "科目分配类别描述", name: "knttx", width: "100", align: "left", type: "string"},
{display: "物料号", name: "matnr", width: "100", align: "left", type: "string"},
{display: "物料描述", name: "txz01", width: "100", align: "left", type: "string"},
{display: "物料组", name: "matkl", width: "100", align: "left", type: "string"},
{display: "物料组描述", name: "wgbez", width: "100", align: "left", type: "string"},
{display: "采购订单数量", name: "menge", width: "100", align: "left", type: "string"},
{display: "采购订单计量单位", name: "meins", width: "100", align: "left", type: "string"},
{display: "单位描述", name: "msehl", width: "100", align: "left", type: "string"},
{display: "要求交货日期", name: "eindt", width: "100", align: "left", type: "string"},
{display: "工厂", name: "werks", width: "100", align: "left", type: "string"},
{display: "名称", name: "name1", width: "100", align: "left", type: "string"},
{display: "库存地点", name: "lgort", width: "100", align: "left", type: "string"},
{display: "库存地点的描述", name: "lgobe", width: "100", align: "left", type: "string"},
{display: "价格", name: "netpr", width: "100", align: "left", type: "string"},
{display: "价格单位", name: "peinh", width: "100", align: "left", type: "string"},
{display: "税码", name: "mwskz", width: "100", align: "left", type: "string"},
{display: "总价", name: "netwr", width: "100", align: "left", type: "string"},
{display: "退货项目", name: "retpo", width: "100", align: "left", type: "string"},
{display: "总账科目", name: "sakto", width: "100", align: "left", type: "string"},
{display: "成本中心", name: "kostl", width: "100", align: "left", type: "string"},
{display: "主资产号", name: "anln1", width: "100", align: "left", type: "string"},
{display: "资产次级编号", name: "anln2", width: "100", align: "left", type: "string"}
]
}
function getId() {
return $('#id').val();
}
......@@ -12,3 +72,4 @@ function setId(value) {
}
......@@ -25,43 +25,18 @@
<x:hidden name="personMemberId"/>
<x:hidden name="personMemberName"/>
<x:hidden name="statusId"/>
<x:hidden name="bsart"/>
<div class="hg-form-cols">
<div class="hg-form-row">
<x:inputC name="ebeln" label="采购订单号码" readonly="false" labelCol="1" fieldCol="2" required="false"/>
<x:inputC name="bsart" label="采购订单类型" readonly="false" labelCol="1" fieldCol="2" required="false"/>
<x:inputC name="batxt" label="采购订单类型描述" readonly="false" labelCol="1" fieldCol="2" required="false"/>
<x:inputC name="purchaseOrderId" label="id" readonly="false" labelCol="1" fieldCol="2" required="false"/>
<x:inputC name="ebelp" label="项目编号" readonly="false" labelCol="1" fieldCol="2" required="false"/>
<x:inputC name="pstyp" label="项目类别" readonly="false" labelCol="1" fieldCol="2" required="false"/>
<x:inputC name="ptext" label="项目类别描述" readonly="false" labelCol="1" fieldCol="2" required="false"/>
<x:inputC name="knttp" label="科目分配类别" readonly="false" labelCol="1" fieldCol="2" required="false"/>
<x:inputC name="knttx" label="科目分配类别描述" readonly="false" labelCol="1" fieldCol="2" required="false"/>
<x:inputC name="matnr" label="物料号" readonly="false" labelCol="1" fieldCol="2" required="false"/>
<x:inputC name="matkl" label="物料组" readonly="false" labelCol="1" fieldCol="2" required="false"/>
<x:inputC name="wgbez" label="物料组描述" readonly="false" labelCol="1" fieldCol="2" required="false"/>
<x:inputC name="menge" label="采购订单数量" readonly="false" labelCol="1" fieldCol="2" required="false"/>
<x:inputC name="meins" label="采购订单计量单位" readonly="false" labelCol="1" fieldCol="2" required="false"/>
<x:inputC name="msehl" label="单位描述" readonly="false" labelCol="1" fieldCol="2" required="false"/>
<x:inputC name="eindt" label="要求交货日期" readonly="false" wrapper="date" labelCol="1" fieldCol="2" required="false"/>
<x:inputC name="werks" label="工厂" readonly="false" labelCol="1" fieldCol="2" required="false"/>
<x:inputC name="name1" label="名称" readonly="false" labelCol="1" fieldCol="2" required="false"/>
<x:inputC name="lgort" label="库存地点" readonly="false" labelCol="1" fieldCol="2" required="false"/>
<x:inputC name="lgobe" label="库存地点的描述" readonly="false" labelCol="1" fieldCol="2" required="false"/>
<x:inputC name="ekgrp" label="采购组" readonly="false" labelCol="1" fieldCol="2" required="false"/>
<x:inputC name="eknam" label="采购组描述" readonly="false" labelCol="1" fieldCol="2" required="false"/>
<x:inputC name="netpr" label="价格" readonly="false" labelCol="1" fieldCol="2" required="false"/>
<x:inputC name="peinh" label="价格单位" readonly="false" labelCol="1" fieldCol="2" required="false"/>
<x:inputC name="mwskz" label="税码" readonly="false" labelCol="1" fieldCol="2" required="false"/>
<x:inputC name="waers" label="币种" readonly="false" labelCol="1" fieldCol="2" required="false"/>
<x:inputC name="netwr" label="总价" readonly="false" labelCol="1" fieldCol="2" required="false"/>
<x:inputC name="retpo" label="退货项目" readonly="false" labelCol="1" fieldCol="2" required="false"/>
<x:inputC name="sakto" label="总账科目" readonly="false" labelCol="1" fieldCol="2" required="false"/>
<x:inputC name="kostl" label="成本中心" readonly="false" labelCol="1" fieldCol="2" required="false"/>
<x:inputC name="anln1" label="主资产号" readonly="false" labelCol="1" fieldCol="2" required="false"/>
<x:inputC name="anln2" label="资产次级编号" readonly="false" labelCol="1" fieldCol="2" required="false"/>
</div>
<x:inputC name="fillinDate" label="创建日期" readonly="true" wrapper="date" labelCol="1" fieldCol="2" required="false"/>
</div>
</div>
<div id="maingrid"></div>
</form>
</div>
</body>
\ No newline at end of file
......@@ -15,8 +15,11 @@ public interface SapPurchaseOrderItemApplication {
public static final String QUERY_XML_FILE_PATH = "config/topsun/sap/sapPurchaseOrder/sapPurchaseOrderItem.xml";
void saveSapPurchaseOrderItem(SapPurchaseOrderItem sapPurchaseOrderItem);
void deleteById(String id);
void saveSapPurchaseOrderItems(String sapPurchaseOrderId, List<SapPurchaseOrderItem> sapPurchaseOrderItems);
List<SapPurchaseOrderItem> getPurchaseOrderItems(String purchaseOrderId);
SapPurchaseOrderItem getPurchaseOrderItem(String purchaseOrderId);
Map<String, Object> querySapPurchaseOrderItems(SapPurchaseOrderItemQueryRequest queryRequest);
void deletePurchaseOrderItems(List<SapPurchaseOrderItem> purchaseOrderItems);
}
......@@ -12,6 +12,8 @@ import com.huigou.topsun.sap.common.DefaultHttpClient;
import com.huigou.topsun.sap.purchaseApproval.application.SapPurchaseApprovalApplication;
import com.huigou.topsun.sap.purchaseApproval.application.impl.SapPurchaseApprovalApplicationImpl;
import com.huigou.topsun.sap.purchaseApproval.domain.SapPurchaseApproval;
import com.huigou.topsun.sap.purchaseApproval.domain.SapPurchaseApprovalItem;
import com.huigou.topsun.sap.purchaseApproval.domain.vo.SapPurchaseApprovalItemVo;
import com.huigou.topsun.sap.purchaseOrder.application.SapPurchaseOrderApplication;
import com.huigou.topsun.sap.purchaseOrder.application.SapPurchaseOrderItemApplication;
import com.huigou.topsun.sap.purchaseOrder.domain.SapPurchaseOrder;
......@@ -164,22 +166,29 @@ public class SapPurchaseOrderApplicationImpl extends FlowBroker implements SapPu
Map<String, Object> formData = BeanUtil.beanToMap(sapPurchaseOrder);
String bizId = sapPurchaseApprovalApplication.startProcessInstance(SapPurchaseOrderApplication.PROCESS_DEFINITION_KEY, formData);
sapPurchaseOrder.setId(bizId);
sapPurchaseOrder = this.sapPurchaseOrderRepository.save(sapPurchaseOrder);
//映射双方字段
sapPurchaseOrder.setFillinDate(sapPurchaseOrderVo.getAedat());
sapPurchaseOrder = this.sapPurchaseOrderRepository.save(sapPurchaseOrder);
purchaseOrderId=sapPurchaseOrder.getId();
}else {
//数据第n次接收覆盖上一次数据
purchaseOrder.setBatxt(sapPurchaseOrderVo.getBatxt());
purchaseOrder.setBsart(sapPurchaseOrderVo.getBsart());
BeanUtil.copyProperties(sapPurchaseOrderVo, purchaseOrder);
this.sapPurchaseOrderRepository.save(purchaseOrder);
SapPurchaseOrderItem purchaseOrderItem = sapPurchaseOrderItemApplication.getPurchaseOrderItem(purchaseOrder.getId());
sapPurchaseOrderItemApplication.deleteById(purchaseOrderItem.getId());
List<SapPurchaseOrderItem> purchaseOrderItems = sapPurchaseOrderItemApplication.getPurchaseOrderItems(purchaseOrder.getId());
sapPurchaseOrderItemApplication.deletePurchaseOrderItems(purchaseOrderItems);
purchaseOrderId=purchaseOrder.getId();
}
SapPurchaseOrderItem sapPurchaseOrderItem = new SapPurchaseOrderItem();
BeanUtil.copyProperties(sapPurchaseOrderDto.getLtItems().get(0), sapPurchaseOrderItem);
sapPurchaseOrderItem.setPurchaseOrderId(purchaseOrderId);
sapPurchaseOrderItemApplication.saveSapPurchaseOrderItem(sapPurchaseOrderItem);
List<SapPurchaseOrderItemVo> ltItems = sapPurchaseOrderDto.getLtItems();
List<SapPurchaseOrderItem> purchaseOrderItems = new ArrayList<>();
ltItems.forEach(approvalItemVo->{
SapPurchaseOrderItem sapPurchaseApprovalItem = new SapPurchaseOrderItem();
BeanUtil.copyProperties(approvalItemVo,sapPurchaseApprovalItem);
purchaseOrderItems.add(sapPurchaseApprovalItem);
});
sapPurchaseOrderItemApplication.saveSapPurchaseOrderItems(purchaseOrderId,purchaseOrderItems);
}
......
......@@ -29,25 +29,32 @@ public class SapPurchaseOrderItemApplicationImpl extends BaseApplication impleme
sapPurchaseOrderItemRepository.save(sapPurchaseOrderItem);
}
@Override
public void saveSapPurchaseOrderItems(String sapPurchaseOrderId, List<SapPurchaseOrderItem> sapPurchaseOrderItems) {
sapPurchaseOrderItems.forEach(sapPurchaseOrderItem -> {
sapPurchaseOrderItem.setPurchaseOrderId(sapPurchaseOrderId);
});
sapPurchaseOrderItemRepository.save(sapPurchaseOrderItems);
}
@Override
public void deleteById(String id) {
sapPurchaseOrderItemRepository.delete(id);
public List<SapPurchaseOrderItem> getPurchaseOrderItems(String purchaseOrderId) {
return sapPurchaseOrderItemRepository.findAllByPurchaseOrderId(purchaseOrderId);
}
@Override
public Map<String, Object> querySapPurchaseOrderItems(SapPurchaseOrderItemQueryRequest queryRequest) {
Map<String, Object> map = new HashMap<>();
if (StringUtil.isNotBlank(queryRequest.getSapPurchaseOrderId())){
QueryDescriptor queryDescriptor = this.sqlExecutorDao.getQuery(QUERY_XML_FILE_PATH, "sapPurchaseOrderItems");
QueryModel queryModel = this.sqlExecutorDao.getQueryModel(queryDescriptor, queryRequest);
map = this.sqlExecutorDao.executeSlicedQuery(queryModel);
}
return map;
}
@Override
public SapPurchaseOrderItem getPurchaseOrderItem(String purchaseOrderId) {
return sapPurchaseOrderItemRepository.findSapPurchaseOrderItemByPurchaseOrderId(purchaseOrderId);
public void deletePurchaseOrderItems(List<SapPurchaseOrderItem> purchaseOrderItems) {
sapPurchaseOrderItemRepository.delete(purchaseOrderItems);
}
// @Override
// public Map<String, Object> querySapPurchaseOrderItems(SapPurchaseOrderItemQueryRequest queryRequest) {
// Map<String, Object> map = new HashMap<>();
// if (StringUtil.isNotBlank(queryRequest.getSapPurchaseOrderId())){
// QueryDescriptor queryDescriptor = this.sqlExecutorDao.getQuery(QUERY_XML_FILE_PATH, "sapPurchaseOrderItems");
// QueryModel queryModel = this.sqlExecutorDao.getQueryModel(queryDescriptor, queryRequest);
// map = this.sqlExecutorDao.executeSlicedQuery(queryModel);
// }
// return map;
// }
}
package com.huigou.topsun.sap.purchaseOrder.controller;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.SerializationFeature;
import com.huigou.context.Operator;
import com.huigou.context.OrgUnit;
import com.huigou.topsun.sap.acceptanceFormAck.domain.SapAcceptanceFormAck;
import com.huigou.topsun.sap.purchaseApproval.domain.query.SapPurchaseApprovalItemQueryRequest;
import com.huigou.topsun.sap.purchaseOrder.application.SapPurchaseOrderApplication;
import com.huigou.topsun.sap.purchaseOrder.application.SapPurchaseOrderItemApplication;
import com.huigou.topsun.sap.purchaseOrder.domain.SapPurchaseOrder;
import com.huigou.topsun.sap.purchaseOrder.domain.SapPurchaseOrderItem;
import com.huigou.topsun.sap.purchaseOrder.domain.query.SapPurchaseOrderItemQueryRequest;
import com.huigou.topsun.sap.purchaseOrder.domain.query.SapPurchaseOrderQueryRequest;
import com.huigou.topsun.sap.purchaseOrder.domain.vo.SapPurchaseOrderDto;
import com.huigou.topsun.sap.purchaseOrder.domain.vo.SapPurchaseOrderVo;
import com.huigou.topsun.util.MyBaseUtil;
import com.huigou.uasp.annotation.ControllerMapping;
import com.huigou.uasp.annotation.SkipAuth;
import com.huigou.uasp.bmp.common.BizBillStatus;
import com.huigou.uasp.client.CommonController;
import com.huigou.util.SDO;
import org.springframework.stereotype.Controller;
......@@ -19,9 +27,16 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.nio.charset.StandardCharsets;
import java.text.SimpleDateFormat;
import java.util.HashMap;
import java.util.Map;
import java.util.stream.Collectors;
/**
* @Auther: xin.lu
......@@ -41,7 +56,7 @@ public class SapPurchaseOrderController extends CommonController {
}
@SkipAuth
@RequestMapping( value = "/getSapPurchaseOrder")
@RequestMapping( value = "/getSapPurchaseOrder",consumes = "application/json; charset=UTF-8", produces = "application/json; charset=UTF-8")
@ResponseBody
public HashMap<String, Object> getSapPurchaseOrder(@RequestBody SapPurchaseOrderDto sapPurchaseOrderDto){
this.sapPurchaseOrderApplication.saveSapPurchaseOrderDto(sapPurchaseOrderDto);
......@@ -68,13 +83,13 @@ public class SapPurchaseOrderController extends CommonController {
SDO sdo = this.getSDO();
String id = sdo.getBizId();
SapPurchaseOrder sapPurchaseOrder = sapPurchaseOrderApplication.loadSapPurchaseOrder(id);
SapPurchaseOrderItem purchaseOrderItem = sapPurchaseOrderItemApplication.getPurchaseOrderItem(sapPurchaseOrder.getId());
ObjectMapper objectMapper = new ObjectMapper();
//禁止日期类型转换为时间戳
objectMapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false);
objectMapper.setDateFormat(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS"));
Map<String, Object> map = objectMapper.convertValue(sapPurchaseOrder, Map.class);
map.putAll(MyBaseUtil.convertToMap(purchaseOrderItem));
return forward("sapPurchaseOrderDetail",map);
return forward("sapPurchaseOrderDetail",sapPurchaseOrder);
}
public String querySapPurchaseOrderItems(){
SDO sdo = this.getSDO();
SapPurchaseOrderItemQueryRequest queryRequest = sdo.toQueryRequest(SapPurchaseOrderItemQueryRequest.class);
Map<String, Object> map = sapPurchaseOrderItemApplication.querySapPurchaseOrderItems(queryRequest);
return toResult(map);
}
}
package com.huigou.topsun.sap.purchaseOrder.domain;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.huigou.data.domain.model.FlowBillAbstractEntity;
import lombok.Data;
......@@ -56,17 +57,30 @@ public class SapPurchaseOrder extends FlowBillAbstractEntity {
@Column(name = "WAERS")
private String waers;
/**
* 创建日期
*/
@Column(name = "AEDAT")
private Date aedat;
// /**
// * 创建日期
// */
// @Column(name = "AEDAT")
// private Date aedat;
// /**
// * 创建人ID创建人ID
// */
// @Column(name = "ERNAM")
// private String ernam;
//
// /**
// * 创建人姓名
// */
// @Column(name = "NAME_TEXT")
// private String nameText;
@Override
protected String getCodeRuleId() {
return "sapPurchaseOrder";
}
public void setAedat(String D){
}
}
\ No newline at end of file
package com.huigou.topsun.sap.purchaseOrder.domain;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnoreType;
import com.huigou.data.domain.model.AbstractEntity;
import lombok.Data;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
......@@ -23,7 +20,6 @@ import java.util.Date;
@JsonIgnoreType
public class SapPurchaseOrderItem extends AbstractEntity {
/**
*
*/
......@@ -133,9 +129,6 @@ public class SapPurchaseOrderItem extends AbstractEntity {
private String lgobe;
/**
* 价格
*/
......
......@@ -63,16 +63,16 @@ public class SapPurchaseOrderItemVo {
private String lgobe;
@JsonProperty("NETPR")
private double netpr;
private Double netpr;
@JsonProperty("PEINH")
private int peinh;
private Integer peinh;
@JsonProperty("MWSKZ")
private String mwskz;
@JsonProperty("NETWR")
private double netwr;
private Double netwr;
@JsonProperty("RETPO")
private String retpo;
......
......@@ -6,6 +6,8 @@ import lombok.Data;
import javax.persistence.Column;
import java.io.Serializable;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
......@@ -17,7 +19,21 @@ import java.util.List;
@Data
public class SapPurchaseOrderVo implements Serializable {
@JsonProperty("AEDAT")
private String aedat;
private String aedatDate;
private Date aedat;
public Date getAedat() {
return aedat;
}
public void setAedatDate(String aedatDate) throws ParseException {
this.aedatDate = aedatDate;
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMdd");
this.aedat = dateFormat.parse(aedatDate);
}
@JsonProperty("ERNAM")
private String ernam;
......
......@@ -3,6 +3,8 @@ package com.huigou.topsun.sap.purchaseOrder.repository;
import com.huigou.topsun.sap.purchaseOrder.domain.SapPurchaseOrderItem;
import org.springframework.data.jpa.repository.JpaRepository;
import java.util.List;
/**
* @Auther: xin.lu
* @Date: 2024/01/09/19:01
......@@ -10,5 +12,6 @@ import org.springframework.data.jpa.repository.JpaRepository;
*/
public interface SapPurchaseOrderItemRepository extends JpaRepository<SapPurchaseOrderItem,String> {
SapPurchaseOrderItem findSapPurchaseOrderItemByPurchaseOrderId(String POId);
List<SapPurchaseOrderItem> findAllByPurchaseOrderId(String POId);
}
......@@ -4,7 +4,7 @@
<sql-query>
select t.* from sap_purchase_order_item t
</sql-query>
<condition column="purchase_order_Id" name="purchaseOrderId" type="java.lang.String" symbol="=" alias="t"/>
<condition column="purchase_order_Id" name="sapPurchaseOrderId" type="java.lang.String" symbol="=" alias="t"/>
</query>
</query-mappings>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment