Commit d3fa653a authored by 1650842865's avatar 1650842865

采购申请审批中是存货转移类型的,审批完成后,创建跨工厂存货调拨,并推送到SAP创建订单

parent 3210ea34
......@@ -3,6 +3,10 @@ $(function () {
$("#toolBar").toolBar("enable", "forceAbortTask");
initItemGrid();
bindEvent();
var batxt = $("#batxt").val();
if ("库存转储" == batxt){
$("#billTitle .subject").html(batxt)
}
});
function bindEvent() {
......
......@@ -14,7 +14,7 @@
<x:hidden name="billCode"/>
<x:hidden name="lifnr"/>
<x:hidden name="bsart" value="zub"/>
<x:hidden name="banfn"/>
<x:hidden name="fillinDate" type="datetime"/>
<x:hidden name="fullId"/>
<x:hidden name="organId"/>
......
......@@ -2,6 +2,7 @@ package com.huigou.topsun.sap.purchase.application;
import com.huigou.topsun.sap.purchase.domain.SapPurchase;
import com.huigou.topsun.sap.purchase.domain.query.SapPurchaseQueryRequest;
import com.huigou.topsun.sap.purchase.domain.vo.SapPurchaseItemDto;
import java.util.Map;
......@@ -20,4 +21,6 @@ public interface SapPurchaseApplication {
SapPurchase loadSapPurchase(String id);
String revokeApproval(String id);
SapPurchase saveEPPurchaseItem(SapPurchase sapPurchase,SapPurchaseItemDto sapPurchaseItemDto);
}
package com.huigou.topsun.sap.purchase.application.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.util.ObjectUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.huigou.cache.SystemCache;
import com.huigou.context.Operator;
import com.huigou.context.ThreadLocalUtil;
import com.huigou.data.domain.model.CommonDomainConstants;
import com.huigou.data.query.model.QueryDescriptor;
import com.huigou.data.query.model.QueryModel;
......@@ -16,11 +19,14 @@ import com.huigou.topsun.sap.purchase.application.SapPurchaseItemApplication;
import com.huigou.topsun.sap.purchase.domain.SapPurchase;
import com.huigou.topsun.sap.purchase.domain.SapPurchaseItem;
import com.huigou.topsun.sap.purchase.domain.query.SapPurchaseQueryRequest;
import com.huigou.topsun.sap.purchase.domain.vo.SapPurchaseItemDto;
import com.huigou.topsun.sap.purchase.domain.vo.SapPurchaseItemVo;
import com.huigou.topsun.sap.purchase.domain.vo.SapPurchaseVo;
import com.huigou.topsun.sap.purchase.repository.SapPurchaseRepository;
import com.huigou.topsun.sap.common.domain.SapResult;
import com.huigou.uasp.bmp.common.BizBillStatus;
import com.huigou.uasp.bmp.operator.OperatorApplication;
import com.huigou.uasp.bmp.opm.domain.model.org.Org;
import com.huigou.uasp.bpm.FlowBroker;
import com.huigou.util.ClassHelper;
import com.huigou.util.DateUtil;
......@@ -57,6 +63,8 @@ public class SapPurchaseApplicationImpl extends FlowBroker implements SapPurchas
private MannualStartWorkApplication mannualStartWorkApplication;
@Autowired
private DataPermissionApplication dataPermissionApplication;
@Autowired
private OperatorApplication operatorApplication;
@Override
protected String saveBizAndApprovalData() {
......@@ -329,5 +337,32 @@ public class SapPurchaseApplicationImpl extends FlowBroker implements SapPurchas
return newSapPurchase.getId();
}
@Override
public SapPurchase saveEPPurchaseItem(SapPurchase sapPurchase, SapPurchaseItemDto sapPurchaseItemDto) {
//创建主表
//根据SAP传过来的创建人编码,映射流程发起人
String afnam = sapPurchaseItemDto.getAfnam();
Org org = orgApplication.loadMainOrgByLoginName(afnam);
String acceptPersonCode = SystemCache.getParameter("acceptPersonCode", String.class);
if (ObjectUtil.isNull(org)){
org = orgApplication.loadMainOrgByLoginName(acceptPersonCode);
}
if (ObjectUtil.isNotNull(org)){
Operator operator = operatorApplication.createOperatorByPersonMemberId(org.getId());
ThreadLocalUtil.putOperator(operator);
}
//设置默认值,并保存
sapPurchase.setBsart("ZNE2");
sapPurchase.setKnttp("K");
String id = mannualStartWorkApplication.startWorkflow(sapPurchase,PROCESS_DEFINITION_KEY,"sapPurchase");
//转换明细,保存
SapPurchaseItem sapPurchaseItem = new SapPurchaseItem();
BeanUtil.copyProperties(sapPurchaseItemDto,sapPurchaseItem);
List<SapPurchaseItem> itemList = new ArrayList<>();
itemList.add(sapPurchaseItem);
this.sapPurchaseItemApplication.saveSapPurchaseItems(id,itemList);
return sapPurchase;
}
}
......@@ -7,14 +7,24 @@ import com.huigou.topsun.common.BillStatus;
import com.huigou.topsun.sap.purchase.application.SapPurchaseApplication;
import com.huigou.topsun.sap.purchase.domain.SapPurchase;
import com.huigou.topsun.sap.purchase.domain.query.SapPurchaseQueryRequest;
import com.huigou.topsun.sap.purchase.domain.vo.SapPurchaseItemDto;
import com.huigou.topsun.sap.purchaseApproval.controller.SapPurchaseApprovalController;
import com.huigou.topsun.sap.purchaseApproval.domain.vo.SapPurchaseApprovalDto;
import com.huigou.topsun.sap.sapApplication.application.SapDictionaryApplication;
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.JSONUtil;
import com.huigou.util.SDO;
import com.huigou.util.StringUtil;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import javax.annotation.Resource;
import java.io.IOException;
......@@ -32,6 +42,7 @@ import java.util.stream.Collectors;
@Controller
@ControllerMapping("/sapPurchase")
public class SapPurchaseController extends CommonController {
private final static Logger LOG = LoggerFactory.getLogger(SapPurchaseController.class);
@Override
protected String getPagePath() {
return "/biz/topsun/sap/purchase/";
......@@ -149,4 +160,24 @@ public class SapPurchaseController extends CommonController {
}
return packGridDataAndResult(mapList);
}
@SkipAuth
@RequestMapping( value = "/getEPPurchaseItem")
@ResponseBody
public HashMap<String, Object> getEPPurchaseItem(@RequestBody SapPurchaseItemDto sapPurchaseItemDto){
HashMap<String, Object> messageMap = new HashMap<>();
LOG.info("EP打样采购申请数据=={}", JSONUtil.toString(sapPurchaseItemDto));
SapPurchase sapPurchase = new SapPurchase();
try {
sapPurchase = this.sapPurchaseApplication.saveEPPurchaseItem(sapPurchase,sapPurchaseItemDto);
messageMap.put("CODE","S");
messageMap.put("MSG","成功");
messageMap.put("DATA",sapPurchase.getBillCode());
}catch (RuntimeException e){
messageMap.put("CODE","E");
messageMap.put("MSG",e.getMessage());
messageMap.put("DATA",JSONUtil.toString(sapPurchaseItemDto));
}
return messageMap;
}
}
package com.huigou.topsun.sap.purchase.domain.vo;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import javax.persistence.Column;
import java.io.Serializable;
import java.math.BigDecimal;
/**
* @Auther: xin.lu
* @Date: 2024/01/02/14:07
* @Description:
*/
@Data
public class SapPurchaseItemDto implements Serializable {
/**
* 短文本
*/
@JsonProperty("TXZ01")
private String txz01;
/**
* 工厂
*/
@JsonProperty("WERKS")
private String werks;
/**
* 工厂名称
*/
@JsonProperty("NAME1")
private String name1;
/**
* 申购项次号
*/
@JsonProperty("BANPO")
private Integer bnfpo;
/**
* 项次类别
*/
@JsonProperty("PSTYP")
private String pstyp;
/**
* 物料组
*/
@JsonProperty("MATKL")
private String matkl;
/**
* 申购数量
*/
@JsonProperty("BUMNG")
private BigDecimal menge;
/**
* 申购数量单位
*/
@JsonProperty("MEINS")
private String meins;
/**
* 申购数量单位
*/
@JsonProperty("MEINS_NAME")
private String meinsName;
/**
* 申请人
*/
@JsonProperty("AFNAM")
private String afnam;
/**
* 科目分配类别
*/
@JsonProperty("KNTTP")
private String knttp;
/**
* 成本中心
*/
@JsonProperty("KOSTL")
private String kostl;
/**
* 采购组
*/
@JsonProperty("EKGRP")
private String ekgrp;
/**
* 采购组
*/
@JsonProperty("EKGRP_NAME")
private String ekgrpName;
/**
* 要求交货日期
*/
@JsonProperty("LFDAT")
private String lfdat;
/**
* 创建日期
*/
@JsonProperty("ERDAT")
private String erdat;
/**
* 评估价格
*/
@JsonProperty("NETWR")
private BigDecimal preis;
/**
* 币种
*/
@JsonProperty("WAERS")
private String waers;
/**
* 币种描述
*/
@JsonProperty("WAERS_NAME")
private String waersName;
}
......@@ -30,6 +30,7 @@ import com.huigou.topsun.sap.purchaseApproval.domain.vo.SapPurchaseApprovalItemV
import com.huigou.topsun.sap.purchaseApproval.domain.vo.SapPurchaseApprovalVo;
import com.huigou.topsun.sap.purchaseApproval.repository.SapPurchaseApprovalRepository;
import com.huigou.topsun.sap.purchaseOrder.domain.SapPurchaseOrder;
import com.huigou.topsun.sap.transfers.application.SapStockTransfersApplication;
import com.huigou.uasp.bmp.common.BizBillStatus;
import com.huigou.uasp.bmp.fn.CodeGenerator;
import com.huigou.uasp.bmp.operator.OperatorApplication;
......@@ -76,6 +77,8 @@ public class SapPurchaseApprovalApplicationImpl extends FlowBroker implements Sa
private OperatorApplication operatorApplication;
@Autowired
private MannualStartWorkApplication mannualStartWorkApplication;
@Autowired
private SapStockTransfersApplication sapStockTransfersApplication;
@Override
protected String saveBizAndApprovalData() {
......@@ -295,6 +298,11 @@ public class SapPurchaseApprovalApplicationImpl extends FlowBroker implements Sa
sapPurchaseApprovalItems.add(sapPurchaseApprovalItem);
sapPurchaseApproval.setKnttp(approvalItemVo.getKnttp());//科目分配类别
sapPurchaseApproval.setEkgrp(approvalItemVo.getEkgrp());//采购组
//采购申请是库存转储时,修改表头采购申请类型描述
if ("7".equals(sapPurchaseApprovalItem.getPstyp())){
sapPurchaseApproval.setBatxt(sapPurchaseApprovalItem.getPtext());
}
}
//knttp审批要素没有值时,赋值0,防止发起流程时报错
if (StringUtil.isBlank(sapPurchaseApproval.getKnttp())){
......@@ -483,6 +491,12 @@ public class SapPurchaseApprovalApplicationImpl extends FlowBroker implements Sa
sapPurchaseApprovalRepository.save(sapPurchaseApproval);
sapMutualEpLogApplication.saveSapMutualEpLog(resultMap);
}
//根据明细的项目类别判断是不是库存转储
SapPurchaseApprovalItem sapPurchaseApprovalItem = approvalItemList.get(0);
if ("7".equals(sapPurchaseApprovalItem.getPstyp())){
sapStockTransfersApplication.createSapStockTransfersFromPurchaseApproval(sapPurchaseApproval,approvalItemList);
}
}
@Override
......
......@@ -178,5 +178,23 @@ public class SapPurchaseApprovalItem extends AbstractEntity {
@Column(name = "NAME_TEXT")
private String nameText;
/**
* 库存转储供货工厂
*/
@Column(name = "RESWK")
private String reswk;
/**
* 采购组织
*/
@Column(name = "EKORG")
private String ekorg;
/**
* 公司代码
*/
@Column(name = "BUKRS")
private String bukrs;
private static final long serialVersionUID = 1L;
}
\ No newline at end of file
......@@ -173,4 +173,24 @@ public class SapPurchaseApprovalItemVo {
@JsonProperty("NAME_TEXT")
private String nameText;
/**
* 库存转储供货工厂
*/
@JsonProperty("RESWK")
private String reswk;
/**
* 采购组织
*/
@JsonProperty("EKORG")
private String ekorg;
/**
* 公司代码
*/
@JsonProperty("BUKRS")
private String bukrs;
}
\ No newline at end of file
......@@ -2,6 +2,9 @@ package com.huigou.topsun.sap.transfers.application;
import com.huigou.topsun.sap.permit.domain.SapPermit;
import com.huigou.topsun.sap.permit.domain.query.SapPermitQueryRequest;
import com.huigou.topsun.sap.purchase.domain.SapPurchaseItem;
import com.huigou.topsun.sap.purchaseApproval.domain.SapPurchaseApproval;
import com.huigou.topsun.sap.purchaseApproval.domain.SapPurchaseApprovalItem;
import com.huigou.topsun.sap.transfers.domain.SapStockTransfers;
import com.huigou.topsun.sap.transfers.domain.query.SapStockTransfersQueryRequest;
......@@ -24,5 +27,11 @@ public interface SapStockTransfersApplication {
void deleteByIds(List<String> ids);
/**
* 创建存货转移单
* @param sapPurchaseApprovalItems
*/
void createSapStockTransfersFromPurchaseApproval(SapPurchaseApproval sapPurchaseApproval,List<SapPurchaseApprovalItem> sapPurchaseApprovalItems);
// List<TmpPermitData> importExcelData(String batchNumber) ;
}
......@@ -12,7 +12,7 @@ import java.util.Date;
/**
* @Auther: LXH
* @Date: 2024/03/28/10:45
* @Description:放行条
* @Description:SAP存货转移单
*/
@Table(name = "sap_stock_transfers")
@Entity
......@@ -76,6 +76,12 @@ public class SapStockTransfers extends FlowBillAbstractEntity {
@Column(name = "message")
private String message;
/**
* 采购申请号
*/
@Column(name = "BANFN")
private String banfn;
@Override
protected String getCodeRuleId() {
return "sapStockTransfers";
......
......@@ -37,6 +37,9 @@ public class SapStockTransfersVO {
@JsonProperty("BUKRS")
private String burks;
@JsonProperty("BANFN")
private String banfn;
@JsonProperty("ITEM")
private List<SapStockTransfersItemVO> item;
......
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