update MES物料消耗接口,修改SAP过账日期报文

This commit is contained in:
18110972313 2025-05-16 17:57:34 +08:00
parent 7176a2a3bf
commit 136d0b16a4
2 changed files with 107 additions and 2 deletions

View File

@ -2609,7 +2609,7 @@ public class ToSAPServiceImpl {
//过账日期
body.put("BUDAT", budatData);
//凭证日期
body.put("BLDAT", TimeStampUtil.getCurrentTime("yyyyMMdd"));
body.put("BLDAT", budatData);
//凭证抬头文本
body.put("BKTXT", uniqueID);
//用户名

View File

@ -15,9 +15,11 @@ import com.cim.idm.mwmsextend.materialpacking.service.MaterialPackingServiceUtil
import com.cim.idm.mwmsextend.materialshiprequest.service.MaterialShipRequestServiceImpl;
import com.cim.idm.service.ChargeSplitService;
import com.cim.idm.service.InvoiceService;
import com.cim.idm.service.QMSService;
import com.cim.idm.service.impl.MESServiceImpl;
import com.cim.idm.service.impl.ToSAPServiceImpl;
import com.cim.idm.util.MessageLogUtil;
import com.cim.idm.util.NCHttpUtil;
import com.cim.idm.util.ToSAPMessageUtil;
import com.cim.idm.utils.AjaxResult;
import com.cim.idm.utils.CodeGenerator;
@ -39,7 +41,9 @@ import com.cim.idm.wmspackage.materialreceivetactdetail.management.data.Material
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.JsonMappingException;
import groovy.lang.Lazy;
import io.micrometer.core.instrument.util.StringUtils;
import org.apache.commons.collections4.MapUtils;
import org.quartz.SimpleTrigger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@ -58,7 +62,8 @@ public class InvoiceServiceImpl implements InvoiceService {
@Autowired
private ToSAPServiceImpl toSAPService;
@Autowired
private QMSService qmsService;
@Autowired
@Lazy
private ChargeSplitService chargeSplitService;
@ -3433,6 +3438,11 @@ public class InvoiceServiceImpl implements InvoiceService {
// billCode=toSAPService.saleStockOut_NEW(shipRequestName, "SDK", eventUser,materialPackingKeyList);
billCode=saleStockOut_NEW(shipRequestName, "SDK", eventUser,materialPackingKeyList,commitDate);
untils.SaveUnDoInfo_ForSap(materialPackingKeyList, billCode, makeEventInfo);
//单据类型等于ZLF0-ZLF9物料编码以7开头都属于成品胶水需要调用QMS质检接口
String message = checkShipRequestTypeSendIQC(commitDate, siteName ,shipRequestName, makeEventInfo, materialPackingKeyList);
if (StringUtils.isNotEmpty(message)) {
throw new CustomException(message);
}
break;
case "08": // 委外
case "OEM": // 委外
@ -3568,4 +3578,99 @@ public class InvoiceServiceImpl implements InvoiceService {
String sendData = MainData.toJSONString();
return sendData;
}
public String checkShipRequestTypeSendIQC(String shippingDate,String siteName, String shipRequestName, EventInfo eventInfo, List<String> materialPackingNameList) throws Exception {
String message = "";
JSONArray jsonArray = new JSONArray();
Map<String, JSONObject> jsonObjectMap = new HashMap<>();
String sql=" SELECT \n" +
"MP.SITENAME,\n" +
"MP.SHIPREQUESTNAME,\n" +
"MP.MATERIALSPECNAME,\n" +
"MP.MATERIALPACKINGNAME,\n" +
"MP.REMARK,\n" +
"MP.CHARGE,\n" +
"MP.SDKTRUEID,\n" +
"MS.DESC_CN\n" +
"FROM\n" +
"MATERIALPACKING MP \n" +
"LEFT JOIN MATERIALSPEC MS ON MP.SITENAME = MS.SITENAME AND MP.MATERIALSPECNAME = MS.MATERIALSPECNAME\n" +
"WHERE\n" +
"MP.SITENAME =:SITENAME\n" +
"AND MP.SHIPREQUESTNAME =:SHIPREQUESTNAME\n" +
"AND MP.MATERIALPACKINGNAME IN (:BOXLIST)\n" +
"AND MP.MATERIALSPECNAME LIKE '7%' ";
Map<String, Object> hashMap = new HashMap<String, Object>();
hashMap.put("SHIPREQUESTNAME", shipRequestName);
hashMap.put("SITENAME", siteName);
hashMap.put("BOXLIST", materialPackingNameList);
List<Map<String, Object>> queryForList = IDMFrameServiceProxy.getSqlTemplate().queryForList(sql.toString(), hashMap);
if (!queryForList.isEmpty()){
for (int i = 0; i < queryForList.size(); i++) {
String source = "wms";
String deliveryNumber = queryForList.get(i).get("SHIPREQUESTNAME") == null ? "" : queryForList.get(i).get("SHIPREQUESTNAME").toString();
String materialCode = queryForList.get(i).get("MATERIALSPECNAME") == null ? "" : queryForList.get(i).get("MATERIALSPECNAME").toString();
String materialName = queryForList.get(i).get("DESC_CN") == null ? "" : queryForList.get(i).get("DESC_CN").toString();
String specification = queryForList.get(i).get("SDKTRUEID") == null ? "" : queryForList.get(i).get("SDKTRUEID").toString();
String materialPackingName = queryForList.get(i).get("MATERIALPACKINGNAME") == null ? "" : queryForList.get(i).get("MATERIALPACKINGNAME").toString();
if (jsonObjectMap.containsKey(materialName)){
JSONObject jsonObject = jsonObjectMap.get(materialName);
String shipmentBatch = jsonObject.getString("shipmentBatch");
jsonObject.put("shipmentBatch",shipmentBatch + "," + materialPackingName);
}else {
JSONObject jsonObject = new JSONObject(true);
//必传字段
jsonObject.put("source", source);
//出货日期,取页面上的过账日期
jsonObject.put("shippingDate", shippingDate);
// 发货单号
jsonObject.put("deliveryNumber", deliveryNumber);
// 料号
jsonObject.put("materialCode", materialCode);
// 发货品名
jsonObject.put("materialName", materialName);
// 规格
jsonObject.put("specification", specification);
//发货批次号
jsonObject.put("shipmentBatch", materialPackingName);
jsonObjectMap.put(materialName, jsonObject);
//非必传字段
/**
* String inspectionNumber = queryForList.get(i).get("SHIPREQUESTNAME") == null ? "" : queryForList.get(i).get("SHIPREQUESTNAME").toString();
* String quantity = queryForList.get(i).get("MATERIALQUANTITY") == null ? "" : queryForList.get(i).get("MATERIALQUANTITY").toString();
* String inspectBatch = queryForList.get(i).get("CHARGE") == null ? "" : queryForList.get(i).get("CHARGE").toString();
* String samplingQuantity = queryForList.get(i).get("") == null ? "" : queryForList.get(i).get("").toString();
* String samplingSpecification = queryForList.get(i).get("") == null ? "" : queryForList.get(i).get("").toString();
* String remark = queryForList.get(i).get("REMARK") == null ? "" : queryForList.get(i).get("REMARK").toString();
* String materialGroup = queryForList.get(i).get("MATERIALPROCESSGROUPNAME") == null ? "" : queryForList.get(i).get("MATERIALPROCESSGROUPNAME").toString();
// 发货数量
jsonObject.put("quantity", quantity);
// 客户名称
jsonObject.put("customName", customName);
// 客户代码
jsonObject.put("customCode", customCode);
// 检验单号
jsonObject.put("inspectionNumber", inspectionNumber);
//检验批号
jsonObject.put("inspectBatch", inspectBatch);
// 抽检数量
jsonObject.put("samplingQuantity", samplingQuantity);
// 抽检规格
jsonObject.put("samplingSpecification", samplingSpecification);
// 备注
jsonObject.put("remark", remark);
// 物料组
jsonObject.put("materialGroup", materialGroup);
*/
}
}
jsonArray.addAll(jsonObjectMap.values());
String jsonArrayJSONString = jsonArray.toJSONString();
message = qmsService.sendQMSByUrlJson(jsonArrayJSONString, "/opc/addShipmentInspection",eventInfo);
}
return message;
}
}