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) ;
} }
...@@ -5,6 +5,8 @@ import com.alibaba.fastjson.JSON; ...@@ -5,6 +5,8 @@ import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.ObjectMapper;
import com.huigou.cache.DictUtil; import com.huigou.cache.DictUtil;
import com.huigou.context.Operator;
import com.huigou.context.OrgUnit;
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;
import com.huigou.topsun.base.coderule.application.CodeRuleApplication; import com.huigou.topsun.base.coderule.application.CodeRuleApplication;
...@@ -12,6 +14,10 @@ import com.huigou.topsun.base.coderule.application.CodeRuleApplication; ...@@ -12,6 +14,10 @@ import com.huigou.topsun.base.coderule.application.CodeRuleApplication;
import com.huigou.topsun.sap.common.DefaultHttpClient; import com.huigou.topsun.sap.common.DefaultHttpClient;
import com.huigou.topsun.sap.common.application.SapMutualEpLogApplication; import com.huigou.topsun.sap.common.application.SapMutualEpLogApplication;
import com.huigou.topsun.sap.common.domain.SapResult; import com.huigou.topsun.sap.common.domain.SapResult;
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.sapApplication.application.SapDictionaryApplication;
import com.huigou.topsun.sap.transfers.application.SapStockTransfersApplication; import com.huigou.topsun.sap.transfers.application.SapStockTransfersApplication;
import com.huigou.topsun.sap.transfers.application.SapStockTransfersItemApplication; import com.huigou.topsun.sap.transfers.application.SapStockTransfersItemApplication;
import com.huigou.topsun.sap.transfers.domain.SapStockTransfers; import com.huigou.topsun.sap.transfers.domain.SapStockTransfers;
...@@ -23,14 +29,18 @@ import com.huigou.topsun.sap.transfers.repository.SapStockTransfersItemRepositor ...@@ -23,14 +29,18 @@ import com.huigou.topsun.sap.transfers.repository.SapStockTransfersItemRepositor
import com.huigou.topsun.sap.transfers.repository.SapStockTransfersRepository; import com.huigou.topsun.sap.transfers.repository.SapStockTransfersRepository;
import com.huigou.uasp.bmp.common.BizBillStatus; import com.huigou.uasp.bmp.common.BizBillStatus;
import com.huigou.uasp.bmp.doc.attachment.application.AttachmentApplication; import com.huigou.uasp.bmp.doc.attachment.application.AttachmentApplication;
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;
import com.huigou.util.StringUtil;
import org.activiti.engine.delegate.DelegateExecution; import org.activiti.engine.delegate.DelegateExecution;
import org.activiti.engine.delegate.DelegateTask; import org.activiti.engine.delegate.DelegateTask;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.io.IOException;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
...@@ -59,6 +69,8 @@ public class SapStockTransfersApplicationImpl extends FlowBroker implements SapS ...@@ -59,6 +69,8 @@ public class SapStockTransfersApplicationImpl extends FlowBroker implements SapS
DefaultHttpClient defaultHttpClient; DefaultHttpClient defaultHttpClient;
@Autowired @Autowired
SapMutualEpLogApplication sapMutualEpLogApplication; SapMutualEpLogApplication sapMutualEpLogApplication;
@Autowired
private SapDictionaryApplication sapDictionaryApplication;
@Override @Override
public Map<String, Object> getStockTransfersList(SapStockTransfersQueryRequest queryRequest) { public Map<String, Object> getStockTransfersList(SapStockTransfersQueryRequest queryRequest) {
...@@ -118,24 +130,7 @@ public class SapStockTransfersApplicationImpl extends FlowBroker implements SapS ...@@ -118,24 +130,7 @@ public class SapStockTransfersApplicationImpl extends FlowBroker implements SapS
SapStockTransfers stockTransfers = sapStockTransfersRepository.findOne(bizId); SapStockTransfers stockTransfers = sapStockTransfersRepository.findOne(bizId);
stockTransfers.setStatusId(status.getId()); stockTransfers.setStatusId(status.getId());
sapStockTransfersRepository.save(stockTransfers); sapStockTransfersRepository.save(stockTransfers);
this.sendSapData(stockTransfers);
List <SapStockTransfersItem> itemList= sapStockTransfersItemApplication.findByTransfersId(stockTransfers.getId());
//推送SAP
SapStockTransfersVO sapStockTransfersVO=new SapStockTransfersVO();
BeanUtil.copyProperties(stockTransfers, sapStockTransfersVO);
List <SapStockTransfersItemVO> newItemList=new ArrayList<>();
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
for (SapStockTransfersItem item:itemList){
SapStockTransfersItemVO sapStockTransfersItemVO=new SapStockTransfersItemVO();
BeanUtil.copyProperties(item, sapStockTransfersItemVO);
if (item.getEeind() != null){
sapStockTransfersItemVO.setEeind(sdf.format(item.getEeind()));
}
sapStockTransfersItemVO.setWerks(stockTransfers.getWerks());
newItemList.add(sapStockTransfersItemVO);
}
sapStockTransfersVO.setItem(newItemList);
sendSapData(sapStockTransfersVO,stockTransfers.getId());
} }
@Override @Override
...@@ -217,13 +212,28 @@ public class SapStockTransfersApplicationImpl extends FlowBroker implements SapS ...@@ -217,13 +212,28 @@ public class SapStockTransfersApplicationImpl extends FlowBroker implements SapS
/** /**
* 远程调用sap接口,传递数据 * 远程调用sap接口,传递数据
*/ */
public void sendSapData(SapStockTransfersVO sapStockTransfersVO,String id) { public void sendSapData(SapStockTransfers stockTransfers) {
List <SapStockTransfersItem> itemList= sapStockTransfersItemApplication.findByTransfersId(stockTransfers.getId());
//推送SAP
SapStockTransfersVO sapStockTransfersVO=new SapStockTransfersVO();
BeanUtil.copyProperties(stockTransfers, sapStockTransfersVO);
List <SapStockTransfersItemVO> newItemList=new ArrayList<>();
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
for (SapStockTransfersItem item:itemList){
SapStockTransfersItemVO sapStockTransfersItemVO=new SapStockTransfersItemVO();
BeanUtil.copyProperties(item, sapStockTransfersItemVO);
if (item.getEeind() != null){
sapStockTransfersItemVO.setEeind(sdf.format(item.getEeind()));
}
sapStockTransfersItemVO.setWerks(stockTransfers.getWerks());
newItemList.add(sapStockTransfersItemVO);
}
sapStockTransfersVO.setItem(newItemList);
ObjectMapper objectMapper = new ObjectMapper(); ObjectMapper objectMapper = new ObjectMapper();
String url = "cud_po_zub/po_zub"; String url = "cud_po_zub/po_zub";
Map<String, Object> resultMap = new HashMap<>(); Map<String, Object> resultMap = new HashMap<>();
resultMap.put("businessType", "存货转移数据"); resultMap.put("businessType", "存货转移数据");
resultMap.put("businessId", id); resultMap.put("businessId", stockTransfers.getId());
resultMap.put("parameter", JSON.toJSONString(sapStockTransfersVO)); resultMap.put("parameter", JSON.toJSONString(sapStockTransfersVO));
// List<SapStockTransfersVO> sapStockTransfersVOs = new ArrayList<>(); // List<SapStockTransfersVO> sapStockTransfersVOs = new ArrayList<>();
// sapStockTransfersVOs.add(sapStockTransfersVO); // sapStockTransfersVOs.add(sapStockTransfersVO);
...@@ -237,13 +247,11 @@ public class SapStockTransfersApplicationImpl extends FlowBroker implements SapS ...@@ -237,13 +247,11 @@ public class SapStockTransfersApplicationImpl extends FlowBroker implements SapS
SapResult sapResult = sapResultList.get(0); SapResult sapResult = sapResultList.get(0);
resultMap.put("sequence", resultMap.get("row")); resultMap.put("sequence", resultMap.get("row"));
if ("S".equals(sapResult.getTYPE())) { if ("S".equals(sapResult.getTYPE())) {
SapStockTransfers sapStockTransfers = this.getStockTransfersById(id);
// suppliersInfo.setPartner(sapResult.getMESSAGE_V1());
resultMap.put("TYPE", sapResult.getTYPE()); resultMap.put("TYPE", sapResult.getTYPE());
resultMap.put("MESSAGE", sapResult.getMESSAGE()); resultMap.put("MESSAGE", sapResult.getMESSAGE());
sapStockTransfers.setType(sapResult.getTYPE()); stockTransfers.setType(sapResult.getTYPE());
sapStockTransfers.setMessage(sapResult.getMESSAGE_V1()); stockTransfers.setMessage(sapResult.getMESSAGE_V1());
sapStockTransfersRepository.save(sapStockTransfers); sapStockTransfersRepository.save(stockTransfers);
} else { } else {
List<String> stringList = sapResultList.stream().map(SapResult::getMESSAGE).collect(Collectors.toList()); List<String> stringList = sapResultList.stream().map(SapResult::getMESSAGE).collect(Collectors.toList());
message = String.join(";", stringList); message = String.join(";", stringList);
...@@ -257,4 +265,78 @@ public class SapStockTransfersApplicationImpl extends FlowBroker implements SapS ...@@ -257,4 +265,78 @@ public class SapStockTransfersApplicationImpl extends FlowBroker implements SapS
sapMutualEpLogApplication.saveSapMutualEpLog(resultMap); sapMutualEpLogApplication.saveSapMutualEpLog(resultMap);
} }
} }
/**
* 创建存货转移单
* @param sapPurchaseItemList
*/
@Override
public void createSapStockTransfersFromPurchaseApproval(SapPurchaseApproval sapPurchaseApproval, List<SapPurchaseApprovalItem> sapPurchaseItemList){
SapStockTransfers sapStockTransfers=new SapStockTransfers();
sapStockTransfers.setStatusId(BizBillStatus.COMPLETED.getId());
Org org = orgApplication.loadOrgByFullId(sapPurchaseApproval.getFullId());
sapStockTransfers.setDefaultValues(new OrgUnit(sapPurchaseApproval.getFullId(), org.getFullName()));
sapStockTransfers.setBanfn(sapPurchaseApproval.getBanfn());
SapPurchaseApprovalItem sapPurchaseItemFirst = sapPurchaseItemList.get(0);
sapStockTransfers.setBsart("ZUB");
sapStockTransfers.setLifnr(sapPurchaseItemFirst.getReswk());//供货工厂
String text = this.getDictionaryText("WERKS", sapPurchaseItemFirst.getReswk(), "NAME1");
sapStockTransfers.setLifnrName(text);
sapStockTransfers.setWerks(sapPurchaseItemFirst.getWerks());//收货工厂
String WerksName = this.getDictionaryText("WERKS", sapPurchaseItemFirst.getWerks(), "NAME1");
sapStockTransfers.setWerksName(WerksName);
sapStockTransfers.setEkorg("1000");//采购组织
sapStockTransfers.setEkorgName("广州宝绅科技采购组织");
sapStockTransfers.setBurks("1000");//公司代码
sapStockTransfers.setBurksName("广州市宝绅科技应用有限公司");
sapStockTransfers.setEkgrp(sapPurchaseItemFirst.getEkgrp());//采购组
sapStockTransfers.setEkgrpName(sapPurchaseItemFirst.getEknam());
sapStockTransfersRepository.save(sapStockTransfers);
List<SapStockTransfersItem> itemList = new ArrayList<>();
for (int i = 1; i <= sapPurchaseItemList.size(); i++) {
SapPurchaseApprovalItem sapPurchaseItem = sapPurchaseItemList.get(i-1);
SapStockTransfersItem sapStockTransfersItem=new SapStockTransfersItem();
sapStockTransfersItem.setTransfersId(sapStockTransfers.getId());
sapStockTransfersItem.setEpstp("U");//项目类别
sapStockTransfersItem.setEbelp(i*10);//项目编号
sapStockTransfersItem.setMatnr(sapPurchaseItem.getMatnr());
sapStockTransfersItem.setMenge(sapPurchaseItem.getMenge().intValue());
sapStockTransfersItem.setMeins(sapPurchaseItem.getMeins());
sapStockTransfersItem.setEeind(sapPurchaseItem.getLfdat());//交货日期
sapStockTransfersItem.setLgort(sapPurchaseItem.getLgort());
sapStockTransfersItem.setLgortName(sapPurchaseItem.getLgobe());
sapStockTransfersItem.setMatnrName(sapPurchaseItem.getTxz01());
sapStockTransfersItem.setMeinsName(sapPurchaseItem.getMsehl());
itemList.add(sapStockTransfersItem);
}
this.sapStockTransfersItemApplication.saveSapStockTransfersItems(sapStockTransfers.getId(),itemList);
//调用sap接口
this.sendSapData(sapStockTransfers);
}
/**
* 获取描述
* @param fieldName 字典字段名
* @param filterValue 筛选条件
* @param code 描述对应的key
* @return
*/
public String getDictionaryText(String fieldName, String filterValue, String code){
String text = "";
try {
List<Map<String, String>> mapList = sapDictionaryApplication.getSapDictionary(fieldName);
List<String> textList = mapList
.stream()
.filter(map -> map.values().stream().anyMatch(value->value.contains(filterValue)))
.map(map ->{
return map.get(code);
})
.collect(Collectors.toList());
text = textList.get(0);
} catch (IOException e) {
throw new RuntimeException(e);
}
return text;
}
} }
...@@ -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