This commit is contained in:
郭飞 2025-05-23 09:41:03 +08:00
commit d9e2ad8d10
10 changed files with 103 additions and 24 deletions

View File

@ -2716,12 +2716,12 @@ public class ToSAPServiceImpl {
} }
//MES上报工单消耗数据-261工单投料 //MES上报工单消耗数据-261工单投料
public String mesMaterialConsume( String user, String payMentDate) throws Exception { public String mesMaterialConsume( String user, String payMentDate, EventInfo eventInfo) throws Exception {
String rcode; String rcode;
String undoId = ""; String undoId = "";
String rmsg = null; String rmsg = null;
List<String> materialPackingNameList = new ArrayList<String>();
try { try {
JSONObject sendData = new JSONObject(true); JSONObject sendData = new JSONObject(true);
@ -2763,7 +2763,7 @@ public class ToSAPServiceImpl {
body.put("USNAM", user); body.put("USNAM", user);
//查询临时表TEMP_MESCONSUME从里面取数据 //查询临时表TEMP_MESCONSUME从里面取数据
//String sql = "SELECT T.MATERIALSPECNAME, T.ERPFACTORY, T.ERPLOCATION, T.QTY, T.UNIT,T.WO,T.SHIPREQUESTNAME,M.RESERVEDPROJECTNUMB FROM TEMP_MESCONSUME T LEFT JOIN MATERIALSHIPREQUESTDETAIL M ON M.SHIPREQUESTNAME = T.SHIPREQUESTNAME AND M.MATERIALSPECNAME = T.MATERIALSPECNAME"; //String sql = "SELECT T.MATERIALSPECNAME, T.ERPFACTORY, T.ERPLOCATION, T.QTY, T.UNIT,T.WO,T.SHIPREQUESTNAME,M.RESERVEDPROJECTNUMB FROM TEMP_MESCONSUME T LEFT JOIN MATERIALSHIPREQUESTDETAIL M ON M.SHIPREQUESTNAME = T.SHIPREQUESTNAME AND M.MATERIALSPECNAME = T.MATERIALSPECNAME";
String sql = "SELECT T.MATERIALSPECNAME, T.ERPFACTORY, T.ERPLOCATION, T.QTY, T.UNIT,T.WO,T.SHIPREQUESTNAME,M.SHIPREQUESTDETAILNAME FROM TEMP_MESCONSUME T LEFT JOIN MATERIALSHIPREQUESTDETAIL M ON M.SHIPREQUESTNAME = T.SHIPREQUESTNAME AND M.MATERIALSPECNAME = T.MATERIALSPECNAME"; String sql = "SELECT T.MATERIALPACKINGNAME, T.MATERIALSPECNAME, T.ERPFACTORY, T.ERPLOCATION, T.QTY, T.UNIT,T.WO,T.SHIPREQUESTNAME,M.SHIPREQUESTDETAILNAME FROM TEMP_MESCONSUME T LEFT JOIN MATERIALSHIPREQUESTDETAIL M ON M.SHIPREQUESTNAME = T.SHIPREQUESTNAME AND M.MATERIALSPECNAME = T.MATERIALSPECNAME";
List<Map<String, Object>> maps = IDMFrameServiceProxy.getSqlTemplate().queryForList(sql, new HashMap<String,Object>()); List<Map<String, Object>> maps = IDMFrameServiceProxy.getSqlTemplate().queryForList(sql, new HashMap<String,Object>());
@ -2800,7 +2800,10 @@ public class ToSAPServiceImpl {
item.put("ZLLITEM", maps.get(i).get("SHIPREQUESTDETAILNAME")); item.put("ZLLITEM", maps.get(i).get("SHIPREQUESTDETAILNAME"));
//AUFNR 订单号 //AUFNR 订单号
item.put("AUFNR", maps.get(i).get("WO")); item.put("AUFNR", maps.get(i).get("WO"));
String materialPackingName = maps.get(i).get("MATERIALPACKINGNAME") == null ? "" : maps.get(i).get("MATERIALPACKINGNAME").toString();
if (StringUtils.isNotEmpty(materialPackingName)){
materialPackingNameList.add(materialPackingName);
}
} }
itemArray.add(item); itemArray.add(item);
@ -2816,6 +2819,18 @@ public class ToSAPServiceImpl {
if ("S".equals(rcode)) { if ("S".equals(rcode)) {
undoId = returnJsonObject.get("MBLNR").toString()+"_"+returnJsonObject.get("MJAHR").toString();//将物料凭证号与凭证年度拼在一起 undoId = returnJsonObject.get("MBLNR").toString()+"_"+returnJsonObject.get("MJAHR").toString();//将物料凭证号与凭证年度拼在一起
if (materialPackingNameList.size() > 0 && StringUtils.isNotEmpty(undoId)){
for (String materialPackingName : materialPackingNameList) {
MaterialPackingKey materialPackingKey = new MaterialPackingKey("SDK", materialPackingName);
SetEventInfo setEventInfo = new SetEventInfo();
Map<String, Object> updateMap = new HashMap<>();
updateMap.put("unDoID", undoId);
setEventInfo.setUserColumns(updateMap);
MaterialPackingServiceProxy.getMaterialPackingService().setEvent(materialPackingKey, eventInfo, setEventInfo);
//插入凭证信息
SaveUnDoInfo(materialPackingKey.getMaterialPackingName(),payMentDate);
}
}
} }
//将log写到表里 //将log写到表里
ErpMessageLog erplog = new ErpMessageLog(); ErpMessageLog erplog = new ErpMessageLog();
@ -6740,8 +6755,6 @@ public class ToSAPServiceImpl {
List<Map<String, Object>> queryBoxIdForList = IDMFrameServiceProxy.getSqlTemplate().queryForList(queryBoxIdsql, hashBoxIdMap); List<Map<String, Object>> queryBoxIdForList = IDMFrameServiceProxy.getSqlTemplate().queryForList(queryBoxIdsql, hashBoxIdMap);
for (Map<String, Object> map : queryBoxIdForList) { for (Map<String, Object> map : queryBoxIdForList) {
MaterialPackingKey materialPackingKey = new MaterialPackingKey(map.get("SITENAME").toString(), map.get("MATERIALPACKINGNAME").toString()); MaterialPackingKey materialPackingKey = new MaterialPackingKey(map.get("SITENAME").toString(), map.get("MATERIALPACKINGNAME").toString());
materialPackingKeyList.add(materialPackingKey);
}
SetEventInfo setEventInfo = new SetEventInfo(); SetEventInfo setEventInfo = new SetEventInfo();
Map<String, Object> updateMap = new HashMap<>(); Map<String, Object> updateMap = new HashMap<>();
updateMap.put("unDoID", undoId); updateMap.put("unDoID", undoId);
@ -6751,10 +6764,11 @@ public class ToSAPServiceImpl {
updateMap.put("shipRequestName", ""); updateMap.put("shipRequestName", "");
updateMap.put("shipRequestDetailName", ""); updateMap.put("shipRequestDetailName", "");
setEventInfo.setUserColumns(updateMap); setEventInfo.setUserColumns(updateMap);
MaterialPackingServiceProxy.getMaterialPackingService().setEvent(materialPackingKeyList, eventInfo, setEventInfo); MaterialPackingServiceProxy.getMaterialPackingService().setEvent(materialPackingKey, eventInfo, setEventInfo);
}
//插入凭证信息 //插入凭证信息
SaveUnDoInfo(deliveryName,commitDate); SaveUnDoInfo(materialPackingKey.getMaterialPackingName(),commitDate);
}
}
} catch (Exception e) { } catch (Exception e) {
log.info(e.getMessage(), e); log.info(e.getMessage(), e);
throw new RuntimeException(exceptionMsg + rmsg); throw new RuntimeException(exceptionMsg + rmsg);

View File

@ -2,10 +2,13 @@ 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.model.MaterialPacking;
import com.cim.idm.model.dto.MaterialNotPostedDto; import com.cim.idm.model.dto.MaterialNotPostedDto;
import com.cim.idm.service.CostCenterService;
import com.cim.idm.utils.AjaxResult; import com.cim.idm.utils.AjaxResult;
import com.cim.idm.wmspackage.materialpacking.MaterialPackingServiceProxy; import com.cim.idm.wmspackage.materialpacking.MaterialPackingServiceProxy;
import com.cim.idm.wmspackage.materialpacking.management.data.MaterialPackingKey; import com.cim.idm.wmspackage.materialpacking.management.data.MaterialPackingKey;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
@ -18,6 +21,8 @@ import java.util.stream.Collectors;
@EnableAutoConfiguration @EnableAutoConfiguration
public class MaterialPackingController { public class MaterialPackingController {
@Autowired
private CostCenterService costCenterService;
/** /**
* 更新未入账 * 更新未入账
*/ */
@ -35,14 +40,23 @@ public class MaterialPackingController {
MaterialPackingServiceProxy.getMaterialPackingService().selectByKey(collect); MaterialPackingServiceProxy.getMaterialPackingService().selectByKey(collect);
// 修改 // 修改
for (com.cim.idm.wmspackage.materialpacking.management.data.MaterialPacking materialPacking : materialPackings) { for (com.cim.idm.wmspackage.materialpacking.management.data.MaterialPacking materialPacking : materialPackings) {
// 批次号 /*// 批次号
materialPacking.setCharge(sl.getCHARGE()); materialPacking.setCharge(sl.getCHARGE());
// 保质期 // 保质期
materialPacking.setExpiringDate(Timestamp.valueOf(sl.getEXPIRNGDATE())); materialPacking.setExpiringDate(Timestamp.valueOf(sl.getEXPIRNGDATE()));
// 制造日期 // 制造日期
materialPacking.setMakeDate(Timestamp.valueOf(sl.getMAKEDATE())); materialPacking.setMakeDate(Timestamp.valueOf(sl.getMAKEDATE()));*/
// 阶段
materialPacking.setPHASE(sl.getPHASE());
} }
MaterialPackingServiceProxy.getMaterialPackingService().update(materialPackings); MaterialPackingServiceProxy.getMaterialPackingService().update(materialPackings);
return AjaxResult.me().setSuccess(true).setMessage("过账成功"); return AjaxResult.me().setSuccess(true).setMessage("过账成功");
} }
@PostMapping(value = "/handelEdit")
public AjaxResult handelEdit(@RequestBody MaterialPacking materialPacking) {
costCenterService.editMaterialPackingName(materialPacking);
return AjaxResult.me().setSuccess(true).setMessage("编辑成功");
}
} }

View File

@ -43,4 +43,10 @@ public interface CostCenterDao {
@Param("saleshiprequestdetailname") String saleshiprequestdetailname); @Param("saleshiprequestdetailname") String saleshiprequestdetailname);
void updateCheckMain(@Param("mainId") String mainId); void updateCheckMain(@Param("mainId") String mainId);
void editMaterialPackingName(@Param("siteName") String siteName,
@Param("materialPackingName") String materialPackingName,
@Param("charge") String charge,
@Param("materialPackingNameNew") String materialPackingNameNew,
@Param("remark") String remark);
} }

View File

@ -37,4 +37,5 @@ public class MaterialPacking {
private String durableType; private String durableType;
private String opCode; private String opCode;
private String desc_cn; private String desc_cn;
private String remark;
} }

