Merge branch 'main' of http://162.14.99.253:3000/10539622/2025-03-JS-SDK-svr
This commit is contained in:
commit
a3c5d53f38
@ -134,7 +134,15 @@ public class MaterialPacking extends FieldAccessor implements DataInfo<MaterialP
|
|||||||
private String lastHoldUser; //最近一次冻结人
|
private String lastHoldUser; //最近一次冻结人
|
||||||
private String preOqaResult; // 质检前状态
|
private String preOqaResult; // 质检前状态
|
||||||
|
|
||||||
|
private String SALESHIPREQUESTNAME; // 销售订单号
|
||||||
|
|
||||||
|
public String getSALESHIPREQUESTNAME() {
|
||||||
|
return SALESHIPREQUESTNAME;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setSALESHIPREQUESTNAME(String SALESHIPREQUESTNAME) {
|
||||||
|
this.SALESHIPREQUESTNAME = SALESHIPREQUESTNAME;
|
||||||
|
}
|
||||||
|
|
||||||
public String getLastHoldUser() {
|
public String getLastHoldUser() {
|
||||||
return lastHoldUser;
|
return lastHoldUser;
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
package com.cim.idm.service;
|
package com.cim.idm.service;
|
||||||
|
|
||||||
|
|
||||||
|
import com.cim.idm.framework.data.EventInfo;
|
||||||
import com.cim.idm.wmsextend.generic.errorHandler.CustomException;
|
import com.cim.idm.wmsextend.generic.errorHandler.CustomException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -17,4 +18,14 @@ public interface QMSService {
|
|||||||
*/
|
*/
|
||||||
String PreIQCInfoSend (String receiveActNo, String siteName, String opCode, String erpFactory) throws CustomException;
|
String PreIQCInfoSend (String receiveActNo, String siteName, String opCode, String erpFactory) throws CustomException;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 调用QMS质检接口
|
||||||
|
* @param sendQMSUrl QMS质检url
|
||||||
|
* @param sendQMSJson QMS质检报文
|
||||||
|
* @return QMS返回状态码
|
||||||
|
* @throws CustomException
|
||||||
|
*/
|
||||||
|
String sendQMSByUrlJson (String sendQMSUrl,String sendQMSJson, EventInfo eventInfo) throws CustomException;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSONArray;
|
|||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import com.cim.idm.data.ErpMessageLog;
|
import com.cim.idm.data.ErpMessageLog;
|
||||||
import com.cim.idm.framework.IDMFrameServiceProxy;
|
import com.cim.idm.framework.IDMFrameServiceProxy;
|
||||||
|
import com.cim.idm.framework.data.EventInfo;
|
||||||
import com.cim.idm.framework.util.time.TimeStampUtil;
|
import com.cim.idm.framework.util.time.TimeStampUtil;
|
||||||
import com.cim.idm.service.QMSService;
|
import com.cim.idm.service.QMSService;
|
||||||
import com.cim.idm.util.MessageLogUtil;
|
import com.cim.idm.util.MessageLogUtil;
|
||||||
@ -476,4 +477,133 @@ public class QMSServiceImpl implements QMSService{
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String sendToIQCByDataList(String opCode, List<Map<String, Object>> list) throws CustomException {
|
||||||
|
|
||||||
|
JSONArray jsonArray = new JSONArray();
|
||||||
|
for (int i = 0; i < list.size(); i++) {
|
||||||
|
JSONObject jsonObject = new JSONObject(true);
|
||||||
|
// "deliveryNumber": "SDK20240511003",
|
||||||
|
// "supplierName": "BOE",
|
||||||
|
// "supplierCode": "0000102038",
|
||||||
|
// "materialName": "胶带",
|
||||||
|
// "materialCode": "2F08S4J4",
|
||||||
|
// "materialGroup": "A40001",
|
||||||
|
// "batchQuantity": 10,
|
||||||
|
// "quantityUnit": "1",
|
||||||
|
// "deliveryDate": "2024-1-1 12:2:2"
|
||||||
|
jsonObject.put("opCode", opCode);
|
||||||
|
jsonObject.put("deliveryNumber", opCode);
|
||||||
|
jsonObject.put("warehouse", list.get(i).get("ERPLOCATIONDESC"));
|
||||||
|
jsonObject.put("supplierName", list.get(i).get("SUPPLIERNAME"));
|
||||||
|
jsonObject.put("supplierCode", list.get(i).get("SUPPLIERCODE"));
|
||||||
|
jsonObject.put("materialName", list.get(i).get("MATERIALNAME"));
|
||||||
|
jsonObject.put("materialCode", list.get(i).get("MATERIALCODE"));
|
||||||
|
jsonObject.put("materialGroup", list.get(i).get("MATERIALGROUP"));
|
||||||
|
jsonObject.put("batchQuantity", list.get(i).get("BATCHQUANTITY"));
|
||||||
|
jsonObject.put("quantityUnit", list.get(i).get("QUANTITYUNIT"));
|
||||||
|
jsonObject.put("deliveryDate", list.get(i).get("DELIVERYDATE"));
|
||||||
|
jsonObject.put("specifications", list.get(i).get("BATCHNUMBER"));
|
||||||
|
jsonObject.put("LOCATIONNAME", list.get(i).get("LOCATIONNAME"));
|
||||||
|
jsonObject.put("inspector", "检验室(原材仓)");
|
||||||
|
|
||||||
|
String erpFactory = list.get(i).get("BATCHQUANTITY") == null ? "" : list.get(i).get("BATCHQUANTITY").toString();
|
||||||
|
String factoryArea = "";
|
||||||
|
if("103".equals(erpFactory)) {
|
||||||
|
factoryArea = "tc";
|
||||||
|
}else if("105".equals(erpFactory)) {
|
||||||
|
factoryArea = "cq";
|
||||||
|
}else if("106".equals(erpFactory)){
|
||||||
|
factoryArea = "dg";
|
||||||
|
}else {
|
||||||
|
factoryArea = "sh";
|
||||||
|
}
|
||||||
|
// 入库单号和厂区
|
||||||
|
String receiveRequestName = list.get(i).get("RECEIVEREQUESTNAME") == null ? "" : list.get(i).get("RECEIVEREQUESTNAME").toString();
|
||||||
|
jsonObject.put("transferOrderNumber", receiveRequestName);
|
||||||
|
jsonObject.put("factoryArea", factoryArea);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 增加供应商编码和供应商名称
|
||||||
|
* 2025-05-12
|
||||||
|
*/
|
||||||
|
//供应商编码
|
||||||
|
jsonObject.put("supplierCode", list.get(i).get("SUPPLIERCODE"));
|
||||||
|
//供应商名称
|
||||||
|
jsonObject.put("supplierName", list.get(i).get("SUPPLIERNAME"));
|
||||||
|
|
||||||
|
String lots = list.get(i).get("LOTS") == null ? "" : list.get(i).get("LOTS").toString();
|
||||||
|
String[] split = lots.split("\\;");
|
||||||
|
JSONArray jsonArray2 = new JSONArray ();
|
||||||
|
for (int j = 0; j < split.length; j++) {
|
||||||
|
jsonArray2.add(split[j]);
|
||||||
|
}
|
||||||
|
jsonObject.put("lots", jsonArray2);
|
||||||
|
jsonArray.add(jsonObject);
|
||||||
|
}
|
||||||
|
String makePreIQCInfoSendJson = jsonArray.toString();
|
||||||
|
String httpPost = NCHttpUtil.httpPost(baseUrl + "/iqc/select/number", makePreIQCInfoSendJson);
|
||||||
|
org.json.JSONObject jsonObject = new org.json.JSONObject(httpPost);
|
||||||
|
String code = jsonObject.getString("code");
|
||||||
|
if (!"00000".equals(code)) {
|
||||||
|
|
||||||
|
}
|
||||||
|
// String msg = jsonObject.getString("msg");
|
||||||
|
//JSONObject object = (JSONObject) jsonObject.get("data");
|
||||||
|
Thread t = new Thread(new Runnable(){
|
||||||
|
public void run(){
|
||||||
|
// run方法具体重写
|
||||||
|
UUID uuid = UUID.randomUUID();
|
||||||
|
ErpMessageLog erplog = new ErpMessageLog();
|
||||||
|
erplog.setEventUser("");
|
||||||
|
erplog.setServerName("WmsToQMS");
|
||||||
|
erplog.setEventName("PreIQCInfoSend");
|
||||||
|
erplog.setId(uuid.toString());
|
||||||
|
erplog.setInterfaceTime(ConvertUtil.getCurrTime("yyyy-MM-dd HH:mm:ss"));
|
||||||
|
erplog.setMessageId(UUID.randomUUID().toString());
|
||||||
|
erplog.setSendMsg(makePreIQCInfoSendJson);
|
||||||
|
erplog.setReturnMsg2(httpPost.toString());
|
||||||
|
erplog.setResultCode(code);
|
||||||
|
MessageLogUtil.writeMessageLog(erplog);
|
||||||
|
}});
|
||||||
|
t.start();
|
||||||
|
return code;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 质检信息发送QMS
|
||||||
|
* @throws CustomException
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public String sendQMSByUrlJson(String sendQMSUrl, String sendQMSJson, EventInfo eventInfo) throws CustomException {
|
||||||
|
String httpPost = NCHttpUtil.httpPost(baseUrl + sendQMSUrl, sendQMSJson);
|
||||||
|
org.json.JSONObject jsonObject = new org.json.JSONObject(httpPost);
|
||||||
|
String code = jsonObject.getString("code");
|
||||||
|
String msg = "";
|
||||||
|
if (!"200".equals(code)) {
|
||||||
|
msg = jsonObject.getString("msg");
|
||||||
|
}
|
||||||
|
// String msg = jsonObject.getString("msg");
|
||||||
|
//JSONObject object = (JSONObject) jsonObject.get("data");
|
||||||
|
Thread t = new Thread(new Runnable(){
|
||||||
|
public void run(){
|
||||||
|
// run方法具体重写
|
||||||
|
UUID uuid = UUID.randomUUID();
|
||||||
|
ErpMessageLog erplog = new ErpMessageLog();
|
||||||
|
erplog.setEventUser("");
|
||||||
|
erplog.setServerName("WmsToQMS");
|
||||||
|
erplog.setEventName(eventInfo.getEventName());
|
||||||
|
erplog.setId(uuid.toString());
|
||||||
|
erplog.setInterfaceTime(ConvertUtil.getCurrTime("yyyy-MM-dd HH:mm:ss"));
|
||||||
|
erplog.setMessageId(UUID.randomUUID().toString());
|
||||||
|
erplog.setSendMsg(sendQMSJson);
|
||||||
|
erplog.setReturnMsg2(httpPost.toString());
|
||||||
|
erplog.setResultCode(code);
|
||||||
|
MessageLogUtil.writeMessageLog(erplog);
|
||||||
|
}});
|
||||||
|
t.start();
|
||||||
|
return msg;
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -5,12 +5,17 @@ import com.alibaba.fastjson.JSONObject;
|
|||||||
import com.cim.idm.data.AuditBox;
|
import com.cim.idm.data.AuditBox;
|
||||||
import com.cim.idm.data.ErpMessageLog;
|
import com.cim.idm.data.ErpMessageLog;
|
||||||
import com.cim.idm.framework.IDMFrameServiceProxy;
|
import com.cim.idm.framework.IDMFrameServiceProxy;
|
||||||
|
import com.cim.idm.framework.data.EventInfo;
|
||||||
import com.cim.idm.framework.util.sys.SystemPropHelper;
|
import com.cim.idm.framework.util.sys.SystemPropHelper;
|
||||||
import com.cim.idm.framework.util.time.TimeStampUtil;
|
import com.cim.idm.framework.util.time.TimeStampUtil;
|
||||||
import com.cim.idm.util.MessageLogUtil;
|
import com.cim.idm.util.MessageLogUtil;
|
||||||
import com.cim.idm.util.ToSAPMessageUtil;
|
import com.cim.idm.util.ToSAPMessageUtil;
|
||||||
import com.cim.idm.wmsextend.generic.errorHandler.CustomException;
|
import com.cim.idm.wmsextend.generic.errorHandler.CustomException;
|
||||||
|
import com.cim.idm.wmsextend.generic.util.EventInfoUtil;
|
||||||
|
import com.cim.idm.wmspackage.materialpacking.MaterialPackingServiceProxy;
|
||||||
|
import com.cim.idm.wmspackage.materialpacking.management.data.MaterialPacking;
|
||||||
import com.cim.idm.wmspackage.materialpacking.management.data.MaterialPackingKey;
|
import com.cim.idm.wmspackage.materialpacking.management.data.MaterialPackingKey;
|
||||||
|
import com.cim.idm.wmspackage.materialpacking.management.info.SetEventInfo;
|
||||||
import com.fasterxml.jackson.core.JsonProcessingException;
|
import com.fasterxml.jackson.core.JsonProcessingException;
|
||||||
import com.fasterxml.jackson.databind.JsonMappingException;
|
import com.fasterxml.jackson.databind.JsonMappingException;
|
||||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||||
@ -29,6 +34,8 @@ public class ToSAPServiceImpl {
|
|||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private ToSAPMessageUtil toSAPMessageUtil;
|
private ToSAPMessageUtil toSAPMessageUtil;
|
||||||
|
@Autowired
|
||||||
|
private QMSServiceImpl qmsServiceImpl;
|
||||||
|
|
||||||
|
|
||||||
public String PurStockIn(String receiveRequestName, String siteName, String user,
|
public String PurStockIn(String receiveRequestName, String siteName, String user,
|
||||||
@ -2602,7 +2609,7 @@ public class ToSAPServiceImpl {
|
|||||||
//过账日期
|
//过账日期
|
||||||
body.put("BUDAT", budatData);
|
body.put("BUDAT", budatData);
|
||||||
//凭证日期
|
//凭证日期
|
||||||
body.put("BLDAT", TimeStampUtil.getCurrentTime("yyyyMMdd"));
|
body.put("BLDAT", budatData);
|
||||||
//凭证抬头文本
|
//凭证抬头文本
|
||||||
body.put("BKTXT", uniqueID);
|
body.put("BKTXT", uniqueID);
|
||||||
//用户名
|
//用户名
|
||||||
@ -6296,4 +6303,194 @@ public class ToSAPServiceImpl {
|
|||||||
bodyJSonData.put("BUDAT", payMentDate);
|
bodyJSonData.put("BUDAT", payMentDate);
|
||||||
return MainData.toJSONString();
|
return MainData.toJSONString();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 到货单入库调用SAP过账
|
||||||
|
* @param deliveryName 到货单号
|
||||||
|
* @param siteName 工厂
|
||||||
|
* @param user 登录用户
|
||||||
|
* @param commitDate 过账时间
|
||||||
|
* @param opCode
|
||||||
|
* @return
|
||||||
|
* @throws Exception
|
||||||
|
*/
|
||||||
|
public String DeliveryToSAPMontage(String deliveryName, String siteName, String user,String commitDate, String opCode, List<String> saleList) throws Exception {
|
||||||
|
EventInfo eventInfo = new EventInfoUtil().makeEventInfo("NormalStockInDelivery", user, "NormalStockInDelivery", "", "");
|
||||||
|
String rcode;
|
||||||
|
String undoId = "";
|
||||||
|
String rmsg = null;
|
||||||
|
//调用SAP接口的报文
|
||||||
|
String sendData = "";
|
||||||
|
//SAP返回报文
|
||||||
|
String sapreturn = "";
|
||||||
|
List<MaterialPackingKey> materialPackingKeyList = new ArrayList<>();
|
||||||
|
//依据采购订单,查询待入库的物料(MATERIALPACKING)
|
||||||
|
String querySql = " \n" +
|
||||||
|
"\tSELECT\n" +
|
||||||
|
" D.DELIVERYSTATE,\n" +
|
||||||
|
" DR.DELIVERYNAME,\n" +
|
||||||
|
" DR.DELIVERYNUM,\n" +
|
||||||
|
" DR.RECEIVEREQUESTNAME,\n" +
|
||||||
|
" DR.RECEIVEREQUESTDETAILNAME,\n" +
|
||||||
|
" DR.MATERIALSPECNAME,\n" +
|
||||||
|
" P.MATERIALPACKINGNAME,\n" +
|
||||||
|
" P.ERPLOCATION,\n" +
|
||||||
|
" P.ERPFACTORY,\n" +
|
||||||
|
" P.SUPPLIERNAME,\n" +
|
||||||
|
" P.UNIT,\n" +
|
||||||
|
"\t\tP.FQTY,\n" +
|
||||||
|
" P.FUNIT,\n" +
|
||||||
|
" P.REMARK,\n" +
|
||||||
|
"\t\tBF.IQCFLAG,\n" +
|
||||||
|
" P.OQARESULT,\n" +
|
||||||
|
"\t\tR.STOCKORGNO,\n" +
|
||||||
|
"\t\tR.RECEIVEREQUESTTYPE\n" +
|
||||||
|
"FROM\n" +
|
||||||
|
" MATERIALPACKING P \n" +
|
||||||
|
"LEFT JOIN BS_MATERIALFACTORY BF ON BF.MATERIALSPECNAME = P.MATERIALSPECNAME AND BF.ERPFACTORY = P.ERPFACTORY\n" +
|
||||||
|
"LEFT JOIN MATERIALRECEIVEREQUESTDETAIL RD ON P.SITENAME = RD.SITENAME \n" +
|
||||||
|
"LEFT JOIN MATERIALRECEIVEREQUEST R ON RD.RECEIVEREQUESTNAME = R.RECEIVEREQUESTNAME AND RD.SITENAME = R.SITENAME\n" +
|
||||||
|
"LEFT JOIN MATERIALDELIVERYRECEIVE DR ON R.RECEIVEREQUESTNAME=DR.RECEIVEREQUESTNAME \n" +
|
||||||
|
"LEFT JOIN MATERIALDELIVERY D ON DR.DELIVERYNAME = D.DELIVERYNAME\n" +
|
||||||
|
"WHERE\n" +
|
||||||
|
" D.SITENAME =:SITENAME\n" +
|
||||||
|
" AND D.DELIVERYNAME =:DELIVERYNAME\n" +
|
||||||
|
" AND D.DELIVERYSTATE = '01'\n" +
|
||||||
|
"\t\tAND DR.MATERIALSPECNAME=RD.MATERIALSPECNAME\n" +
|
||||||
|
"\t\tAND RD.RECEIVEREQUESTDETAILNAME=DR.RECEIVEREQUESTDETAILNAME\n" +
|
||||||
|
"\t\tAND P.RECEIVEREQUESTNAME = DR.DELIVERYNAME \n" +
|
||||||
|
"\t\tAND P.MATERIALSPECNAME = DR.MATERIALSPECNAME ";
|
||||||
|
Map<String, Object> hashMap = new HashMap<String, Object>();
|
||||||
|
hashMap.put("DELIVERYNAME", deliveryName);
|
||||||
|
hashMap.put("SITENAME", siteName);
|
||||||
|
List<Map<String, Object>> queryForList = IDMFrameServiceProxy.getSqlTemplate().queryForList(querySql, hashMap);
|
||||||
|
List<Map<String, Object>> receiveBoxsQty = new ArrayList<>(); //基于标签收包的维度的数量
|
||||||
|
try {
|
||||||
|
Map<String,Object> bodyData = new HashMap<>();
|
||||||
|
List<Map<String,Object>> itemData = new ArrayList<>();
|
||||||
|
|
||||||
|
for (Map<String, Object> mm : queryForList) {
|
||||||
|
|
||||||
|
//UMWRK 收货工厂
|
||||||
|
//LGORT 发货库存地点
|
||||||
|
//UMLOG 收货库存地点
|
||||||
|
//MATNR 发货物料号
|
||||||
|
//UMMAT 收货物料
|
||||||
|
Map<String,Object> item = new HashMap<>();
|
||||||
|
item.put("MATNR", mm.get("MATERIALSPECNAME"));
|
||||||
|
item.put("LGORT", mm.get("ERPLOCATION"));
|
||||||
|
//item.put("UMWRK", mm.get("ERPFACTORY"));
|
||||||
|
item.put("WERKS", mm.get("ERPFACTORY"));
|
||||||
|
item.put("BWART","101");
|
||||||
|
item.put("LIFNR", mm.get("SUPPLIERNAME"));
|
||||||
|
item.put("MENGE", mm.get("MATERIALQUANTITY"));
|
||||||
|
item.put("MEINS", mm.get("UNIT"));
|
||||||
|
item.put("BPMNG", mm.get("FQTY"));//采购价格单位数量
|
||||||
|
item.put("BPRME", mm.get("FUNIT"));//采购价格单位
|
||||||
|
|
||||||
|
item.put("EBELN", mm.get("RECEIVEREQUESTNAME"));
|
||||||
|
item.put("EBELP", mm.get("RECEIVEREQUESTDETAILNAME"));
|
||||||
|
item.put("SGTXT", mm.get("REMARK"));
|
||||||
|
String insmk = "";
|
||||||
|
if("Y".equals((String)mm.get("IQCFLAG"))) {
|
||||||
|
insmk = "2";
|
||||||
|
}
|
||||||
|
if("NG".equals((String)mm.get("OQARESULT"))) {
|
||||||
|
insmk = "3";
|
||||||
|
}
|
||||||
|
// String insmk = StringUtils.equals(mm.get("OQARESULTSTATE").toString(),"END")?"":"X";
|
||||||
|
item.put("INSMK", insmk);
|
||||||
|
itemData.add(item);
|
||||||
|
//存储条码,更新UNDOID用
|
||||||
|
MaterialPackingKey materialPackingKey = new MaterialPackingKey(siteName, mm.get("MATERIALPACKINGNAME").toString());
|
||||||
|
materialPackingKeyList.add(materialPackingKey);
|
||||||
|
}
|
||||||
|
|
||||||
|
sendData = ToSAPMessageUtil.mm067(user, bodyData, itemData, commitDate);
|
||||||
|
|
||||||
|
sapreturn = toSAPMessageUtil.sendHttpPost(toSAPMessageUtil.materialChangeLocationUrl,"",sendData);
|
||||||
|
org.json.JSONObject receiveJsonObject = new org.json.JSONObject(sapreturn);
|
||||||
|
|
||||||
|
org.json.JSONObject returnJsonObject = (org.json.JSONObject) receiveJsonObject.get("RETURN");
|
||||||
|
rcode = returnJsonObject.get("STATUS").toString();
|
||||||
|
rmsg = returnJsonObject.get("MSGTXT").toString();
|
||||||
|
//将log写到表里
|
||||||
|
ErpMessageLog erplog = new ErpMessageLog();
|
||||||
|
erplog.setEventUser("");
|
||||||
|
erplog.setServerName("WmsToErp");
|
||||||
|
erplog.setEventName("PurStockIn");
|
||||||
|
erplog.setInterfaceTime(TimeStampUtil.getCurrentTime(TimeStampUtil.FORMAT_DEFAULT));
|
||||||
|
erplog.setMessageId(UUID.randomUUID().toString());
|
||||||
|
erplog.setSendMsg(sendData);
|
||||||
|
erplog.setReturnMsg2(sapreturn);
|
||||||
|
erplog.setResultCode(rcode);
|
||||||
|
MessageLogUtil.writeMessageLog(erplog);
|
||||||
|
if ("S".equals(rcode)) {
|
||||||
|
undoId = returnJsonObject.get("MBLNR").toString()+"_"+returnJsonObject.get("MJAHR").toString();//将物料凭证号与凭证年度拼在一起
|
||||||
|
}else {
|
||||||
|
throw new RuntimeException("SAP返回" + rmsg);
|
||||||
|
}
|
||||||
|
} catch (Exception e) {
|
||||||
|
log.info(e.getMessage(), e);
|
||||||
|
throw new RuntimeException("SAP返回" + rmsg);
|
||||||
|
}
|
||||||
|
|
||||||
|
if(!saleList.contains(queryForList.get(0).get("RECEIVEREQUESTTYPE").toString())) {
|
||||||
|
try {
|
||||||
|
// 调用 QMS
|
||||||
|
//qMSServiceImpl.PreIQCInfoSend(receiveRequestName, "SDK",opCode, erpFactory);
|
||||||
|
qmsServiceImpl.sendToIQCByDataList(opCode, queryForList);
|
||||||
|
} catch (CustomException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
throw new RuntimeException("QMS返回" + e.toString());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// 更新入库凭证,更新库存状态
|
||||||
|
if (materialPackingKeyList.size() > 0){
|
||||||
|
SetEventInfo setEventInfo = new SetEventInfo();
|
||||||
|
Map<String, Object> updateMap = new HashMap<>();
|
||||||
|
updateMap.put("unDoID", undoId);
|
||||||
|
updateMap.put("packingState","Released");
|
||||||
|
updateMap.put("stockState","Stocked");
|
||||||
|
updateMap.put("messageId",opCode);
|
||||||
|
updateMap.put("shipRequestName", "");
|
||||||
|
updateMap.put("shipRequestDetailName", "");
|
||||||
|
setEventInfo.setUserColumns(updateMap);
|
||||||
|
MaterialPackingServiceProxy.getMaterialPackingService().setEvent(materialPackingKeyList, eventInfo, setEventInfo);
|
||||||
|
}
|
||||||
|
//插入凭证信息
|
||||||
|
SaveUnDoInfo(deliveryName,commitDate);
|
||||||
|
return undoId;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 接收ERP返回消息更新WMS凭证
|
||||||
|
* @param materialPackingName
|
||||||
|
*/
|
||||||
|
public void SaveUnDoInfo(String materialPackingName,String commitDate) {
|
||||||
|
|
||||||
|
String insertUnDOMaterialPackingInfo = "insert into BS_MATERIALPACKINGUNDOINFO (unDoID,preundoid,UNDODETAILNAME,undoidstate,UNDOIDDATE,"
|
||||||
|
+ "SITENAME, MATERIALPACKINGNAME, MATERIALPACKINGTYPE, CONTENTMATERIALTYPE,"
|
||||||
|
+ "MATERIALTYPE, MATERIALSPECNAME, SUPERMATERIALPACKINGNAME, PACKINGGRADE, SUBPACKINGQUANTITY, MATERIALCREATEQUANTITY,"
|
||||||
|
+ "MATERIALQUANTITY, PACKINGSTATE, OLDPACKINGSTATE, STOCKSTATE, OLDSTOCKSTATE, HOLDSTATE, AREANAME, LOCATIONNAME,"
|
||||||
|
+ "DURABLENAME, MATERIALPROCESSGROUPNAME, LASTEVENTNAME, LASTEVENTTIMEKEY, LASTEVENTTIME, LASTEVENTUSER,"
|
||||||
|
+ "LASTEVENTCOMMENT, CREATETIME, CREATEUSER, RECEIVEREQUESTNAME, RECEIVEREQUESTDETAILNAME,"
|
||||||
|
+ "MAKEDATE, RECEIVEACTNO, STOCKINTYPE, RECEIVETIME, RECEIVEUSER, SHIPREQUESTNAME, SHIPREQUESTDETAILNAME, SHIPTIME,"
|
||||||
|
+ "SHIPUSER, REASONCODETYPE, OQARESULTSTATE, OQARESULT, ERPLOCATION, ERPFACTORY, REASONCODE, CHARGE, SUPPLIERNAME,ETCSTATE,ERPEVENTTIME,NPFLAG)"
|
||||||
|
+ "select unDoID,'' as preundoid,UNDODETAILNAME,'Completed' as undoidstate,:commitDate AS UNDOIDDATE," //
|
||||||
|
+ "SITENAME, MATERIALPACKINGNAME, MATERIALPACKINGTYPE, CONTENTMATERIALTYPE,"
|
||||||
|
+ "MATERIALTYPE, MATERIALSPECNAME, SUPERMATERIALPACKINGNAME, PACKINGGRADE, SUBPACKINGQUANTITY, MATERIALCREATEQUANTITY,"
|
||||||
|
+ "MATERIALQUANTITY, PACKINGSTATE, OLDPACKINGSTATE, STOCKSTATE, OLDSTOCKSTATE, HOLDSTATE, AREANAME, LOCATIONNAME,"
|
||||||
|
+ "DURABLENAME, MATERIALPROCESSGROUPNAME, LASTEVENTNAME, LASTEVENTTIMEKEY, LASTEVENTTIME, LASTEVENTUSER,"
|
||||||
|
+ "LASTEVENTCOMMENT, CREATETIME, CREATEUSER, RECEIVEREQUESTNAME, RECEIVEREQUESTDETAILNAME,"
|
||||||
|
+ "MAKEDATE, RECEIVEACTNO, STOCKINTYPE, RECEIVETIME, RECEIVEUSER, SHIPREQUESTNAME, SHIPREQUESTDETAILNAME, SHIPTIME,"
|
||||||
|
+ "SHIPUSER, REASONCODETYPE, OQARESULTSTATE, OQARESULT, ERPLOCATION, ERPFACTORY, REASONCODE, CHARGE, SUPPLIERNAME,ETCSTATE,ERPEVENTTIME,NPFLAG"
|
||||||
|
+ " from MATERIALPACKING "
|
||||||
|
+ " where MATERIALPACKINGNAME=:MATERIALPACKINGNAME ";
|
||||||
|
|
||||||
|
Map<String, Object> bindMap_insert = new HashMap<String, Object>();
|
||||||
|
bindMap_insert.put("MATERIALPACKINGNAME", materialPackingName);
|
||||||
|
bindMap_insert.put("commitDate", commitDate);
|
||||||
|
IDMFrameServiceProxy.getSqlTemplate().update(insertUnDOMaterialPackingInfo, bindMap_insert);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -12,6 +12,7 @@ import org.springframework.web.bind.annotation.RequestMethod;
|
|||||||
import org.springframework.web.bind.annotation.RestController;
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
|
||||||
@RestController
|
@RestController
|
||||||
@ -32,4 +33,14 @@ public class CostCenterController {
|
|||||||
List<CostCenter> costCenters = costCenterService.getCostCenter();
|
List<CostCenter> costCenters = costCenterService.getCostCenter();
|
||||||
return RespGenerator.returnOK(costCenters);
|
return RespGenerator.returnOK(costCenters);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取用户信息
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@RequestMapping(value = "/getUserInfo", method = RequestMethod.GET)
|
||||||
|
public BaseResponse<Object> getUserInfo() {
|
||||||
|
List<Map<String, Object>> userInfos = costCenterService.getUserInfo();
|
||||||
|
return RespGenerator.returnOK(userInfos);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -137,4 +137,44 @@ public class DeliveryController {
|
|||||||
}
|
}
|
||||||
return AjaxResult.me().setErrorCode(-1).setMessage("删除失败");
|
return AjaxResult.me().setErrorCode(-1).setMessage("删除失败");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 2025-05-14
|
||||||
|
* 获取到货单入库详情
|
||||||
|
*/
|
||||||
|
@PostMapping(value = "/getMaterialDeliveryDetailList")
|
||||||
|
public AjaxResult GetMaterialDeliveryDetailList(@RequestBody JSONObject in) {
|
||||||
|
Map<String, String> params = (Map<String, String>) in.get("params");
|
||||||
|
// siteName
|
||||||
|
StoreDetailDto storeDetailDto = new StoreDetailDto();
|
||||||
|
storeDetailDto.setSiteName(params.get("SITENAME"));
|
||||||
|
storeDetailDto.setDocumentName(params.get("RECEIVEREQUESTNAME"));
|
||||||
|
// 单据名称集合
|
||||||
|
List<String> nameList = new ArrayList<>();
|
||||||
|
String deliveryName = null;
|
||||||
|
MaterialDelivery byKey = deliveryService.getByKey(storeDetailDto);
|
||||||
|
// 到货单
|
||||||
|
if (Objects.nonNull(byKey)) {
|
||||||
|
deliveryName = byKey.getDeliveryName();
|
||||||
|
// 到库单(找出该单据下的所有的采购单)
|
||||||
|
nameList = deliveryService.getRelByDelivery(storeDetailDto)
|
||||||
|
.stream().map(MaterialDeliveryReceive::getReceiveRequestName).distinct().collect(Collectors.toList());
|
||||||
|
}
|
||||||
|
// 异常
|
||||||
|
if (nameList.isEmpty()) {
|
||||||
|
throw new GlobalException("不存在该单据");
|
||||||
|
}
|
||||||
|
|
||||||
|
// 获取采购单明细及批次
|
||||||
|
String deliveryType = params.get("deliveryType");
|
||||||
|
if (deliveryType.equals(DeliveryTypeEnums.BATCH.getCode())) {
|
||||||
|
// 批次
|
||||||
|
return AjaxResult.me().setSuccess(true).setResultObj(
|
||||||
|
deliveryService.getStoreDetail(storeDetailDto.getDocumentName(), storeDetailDto.getSiteName(), nameList, deliveryName));
|
||||||
|
} else {
|
||||||
|
// 辅材
|
||||||
|
return AjaxResult.me().setSuccess(true).setResultObj(
|
||||||
|
deliveryService.getMaterialDetail(storeDetailDto.getDocumentName(), storeDetailDto.getSiteName(), nameList, deliveryName));
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -2007,7 +2007,7 @@ public class InvoiceController {
|
|||||||
MaterialshipRequest materialShipRequest = JSON.toJavaObject(in, MaterialshipRequest.class);
|
MaterialshipRequest materialShipRequest = JSON.toJavaObject(in, MaterialshipRequest.class);
|
||||||
String shipRequestName2 = materialShipRequest.getShipRequestName();
|
String shipRequestName2 = materialShipRequest.getShipRequestName();
|
||||||
//根据单据类型判断生产订单类型,如果是领料单且单据类型是复卷和返工的不卡控批次质量状态
|
//根据单据类型判断生产订单类型,如果是领料单且单据类型是复卷和返工的不卡控批次质量状态
|
||||||
String dTypeSql = "SELECT M.PRODUCTORDERTYPE,M.PRODUCTORDERNO FROM MATERIALSHIPREQUEST M WHERE M.SHIPREQUESTNAME = :SHIPREQUESTNAME";
|
String dTypeSql = "SELECT M.AUART FROM MATERIALSHIPREQUESTDETAIL M WHERE M.SHIPREQUESTNAME = :SHIPREQUESTNAME";
|
||||||
Map<String, Object> hashMap3 = new HashMap<String,Object> ();
|
Map<String, Object> hashMap3 = new HashMap<String,Object> ();
|
||||||
hashMap3.put("SHIPREQUESTNAME", shipRequestName2);
|
hashMap3.put("SHIPREQUESTNAME", shipRequestName2);
|
||||||
String productOrderType = "";
|
String productOrderType = "";
|
||||||
@ -2015,8 +2015,8 @@ public class InvoiceController {
|
|||||||
List<Map<String, Object>> queryForListW = new ArrayList<>();
|
List<Map<String, Object>> queryForListW = new ArrayList<>();
|
||||||
List<Map<String, Object>> queryForList3 = IDMFrameServiceProxy.getSqlTemplate().queryForList(dTypeSql, hashMap3);
|
List<Map<String, Object>> queryForList3 = IDMFrameServiceProxy.getSqlTemplate().queryForList(dTypeSql, hashMap3);
|
||||||
if (queryForList3 != null && queryForList3.size() > 0) {
|
if (queryForList3 != null && queryForList3.size() > 0) {
|
||||||
productOrderType = queryForList3.get(0).get("PRODUCTORDERTYPE") == null ? "" :queryForList3.get(0).get("PRODUCTORDERTYPE").toString();
|
productOrderType = queryForList3.get(0).get("AUART") == null ? "" :queryForList3.get(0).get("AUART").toString();
|
||||||
productOrderNo = queryForList3.get(0).get("PRODUCTORDERNO") == null ? "" :queryForList3.get(0).get("PRODUCTORDERNO").toString();
|
productOrderNo = queryForList3.get(0).get("AUART") == null ? "" :queryForList3.get(0).get("AUART").toString();
|
||||||
|
|
||||||
// 查询工单维护表 是否有对应的生产订单
|
// 查询工单维护表 是否有对应的生产订单
|
||||||
String workSql = "SELECT w.WORKORDER FROM WORKORDER w WHERE w.WORKORDER =:WORKORDER";
|
String workSql = "SELECT w.WORKORDER FROM WORKORDER w WHERE w.WORKORDER =:WORKORDER";
|
||||||
@ -2065,14 +2065,12 @@ public class InvoiceController {
|
|||||||
if (!"Stocked".equals(stockState)) {
|
if (!"Stocked".equals(stockState)) {
|
||||||
return AjaxResult.me().setSuccess(false).setMessage("条码不在库!");
|
return AjaxResult.me().setSuccess(false).setMessage("条码不在库!");
|
||||||
}
|
}
|
||||||
if (!"OK".equals(packinggrade) && (!"55A2-02".equals(productOrderType) && !"55A2-Cxx-08".equals(productOrderType)
|
if (!"OK".equals(packinggrade) && (!"ZP01".equals(productOrderType) && !"ZP05".equals(productOrderType))
|
||||||
&& !"4455-Cxx-10".equals(productOrderType) && !"4455-Cxx-01".equals(productOrderType)
|
&& (queryForListW == null || queryForListW.size() < 1)) {//复卷,返工工单
|
||||||
&& !"5X-Cxx-07".equals(productOrderType)) && (queryForListW == null || queryForListW.size() < 1)) {//复卷,返工工单
|
|
||||||
return AjaxResult.me().setSuccess(false).setMessage("单据类型不为复卷或 返工, 引膜领用和研发领用, 批次不合格不能出库!");
|
return AjaxResult.me().setSuccess(false).setMessage("单据类型不为复卷或 返工, 引膜领用和研发领用, 批次不合格不能出库!");
|
||||||
}
|
}
|
||||||
if (!"1".equals(exp) && (!"55A2-02".equals(productOrderType) && !"55A2-Cxx-08".equals(productOrderType)
|
if (!"1".equals(exp) && (!"ZP01".equals(productOrderType) && !"ZP05".equals(productOrderType))
|
||||||
&& !"4455-Cxx-10".equals(productOrderType) && !"4455-Cxx-01".equals(productOrderType)
|
&& (queryForListW == null || queryForListW.size() < 1)) {//复卷,返工工单
|
||||||
&& !"5X-Cxx-07".equals(productOrderType)) && (queryForListW == null || queryForListW.size() < 1)) {//复卷,返工工单
|
|
||||||
return AjaxResult.me().setSuccess(false).setMessage("单据类型不为复卷或 返工, 引膜领用和研发领用, 批次已过期!");
|
return AjaxResult.me().setSuccess(false).setMessage("单据类型不为复卷或 返工, 引膜领用和研发领用, 批次已过期!");
|
||||||
}
|
}
|
||||||
if (!"END".equals(oqaresultstate)) {
|
if (!"END".equals(oqaresultstate)) {
|
||||||
@ -2185,13 +2183,13 @@ public class InvoiceController {
|
|||||||
MaterialshipRequest materialShipRequest = JSON.toJavaObject(in, MaterialshipRequest.class);
|
MaterialshipRequest materialShipRequest = JSON.toJavaObject(in, MaterialshipRequest.class);
|
||||||
String shipRequestName2 = materialShipRequest.getShipRequestName();
|
String shipRequestName2 = materialShipRequest.getShipRequestName();
|
||||||
//根据单据类型判断生产订单类型,如果是领料单且单据类型是复卷和返工的不卡控批次质量状态
|
//根据单据类型判断生产订单类型,如果是领料单且单据类型是复卷和返工的不卡控批次质量状态
|
||||||
String dTypeSql = "SELECT M.PRODUCTORDERTYPE FROM MATERIALSHIPREQUEST M WHERE M.SHIPREQUESTNAME = :SHIPREQUESTNAME";
|
String dTypeSql = "SELECT M.AUART FROM MATERIALSHIPREQUESTDETAIL M WHERE M.SHIPREQUESTNAME = :SHIPREQUESTNAME";
|
||||||
Map<String, Object> hashMap3 = new HashMap<String,Object> ();
|
Map<String, Object> hashMap3 = new HashMap<String,Object> ();
|
||||||
hashMap3.put("SHIPREQUESTNAME", shipRequestName2);
|
hashMap3.put("SHIPREQUESTNAME", shipRequestName2);
|
||||||
String productOrderType = "";
|
String productOrderType = "";
|
||||||
List<Map<String, Object>> queryForList3 = IDMFrameServiceProxy.getSqlTemplate().queryForList(dTypeSql, hashMap3);
|
List<Map<String, Object>> queryForList3 = IDMFrameServiceProxy.getSqlTemplate().queryForList(dTypeSql, hashMap3);
|
||||||
if (queryForList3 != null && queryForList3.size() > 0) {
|
if (queryForList3 != null && queryForList3.size() > 0) {
|
||||||
productOrderType = queryForList3.get(0).get("PRODUCTORDERTYPE") == null ? "" :queryForList3.get(0).get("PRODUCTORDERTYPE").toString();
|
productOrderType = queryForList3.get(0).get("AUART") == null ? "" :queryForList3.get(0).get("AUART").toString();
|
||||||
}
|
}
|
||||||
String type = materialShipRequest.getType();//Assign 备货 Dessign 解绑
|
String type = materialShipRequest.getType();//Assign 备货 Dessign 解绑
|
||||||
String materialPackingName = materialShipRequest.getMaterialPackingName();//标签
|
String materialPackingName = materialShipRequest.getMaterialPackingName();//标签
|
||||||
@ -2235,14 +2233,12 @@ public class InvoiceController {
|
|||||||
if (!"Stocked".equals(stockState)) {
|
if (!"Stocked".equals(stockState)) {
|
||||||
return AjaxResult.me().setSuccess(false).setMessage("条码不在库!");
|
return AjaxResult.me().setSuccess(false).setMessage("条码不在库!");
|
||||||
}
|
}
|
||||||
if (!"OK".equals(packinggrade) && (!"55A2-02".equals(productOrderType) && !"55A2-Cxx-08".equals(productOrderType)
|
if (!"OK".equals(packinggrade) &&
|
||||||
&& !"4455-Cxx-10".equals(productOrderType) && !"455-Cxx-01".equals(productOrderType)
|
(!"ZP01".equals(productOrderType) && !"ZP05".equals(productOrderType))) {//复卷,返工工单
|
||||||
&& !"5X-Cxx-07".equals(productOrderType))) {//复卷,返工工单
|
|
||||||
return AjaxResult.me().setSuccess(false).setMessage("单据类型不为复卷或 返工, 引膜领用和研发领用, 批次不合格不能出库!");
|
return AjaxResult.me().setSuccess(false).setMessage("单据类型不为复卷或 返工, 引膜领用和研发领用, 批次不合格不能出库!");
|
||||||
}
|
}
|
||||||
if (!"1".equals(exp) && (!"55A2-02".equals(productOrderType) && !"55A2-Cxx-08".equals(productOrderType)
|
if (!"1".equals(exp) &&
|
||||||
&& !"4455-Cxx-10".equals(productOrderType) && !"455-Cxx-01".equals(productOrderType)
|
(!"ZP01".equals(productOrderType) && !"ZP05".equals(productOrderType))) {//复卷,返工工单
|
||||||
&& !"5X-Cxx-07".equals(productOrderType))) {//复卷,返工工单
|
|
||||||
return AjaxResult.me().setSuccess(false).setMessage("单据类型不为复卷或 返工, 引膜领用和研发领用, 批次已过期!");
|
return AjaxResult.me().setSuccess(false).setMessage("单据类型不为复卷或 返工, 引膜领用和研发领用, 批次已过期!");
|
||||||
}
|
}
|
||||||
if (!"END".equals(oqaresultstate)) {
|
if (!"END".equals(oqaresultstate)) {
|
||||||
|
@ -13,6 +13,7 @@ import com.cim.idm.model.po.MaterialReceiveRequest;
|
|||||||
import com.cim.idm.mwmsextend.materialpacking.service.MaterialPackingServiceImpl;
|
import com.cim.idm.mwmsextend.materialpacking.service.MaterialPackingServiceImpl;
|
||||||
import com.cim.idm.response.BaseResponse;
|
import com.cim.idm.response.BaseResponse;
|
||||||
import com.cim.idm.response.RespGenerator;
|
import com.cim.idm.response.RespGenerator;
|
||||||
|
import com.cim.idm.service.CostCenterService;
|
||||||
import com.cim.idm.service.LabelService;
|
import com.cim.idm.service.LabelService;
|
||||||
import com.cim.idm.utils.AjaxResult;
|
import com.cim.idm.utils.AjaxResult;
|
||||||
import com.cim.idm.utils.EventInfoUtil;
|
import com.cim.idm.utils.EventInfoUtil;
|
||||||
@ -45,6 +46,8 @@ public class LabelController {
|
|||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private LabelService labelService;
|
private LabelService labelService;
|
||||||
|
@Resource
|
||||||
|
private CostCenterService costCenterService;
|
||||||
|
|
||||||
// @Resource
|
// @Resource
|
||||||
// private LabelPrintInfoService labelPrintInfoService;
|
// private LabelPrintInfoService labelPrintInfoService;
|
||||||
@ -400,112 +403,11 @@ public class LabelController {
|
|||||||
MaterialPackingServiceProxy.getMaterialPackingService().setEvent(listKey, makeEventInfo, setEventInfo);
|
MaterialPackingServiceProxy.getMaterialPackingService().setEvent(listKey, makeEventInfo, setEventInfo);
|
||||||
return AjaxResult.me().setSuccess(true).setMessage("实际规格更新成功");
|
return AjaxResult.me().setSuccess(true).setMessage("实际规格更新成功");
|
||||||
}
|
}
|
||||||
|
|
||||||
//更新业助
|
//更新业助
|
||||||
@RequestMapping(value = "/updateCareerAssistance", method = RequestMethod.POST)
|
@RequestMapping(value = "/updateCareerAssistance", method = RequestMethod.POST)
|
||||||
public AjaxResult updateCareerAssistance(@RequestBody JSONObject in) {
|
public AjaxResult updateCareerAssistance(@RequestBody JSONObject in) {
|
||||||
|
costCenterService.updateCareerAssistanceNew(in);
|
||||||
MaterialReceiveRequest sl = JSON.toJavaObject(in, MaterialReceiveRequest.class);
|
|
||||||
List<MaterialPacking> boxList = sl.getBoxList();//CAREER_ASSISTANCE
|
|
||||||
String user = sl.getUser();
|
|
||||||
String siteName = sl.getSiteName();
|
|
||||||
String career_ASSISTANCE = sl.getRemark();
|
|
||||||
String CUSTOMNO = sl.getCUSTOMNO();
|
|
||||||
String pc = "(";
|
|
||||||
for (MaterialPacking materialPacking : boxList) {
|
|
||||||
String career_ASSISTANCE2 = materialPacking.getCAREER_ASSISTANCE();
|
|
||||||
String CUSTOMNO2 = materialPacking.getCUSTOMNO();
|
|
||||||
String materialPackingName = materialPacking.getMaterialPackingName();
|
|
||||||
pc += "'" + materialPackingName + "',";
|
|
||||||
String materialspecname = materialPacking.getMaterialSpecName();
|
|
||||||
String charge = materialPacking.getCharge();
|
|
||||||
String phase = materialPacking.getPHASE();
|
|
||||||
// SetEventInfo setEventInfo = new SetEventInfo();
|
|
||||||
Map<String, Object> hashMap = new HashMap<String,Object> ();
|
|
||||||
// hashMap.put("CAREER_ASSISTANCE", career_ASSISTANCE);
|
|
||||||
if (career_ASSISTANCE2 != null && !"".equals(career_ASSISTANCE2)) {
|
|
||||||
hashMap.put("CAREER_ASSISTANCE2", career_ASSISTANCE2);
|
|
||||||
}
|
|
||||||
if (CUSTOMNO2 != null && !"".equals(CUSTOMNO2)) {
|
|
||||||
hashMap.put("CUSTOMNO2", CUSTOMNO2);
|
|
||||||
}
|
|
||||||
|
|
||||||
hashMap.put("SITENAME", siteName);
|
|
||||||
hashMap.put("MATERIALPACKINGNAME", materialPackingName);
|
|
||||||
hashMap.put("MATERIALSPECNAME", materialspecname);
|
|
||||||
hashMap.put("CHARGE", charge);
|
|
||||||
hashMap.put("PHASE", phase);
|
|
||||||
hashMap.put("IS_CHECK", "N");
|
|
||||||
hashMap.put("USERID", user);
|
|
||||||
hashMap.put("CAREER_ASSISTANCE", career_ASSISTANCE);
|
|
||||||
hashMap.put("CUSTOMNO", CUSTOMNO);
|
|
||||||
// setEventInfo.setUserColumns(hashMap);
|
|
||||||
// MaterialPackingKey mk = new MaterialPackingKey(siteName,materialPackingName);
|
|
||||||
// EventInfo makeEventInfo = new EventInfoUtil().makeEventInfo("UpdateCareerAssistance", user, "UpdateCareerAssistance");
|
|
||||||
// MaterialPackingServiceProxy.getMaterialPackingService().setEvent(mk, makeEventInfo, setEventInfo);
|
|
||||||
|
|
||||||
// String yzSql = "SELECT * FROM USERINFO WHERE U.USERNAME = A.CAREER_ASSISTANCE";
|
|
||||||
String yzSql = "SELECT U.USERNAME FROM USERINFO U WHERE U.USERID = :USERID ";
|
|
||||||
|
|
||||||
List<Map<String, Object>> userQueryForList = IDMFrameServiceProxy.getSqlTemplate().queryForList(yzSql, hashMap);
|
|
||||||
|
|
||||||
|
|
||||||
if(Objects.isNull(userQueryForList) || userQueryForList.isEmpty() || userQueryForList.size() < 1) {
|
|
||||||
// throw new RuntimeException("业助名称不正确或未注册");
|
|
||||||
return AjaxResult.me().setSuccess(false).setMessage("业助名称不正确或未注册");
|
|
||||||
}else {
|
|
||||||
String userName = userQueryForList.get(0).get("USERNAME") == null ? "" : userQueryForList.get(0).get("USERNAME").toString();
|
|
||||||
if ((career_ASSISTANCE2 != null || !"".equals(career_ASSISTANCE2)) && !userName.equals(career_ASSISTANCE2)) {
|
|
||||||
return AjaxResult.me().setSuccess(false).setMessage("业助" + career_ASSISTANCE2 + "不能被修改");
|
|
||||||
}
|
|
||||||
if ((career_ASSISTANCE != null || !"".equals(career_ASSISTANCE)) && !userName.equals(career_ASSISTANCE)) {
|
|
||||||
return AjaxResult.me().setSuccess(false).setMessage("业助" + career_ASSISTANCE + "不能被修改");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
pc += "'')";
|
|
||||||
|
|
||||||
String updateSql = "MERGE\r\n" +
|
|
||||||
"INTO\r\n" +
|
|
||||||
" MATERIALPACKINGCHECK T\r\n" +
|
|
||||||
" USING (\r\n" +
|
|
||||||
" SELECT\r\n" +
|
|
||||||
" *\r\n" +
|
|
||||||
" FROM\r\n" +
|
|
||||||
" MATERIALPACKING\r\n" +
|
|
||||||
" WHERE\r\n" +
|
|
||||||
" MATERIALPACKINGNAME IN " + pc + " ) M " +
|
|
||||||
"ON\r\n" +
|
|
||||||
" (T.MATERIALPACKINGNAME = M.MATERIALPACKINGNAME)\r\n" +
|
|
||||||
" WHEN MATCHED THEN\r\n" +
|
|
||||||
"UPDATE\r\n" +
|
|
||||||
"SET\r\n" +
|
|
||||||
" T.CAREER_ASSISTANCE = :CAREER_ASSISTANCE,\r\n" +
|
|
||||||
" T.CUSTOMNO = :CUSTOMNO, T.IS_CHECK = 'N' \r\n" +
|
|
||||||
" WHEN NOT MATCHED THEN\r\n" +
|
|
||||||
"INSERT\r\n" +
|
|
||||||
" (SITENAME,\r\n" +
|
|
||||||
" MATERIALPACKINGNAME,\r\n" +
|
|
||||||
" MATERIALSPECNAME,\r\n" +
|
|
||||||
" CHARGE,\r\n" +
|
|
||||||
" PHASE,\r\n" +
|
|
||||||
" IS_CHECK,\r\n" +
|
|
||||||
" CAREER_ASSISTANCE,\r\n" +
|
|
||||||
" CUSTOMNO)\r\n" +
|
|
||||||
"VALUES (M.SITENAME,\r\n" +
|
|
||||||
"M.MATERIALPACKINGNAME,\r\n" +
|
|
||||||
"M.MATERIALSPECNAME,\r\n" +
|
|
||||||
"M.CHARGE,\r\n" +
|
|
||||||
"M.PHASE,\r\n" +
|
|
||||||
"'N',\r\n" +
|
|
||||||
":CAREER_ASSISTANCE,\r\n" +
|
|
||||||
":CUSTOMNO)" ;
|
|
||||||
|
|
||||||
Map<String, Object> map = new HashMap<String,Object> ();
|
|
||||||
map.put("CAREER_ASSISTANCE", career_ASSISTANCE);
|
|
||||||
map.put("CUSTOMNO", CUSTOMNO);
|
|
||||||
IDMFrameServiceProxy.getSqlTemplate().update(updateSql, map);
|
|
||||||
|
|
||||||
|
|
||||||
return AjaxResult.me().setSuccess(true).setMessage("业助更新成功");
|
return AjaxResult.me().setSuccess(true).setMessage("业助更新成功");
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -520,6 +422,21 @@ public class LabelController {
|
|||||||
String customno = (String)param.get("CUSTOMNO");
|
String customno = (String)param.get("CUSTOMNO");
|
||||||
String user = (String)param.get("user");
|
String user = (String)param.get("user");
|
||||||
String is_check = (String)param.get("IS_CHECK");
|
String is_check = (String)param.get("IS_CHECK");
|
||||||
|
String SALESHIPREQUESTNAME = (String)param.get("SALESHIPREQUESTNAME");
|
||||||
|
String SALESHIPREQUESTDETAILNAME = (String)param.get("SALESHIPREQUESTDETAILNAME");
|
||||||
|
String POSTSTATUS = (String)param.get("POSTSTATUS");
|
||||||
|
String MATERIALPACKINGNAME = (String)param.get("MATERIALPACKINGNAME");
|
||||||
|
|
||||||
|
String updatePackingSql ="UPDATE MATERIALPACKING SET SALESHIPREQUESTNAME = :SALESHIPREQUESTNAME, " +
|
||||||
|
"SALESHIPREQUESTDETAILNAME = :SALESHIPREQUESTDETAILNAME, " +
|
||||||
|
"POSTSTATUS = :POSTSTATUS WHERE MATERIALPACKINGNAME = :MATERIALPACKINGNAME";
|
||||||
|
Map<String, Object> bindMapPac = new HashMap<String, Object>();
|
||||||
|
bindMapPac.put("SALESHIPREQUESTNAME", SALESHIPREQUESTNAME);
|
||||||
|
bindMapPac.put("SALESHIPREQUESTDETAILNAME", SALESHIPREQUESTDETAILNAME);
|
||||||
|
bindMapPac.put("POSTSTATUS", POSTSTATUS);
|
||||||
|
bindMapPac.put("MATERIALPACKINGNAME", MATERIALPACKINGNAME);
|
||||||
|
IDMFrameServiceProxy.getSqlTemplate().update(updatePackingSql, bindMapPac);
|
||||||
|
|
||||||
|
|
||||||
SetSpecEventInfo info = new SetSpecEventInfo();
|
SetSpecEventInfo info = new SetSpecEventInfo();
|
||||||
Map<String, Object> bindMap = new HashMap<String, Object>();
|
Map<String, Object> bindMap = new HashMap<String, Object>();
|
||||||
|
@ -619,4 +619,43 @@ public class MaterialReceiveActController {
|
|||||||
}
|
}
|
||||||
return billCode;
|
return billCode;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 到货单入库过账
|
||||||
|
* 2025-05-14
|
||||||
|
* @param in receiveRequestName到货单号
|
||||||
|
* @return 返回信息
|
||||||
|
*/
|
||||||
|
@RequestMapping(value = "/commitDeliveryStockInToSAP", method = RequestMethod.POST)
|
||||||
|
public AjaxResult CommitDeliveryStockInToSAP(@RequestBody JSONObject in ) {
|
||||||
|
try {
|
||||||
|
TrackOutBoDto trackOutBoDto = JSON.toJavaObject(in, TrackOutBoDto.class);
|
||||||
|
StoreDetailDto storeDetailDto = new StoreDetailDto();
|
||||||
|
storeDetailDto.setDocumentName(trackOutBoDto.getReceiveRequestName());
|
||||||
|
storeDetailDto.setSiteName(trackOutBoDto.getSiteName());
|
||||||
|
MaterialDelivery materialDelivery = deliveryService.getByKey(storeDetailDto);
|
||||||
|
if (Objects.nonNull(materialDelivery)) {
|
||||||
|
String user = trackOutBoDto.getUser();
|
||||||
|
String opCode = trackOutBoDto.getOpCode();
|
||||||
|
String commitDate = trackOutBoDto.getCommitDate();
|
||||||
|
String siteName = trackOutBoDto.getSiteName();
|
||||||
|
toSAPServiceImpl.DeliveryToSAPMontage(materialDelivery.getDeliveryName(), siteName, user, commitDate,opCode,ReceiveTypeEnums.getsaleReturn());
|
||||||
|
// 到货单据更新状态
|
||||||
|
if (Objects.nonNull(materialDelivery.getDeliveryName())) {
|
||||||
|
DeliveryEditDto deliveryEditDto = new DeliveryEditDto();
|
||||||
|
deliveryEditDto.setDeliveryName(trackOutBoDto.getReceiveRequestName());
|
||||||
|
deliveryEditDto.setSiteName(trackOutBoDto.getSiteName());
|
||||||
|
// @TODO 完成状态下,更新为 DeliveryStateEnums.FINISH
|
||||||
|
deliveryEditDto.setDeliveryState(DeliveryStateEnums.DOING.getCode());
|
||||||
|
deliveryService.editDelivery(deliveryEditDto);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
return AjaxResult.me().setSuccess(false).setMessage("到货单:" + trackOutBoDto.getReceiveRequestName() + "不存在").setErrorCode(400);
|
||||||
|
}
|
||||||
|
} catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
return AjaxResult.me().setSuccess(false).setMessage(e.toString());
|
||||||
|
}
|
||||||
|
return AjaxResult.me().setSuccess(true);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -888,14 +888,14 @@ public class SaleOutController {
|
|||||||
MaterialshipRequest materialShipRequest = JSON.toJavaObject(in, MaterialshipRequest.class);
|
MaterialshipRequest materialShipRequest = JSON.toJavaObject(in, MaterialshipRequest.class);
|
||||||
String shipRequestName2 = materialShipRequest.getShipRequestName();
|
String shipRequestName2 = materialShipRequest.getShipRequestName();
|
||||||
//根据单据类型判断生产订单类型,如果是领料单且单据类型是复卷和返工的不卡控批次质量状态
|
//根据单据类型判断生产订单类型,如果是领料单且单据类型是复卷和返工的不卡控批次质量状态
|
||||||
String dTypeSql = "SELECT M.PRODUCTORDERTYPE,M.PRODUCTORDERNO FROM MATERIALSHIPREQUEST M WHERE M.SHIPREQUESTNAME = :SHIPREQUESTNAME";
|
String dTypeSql = "SELECT M.AUART FROM MATERIALSHIPREQUESTDETAIL M WHERE M.SHIPREQUESTNAME = :SHIPREQUESTNAME";
|
||||||
Map<String, Object> hashMap3 = new HashMap<String,Object> ();
|
Map<String, Object> hashMap3 = new HashMap<String,Object> ();
|
||||||
hashMap3.put("SHIPREQUESTNAME", shipRequestName2);
|
hashMap3.put("SHIPREQUESTNAME", shipRequestName2);
|
||||||
String productOrderType = "";
|
String productOrderType = "";
|
||||||
List<Map<String, Object>> queryForListW = new ArrayList<>();
|
List<Map<String, Object>> queryForListW = new ArrayList<>();
|
||||||
List<Map<String, Object>> queryForList3 = IDMFrameServiceProxy.getSqlTemplate().queryForList(dTypeSql, hashMap3);
|
List<Map<String, Object>> queryForList3 = IDMFrameServiceProxy.getSqlTemplate().queryForList(dTypeSql, hashMap3);
|
||||||
if (queryForList3 != null && queryForList3.size() > 0) {
|
if (queryForList3 != null && queryForList3.size() > 0) {
|
||||||
productOrderType = queryForList3.get(0).get("PRODUCTORDERTYPE") == null ? "" :queryForList3.get(0).get("PRODUCTORDERTYPE").toString();
|
productOrderType = queryForList3.get(0).get("AUART") == null ? "" :queryForList3.get(0).get("AUART").toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
// 查询工单维护表 是否有对应的生产订单
|
// 查询工单维护表 是否有对应的生产订单
|
||||||
@ -905,9 +905,8 @@ public class SaleOutController {
|
|||||||
queryForListW = IDMFrameServiceProxy.getSqlTemplate().queryForList(workSql, hashMapW);
|
queryForListW = IDMFrameServiceProxy.getSqlTemplate().queryForList(workSql, hashMapW);
|
||||||
|
|
||||||
String IsCheck = "N"; // 是否可以为不良和过期
|
String IsCheck = "N"; // 是否可以为不良和过期
|
||||||
if (("55A2-02".equals(productOrderType) || "55A2-Cxx-08".equals(productOrderType)
|
if (("ZP01".equals(productOrderType) || "ZP05".equals(productOrderType)) ||
|
||||||
|| "4455-Cxx-10".equals(productOrderType) || "4455-Cxx-01".equals(productOrderType)
|
(queryForListW != null && !queryForListW.isEmpty())) {//复卷,返工工单
|
||||||
|| "5X-Cxx-07".equals(productOrderType)) || (queryForListW != null && !queryForListW.isEmpty())) {//复卷,返工工单
|
|
||||||
IsCheck = "Y";
|
IsCheck = "Y";
|
||||||
}
|
}
|
||||||
return AjaxResult.me().setResultObj(IsCheck);
|
return AjaxResult.me().setResultObj(IsCheck);
|
||||||
|
@ -2,13 +2,32 @@ package com.cim.idm.dao;
|
|||||||
|
|
||||||
import com.cim.idm.model.CostCenter;
|
import com.cim.idm.model.CostCenter;
|
||||||
import org.apache.ibatis.annotations.Mapper;
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
|
import org.apache.ibatis.annotations.Param;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
@Component
|
@Component
|
||||||
@Mapper
|
@Mapper
|
||||||
public interface CostCenterDao {
|
public interface CostCenterDao {
|
||||||
|
|
||||||
List<CostCenter> getCostCenter();
|
List<CostCenter> getCostCenter();
|
||||||
|
List<Map<String, Object>> getUserInfo();
|
||||||
|
|
||||||
|
void updatePacking(@Param("SALESHIPREQUESTNAME") String SALESHIPREQUESTNAME,
|
||||||
|
@Param("SALESHIPREQUESTDETAILNAME") String SALESHIPREQUESTDETAILNAME,
|
||||||
|
@Param("POSTSTATUS") String POSTSTATUS,
|
||||||
|
@Param("MATERIALPACKINGNAME") String MATERIALPACKINGNAME);
|
||||||
|
|
||||||
|
void insertPackingChenk(@Param("SALESHIPREQUESTNAME") String SALESHIPREQUESTNAME,
|
||||||
|
@Param("SALESHIPREQUESTDETAILNAME") String SALESHIPREQUESTDETAILNAME,
|
||||||
|
@Param("MATERIALPACKINGNAME") String MATERIALPACKINGNAME,
|
||||||
|
@Param("SITENAME") String SITENAME,
|
||||||
|
@Param("materialSpecName") String materialSpecName,
|
||||||
|
@Param("charge") String charge,
|
||||||
|
@Param("phase") String phase,
|
||||||
|
@Param("customno") String customno,
|
||||||
|
@Param("careerAssistance") String careerAssistance,
|
||||||
|
@Param("POSTSTATUS") String POSTSTATUS);
|
||||||
}
|
}
|
||||||
|
@ -29,5 +29,9 @@ public class MaterialReceiveRequest {
|
|||||||
private String phase;
|
private String phase;
|
||||||
private String CUSTOMNO;
|
private String CUSTOMNO;
|
||||||
private String truegg;
|
private String truegg;
|
||||||
|
/**销售订单*/
|
||||||
|
private String SALESHIPREQUESTNAME;
|
||||||
|
/**销售订单行号*/
|
||||||
|
private String SALESHIPREQUESTDETAILNAME;
|
||||||
private List<com.cim.idm.wmspackage.materialpacking.management.data.MaterialPacking> boxList;
|
private List<com.cim.idm.wmspackage.materialpacking.management.data.MaterialPacking> boxList;
|
||||||
}
|
}
|
||||||
|
@ -1,9 +1,14 @@
|
|||||||
package com.cim.idm.service;
|
package com.cim.idm.service;
|
||||||
|
|
||||||
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import com.cim.idm.model.CostCenter;
|
import com.cim.idm.model.CostCenter;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
public interface CostCenterService {
|
public interface CostCenterService {
|
||||||
List<CostCenter> getCostCenter();
|
List<CostCenter> getCostCenter();
|
||||||
|
List<Map<String, Object>> getUserInfo();
|
||||||
|
|
||||||
|
void updateCareerAssistanceNew(JSONObject in);
|
||||||
}
|
}
|
||||||
|
@ -1,13 +1,20 @@
|
|||||||
package com.cim.idm.service.Impl;
|
package com.cim.idm.service.Impl;
|
||||||
|
|
||||||
|
import com.alibaba.fastjson.JSON;
|
||||||
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import com.cim.idm.dao.CostCenterDao;
|
import com.cim.idm.dao.CostCenterDao;
|
||||||
import com.cim.idm.model.CostCenter;
|
import com.cim.idm.model.CostCenter;
|
||||||
|
import com.cim.idm.model.po.MaterialReceiveRequest;
|
||||||
import com.cim.idm.service.CostCenterService;
|
import com.cim.idm.service.CostCenterService;
|
||||||
|
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.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
@Service("CostCenterService")
|
@Service("CostCenterService")
|
||||||
@Slf4j
|
@Slf4j
|
||||||
@ -19,4 +26,54 @@ public class CostCenterServiceImpl implements CostCenterService {
|
|||||||
public List<CostCenter> getCostCenter() {
|
public List<CostCenter> getCostCenter() {
|
||||||
return costCenterDao.getCostCenter();
|
return costCenterDao.getCostCenter();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<Map<String, Object>> getUserInfo() {
|
||||||
|
return costCenterDao.getUserInfo();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@Transactional(rollbackFor = Exception.class)
|
||||||
|
public void updateCareerAssistanceNew(JSONObject in) {
|
||||||
|
MaterialReceiveRequest sl = JSON.toJavaObject(in, MaterialReceiveRequest.class);
|
||||||
|
List<MaterialPacking> boxList = sl.getBoxList();
|
||||||
|
String SALESHIPREQUESTNAME = sl.getSALESHIPREQUESTNAME();
|
||||||
|
String SALESHIPREQUESTDETAILNAME = sl.getSALESHIPREQUESTDETAILNAME();
|
||||||
|
String siteName = sl.getSiteName();
|
||||||
|
// 借用人
|
||||||
|
String career_ASSISTANCE = sl.getRemark();
|
||||||
|
for (MaterialPacking materialPacking : boxList) {
|
||||||
|
// 条码
|
||||||
|
String materialPackingName = materialPacking.getMaterialPackingName();
|
||||||
|
// 原销售订单号
|
||||||
|
String saleshiprequestname = materialPacking.getSALESHIPREQUESTNAME();
|
||||||
|
// 物料编号
|
||||||
|
String materialSpecName = materialPacking.getMaterialSpecName();
|
||||||
|
// 批次号
|
||||||
|
String charge = materialPacking.getCharge();
|
||||||
|
// 阶段
|
||||||
|
String phase = materialPacking.getPHASE();
|
||||||
|
// 客户
|
||||||
|
String customno = materialPacking.getCUSTOMNO();
|
||||||
|
// 过账状态
|
||||||
|
String POSTSTATUS = "";
|
||||||
|
if (StringUtils.isEmpty(saleshiprequestname) && StringUtils.isNotEmpty(SALESHIPREQUESTNAME)){
|
||||||
|
POSTSTATUS = "0";
|
||||||
|
} else if (StringUtils.isNotEmpty(saleshiprequestname) && StringUtils.isEmpty(SALESHIPREQUESTNAME)){
|
||||||
|
POSTSTATUS = "1";
|
||||||
|
} else if (StringUtils.isNotEmpty(saleshiprequestname) && StringUtils.isNotEmpty(SALESHIPREQUESTNAME)){
|
||||||
|
POSTSTATUS = "2";
|
||||||
|
}
|
||||||
|
if (StringUtils.isEmpty(materialPacking.getCAREER_ASSISTANCE()) || materialPacking.getCAREER_ASSISTANCE().equals(career_ASSISTANCE)){
|
||||||
|
// 更新
|
||||||
|
costCenterDao.updatePacking(SALESHIPREQUESTNAME, SALESHIPREQUESTDETAILNAME, POSTSTATUS, materialPackingName);
|
||||||
|
} else {
|
||||||
|
// 新增
|
||||||
|
costCenterDao.insertPackingChenk(SALESHIPREQUESTNAME, SALESHIPREQUESTDETAILNAME,
|
||||||
|
materialPackingName, siteName, materialSpecName, charge,phase,
|
||||||
|
customno, career_ASSISTANCE,POSTSTATUS);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -15,9 +15,11 @@ import com.cim.idm.mwmsextend.materialpacking.service.MaterialPackingServiceUtil
|
|||||||
import com.cim.idm.mwmsextend.materialshiprequest.service.MaterialShipRequestServiceImpl;
|
import com.cim.idm.mwmsextend.materialshiprequest.service.MaterialShipRequestServiceImpl;
|
||||||
import com.cim.idm.service.ChargeSplitService;
|
import com.cim.idm.service.ChargeSplitService;
|
||||||
import com.cim.idm.service.InvoiceService;
|
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.MESServiceImpl;
|
||||||
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.MessageLogUtil;
|
||||||
|
import com.cim.idm.util.NCHttpUtil;
|
||||||
import com.cim.idm.util.ToSAPMessageUtil;
|
import com.cim.idm.util.ToSAPMessageUtil;
|
||||||
import com.cim.idm.utils.AjaxResult;
|
import com.cim.idm.utils.AjaxResult;
|
||||||
import com.cim.idm.utils.CodeGenerator;
|
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.core.JsonProcessingException;
|
||||||
import com.fasterxml.jackson.databind.JsonMappingException;
|
import com.fasterxml.jackson.databind.JsonMappingException;
|
||||||
import groovy.lang.Lazy;
|
import groovy.lang.Lazy;
|
||||||
|
import io.micrometer.core.instrument.util.StringUtils;
|
||||||
import org.apache.commons.collections4.MapUtils;
|
import org.apache.commons.collections4.MapUtils;
|
||||||
|
import org.quartz.SimpleTrigger;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
@ -58,7 +62,8 @@ public class InvoiceServiceImpl implements InvoiceService {
|
|||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private ToSAPServiceImpl toSAPService;
|
private ToSAPServiceImpl toSAPService;
|
||||||
|
@Autowired
|
||||||
|
private QMSService qmsService;
|
||||||
@Autowired
|
@Autowired
|
||||||
@Lazy
|
@Lazy
|
||||||
private ChargeSplitService chargeSplitService;
|
private ChargeSplitService chargeSplitService;
|
||||||
@ -3433,6 +3438,11 @@ public class InvoiceServiceImpl implements InvoiceService {
|
|||||||
// billCode=toSAPService.saleStockOut_NEW(shipRequestName, "SDK", eventUser,materialPackingKeyList);
|
// billCode=toSAPService.saleStockOut_NEW(shipRequestName, "SDK", eventUser,materialPackingKeyList);
|
||||||
billCode=saleStockOut_NEW(shipRequestName, "SDK", eventUser,materialPackingKeyList,commitDate);
|
billCode=saleStockOut_NEW(shipRequestName, "SDK", eventUser,materialPackingKeyList,commitDate);
|
||||||
untils.SaveUnDoInfo_ForSap(materialPackingKeyList, billCode, makeEventInfo);
|
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;
|
break;
|
||||||
case "08": // 委外
|
case "08": // 委外
|
||||||
case "OEM": // 委外
|
case "OEM": // 委外
|
||||||
@ -3568,4 +3578,99 @@ public class InvoiceServiceImpl implements InvoiceService {
|
|||||||
String sendData = MainData.toJSONString();
|
String sendData = MainData.toJSONString();
|
||||||
return sendData;
|
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;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -6,4 +6,26 @@
|
|||||||
select id, cost_code costCode, cost_name costName, erp_factory erpFactory, department, division
|
select id, cost_code costCode, cost_name costName, erp_factory erpFactory, department, division
|
||||||
from cost_center
|
from cost_center
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
<select id="getUserInfo" resultType="java.util.Map">
|
||||||
|
SELECT USERID, USERNAME FROM USERINFO
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<update id="updatePacking">
|
||||||
|
UPDATE MATERIALPACKING SET
|
||||||
|
SALESHIPREQUESTNAME = #{SALESHIPREQUESTNAME, jdbcType=VARCHAR},
|
||||||
|
SALESHIPREQUESTDETAILNAME = #{SALESHIPREQUESTDETAILNAME, jdbcType=VARCHAR},
|
||||||
|
POSTSTATUS = #{POSTSTATUS, jdbcType=VARCHAR}
|
||||||
|
WHERE MATERIALPACKINGNAME = #{MATERIALPACKINGNAME, jdbcType=VARCHAR}
|
||||||
|
</update>
|
||||||
|
|
||||||
|
<insert id="insertPackingChenk">
|
||||||
|
insert into MATERIALPACKINGCHECK(MATERIALPACKINGNAME,SALESHIPREQUESTNAME,
|
||||||
|
SALESHIPREQUESTDETAILNAME,SITENAME,IS_CHECK, MATERIALSPECNAME,
|
||||||
|
CHARGE,PHASE,CUSTOMNO,CAREER_ASSISTANCE,POSTSTATUS)
|
||||||
|
values(#{MATERIALPACKINGNAME, jdbcType=VARCHAR}, #{SALESHIPREQUESTNAME, jdbcType=VARCHAR},
|
||||||
|
#{SALESHIPREQUESTDETAILNAME, jdbcType=VARCHAR}, #{SITENAME, jdbcType=VARCHAR}, 'N',
|
||||||
|
#{materialSpecName, jdbcType=VARCHAR}, #{charge, jdbcType=VARCHAR}, #{phase, jdbcType=VARCHAR},
|
||||||
|
#{customno, jdbcType=VARCHAR},#{careerAssistance, jdbcType=VARCHAR}, #{POSTSTATUS, jdbcType=VARCHAR})
|
||||||
|
</insert>
|
||||||
</mapper>
|
</mapper>
|
@ -285,7 +285,7 @@
|
|||||||
</select>
|
</select>
|
||||||
|
|
||||||
<select id="getRelByDelivery" resultType="com.cim.idm.model.po.delivery.MaterialDeliveryReceive">
|
<select id="getRelByDelivery" resultType="com.cim.idm.model.po.delivery.MaterialDeliveryReceive">
|
||||||
SELECT md.DELIVERYNAME, md.DELIVERYNUM, md.RECEIVEREQUESTNAME, md.MATERIALSPECNAME, md.RECEIVEREQUESTDETAILNAME
|
SELECT md.DELIVERYNAME, md.DELIVERYNUM, md.RECEIVEREQUESTNAME, md.MATERIALSPECNAME, md.RECEIVEREQUESTDETAILNAME
|
||||||
FROM MATERIALDELIVERYRECEIVE md
|
FROM MATERIALDELIVERYRECEIVE md
|
||||||
WHERE md.DELIVERYNAME = #{dto.documentName}
|
WHERE md.DELIVERYNAME = #{dto.documentName}
|
||||||
</select>
|
</select>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user