fix:修改mes请求

This commit is contained in:
郭飞 2025-04-17 09:20:24 +08:00
parent c760462578
commit 8036a2181a
4 changed files with 89 additions and 9 deletions

View File

@ -10,7 +10,8 @@ public enum ReceiveTypeEnums {
Z001("Z001", "生产物资采购订单"),
Z002("Z002", "研发采购订单"),
Z003("Z003", "非生产物资采购订单"),
Z004("Z004", "固定资产、在建工程采购订单");
Z004("Z004", "固定资产、在建工程采购订单"),
ZLR1("ZLR1", "销售退货");
private final String code;
private final String info;
@ -38,4 +39,19 @@ public enum ReceiveTypeEnums {
public static Boolean isPurchase(String code) {
return getPurchase().contains(code);
}
/**
* 销售退货
*/
public static List<String> getsaleReturn() {
List<String> str = new ArrayList<>();
str.add(ZLR1.getCode());
return str;
}
/**
* 是否使用销售退货
*/
public static Boolean isSaleReturn(String code) {
return getsaleReturn().contains(code);
}
}

View File

@ -527,6 +527,8 @@ public class MaterialReceiveActController {
if (ReceiveTypeEnums.isPurchase(request.getReceiveRequestType())) {
Map<String,Object> args = new HashMap<>();
undoId = toSAPServiceImpl.PurStockIn(receiveRequestName, siteName, user, args);
}else if( ReceiveTypeEnums.isSaleReturn(request.getReceiveRequestType())) {
undoId = toSAPServiceImpl.SaleReturn(receiveRequestName, siteName, user, commitDate, opCode);
}
// @TODO 其他订单
} catch (Exception e) {
@ -560,4 +562,42 @@ 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" : //物资退货采购订单
break;
case "ZLR1" : //销售退料
billCode = toSAPServiceImpl.SaleReturn(receiveRequestName, "SDK", eventUser,commitDate, opCode);
break;
default :
break;
}
} else {
throw new CustomException("找不到单据" + receiveRequestName);
}
return billCode;
}
}

View File