View File

@ -19,6 +19,8 @@ public class MaterialNotPostedDto {
// 规格 // 规格
private String SITENAME; private String SITENAME;
/**阶段*/
private String PHASE;
// 数据 // 数据
private List<MaterialPacking> dataList; private List<MaterialPacking> dataList;

View File

@ -2,6 +2,7 @@ package com.cim.idm.service;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.cim.idm.model.CostCenter; import com.cim.idm.model.CostCenter;
import com.cim.idm.model.MaterialPacking;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@ -17,4 +18,6 @@ public interface CostCenterService {
* @param mainId * @param mainId
*/ */
void updateCheckMain(String mainId); void updateCheckMain(String mainId);
void editMaterialPackingName(MaterialPacking materialPacking);
} }

View File

@ -5,11 +5,15 @@ import cn.hutool.core.lang.UUID;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.cim.idm.dao.CostCenterDao; import com.cim.idm.dao.CostCenterDao;
import com.cim.idm.data.ErpMessageLog;
import com.cim.idm.exception.GlobalException; import com.cim.idm.exception.GlobalException;
import com.cim.idm.framework.util.time.TimeStampUtil;
import com.cim.idm.model.CostCenter; import com.cim.idm.model.CostCenter;
import com.cim.idm.model.po.MaterialReceiveRequest; import com.cim.idm.model.po.MaterialReceiveRequest;
import com.cim.idm.service.CostCenterService; import com.cim.idm.service.CostCenterService;
import com.cim.idm.service.impl.ToSAPServiceImpl; import com.cim.idm.service.impl.ToSAPServiceImpl;
import com.cim.idm.util.MessageLogUtil;
import com.cim.idm.util.ToSAPMessageUtil;
import com.cim.idm.wmspackage.materialpacking.management.data.MaterialPacking; import com.cim.idm.wmspackage.materialpacking.management.data.MaterialPacking;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
@ -124,4 +128,29 @@ public class CostCenterServiceImpl implements CostCenterService {
public void updateCheckMain(String mainId) { public void updateCheckMain(String mainId) {
costCenterDao.updateCheckMain(mainId); costCenterDao.updateCheckMain(mainId);
} }
@Override
public void editMaterialPackingName(com.cim.idm.model.MaterialPacking materialPacking) {
// 批次号
String charge = materialPacking.getCharge();
String siteName = materialPacking.getSiteName();
String remark = materialPacking.getRemark();
// 原标签
String materialPackingName = materialPacking.getMaterialPackingName();
String regex = "\\|\\|(.*?)\\|";
// 新标签
String materialPackingNameNew = materialPackingName.replaceAll(regex, "||" + charge + "|");
costCenterDao.editMaterialPackingName(siteName,materialPackingName,charge,materialPackingNameNew,remark);
//将log写到表里
ErpMessageLog erplog = new ErpMessageLog();
erplog.setEventUser(materialPacking.getUser());
erplog.setServerName("WmsToWms");
erplog.setEventName("在库属性变更");
erplog.setInterfaceTime(TimeStampUtil.getCurrentTime(TimeStampUtil.FORMAT_DEFAULT));
erplog.setMessageId(java.util.UUID.randomUUID().toString());
erplog.setSendMsg(materialPacking.toString());
erplog.setSendMsg2(materialPacking.toString());
erplog.setReturnMsg2(materialPacking.toString());
MessageLogUtil.writeMessageLog(erplog);
}
} }

