feat 入库时增加采购订单类型

This commit is contained in:
Amjacks 2025-04-14 15:52:28 +08:00
parent 4d8f947344
commit 912beb70d0
5 changed files with 34 additions and 56 deletions

View File

@ -31,4 +31,11 @@ public enum ReceiveTypeEnums {
str.add(Z004.getCode()); str.add(Z004.getCode());
return str; return str;
} }
/**
* 是否采购订单
*/
public static Boolean isPurchase(String code) {
return getPurchase().contains(code);
}
} }

View File

@ -73,7 +73,7 @@ public class DeliveryController {
deliveryName = byKey.getDeliveryName(); deliveryName = byKey.getDeliveryName();
// 到库单找出该单据下的所有的采购单 // 到库单找出该单据下的所有的采购单
nameList = deliveryService.getRelByDelivery(storeDetailDto) nameList = deliveryService.getRelByDelivery(storeDetailDto)
.stream().map(MaterialDeliveryReceive::getReceiveRequestName).collect(Collectors.toList()); .stream().map(MaterialDeliveryReceive::getReceiveRequestName).distinct().collect(Collectors.toList());
} else { } else {
// 采购单 // 采购单
MaterialReceiveRequest receiveByKey = deliveryService.getReceiveByKey(storeDetailDto); MaterialReceiveRequest receiveByKey = deliveryService.getReceiveByKey(storeDetailDto);

View File

@ -3,6 +3,7 @@ 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.delivery.DeliveryStateEnums; import com.cim.idm.constants.delivery.DeliveryStateEnums;
import com.cim.idm.constants.receive.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.dto.delivery.DeliveryEditDto; import com.cim.idm.model.dto.delivery.DeliveryEditDto;
@ -526,9 +527,14 @@ public class MaterialReceiveActController {
e.printStackTrace(); e.printStackTrace();
return AjaxResult.me().setSuccess(false).setMessage(e.toString()); return AjaxResult.me().setSuccess(false).setMessage(e.toString());
} }
String undoId; String undoId = null;
try { try {
undoId = SendERPStockIn(receiveRequestName, siteName, user, opCode,commitDate,opCode); // 采购订单
if (ReceiveTypeEnums.isPurchase(request.getReceiveRequestType())) {
Map<String,Object> args = new HashMap<>();
undoId = toSAPServiceImpl.PurStockIn(receiveRequestName, siteName, user, args);
}
// @TODO 其他订单
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
return AjaxResult.me().setSuccess(false).setMessage(e.toString()); return AjaxResult.me().setSuccess(false).setMessage(e.toString());
@ -553,39 +559,4 @@ public class MaterialReceiveActController {
} }
return AjaxResult.me().setResultObj(null); return AjaxResult.me().setResultObj(null);
} }
public String SendERPStockIn(String receiveRequestName, String siteName, String eventUser,String reActo,String commitDate,String opCode) throws Exception {
//判断单据类型调用不同的NC接口
String sql = "SELECT m.RECEIVEREQUESTTYPE,m.RECEIVEREQUESTDETAILTYPE FROM MATERIALRECEIVEREQUEST m WHERE m.RECEIVEREQUESTNAME = :RECEIVEREQUESTNAME";
Map<String, Object> hashMap = new HashMap<String,Object> ();
hashMap.put("RECEIVEREQUESTNAME", receiveRequestName);
List<Map<String, Object>> queryForList = IDMFrameServiceProxy.getSqlTemplate().queryForList(sql, hashMap);
String billCode = "";
if (queryForList != null && queryForList.size() > 0) {
String type = queryForList.get(0).get("RECEIVEREQUESTTYPE").toString();
// String receiverequestdetailtype = queryForList.get(0).get("RECEIVEREQUESTDETAILTYPE").toString();
switch (type) {
case "Z001" : //采购入库
case "Z002" : //研发采购订单
case "Z003" : //非生产物资采购订单
case "Z004" : //固定资产在建工程采购订单
Map<String,Object> args = new HashMap<>();
billCode = toSAPServiceImpl.PurStockIn(receiveRequestName, siteName, eventUser,
args/* ,overReceiveControls */);
break;
case "Z005" : //服务费用采购订单
case "Z006" : //股份 - 泗洪STO
case "Z007" : //股份泗洪-分子公司STO
break;
case "Z008" : //物资退货采购订单
default :
break;
}
} else {
throw new CustomException("找不到单据" + receiveRequestName);
}
return billCode;
}
} }

View File

