fix:修改领料现场仓
This commit is contained in:
parent
95d6e76402
commit
a82a288014
@ -4740,6 +4740,78 @@ public class ToSAPServiceImpl {
|
||||
|
||||
}
|
||||
|
||||
public String moveLibrary2(List materialPackingNameList, String shipRequestName, String fromErpLocation, String toErpLocation, String eventUser) throws Exception {
|
||||
StringBuilder materialPackingNames = new StringBuilder();
|
||||
materialPackingNameList.forEach(e -> {
|
||||
materialPackingNames.append("'" + e + "'").append(",");
|
||||
});
|
||||
materialPackingNames.delete(materialPackingNames.length() - 1, materialPackingNames.length());
|
||||
|
||||
StringBuilder sql = new StringBuilder();
|
||||
//编写 需要执行的SQL
|
||||
sql.append("SELECT mp.MATERIALSPECNAME ,").append(SystemPropHelper.CR)
|
||||
.append(" mp.ERPFACTORY ,").append(SystemPropHelper.CR)
|
||||
.append(" mp.ERPLOCATION ,").append(SystemPropHelper.CR)
|
||||
.append(" mp.SHIPREQUESTNAME ,").append(SystemPropHelper.CR)
|
||||
.append(" mp.SHIPREQUESTDETAILNAME ,").append(SystemPropHelper.CR)
|
||||
.append(" m.SHIPREQUESTTYPE, ").append(SystemPropHelper.CR)
|
||||
.append(" m2.UNIT ,").append(SystemPropHelper.CR)
|
||||
.append(" sum (mp.MATERIALQUANTITY ) MATERIALQUANTITY ").append(SystemPropHelper.CR)
|
||||
.append(" FROM materialpacking mp").append(SystemPropHelper.CR)
|
||||
.append("LEFT JOIN MATERIALSHIPREQUEST m").append(SystemPropHelper.CR)
|
||||
.append(" ON m.shiprequestname = mp.SHIPREQUESTNAME ").append(SystemPropHelper.CR)
|
||||
.append("LEFT JOIN MATERIALSHIPREQUESTDETAIL m2 ").append(SystemPropHelper.CR)
|
||||
.append(" ON m.shiprequestname = m2.shiprequestname").append(SystemPropHelper.CR)
|
||||
.append(" AND mp.shiprequestdetailname = m2.shiprequestdetailname").append(SystemPropHelper.CR)
|
||||
.append(" AND m2.materialspecname = mp.MATERIALSPECNAME ").append(SystemPropHelper.CR)
|
||||
.append(" WHERE mp.MATERIALPACKINGNAME IN (").append(materialPackingNames.toString()).append(") ").append(SystemPropHelper.CR)
|
||||
.append(" AND m.SHIPREQUESTNAME = :SHIPREQUESTNAME ").append(SystemPropHelper.CR)
|
||||
.append("GROUP BY mp.MATERIALSPECNAME, mp.ERPFACTORY, mp.ERPLOCATION, mp.SHIPREQUESTNAME ,mp.SHIPREQUESTDETAILNAME ,m.SHIPREQUESTTYPE,m2.UNIT ");
|
||||
Map<String, String> hashMap = new HashMap<>();
|
||||
List<Map<String, Object>> queryForList = IDMFrameServiceProxy.getSqlTemplate().queryForList(sql.toString(), hashMap);
|
||||
|
||||
String moveLibraryInfo = makeMoveLibrary(queryForList, eventUser);
|
||||
|
||||
String sapreturn = "";
|
||||
String rcode = "";
|
||||
String rmsg = "";
|
||||
String undoId = "";
|
||||
try {
|
||||
sapreturn = toSAPMessageUtil.sendHttpPost(toSAPMessageUtil.materialChangeLocationUrl, "",
|
||||
moveLibraryInfo);
|
||||
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();
|
||||
if ("S".equals(rcode)) {
|
||||
undoId = returnJsonObject.get("MBLNR").toString()+"_"+returnJsonObject.get("MJAHR").toString();//将物料凭证号与凭证年度拼在一起
|
||||
}
|
||||
} catch (Exception e) {
|
||||
log.error("WMS请求SAP:" + e.getMessage(), e);
|
||||
throw new RuntimeException("WMS请求SAP" + rmsg);
|
||||
} finally {
|
||||
// 写入message log
|
||||
ErpMessageLog erplog = new ErpMessageLog();
|
||||
erplog.setEventUser(eventUser);
|
||||
erplog.setServerName("WmsToErp");
|
||||
erplog.setEventName("PurStockIn");
|
||||
erplog.setInterfaceTime(TimeStampUtil.getCurrentTime(TimeStampUtil.FORMAT_DEFAULT));
|
||||
erplog.setMessageId(shipRequestName);
|
||||
erplog.setSendMsg2(moveLibraryInfo);
|
||||
erplog.setSendMsg(moveLibraryInfo);
|
||||
erplog.setReturnMsg2(sapreturn);
|
||||
erplog.setResultCode(rcode);
|
||||
MessageLogUtil.writeMessageLog(erplog);
|
||||
}
|
||||
|
||||
if (!"S".equals(rcode)) {
|
||||
throw new Exception("SAP返回异常" + rmsg);
|
||||
}
|
||||
return null;
|
||||
|
||||
}
|
||||
|
||||
public String makeMoveLibrary(List<Map<String, Object>> queryForList, String user) {
|
||||
if (queryForList == null || queryForList.size() < 1) {
|
||||
return "";
|
||||
|
@ -343,7 +343,13 @@ public class InvoiceServiceImpl implements InvoiceService {
|
||||
|
||||
case "01"://生产领料
|
||||
case "02"://生产补料
|
||||
|
||||
// 判断是否是现场仓
|
||||
String IsSql = "SELECT m.ERPRECEIVELOCATION,m. FROM MATERIALSHIPREQUESTDETAIL m WHERE SHIPREQUESTNAME = :SHIPREQUESTNAME";
|
||||
Map<String,Object> bpc=new HashMap<>();
|
||||
bpc.put("SHIPREQUESTNAME", shipRequestName);
|
||||
List<Map<String,Object>> receiveList = IDMFrameServiceProxy.getSqlTemplate().queryForList(IsSql, bpc);
|
||||
String ERPRECEIVELOCATION = receiveList.get(0).get("ERPRECEIVELOCATION") == null ? "" : receiveList.get(0).get("ERPRECEIVELOCATION").toString();
|
||||
String ERPLOCATION = receiveList.get(0).get("ERPLOCATION") == null ? "" : receiveList.get(0).get("ERPLOCATION").toString();
|
||||
//判断是否为MES需要接收的物料
|
||||
String sqlc=" SELECT e.ENUMVALUE FROM MES_ENUMDEFVALUE e \r\n" +
|
||||
" WHERE e.ENUMNAME ='ConfirmReceiveArea'\r\n" +
|
||||
@ -351,14 +357,18 @@ public class InvoiceServiceImpl implements InvoiceService {
|
||||
" SELECT p.AREANAME FROM MES_PRODUCTREQUEST p \r\n" +
|
||||
" WHERE p.PRODUCTREQUESTNAME =(SELECT m.RECEIVEPRODUCTIONORDERNUMBER FROM MATERIALSHIPREQUESTDETAIL m \r\n" +
|
||||
" WHERE m.SHIPREQUESTNAME=:SHIPREQUESTNAME AND RECEIVEPRODUCTIONORDERNUMBER IS NOT NULL AND ROWNUM=1))";
|
||||
Map<String,Object> bpc=new HashMap<>();
|
||||
bpc.put("SHIPREQUESTNAME", shipRequestName);
|
||||
|
||||
List<Map<String,Object>> src=IDMFrameServiceProxy.getSqlTemplate().queryForList(sqlc, bpc);
|
||||
//MES需要接收,则只抛送数据
|
||||
if(src.size()>0)
|
||||
if(!ERPRECEIVELOCATION.isEmpty())
|
||||
{
|
||||
//new MESServiceImpl().NeedReceiveMaterialInfoSend_NEW(shipRequestName, "SDK", materialPackingKeyList);
|
||||
billCode="Y";
|
||||
// 转库到线边仓
|
||||
// ToSAPServiceImpl.moveLibrary2(materialPackingKeyList, shipRequestName, ERPLOCATION, ERPRECEIVELOCATION,eventUser);
|
||||
if(src.size()>0) {
|
||||
//new MESServiceImpl().NeedReceiveMaterialInfoSend_NEW(shipRequestName, "SDK", materialPackingKeyList);
|
||||
billCode="Y";
|
||||
}
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
|
Loading…
x
Reference in New Issue
Block a user