View File

@ -67,7 +67,7 @@ public class MESToWMSServiceImpl implements MESToWMSService {
loginfo.setSendMsg(in.toJSONString()); loginfo.setSendMsg(in.toJSONString());
loginfo.setEventName("materialConsume_Request"); loginfo.setEventName("materialConsume_Request");
String siteName = System.getProperty("company", "SDK"); String siteName = System.getProperty("company", "SDK");
EventInfo eventInfo = new com.cim.idm.wmsextend.generic.util.EventInfoUtil().makeEventInfo("MES消耗UNDOID", "MES", "MES消耗UNDOID", "", "");
List<String> boxIdList = new ArrayList<>(); List<String> boxIdList = new ArrayList<>();
List<String> qtyList = new ArrayList<>(); List<String> qtyList = new ArrayList<>();
@ -146,7 +146,7 @@ public class MESToWMSServiceImpl implements MESToWMSService {
} }
// 将工单的物料消耗数据传给SAP // 将工单的物料消耗数据传给SAP
String undoId = toSAPService.mesMaterialConsume("MES",payMentDate); String undoId = toSAPService.mesMaterialConsume("MES",payMentDate, eventInfo);
Map<String, Object> undoidMap = new HashMap<>(); Map<String, Object> undoidMap = new HashMap<>();
undoidMap.put("undoid", undoId); undoidMap.put("undoid", undoId);
result = AjaxResult.me().setSuccess(true).setErrorCode(200).setMessage("执行成功").setResultObj(undoidMap); result = AjaxResult.me().setSuccess(true).setErrorCode(200).setMessage("执行成功").setResultObj(undoidMap);

