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) {
|
public String makeMoveLibrary(List<Map<String, Object>> queryForList, String user) {
|
||||||
if (queryForList == null || queryForList.size() < 1) {
|
if (queryForList == null || queryForList.size() < 1) {
|
||||||
return "";
|
return "";
|
||||||
|
@ -343,7 +343,13 @@ public class InvoiceServiceImpl implements InvoiceService {
|
|||||||
|
|
||||||
case "01"://生产领料
|
case "01"://生产领料
|
||||||
case "02"://生产补料
|
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需要接收的物料
|
//判断是否为MES需要接收的物料
|
||||||
String sqlc=" SELECT e.ENUMVALUE FROM MES_ENUMDEFVALUE e \r\n" +
|
String sqlc=" SELECT e.ENUMVALUE FROM MES_ENUMDEFVALUE e \r\n" +
|
||||||
" WHERE e.ENUMNAME ='ConfirmReceiveArea'\r\n" +
|
" WHERE e.ENUMNAME ='ConfirmReceiveArea'\r\n" +
|
||||||
@ -351,15 +357,19 @@ public class InvoiceServiceImpl implements InvoiceService {
|
|||||||
" SELECT p.AREANAME FROM MES_PRODUCTREQUEST p \r\n" +
|
" SELECT p.AREANAME FROM MES_PRODUCTREQUEST p \r\n" +
|
||||||
" WHERE p.PRODUCTREQUESTNAME =(SELECT m.RECEIVEPRODUCTIONORDERNUMBER FROM MATERIALSHIPREQUESTDETAIL m \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))";
|
" 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);
|
List<Map<String,Object>> src=IDMFrameServiceProxy.getSqlTemplate().queryForList(sqlc, bpc);
|
||||||
//MES需要接收,则只抛送数据
|
//MES需要接收,则只抛送数据
|
||||||
if(src.size()>0)
|
if(!ERPRECEIVELOCATION.isEmpty())
|
||||||
{
|
{
|
||||||
|
// 转库到线边仓
|
||||||
|
// ToSAPServiceImpl.moveLibrary2(materialPackingKeyList, shipRequestName, ERPLOCATION, ERPRECEIVELOCATION,eventUser);
|
||||||
|
if(src.size()>0) {
|
||||||
//new MESServiceImpl().NeedReceiveMaterialInfoSend_NEW(shipRequestName, "SDK", materialPackingKeyList);
|
//new MESServiceImpl().NeedReceiveMaterialInfoSend_NEW(shipRequestName, "SDK", materialPackingKeyList);
|
||||||
billCode="Y";
|
billCode="Y";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
billCode=ProductionStockOut_NEW(shipRequestName, "SDK", eventUser,materialPackingKeyList);
|
billCode=ProductionStockOut_NEW(shipRequestName, "SDK", eventUser,materialPackingKeyList);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user