Merge branch 'main' of http://162.14.99.253:3000/10539622/2025-03-JS-SDK-svr
This commit is contained in:
commit
d9e2ad8d10
@ -2716,12 +2716,12 @@ public class ToSAPServiceImpl {
|
||||
}
|
||||
|
||||
//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 undoId = "";
|
||||
String rmsg = null;
|
||||
|
||||
List<String> materialPackingNameList = new ArrayList<String>();
|
||||
try {
|
||||
|
||||
JSONObject sendData = new JSONObject(true);
|
||||
@ -2763,7 +2763,7 @@ public class ToSAPServiceImpl {
|
||||
body.put("USNAM", user);
|
||||
//查询临时表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.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>());
|
||||
|
||||
|
||||
@ -2800,7 +2800,10 @@ public class ToSAPServiceImpl {
|
||||
item.put("ZLLITEM", maps.get(i).get("SHIPREQUESTDETAILNAME"));
|
||||
//AUFNR 订单号
|
||||
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);
|
||||
@ -2816,6 +2819,18 @@ public class ToSAPServiceImpl {
|
||||
|
||||
if ("S".equals(rcode)) {
|
||||
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写到表里
|
||||
ErpMessageLog erplog = new ErpMessageLog();
|
||||
@ -6740,8 +6755,6 @@ public class ToSAPServiceImpl {
|
||||
List<Map<String, Object>> queryBoxIdForList = IDMFrameServiceProxy.getSqlTemplate().queryForList(queryBoxIdsql, hashBoxIdMap);
|
||||
for (Map<String, Object> map : queryBoxIdForList) {
|
||||
MaterialPackingKey materialPackingKey = new MaterialPackingKey(map.get("SITENAME").toString(), map.get("MATERIALPACKINGNAME").toString());
|
||||
materialPackingKeyList.add(materialPackingKey);
|
||||
}
|
||||
SetEventInfo setEventInfo = new SetEventInfo();
|
||||
Map<String, Object> updateMap = new HashMap<>();
|
||||
updateMap.put("unDoID", undoId);
|
||||
@ -6751,10 +6764,11 @@ public class ToSAPServiceImpl {
|
||||
updateMap.put("shipRequestName", "");
|
||||
updateMap.put("shipRequestDetailName", "");
|
||||
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) {
|
||||
log.info(e.getMessage(), e);
|
||||
throw new RuntimeException(exceptionMsg + rmsg);
|
||||
|
@ -2,10 +2,13 @@ package com.cim.idm.controller;
|
||||
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.cim.idm.model.MaterialPacking;
|
||||
import com.cim.idm.model.dto.MaterialNotPostedDto;
|
||||
import com.cim.idm.service.CostCenterService;
|
||||
import com.cim.idm.utils.AjaxResult;
|
||||
import com.cim.idm.wmspackage.materialpacking.MaterialPackingServiceProxy;
|
||||
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.web.bind.annotation.*;
|
||||
|
||||
@ -18,6 +21,8 @@ import java.util.stream.Collectors;
|
||||
@EnableAutoConfiguration
|
||||
public class MaterialPackingController {
|
||||
|
||||
@Autowired
|
||||
private CostCenterService costCenterService;
|
||||
/**
|
||||
* 更新未入账
|
||||
*/
|
||||
@ -35,14 +40,23 @@ public class MaterialPackingController {
|
||||
MaterialPackingServiceProxy.getMaterialPackingService().selectByKey(collect);
|
||||
// 修改
|
||||
for (com.cim.idm.wmspackage.materialpacking.management.data.MaterialPacking materialPacking : materialPackings) {
|
||||
// 批次号
|
||||
/*// 批次号
|
||||
materialPacking.setCharge(sl.getCHARGE());
|
||||
// 保质期
|
||||
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);
|
||||
return AjaxResult.me().setSuccess(true).setMessage("过账成功");
|
||||
}
|
||||
|
||||
@PostMapping(value = "/handelEdit")
|
||||
public AjaxResult handelEdit(@RequestBody MaterialPacking materialPacking) {
|
||||
costCenterService.editMaterialPackingName(materialPacking);
|
||||
return AjaxResult.me().setSuccess(true).setMessage("编辑成功");
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -43,4 +43,10 @@ public interface CostCenterDao {
|
||||
@Param("saleshiprequestdetailname") String saleshiprequestdetailname);
|
||||
|
||||
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);
|
||||
}
|
||||
|
@ -37,4 +37,5 @@ public class MaterialPacking {
|
||||
private String durableType;
|
||||
private String opCode;
|
||||
private String desc_cn;
|
||||
private String remark;
|
||||
}
|
||||
|
@ -19,6 +19,8 @@ public class MaterialNotPostedDto {
|
||||
|
||||
// 规格
|
||||
private String SITENAME;
|
||||
/**阶段*/
|
||||
private String PHASE;
|
||||
|
||||
// 数据
|
||||
private List<MaterialPacking> dataList;
|
||||
|
@ -2,6 +2,7 @@ package com.cim.idm.service;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.cim.idm.model.CostCenter;
|
||||
import com.cim.idm.model.MaterialPacking;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
@ -17,4 +18,6 @@ public interface CostCenterService {
|
||||
* @param mainId
|
||||
*/
|
||||
void updateCheckMain(String mainId);
|
||||
|
||||
void editMaterialPackingName(MaterialPacking materialPacking);
|
||||
}
|
||||
|
@ -5,11 +5,15 @@ import cn.hutool.core.lang.UUID;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.cim.idm.dao.CostCenterDao;
|
||||
import com.cim.idm.data.ErpMessageLog;
|
||||
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.po.MaterialReceiveRequest;
|
||||
import com.cim.idm.service.CostCenterService;
|
||||
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 lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
@ -124,4 +128,29 @@ public class CostCenterServiceImpl implements CostCenterService {
|
||||
public void updateCheckMain(String 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);
|
||||
}
|
||||
}
|
||||
|
@ -67,7 +67,7 @@ public class MESToWMSServiceImpl implements MESToWMSService {
|
||||
loginfo.setSendMsg(in.toJSONString());
|
||||
loginfo.setEventName("materialConsume_Request");
|
||||
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> qtyList = new ArrayList<>();
|
||||
@ -146,7 +146,7 @@ public class MESToWMSServiceImpl implements MESToWMSService {
|
||||
|
||||
}
|
||||
// 将工单的物料消耗数据传给SAP
|
||||
String undoId = toSAPService.mesMaterialConsume("MES",payMentDate);
|
||||
String undoId = toSAPService.mesMaterialConsume("MES",payMentDate, eventInfo);
|
||||
Map<String, Object> undoidMap = new HashMap<>();
|
||||
undoidMap.put("undoid", undoId);
|
||||
result = AjaxResult.me().setSuccess(true).setErrorCode(200).setMessage("执行成功").setResultObj(undoidMap);
|
||||
|
@ -83,6 +83,7 @@ public class MaterialPackingServiceServiceImpl implements IMaterialPackingServic
|
||||
String lgort = MapUtils.getString(data, "LGORT"); // ERP库存地点
|
||||
String budatMkpf = MapUtils.getString(data, "BUDAT_MKPF"); // 过账日期
|
||||
String mblnr = MapUtils.getString(data, "MBLNR"); // 物料凭证号
|
||||
String zeile = MapUtils.getString(data, "ZEILE"); // 物料凭证号行号
|
||||
if (StringUtils.isEmpty(aufnr) || StringUtils.isEmpty(werks) || StringUtils.isEmpty(matnr)
|
||||
|| StringUtils.isEmpty(bwart) || StringUtils.isEmpty(menge) || StringUtils.isEmpty(meins)
|
||||
|| StringUtils.isEmpty(lgort) || StringUtils.isEmpty(budatMkpf) || StringUtils.isEmpty(mblnr)) {
|
||||
@ -178,6 +179,8 @@ public class MaterialPackingServiceServiceImpl implements IMaterialPackingServic
|
||||
}
|
||||
MaterialPackingServiceProxy.getMaterialPackingService().setEvent(materialPackingKeyList, eventInfo, setEventInfoList);
|
||||
} else if ("262".equals(bwart)) {
|
||||
String smbln = MapUtils.getString(data, "SMBLN"); // 原始物料凭证号
|
||||
String smblp = MapUtils.getString(data, "SMBLP"); // 原始物料凭证号行号
|
||||
//反向 BWART=262冲销,根据MBLNR增加对应的数量
|
||||
String selcetMaterialpackingSql = " SELECT\n" +
|
||||
"\tSITENAME, MATERIALPACKINGNAME, STOCKSTATE, MATERIALQUANTITY \n" +
|
||||
@ -197,7 +200,7 @@ public class MaterialPackingServiceServiceImpl implements IMaterialPackingServic
|
||||
selcetMaterialpackingMap.put("ERPLOCATION", lgort);
|
||||
selcetMaterialpackingMap.put("UNIT", meins);
|
||||
selcetMaterialpackingMap.put("MATERIALSPECNAME", matnr);
|
||||
selcetMaterialpackingMap.put("UNDOID", mblnr);
|
||||
selcetMaterialpackingMap.put("UNDOID", smbln);
|
||||
List<Map<String, Object>> queryMaterialpackingList = IDMFrameServiceProxy.getSqlTemplate().queryForList(selcetMaterialpackingSql, selcetMaterialpackingMap);
|
||||
for (int i = 0; i < queryMaterialpackingList.size(); i++) {
|
||||
Map<String, Object> hashMap2 = new HashMap<String,Object>();
|
||||
@ -217,7 +220,7 @@ public class MaterialPackingServiceServiceImpl implements IMaterialPackingServic
|
||||
materialQuantity = materialQuantityDecimal.toString();
|
||||
hashMap2.put("materialQuantity", materialQuantity);
|
||||
hashMap2.put("materialCreateQuantity", materialQuantity);
|
||||
//hashMap2.put("unDoID", mblnr);
|
||||
hashMap2.put("unDoID", mblnr);
|
||||
setEventInfo.setUserColumns(hashMap2);
|
||||
setEventInfoList.add(setEventInfo);
|
||||
MaterialPackingKey materialPackingKey = new MaterialPackingKey(siteName, materialPackingName);
|
||||
@ -225,7 +228,7 @@ public class MaterialPackingServiceServiceImpl implements IMaterialPackingServic
|
||||
break;
|
||||
}
|
||||
if (queryMaterialpackingList.isEmpty()){
|
||||
throw new Exception("冲销失败,没有匹配该物料凭证:" + mblnr + "的消耗记录无法冲销");
|
||||
throw new Exception("冲销失败,没有匹配该物料凭证:" + smbln + "的消耗记录无法冲销");
|
||||
}else {
|
||||
MaterialPackingServiceProxy.getMaterialPackingService().setEvent(materialPackingKeyList, eventInfo, setEventInfoList);
|
||||
}
|
||||
|
@ -42,4 +42,11 @@
|
||||
update MATERIALPACKINGCHECK_MAIN set STATUS = '1'
|
||||
where ID = #{mainId, jdbcType=VARCHAR}
|
||||
</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>
|
Loading…
x
Reference in New Issue
Block a user