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());
return str;
}
/**
* 是否采购订单
*/
public static Boolean isPurchase(String code) {
return getPurchase().contains(code);
}
}

View File

@ -73,7 +73,7 @@ public class DeliveryController {
deliveryName = byKey.getDeliveryName();
// 到库单找出该单据下的所有的采购单
nameList = deliveryService.getRelByDelivery(storeDetailDto)
.stream().map(MaterialDeliveryReceive::getReceiveRequestName).collect(Collectors.toList());
.stream().map(MaterialDeliveryReceive::getReceiveRequestName).distinct().collect(Collectors.toList());
} else {
// 采购单
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.JSONObject;
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.data.EventInfo;
import com.cim.idm.model.dto.delivery.DeliveryEditDto;
@ -526,9 +527,14 @@ public class MaterialReceiveActController {
e.printStackTrace();
return AjaxResult.me().setSuccess(false).setMessage(e.toString());
}
String undoId;
String undoId = null;
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) {
e.printStackTrace();
return AjaxResult.me().setSuccess(false).setMessage(e.toString());
@ -553,39 +559,4 @@ public class MaterialReceiveActController {
}
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;
import com.alibaba.fastjson.JSONObject;
import com.cim.idm.constants.receive.ReceiveTypeEnums;
import com.cim.idm.framework.IDMFrameServiceProxy;
import com.cim.idm.framework.data.EventInfo;
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.materialreceiverequest.service.MaterialReceiveRequestServiceImpl;
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.ToSAPServiceImpl;
import com.cim.idm.utils.AjaxResult;
import com.cim.idm.utils.EventInfoUtil;
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 org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.RequestBody;
@ -62,15 +64,14 @@ import java.util.*;
@EnableAutoConfiguration
public class NoChargeStockIn {
private static Log log = LogFactory.getLog(MaterialReceiveRequestServiceImpl.class);
SDKMaterialPackingServiceImpl SDKMP = new SDKMaterialPackingServiceImpl();
@Resource
private IDeliveryService deliveryService;
private static Log log = LogFactory.getLog(MaterialReceiveRequestServiceImpl.class);
SDKMaterialPackingServiceImpl SDKMP=new SDKMaterialPackingServiceImpl();
NCWServiceImpl ncServer=new NCWServiceImpl();
// 先创建Map集合
Map<Integer, String> hashMap = new HashMap<>();
@Autowired
private ToSAPServiceImpl toSAPServiceImpl;
@Transactional
@RequestMapping(value = "/NoChargeStockIn", method = RequestMethod.POST)
@ -95,9 +96,10 @@ public class NoChargeStockIn {
String sdkid="";
String commitDate = "";
String opCode = "";
String siteName = (String)in.get("SITENAME");
// 判定是否是到货单
StoreDetailDto storeDetailDto = new StoreDetailDto();
storeDetailDto.setSiteName((String)in.get("SITENAME"));
storeDetailDto.setSiteName(siteName);
storeDetailDto.setDocumentName((String)in.get("RECEIVEREQUESTNAME"));
MaterialDelivery byKey = deliveryService.getByKey(storeDetailDto);
Boolean isDelivery = Objects.nonNull(byKey);
@ -106,7 +108,6 @@ public class NoChargeStockIn {
try {
receiveAct=GenerateMaterialReceiveRequestName("SDK","NoPO");
} catch (CustomException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
user=(String) in.get("USER");
@ -242,16 +243,12 @@ public class NoChargeStockIn {
}
for (MaterialReceiveRequest request : requests) {
String billcode = null;
switch (request.getReceiveRequestType()) {
case "ZK4A" : //其他入库
billcode = ncServer.qtrNoInvoice(request.getReceiveRequestName(), "SDK", receiveAct,user,commitDate,opCode);
break;
case "45" : //采购入库
billcode = ncServer.PurStockIn(request.getReceiveRequestName(), "SDK",user,receiveAct,commitDate,opCode);
break;
default :
break;
// 采购订单
if (ReceiveTypeEnums.isPurchase(request.getReceiveRequestType())) {
Map<String,Object> args = new HashMap<>();
billcode = toSAPServiceImpl.PurStockIn(request.getReceiveRequestName(), siteName, user, args);
}
// @TODO 其他类型
if (billcode == null || "".equals(billcode)) {
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 TO_DATE( #{dto.toDate}, 'YYYY/MM/DDHH24MISS' )
</if>
<if test="isBatch != null and !isBatch.equals('Y')">
AND (ms.IS_BATCH IS NULL OR ms.IS_BATCH != 'Y')
</if>
</select>
<!-- GetInvoiceDetailInformationRow Z10006_SAP -->