@ -1,5 +1,6 @@
package com.cim.idm.service.Impl;
import cn.hutool.json.ObjectMapper;
import com.cim.idm.exception.GlobalException;
import com.cim.idm.framework.IDMFrameServiceProxy;
import com.cim.idm.framework.data.EventInfo;
@ -21,7 +22,6 @@ import com.cim.idm.wmspackage.materialreceiverequestactdetail.MaterialReceiveReq
import com.cim.idm.wmspackage.materialreceiverequestactdetail.management.info.ActDetailIncreaseInfo;
import com.cim.idm.wmspackage.materialreceiverequestactdetail.management.info.CreateActDetailInfo;
import com.cim.idm.wmspackage.materialreceivetactdetail.management.data.MaterialReceiveActDetailKey;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@ -36,12 +36,18 @@ import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.cim.idm.util.MESHttpUtil;
@Service
public class ReturnStockIntoServiceImpl implements ReturnStockInService {
@Autowired
private ToSAPServiceImpl ToSAPServiceImpl;
@Autowired
MESHttpUtil mesHttpUtil;
String baseUrl = "http://172.22.10.213:8190";
/**
@ -540,7 +546,7 @@ public class ReturnStockIntoServiceImpl implements ReturnStockInService {
Map<String, Object> hashMap3 = new HashMap<String, Object>();
hashMap3.put("SITENAME", siteName);
List<Map<String, Object>> queryForList2 = IDMFrameServiceProxy.getSqlTemplate().queryForList(wgs, hashMap3);
//判断批次是否数量是否满足单据需求
for (int i = 0; i < queryForList2.size(); i++) {
String receiveRequestName = queryForList2.get(i).get("RECEIVEREQUESTNAME").toString();
@ -555,11 +561,12 @@ public class ReturnStockIntoServiceImpl implements ReturnStockInService {
// 更新抬头文本状态和Box状态
/*String sql = "SELECT M.SITENAME ,M.MATERIALPACKINGNAME FROM MATERIALPACKING M WHERE M.RECEIVEREQUESTNAME = :RECEIVEREQUESTNAME AND ERPLOCATION = :ERPLOCATION AND m.MATERIALPACKINGNAME IN "
+ pc;*/
String sql = "SELECT M.SITENAME ,M.MATERIALPACKINGNAME FROM MATERIALPACKING M WHERE M.RECEIVEREQUESTNAME = :RECEIVEREQUESTNAME AND m.MATERIALPACKINGNAME IN "
String sql = "SELECT M.SITENAME ,M.MATERIALPACKINGNAME,M.CHARGE FROM MATERIALPACKING M WHERE M.RECEIVEREQUESTNAME = :RECEIVEREQUESTNAME AND m.MATERIALPACKINGNAME IN "
+ pc;
Map<String, Object> hashMap = new HashMap<String, Object>();
hashMap.put("RECEIVEREQUESTNAME", receiveRequestName);
// hashMap.put("ERPLOCATION", erpLocation);
List<String> chargeList = new ArrayList<> ();
List<Map<String, Object>> queryForList = IDMFrameServiceProxy.getSqlTemplate().queryForList(sql, hashMap);
for (Map<String, Object> map : queryForList) {
MaterialPackingKey materialPackingKey = new MaterialPackingKey(map.get("SITENAME").toString(),
@ -576,8 +583,22 @@ public class ReturnStockIntoServiceImpl implements ReturnStockInService {
Map<String, Object> hashMap2 = new HashMap<String, Object>();
hashMap2.put("LOTNAME", map.get("MATERIALPACKINGNAME").toString());
IDMFrameServiceProxy.getSqlTemplate().update(sql2, hashMap2);
chargeList.add(map.get("CHARGE").toString());
}
SaveUnDoInfo(billCode, commitDate);
Map<String, Object> requestBodyMap = new HashMap<>();
requestBodyMap.put("chargeList", chargeList);
String requestBody = new ObjectMapper(requestBodyMap).toString();
try {
String httpPost = mesHttpUtil.httpPost(baseUrl + "/wms/wmsMaterialDelete ", requestBody);
System.out.println(httpPost);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return true;

View File

@ -134,7 +134,9 @@
TO_CHAR( SYSDATE, 'YYYY-MM-DD' ) RECEIVETIME, TO_CHAR( SYSDATE, 'YYYY-MM-DD' ) MAKEDATE, '1' RECEIVEREQUESTDETAILNAME, '是' IS_BATCH,
m.MATERIALSPECNAME, m.SITENAME, m.ERPLOCATION, m.LOCATIONNAME, m.MATERIALUNIT, m.SDK_ID,
m.REMARK REMARK, m.SALESMAN SALESPERSON, m.SALESASSISTANT CAREER_ASSISTANCE, m.BUSINESSDIVISION BUSINESS_UNIT,
m2.STOCKORGNO AS ERPFACTORY, m2.SUPPLIERNO,
-- m2.STOCKORGNO AS ERPFACTORY,
COALESCE(m2.STOCKORGNO, m.ERPFACTORY) AS ERPFACTORY,
m2.SUPPLIERNO,
m3.WIDTH AS DESCRIPTION, m3.MATERIALUNITDESC, m3.WIDTH SPECNAME, m3.PHASE, m3.DESC_CN, DECODE( m3.IS_BATCH, 'Y', '是' , '否' ) IS_BATCH,
CASE WHEN m3.EXPIRATION_RULES = '0' THEN '入厂保质期' WHEN m3.EXPIRATION_RULES = '1' THEN '出厂保质期' ELSE '未定义' END AS REPLACED_VALUE,
DECODE( m4.IQCFLAG, 'Y', '是', '否' ) IQCFLAG,
@ -165,10 +167,11 @@
#{name}
</foreach>
AND m.SITENAME = #{siteName}
AND m2.RECEIVEREQUESTTYPE IN
<foreach item="type" index="index" collection="typeList" open="(" separator="," close=")">
#{type}
</foreach>
<!-- AND m2.RECEIVEREQUESTTYPE IN-->
<!-- <foreach item="type" index="index" collection="typeList" open="(" separator="," close=")">-->
<!-- #{type}-->
<!-- </foreach>-->
-- ZLR1 销售退货类型
</select>
<!-- GetNoBatchPOStockIn 00001 -->