feat 修改到货单过账关联采购订单发送sap消息

This commit is contained in:
Amjacks 2025-03-27 16:41:05 +08:00
parent 645e8ea629
commit 3810db4375
8 changed files with 71 additions and 48 deletions

View File

@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.cim.idm.constants.ReceiveTypeEnums; import com.cim.idm.constants.ReceiveTypeEnums;
import com.cim.idm.model.DeliveryDto; import com.cim.idm.model.DeliveryDto;
import com.cim.idm.model.MaterialReceiveRequest;
import com.cim.idm.model.PageDto; import com.cim.idm.model.PageDto;
import com.cim.idm.service.IDeliveryService; import com.cim.idm.service.IDeliveryService;
import com.cim.idm.utils.AjaxResult; import com.cim.idm.utils.AjaxResult;
@ -17,6 +18,7 @@ import javax.annotation.Resource;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.stream.Collectors;
@RestController @RestController
@RequestMapping("/delivery") @RequestMapping("/delivery")
@ -56,10 +58,11 @@ public class DeliveryController {
// 单据名称集合 // 单据名称集合
List<String> nameList = new ArrayList<>(); List<String> nameList = new ArrayList<>();
// 判定是否是到库单 // 判定是否是到库单
String typeByKey = deliveryService.getTypeByKey(siteName, receiveRequestName); String typeByKey = deliveryService.getByKey(siteName, receiveRequestName).getReceiveRequestType();
if (typeByKey.equals(ReceiveTypeEnums.DK.getCode())) { if (typeByKey.equals(ReceiveTypeEnums.DK.getCode())) {
// 到库单找出该单据下的所有的采购单 // 到库单找出该单据下的所有的采购单
nameList = deliveryService.getReceiveByDelivery(siteName, receiveRequestName); nameList = deliveryService.getReceiveByDelivery(siteName, receiveRequestName)
.stream().map(MaterialReceiveRequest::getReceiveRequestName).collect(Collectors.toList());
} else { } else {
// 采购单 // 采购单
nameList.add(receiveRequestName); nameList.add(receiveRequestName);

View File

@ -2,12 +2,14 @@ package com.cim.idm.controller;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.cim.idm.constants.ReceiveTypeEnums;
import com.cim.idm.framework.IDMFrameServiceProxy; import com.cim.idm.framework.IDMFrameServiceProxy;
import com.cim.idm.framework.data.EventInfo; import com.cim.idm.framework.data.EventInfo;
import com.cim.idm.model.MaterialReceiveRequest; import com.cim.idm.model.MaterialReceiveRequest;
import com.cim.idm.model.MaterialreceiveActDto; import com.cim.idm.model.MaterialreceiveActDto;
import com.cim.idm.model.TrackOutBoDto; import com.cim.idm.model.TrackOutBoDto;
import com.cim.idm.mwmsextend.materialpacking.service.MaterialPackingServiceImpl; import com.cim.idm.mwmsextend.materialpacking.service.MaterialPackingServiceImpl;
import com.cim.idm.service.IDeliveryService;
import com.cim.idm.service.impl.QMSServiceImpl; import com.cim.idm.service.impl.QMSServiceImpl;
import com.cim.idm.service.impl.ToSAPServiceImpl; import com.cim.idm.service.impl.ToSAPServiceImpl;
import com.cim.idm.utils.AjaxResult; import com.cim.idm.utils.AjaxResult;
@ -21,7 +23,6 @@ import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory; import org.apache.commons.logging.LogFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RequestMethod;
@ -29,17 +30,20 @@ import org.springframework.web.bind.annotation.RestController;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.sql.Timestamp; import java.sql.Timestamp;
import java.util.Date; import java.util.*;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.cim.idm.service.Impl.SDKMaterialPackingServiceImpl; import com.cim.idm.service.Impl.SDKMaterialPackingServiceImpl;
import javax.annotation.Resource;
@RestController @RestController
@RequestMapping("/MaterialReceiveAct") @RequestMapping("/MaterialReceiveAct")
@EnableAutoConfiguration @EnableAutoConfiguration
public class MaterialReceiveActController { public class MaterialReceiveActController {
@Resource
private IDeliveryService deliveryService;
private static Log log = LogFactory.getLog(MaterialReceiveActController.class); private static Log log = LogFactory.getLog(MaterialReceiveActController.class);
private EventInfo makeEventInfo; private EventInfo makeEventInfo;
@ -521,15 +525,27 @@ public class MaterialReceiveActController {
@RequestMapping(value = "/commitToERP", method = RequestMethod.POST) @RequestMapping(value = "/commitToERP", method = RequestMethod.POST)
public AjaxResult commitToERP(@RequestBody JSONObject in ) { public AjaxResult commitToERP(@RequestBody JSONObject in ) {
TrackOutBoDto boxs = JSON.toJavaObject(in, TrackOutBoDto.class); TrackOutBoDto trackOutBoDto = JSON.toJavaObject(in, TrackOutBoDto.class);
String commitDate = boxs.getCommitDate(); String user = trackOutBoDto.getUser();
MaterialreceiveActDto box = boxs.getMaterialreceiveAct(); String opCode = trackOutBoDto.getOpCode();
String user = boxs.getUser(); String commitDate = trackOutBoDto.getCommitDate();
String receiveRequestName = box.getReceiveRequestName(); String name = trackOutBoDto.getReceiveRequestName();
String siteName = box.getSiteName(); String site = trackOutBoDto.getSiteName();
String opCode = boxs.getOpCode(); // 采购单
List<MaterialReceiveRequest> requests = new ArrayList<>();
String erpFactory = box.getErpFactory(); // 判定单据类型
MaterialReceiveRequest byKey = deliveryService.getByKey(site, name);
if (byKey.getReceiveRequestType().equals(ReceiveTypeEnums.DK.getCode())) {
// 到货单
requests = deliveryService.getReceiveByDelivery(site, name);
} else {
requests.add(byKey);
}
// 采购单处理
for (MaterialReceiveRequest request : requests) {
String receiveRequestName = request.getReceiveRequestName();
String siteName = request.getSiteName();
String erpFactory = request.getSTOCKORGNO();
try { try {
//调用QMS //调用QMS
qMSServiceImpl.PreIQCInfoSend(receiveRequestName, "SDK",opCode, erpFactory); qMSServiceImpl.PreIQCInfoSend(receiveRequestName, "SDK",opCode, erpFactory);
@ -553,6 +569,7 @@ public class MaterialReceiveActController {
//更新库存状态 //更新库存状态
SDKMaterialPackingServiceImpl.SaveUnDoInfo( undoid,commitDate); SDKMaterialPackingServiceImpl.SaveUnDoInfo( undoid,commitDate);
SDKMaterialPackingServiceImpl.updateStockState( makeEventInfo, undoid,opCode); SDKMaterialPackingServiceImpl.updateStockState( makeEventInfo, undoid,opCode);
}
return AjaxResult.me().setResultObj(null); return AjaxResult.me().setResultObj(null);
} }

View File

@ -51,12 +51,12 @@ public interface DeliveryDao {
/** /**
* 根据 key 获取值 * 根据 key 获取值
*/ */
String getTypeByKey(@Param("siteName") String siteName, MaterialReceiveRequest getByKey(@Param("siteName") String siteName,
@Param("receiveRequestName") String receiveRequestName); @Param("receiveRequestName") String receiveRequestName);
/** /**
* 根据到库单获取采购单名称 * 根据到库单获取采购单名称
*/ */
List<String> getReceiveByDelivery(@Param("siteName") String siteName, List<MaterialReceiveRequest> getReceiveByDelivery(@Param("siteName") String siteName,
@Param("receiveRequestName") String receiveRequestName); @Param("receiveRequestName") String receiveRequestName);
} }

View File

@ -20,6 +20,7 @@ public class MaterialReceiveRequest {
private String commitDate; private String commitDate;
private String opCode; private String opCode;
private String type; private String type;
private String STOCKORGNO;
private String MaterialPackingName; private String MaterialPackingName;
private String materialSpecName; private String materialSpecName;
private String materialQuantity; private String materialQuantity;

View File

@ -5,8 +5,10 @@ import lombok.Data;
@Data @Data
public class TrackOutBoDto { public class TrackOutBoDto {
private String user; private String user;
private String siteName;
private String commitDate; private String commitDate;
private String opCode; private String opCode;
private String receiveRequestName;
private MaterialreceiveActDto materialreceiveAct; private MaterialreceiveActDto materialreceiveAct;
} }

View File

@ -37,12 +37,12 @@ public interface IDeliveryService {
* @param receiveRequestName 单据名称 * @param receiveRequestName 单据名称
* @return 类型 * @return 类型
*/ */
String getTypeByKey(String siteName, String receiveRequestName); MaterialReceiveRequest getByKey(String siteName, String receiveRequestName);
/** /**
* 根据到库单获取采购单名称 * 根据到库单获取采购单名称
* @param receiveRequestName 到库单 * @param receiveRequestName 到库单
* @return 采购单名称列表 * @return 采购单名称列表
*/ */
List<String> getReceiveByDelivery(String siteName, String receiveRequestName); List<MaterialReceiveRequest> getReceiveByDelivery(String siteName, String receiveRequestName);
} }

View File

@ -61,12 +61,12 @@ public class DeliveryServiceImpl implements IDeliveryService {
} }
@Override @Override
public String getTypeByKey(String siteName, String receiveRequestName) { public MaterialReceiveRequest getByKey(String siteName, String receiveRequestName) {
return deliveryDao.getTypeByKey(siteName, receiveRequestName); return deliveryDao.getByKey(siteName, receiveRequestName);
} }
@Override @Override
public List<String> getReceiveByDelivery(String siteName, String receiveRequestName) { public List<MaterialReceiveRequest> getReceiveByDelivery(String siteName, String receiveRequestName) {
return deliveryDao.getReceiveByDelivery(siteName, receiveRequestName); return deliveryDao.getReceiveByDelivery(siteName, receiveRequestName);
} }
} }

View File

@ -117,15 +117,15 @@
) TTT ) TTT
</select> </select>
<select id="getTypeByKey" resultType="String"> <select id="getByKey" resultType="com.cim.idm.model.MaterialReceiveRequest">
SELECT RECEIVEREQUESTTYPE SELECT *
FROM MATERIALRECEIVEREQUEST FROM MATERIALRECEIVEREQUEST
WHERE SITENAME = #{siteName} WHERE SITENAME = #{siteName}
AND RECEIVEREQUESTNAME = #{receiveRequestName} AND RECEIVEREQUESTNAME = #{receiveRequestName}
</select> </select>
<select id="getReceiveByDelivery" resultType="String"> <select id="getReceiveByDelivery" resultType="com.cim.idm.model.MaterialReceiveRequest">
SELECT RECEIVEREQUESTNAME SELECT *
FROM MATERIALRECEIVEREQUEST FROM MATERIALRECEIVEREQUEST
WHERE SITENAME = #{siteName} WHERE SITENAME = #{siteName}
AND DELIVERYNAME = #{receiveRequestName} AND DELIVERYNAME = #{receiveRequestName}