@ -1,6 +1,7 @@
package com.cim.idm.controller; package com.cim.idm.controller;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.cim.idm.constants.receive.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.framework.exception.IDMFrameDBErrorSignal; import com.cim.idm.framework.exception.IDMFrameDBErrorSignal;
@ -12,8 +13,8 @@ import com.cim.idm.model.vo.DeliveryReceiveDetailVo;
import com.cim.idm.mwmsextend.materialpacking.service.MaterialPackingServiceImpl; import com.cim.idm.mwmsextend.materialpacking.service.MaterialPackingServiceImpl;
import com.cim.idm.mwmsextend.materialreceiverequest.service.MaterialReceiveRequestServiceImpl; import com.cim.idm.mwmsextend.materialreceiverequest.service.MaterialReceiveRequestServiceImpl;
import com.cim.idm.service.IDeliveryService; import com.cim.idm.service.IDeliveryService;
import com.cim.idm.service.Impl.NCWServiceImpl;
import com.cim.idm.service.Impl.SDKMaterialPackingServiceImpl; import com.cim.idm.service.Impl.SDKMaterialPackingServiceImpl;
import com.cim.idm.service.impl.ToSAPServiceImpl;
import com.cim.idm.utils.AjaxResult; import com.cim.idm.utils.AjaxResult;
import com.cim.idm.utils.EventInfoUtil; import com.cim.idm.utils.EventInfoUtil;
import com.cim.idm.wmsextend.generic.GenericServiceProxy; import com.cim.idm.wmsextend.generic.GenericServiceProxy;
@ -42,6 +43,7 @@ import com.cim.idm.wmspackage.receiverequestdetail.management.info.MakeDetailInc
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import org.apache.commons.logging.Log; 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.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestBody;
@ -62,15 +64,14 @@ import java.util.*;
@EnableAutoConfiguration @EnableAutoConfiguration
public class NoChargeStockIn { public class NoChargeStockIn {
private static Log log = LogFactory.getLog(MaterialReceiveRequestServiceImpl.class);
SDKMaterialPackingServiceImpl SDKMP = new SDKMaterialPackingServiceImpl();
@Resource @Resource
private IDeliveryService deliveryService; private IDeliveryService deliveryService;
@Autowired
private static Log log = LogFactory.getLog(MaterialReceiveRequestServiceImpl.class); private ToSAPServiceImpl toSAPServiceImpl;
SDKMaterialPackingServiceImpl SDKMP=new SDKMaterialPackingServiceImpl();
NCWServiceImpl ncServer=new NCWServiceImpl();
// 先创建Map集合
Map<Integer, String> hashMap = new HashMap<>();
@Transactional @Transactional
@RequestMapping(value = "/NoChargeStockIn", method = RequestMethod.POST) @RequestMapping(value = "/NoChargeStockIn", method = RequestMethod.POST)
@ -95,9 +96,10 @@ public class NoChargeStockIn {
String sdkid=""; String sdkid="";
String commitDate = ""; String commitDate = "";
String opCode = ""; String opCode = "";
String siteName = (String)in.get("SITENAME");
// 判定是否是到货单 // 判定是否是到货单
StoreDetailDto storeDetailDto = new StoreDetailDto(); StoreDetailDto storeDetailDto = new StoreDetailDto();
storeDetailDto.setSiteName((String)in.get("SITENAME")); storeDetailDto.setSiteName(siteName);
storeDetailDto.setDocumentName((String)in.get("RECEIVEREQUESTNAME")); storeDetailDto.setDocumentName((String)in.get("RECEIVEREQUESTNAME"));
MaterialDelivery byKey = deliveryService.getByKey(storeDetailDto); MaterialDelivery byKey = deliveryService.getByKey(storeDetailDto);
Boolean isDelivery = Objects.nonNull(byKey); Boolean isDelivery = Objects.nonNull(byKey);
@ -106,7 +108,6 @@ public class NoChargeStockIn {
try { try {
receiveAct=GenerateMaterialReceiveRequestName("SDK","NoPO"); receiveAct=GenerateMaterialReceiveRequestName("SDK","NoPO");
} catch (CustomException e) { } catch (CustomException e) {
// TODO Auto-generated catch block
e.printStackTrace(); e.printStackTrace();
} }
user=(String) in.get("USER"); user=(String) in.get("USER");
@ -242,16 +243,12 @@ public class NoChargeStockIn {
} }
for (MaterialReceiveRequest request : requests) { for (MaterialReceiveRequest request : requests) {
String billcode = null; String billcode = null;
switch (request.getReceiveRequestType()) { // 采购订单
case "ZK4A" : //其他入库 if (ReceiveTypeEnums.isPurchase(request.getReceiveRequestType())) {
billcode = ncServer.qtrNoInvoice(request.getReceiveRequestName(), "SDK", receiveAct,user,commitDate,opCode); Map<String,Object> args = new HashMap<>();
break; billcode = toSAPServiceImpl.PurStockIn(request.getReceiveRequestName(), siteName, user, args);
case "45" : //采购入库
billcode = ncServer.PurStockIn(request.getReceiveRequestName(), "SDK",user,receiveAct,commitDate,opCode);
break;
default :
break;
} }
// @TODO 其他类型
if (billcode == null || "".equals(billcode)) { if (billcode == null || "".equals(billcode)) {
return AjaxResult.me().setErrorCode(500).setSuccess(false).setMessage("NC过账失败"); return AjaxResult.me().setErrorCode(500).setSuccess(false).setMessage("NC过账失败");
} }

View File

@ -74,6 +74,9 @@
AND m.ORDERDATE BETWEEN TO_DATE( #{dto.fromDate}, 'YYYY/MM/DDHH24MISS' ) AND m.ORDERDATE BETWEEN TO_DATE( #{dto.fromDate}, 'YYYY/MM/DDHH24MISS' )
AND TO_DATE( #{dto.toDate}, 'YYYY/MM/DDHH24MISS' ) AND TO_DATE( #{dto.toDate}, 'YYYY/MM/DDHH24MISS' )
</if> </if>
<if test="isBatch != null and !isBatch.equals('Y')">
AND (ms.IS_BATCH IS NULL OR ms.IS_BATCH != 'Y')
</if>
</select> </select>
<!-- GetInvoiceDetailInformationRow Z10006_SAP --> <!-- GetInvoiceDetailInformationRow Z10006_SAP -->