Commit d3fa653a authored by 1650842865's avatar 1650842865

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

parent 3210ea34
...@@ -3,6 +3,10 @@ $(function () { ...@@ -3,6 +3,10 @@ $(function () {
$("#toolBar").toolBar("enable", "forceAbortTask"); $("#toolBar").toolBar("enable", "forceAbortTask");
initItemGrid(); initItemGrid();
bindEvent(); bindEvent();
var batxt = $("#batxt").val();
if ("库存转储" == batxt){
$("#billTitle .subject").html(batxt)
}
}); });
function bindEvent() { function bindEvent() {
......
...@@ -14,7 +14,7 @@ ...@@ -14,7 +14,7 @@
<x:hidden name="billCode"/> <x:hidden name="billCode"/>
<x:hidden name="lifnr"/> <x:hidden name="lifnr"/>
<x:hidden name="bsart" value="zub"/> <x:hidden name="bsart" value="zub"/>
<x:hidden name="banfn"/>
<x:hidden name="fillinDate" type="datetime"/> <x:hidden name="fillinDate" type="datetime"/>
<x:hidden name="fullId"/> <x:hidden name="fullId"/>
<x:hidden name="organId"/> <x:hidden name="organId"/>
......
...@@ -2,6 +2,7 @@ package com.huigou.topsun.sap.purchase.application; ...@@ -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.SapPurchase;
import com.huigou.topsun.sap.purchase.domain.query.SapPurchaseQueryRequest; import com.huigou.topsun.sap.purchase.domain.query.SapPurchaseQueryRequest;
import com.huigou.topsun.sap.purchase.domain.vo.SapPurchaseItemDto;
import java.util.Map; import java.util.Map;
...@@ -20,4 +21,6 @@ public interface SapPurchaseApplication { ...@@ -20,4 +21,6 @@ public interface SapPurchaseApplication {
SapPurchase loadSapPurchase(String id); SapPurchase loadSapPurchase(String id);
String revokeApproval(String id); String revokeApproval(String id);
SapPurchase saveEPPurchaseItem(SapPurchase sapPurchase,SapPurchaseItemDto sapPurchaseItemDto);
} }
package com.huigou.topsun.sap.purchase.application.impl; package com.huigou.topsun.sap.purchase.application.impl;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.util.ObjectUtil;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.huigou.cache.SystemCache; 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.domain.model.CommonDomainConstants;
import com.huigou.data.query.model.QueryDescriptor; import com.huigou.data.query.model.QueryDescriptor;
import com.huigou.data.query.model.QueryModel; import com.huigou.data.query.model.QueryModel;
...@@ -16,11 +19,14 @@ import com.huigou.topsun.sap.purchase.application.SapPurchaseItemApplication; ...@@ -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.SapPurchase;
import com.huigou.topsun.sap.purchase.domain.SapPurchaseItem; import com.huigou.topsun.sap.purchase.domain.SapPurchaseItem;
import com.huigou.topsun.sap.purchase.domain.query.SapPurchaseQueryRequest; 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.SapPurchaseItemVo;
import com.huigou.topsun.sap.purchase.domain.vo.SapPurchaseVo; import com.huigou.topsun.sap.purchase.domain.vo.SapPurchaseVo;
import com.huigou.topsun.sap.purchase.repository.SapPurchaseRepository; import com.huigou.topsun.sap.purchase.repository.SapPurchaseRepository;
import com.huigou.topsun.sap.common.domain.SapResult; import com.huigou.topsun.sap.common.domain.SapResult;
import com.huigou.uasp.bmp.common.BizBillStatus; 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.uasp.bpm.FlowBroker;
import com.huigou.util.ClassHelper; import com.huigou.util.ClassHelper;
import com.huigou.util.DateUtil; import com.huigou.util.DateUtil;
...@@ -57,6 +63,8 @@ public class SapPurchaseApplicationImpl extends FlowBroker implements SapPurchas ...@@ -57,6 +63,8 @@ public class SapPurchaseApplicationImpl extends FlowBroker implements SapPurchas
private MannualStartWorkApplication mannualStartWorkApplication; private MannualStartWorkApplication mannualStartWorkApplication;
@Autowired @Autowired
private DataPermissionApplication dataPermissionApplication; private DataPermissionApplication dataPermissionApplication;
@Autowired
private OperatorApplication operatorApplication;
@Override @Override
protected String saveBizAndApprovalData() { protected String saveBizAndApprovalData() {
...@@ -329,5 +337,32 @@ public class SapPurchaseApplicationImpl extends FlowBroker implements SapPurchas ...@@ -329,5 +337,32 @@ public class SapPurchaseApplicationImpl extends FlowBroker implements SapPurchas
return newSapPurchase.getId(); 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; ...@@ -7,14 +7,24 @@ import com.huigou.topsun.common.BillStatus;
import com.huigou.topsun.sap.purchase.application.SapPurchaseApplication; import com.huigou.topsun.sap.purchase.application.SapPurchaseApplication;
import com.huigou.topsun.sap.purchase.domain.SapPurchase; import com.huigou.topsun.sap.purchase.domain.SapPurchase;
import com.huigou.topsun.sap.purchase.domain.query.SapPurchaseQueryRequest; 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.topsun.sap.sapApplication.application.SapDictionaryApplication;
import com.huigou.uasp.annotation.ControllerMapping; import com.huigou.uasp.annotation.ControllerMapping;
import com.huigou.uasp.annotation.SkipAuth;
import com.huigou.uasp.bmp.common.BizBillStatus; import com.huigou.uasp.bmp.common.BizBillStatus;
import com.huigou.uasp.client.CommonController; import com.huigou.uasp.client.CommonController;
import com.huigou.util.JSONUtil;
import com.huigou.util.SDO; import com.huigou.util.SDO;
import com.huigou.util.StringUtil; import com.huigou.util.StringUtil;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller; 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 javax.annotation.Resource;
import java.io.IOException; import java.io.IOException;
...@@ -32,6 +42,7 @@ import java.util.stream.Collectors; ...@@ -32,6 +42,7 @@ import java.util.stream.Collectors;
@Controller @Controller
@ControllerMapping("/sapPurchase") @ControllerMapping("/sapPurchase")
public class SapPurchaseController extends CommonController { public class SapPurchaseController extends CommonController {
private final static Logger LOG = LoggerFactory.getLogger(SapPurchaseController.class);
@Override @Override
protected String getPagePath() { protected String getPagePath() {
return "/biz/topsun/sap/purchase/"; return "/biz/topsun/sap/purchase/";
...@@ -149,4 +160,24 @@ public class SapPurchaseController extends CommonController { ...@@ -149,4 +160,24 @@ public class SapPurchaseController extends CommonController {
} }
return packGridDataAndResult(mapList); 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 ...@@ -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.domain.vo.SapPurchaseApprovalVo;
import com.huigou.topsun.sap.purchaseApproval.repository.SapPurchaseApprovalRepository; import com.huigou.topsun.sap.purchaseApproval.repository.SapPurchaseApprovalRepository;
import com.huigou.topsun.sap.purchaseOrder.domain.SapPurchaseOrder; 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.common.BizBillStatus;
import com.huigou.uasp.bmp.fn.CodeGenerator; import com.huigou.uasp.bmp.fn.CodeGenerator;
import com.huigou.uasp.bmp.operator.OperatorApplication; import com.huigou.uasp.bmp.operator.OperatorApplication;
...@@ -76,6 +77,8 @@ public class SapPurchaseApprovalApplicationImpl extends FlowBroker implements Sa ...@@ -76,6 +77,8 @@ public class SapPurchaseApprovalApplicationImpl extends FlowBroker implements Sa
private OperatorApplication operatorApplication; private OperatorApplication operatorApplication;
@Autowired @Autowired
private MannualStartWorkApplication mannualStartWorkApplication; private MannualStartWorkApplication mannualStartWorkApplication;
@Autowired
private SapStockTransfersApplication sapStockTransfersApplication;
@Override @Override
protected String saveBizAndApprovalData() { protected String saveBizAndApprovalData() {
...@@ -295,6 +298,11 @@ public class SapPurchaseApprovalApplicationImpl extends FlowBroker implements Sa ...@@ -295,6 +298,11 @@ public class SapPurchaseApprovalApplicationImpl extends FlowBroker implements Sa
sapPurchaseApprovalItems.add(sapPurchaseApprovalItem); sapPurchaseApprovalItems.add(sapPurchaseApprovalItem);
sapPurchaseApproval.setKnttp(approvalItemVo.getKnttp());//科目分配类别 sapPurchaseApproval.setKnttp(approvalItemVo.getKnttp());//科目分配类别
sapPurchaseApproval.setEkgrp(approvalItemVo.getEkgrp());//采购组 sapPurchaseApproval.setEkgrp(approvalItemVo.getEkgrp());//采购组
//采购申请是库存转储时,修改表头采购申请类型描述
if ("7".equals(sapPurchaseApprovalItem.getPstyp())){
sapPurchaseApproval.setBatxt(sapPurchaseApprovalItem.getPtext());
}
} }
//knttp审批要素没有值时,赋值0,防止发起流程时报错 //knttp审批要素没有值时,赋值0,防止发起流程时报错
if (StringUtil.isBlank(sapPurchaseApproval.getKnttp())){ if (StringUtil.isBlank(sapPurchaseApproval.getKnttp())){
...@@ -483,6 +491,12 @@ public class SapPurchaseApprovalApplicationImpl extends FlowBroker implements Sa ...@@ -483,6 +491,12 @@ public class SapPurchaseApprovalApplicationImpl extends FlowBroker implements Sa
sapPurchaseApprovalRepository.save(sapPurchaseApproval); sapPurchaseApprovalRepository.save(sapPurchaseApproval);
sapMutualEpLogApplication.saveSapMutualEpLog(resultMap); sapMutualEpLogApplication.saveSapMutualEpLog(resultMap);
} }
//根据明细的项目类别判断是不是库存转储
SapPurchaseApprovalItem sapPurchaseApprovalItem = approvalItemList.get(0);
if ("7".equals(sapPurchaseApprovalItem.getPstyp())){
sapStockTransfersApplication.createSapStockTransfersFromPurchaseApproval(sapPurchaseApproval,approvalItemList);
}
} }
@Override @Override
......
...@@ -178,5 +178,23 @@ public class SapPurchaseApprovalItem extends AbstractEntity { ...@@ -178,5 +178,23 @@ public class SapPurchaseApprovalItem extends AbstractEntity {
@Column(name = "NAME_TEXT") @Column(name = "NAME_TEXT")
private String nameText; 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; private static final long serialVersionUID = 1L;
} }
\ No newline at end of file
...@@ -173,4 +173,24 @@ public class SapPurchaseApprovalItemVo { ...@@ -173,4 +173,24 @@ public class SapPurchaseApprovalItemVo {
@JsonProperty("NAME_TEXT") @JsonProperty("NAME_TEXT")
private String nameText; 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; ...@@ -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.SapPermit;
import com.huigou.topsun.sap.permit.domain.query.SapPermitQueryRequest; 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.SapStockTransfers;
import com.huigou.topsun.sap.transfers.domain.query.SapStockTransfersQueryRequest; import com.huigou.topsun.sap.transfers.domain.query.SapStockTransfersQueryRequest;
...@@ -24,5 +27,11 @@ public interface SapStockTransfersApplication { ...@@ -24,5 +27,11 @@ public interface SapStockTransfersApplication {
void deleteByIds(List<String> ids); void deleteByIds(List<String> ids);
/**
* 创建存货转移单
* @param sapPurchaseApprovalItems
*/
void createSapStockTransfersFromPurchaseApproval(SapPurchaseApproval sapPurchaseApproval,List<SapPurchaseApprovalItem> sapPurchaseApprovalItems);
// List<TmpPermitData> importExcelData(String batchNumber) ; // List<TmpPermitData> importExcelData(String batchNumber) ;
} }
...@@ -12,7 +12,7 @@ import java.util.Date; ...@@ -12,7 +12,7 @@ import java.util.Date;
/** /**
* @Auther: LXH * @Auther: LXH
* @Date: 2024/03/28/10:45 * @Date: 2024/03/28/10:45
* @Description:放行条 * @Description:SAP存货转移单
*/ */
@Table(name = "sap_stock_transfers") @Table(name = "sap_stock_transfers")
@Entity @Entity
...@@ -76,6 +76,12 @@ public class SapStockTransfers extends FlowBillAbstractEntity { ...@@ -76,6 +76,12 @@ public class SapStockTransfers extends FlowBillAbstractEntity {
@Column(name = "message") @Column(name = "message")
private String message; private String message;
/**
* 采购申请号
*/
@Column(name = "BANFN")
private String banfn;
@Override @Override
protected String getCodeRuleId() { protected String getCodeRuleId() {
return "sapStockTransfers"; return "sapStockTransfers";
......
...@@ -37,6 +37,9 @@ public class SapStockTransfersVO { ...@@ -37,6 +37,9 @@ public class SapStockTransfersVO {
@JsonProperty("BUKRS") @JsonProperty("BUKRS")
private String burks; private String burks;
@JsonProperty("BANFN")
private String banfn;
@JsonProperty("ITEM") @JsonProperty("ITEM")
private List<SapStockTransfersItemVO> 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