View File

@ -83,6 +83,7 @@ public class MaterialPackingServiceServiceImpl implements IMaterialPackingServic
String lgort = MapUtils.getString(data, "LGORT"); // ERP库存地点 String lgort = MapUtils.getString(data, "LGORT"); // ERP库存地点
String budatMkpf = MapUtils.getString(data, "BUDAT_MKPF"); // 过账日期 String budatMkpf = MapUtils.getString(data, "BUDAT_MKPF"); // 过账日期
String mblnr = MapUtils.getString(data, "MBLNR"); // 物料凭证号 String mblnr = MapUtils.getString(data, "MBLNR"); // 物料凭证号
String zeile = MapUtils.getString(data, "ZEILE"); // 物料凭证号行号
if (StringUtils.isEmpty(aufnr) || StringUtils.isEmpty(werks) || StringUtils.isEmpty(matnr) if (StringUtils.isEmpty(aufnr) || StringUtils.isEmpty(werks) || StringUtils.isEmpty(matnr)
|| StringUtils.isEmpty(bwart) || StringUtils.isEmpty(menge) || StringUtils.isEmpty(meins) || StringUtils.isEmpty(bwart) || StringUtils.isEmpty(menge) || StringUtils.isEmpty(meins)
|| StringUtils.isEmpty(lgort) || StringUtils.isEmpty(budatMkpf) || StringUtils.isEmpty(mblnr)) { || StringUtils.isEmpty(lgort) || StringUtils.isEmpty(budatMkpf) || StringUtils.isEmpty(mblnr)) {
@ -178,6 +179,8 @@ public class MaterialPackingServiceServiceImpl implements IMaterialPackingServic
} }
MaterialPackingServiceProxy.getMaterialPackingService().setEvent(materialPackingKeyList, eventInfo, setEventInfoList); MaterialPackingServiceProxy.getMaterialPackingService().setEvent(materialPackingKeyList, eventInfo, setEventInfoList);
} else if ("262".equals(bwart)) { } else if ("262".equals(bwart)) {
String smbln = MapUtils.getString(data, "SMBLN"); // 原始物料凭证号
String smblp = MapUtils.getString(data, "SMBLP"); // 原始物料凭证号行号
//反向 BWART=262冲销根据MBLNR增加对应的数量 //反向 BWART=262冲销根据MBLNR增加对应的数量
String selcetMaterialpackingSql = " SELECT\n" + String selcetMaterialpackingSql = " SELECT\n" +
"\tSITENAME, MATERIALPACKINGNAME, STOCKSTATE, MATERIALQUANTITY \n" + "\tSITENAME, MATERIALPACKINGNAME, STOCKSTATE, MATERIALQUANTITY \n" +
@ -197,7 +200,7 @@ public class MaterialPackingServiceServiceImpl implements IMaterialPackingServic
selcetMaterialpackingMap.put("ERPLOCATION", lgort); selcetMaterialpackingMap.put("ERPLOCATION", lgort);
selcetMaterialpackingMap.put("UNIT", meins); selcetMaterialpackingMap.put("UNIT", meins);
selcetMaterialpackingMap.put("MATERIALSPECNAME", matnr); selcetMaterialpackingMap.put("MATERIALSPECNAME", matnr);
selcetMaterialpackingMap.put("UNDOID", mblnr); selcetMaterialpackingMap.put("UNDOID", smbln);
List<Map<String, Object>> queryMaterialpackingList = IDMFrameServiceProxy.getSqlTemplate().queryForList(selcetMaterialpackingSql, selcetMaterialpackingMap); List<Map<String, Object>> queryMaterialpackingList = IDMFrameServiceProxy.getSqlTemplate().queryForList(selcetMaterialpackingSql, selcetMaterialpackingMap);
for (int i = 0; i < queryMaterialpackingList.size(); i++) { for (int i = 0; i < queryMaterialpackingList.size(); i++) {
Map<String, Object> hashMap2 = new HashMap<String,Object>(); Map<String, Object> hashMap2 = new HashMap<String,Object>();
@ -217,7 +220,7 @@ public class MaterialPackingServiceServiceImpl implements IMaterialPackingServic
materialQuantity = materialQuantityDecimal.toString(); materialQuantity = materialQuantityDecimal.toString();
hashMap2.put("materialQuantity", materialQuantity); hashMap2.put("materialQuantity", materialQuantity);
hashMap2.put("materialCreateQuantity", materialQuantity); hashMap2.put("materialCreateQuantity", materialQuantity);
//hashMap2.put("unDoID", mblnr); hashMap2.put("unDoID", mblnr);
setEventInfo.setUserColumns(hashMap2); setEventInfo.setUserColumns(hashMap2);
setEventInfoList.add(setEventInfo); setEventInfoList.add(setEventInfo);
MaterialPackingKey materialPackingKey = new MaterialPackingKey(siteName, materialPackingName); MaterialPackingKey materialPackingKey = new MaterialPackingKey(siteName, materialPackingName);
@ -225,7 +228,7 @@ public class MaterialPackingServiceServiceImpl implements IMaterialPackingServic
break; break;
} }
if (queryMaterialpackingList.isEmpty()){ if (queryMaterialpackingList.isEmpty()){
throw new Exception("冲销失败,没有匹配该物料凭证:" + mblnr + "的消耗记录无法冲销"); throw new Exception("冲销失败,没有匹配该物料凭证:" + smbln + "的消耗记录无法冲销");
}else { }else {
MaterialPackingServiceProxy.getMaterialPackingService().setEvent(materialPackingKeyList, eventInfo, setEventInfoList); MaterialPackingServiceProxy.getMaterialPackingService().setEvent(materialPackingKeyList, eventInfo, setEventInfoList);
} }

View File

@ -42,4 +42,11 @@
update MATERIALPACKINGCHECK_MAIN set STATUS = '1' update MATERIALPACKINGCHECK_MAIN set STATUS = '1'
where ID = #{mainId, jdbcType=VARCHAR} where ID = #{mainId, jdbcType=VARCHAR}
</update> </update>
<update id="editMaterialPackingName">
update MATERIALPACKING set REMARK = #{remark, jdbcType=VARCHAR},CHARGE = #{charge, jdbcType=VARCHAR},
MATERIALPACKINGNAME = #{materialPackingNameNew, jdbcType=VARCHAR}
WHERE MATERIALPACKINGNAME = #{materialPackingName, jdbcType=VARCHAR}
and SITENAME = #{siteName, jdbcType=VARCHAR}
</update>
</mapper> </mapper>