fix:修改领料

This commit is contained in:
郭飞 2025-04-09 08:49:06 +08:00
parent 7bb38639a2
commit 1ff1690b10
2 changed files with 99 additions and 4 deletions

View File

@ -663,7 +663,7 @@ public class SaleOutController {
String sqlGetBox="SELECT m.MATERIALPACKINGNAME,m.MATERIALQUANTITY,DECODE(NVL(m.MATERIALQUANTITY2,0), 0 ,m.MATERIALQUANTITY,m.MATERIALQUANTITY2) MATERIALQUANTITY2 FROM MATERIALPACKING m \r\n" + String sqlGetBox="SELECT m.MATERIALPACKINGNAME,m.MATERIALQUANTITY,DECODE(NVL(m.MATERIALQUANTITY2,0), 0 ,m.MATERIALQUANTITY,m.MATERIALQUANTITY2) MATERIALQUANTITY2 FROM MATERIALPACKING m \r\n" +
" WHERE m.SHIPREQUESTNAME =:SHIPREQUESTNAME\r\n" + " WHERE m.SHIPREQUESTNAME =:SHIPREQUESTNAME\r\n" +
" AND m.STOCKSTATE ='Stocked'\r\n" + " AND m.STOCKSTATE ='Stocked'\r\n" +
" AND m.MATERIALQUANTITY2 >0 "; " AND m.MATERIALQUANTITY2 >0";
List<Map<String, Object>> sr = IDMFrameServiceProxy.getSqlTemplate().queryForList(sqlGetBox, hashMap); List<Map<String, Object>> sr = IDMFrameServiceProxy.getSqlTemplate().queryForList(sqlGetBox, hashMap);
if(sr.size()>0) if(sr.size()>0)
{ {

View File

@ -323,8 +323,8 @@ public class InvoiceServiceImpl implements InvoiceService {
} }
} }
materialPackingKeyList.add(materialPackingName); materialPackingKeyList.add(materialPackingName);
MaterialPackingKey materialPackingKey = new MaterialPackingKey("SDK",materialPackingName); // MaterialPackingKey materialPackingKey = new MaterialPackingKey("SDK",materialPackingName);
arrayList.add(materialPackingKey); // arrayList.add(materialPackingKey);
} }
//判断会有多少个仓库发货不同仓库需要分开走账 //判断会有多少个仓库发货不同仓库需要分开走账
StringBuffer cklx = new StringBuffer(); StringBuffer cklx = new StringBuffer();
@ -371,9 +371,74 @@ public class InvoiceServiceImpl implements InvoiceService {
if(src.size()>0 || !ERPRECEIVELOCATION.isEmpty()) { if(src.size()>0 || !ERPRECEIVELOCATION.isEmpty()) {
//new MESServiceImpl().NeedReceiveMaterialInfoSend_NEW(shipRequestName, "SDK", materialPackingKeyList); //new MESServiceImpl().NeedReceiveMaterialInfoSend_NEW(shipRequestName, "SDK", materialPackingKeyList);
billCode="Y"; billCode="Y";
String sqlZK=" SELECT\r\n" +
" t.MATERIALSPECNAME,m.MATERIALPACKINGNAME,\r\n" +
" t.ERPFACTORY,\r\n" +
" t.ERPLOCATION,\r\n" +
" m2.SHIPREQUESTDETAILTYPE,\r\n" +
" t.UNIT,\r\n" +
" m1.COSTCENTER,\r\n" +
" m1.SHIPREQUESTNAME,\r\n" +
" m1.SHIPREQUESTDETAILNAME,\r\n" +
" m1.ERPRECEIVELOCATION,\r\n" +
" m1.ERPRECEIVEFACTORY,\r\n" +
" m1.SENDSALESORDER ,m1.SENDSALESORDERDETAILNO,\r\n" +
" CASE WHEN m1.SENDSALESORDER IS NOT NULL THEN 'E' ELSE '' END SOBKZ,\r\n" +
" (\r\n" +
" SELECT\r\n" +
" RECEIVEPRODUCTIONORDERNUMBER\r\n" +
" FROM\r\n" +
" MATERIALSHIPREQUESTDETAIL m5\r\n" +
" WHERE\r\n" +
" m5.SHIPREQUESTNAME =:SHIPREQUESTNAME\r\n" +
" AND m5.MATERIALSPECNAME = t.MATERIALSPECNAME\r\n" +
" ORDER BY\r\n" +
" m5.USEDATE,\r\n" +
" m5.SHIPREQUESTDETAILNAME FETCH FIRST ROW ONLY)RECEIVEPRODUCTIONORDERNUMBER,\r\n" +
" SUM(m.QTY) AS MATERIALQUANTITY\r\n" +
" FROM \r\n" +
" MATERIALPACKINGSUB m\r\n" +
" LEFT JOIN MATERIALPACKING T ON \r\n" +
" m.MATERIALPACKINGNAME = T.MATERIALPACKINGNAME\r\n" +
" AND m.RECEIVEREQUESTNAME = T.SHIPREQUESTNAME\r\n" +
" LEFT JOIN MATERIALSHIPREQUESTDETAIL M1 \r\n" +
" ON \r\n" +
" m.RECEIVEREQUESTNAME = M1.SHIPREQUESTNAME\r\n" +
" AND m.RECEIVEREQUESTDETAILNAME = M1.SHIPREQUESTDETAILNAME\r\n" +
" LEFT JOIN MATERIALSHIPREQUEST M2 \r\n" +
" ON \r\n" +
" M1.SHIPREQUESTNAME = M2.SHIPREQUESTNAME\r\n" +
" WHERE \r\n" +
" T.SHIPREQUESTNAME = :SHIPREQUESTNAME\r\n" +
" AND T.SITENAME = :SITENAME\r\n" +
" AND T.STOCKSTATE = 'Stocked'\r\n" +
" AND T.MATERIALPACKINGNAME IN (:BOXLIST)\r\n" +
" GROUP BY\r\n" +
" t.MATERIALSPECNAME,\r\n" +
" t.ERPFACTORY,\r\n" +
" t.ERPLOCATION,\r\n" +
" m2.SHIPREQUESTDETAILTYPE,\r\n" +
" t.UNIT,\r\n" +
" m1.COSTCENTER,\r\n" +
" m1.SHIPREQUESTNAME,m1.SENDSALESORDER ,m1.SENDSALESORDERDETAILNO,\r\n" +
" m1.SHIPREQUESTDETAILNAME,\r\n" +
" m1.ERPRECEIVELOCATION,\r\n" +
" m1.ERPRECEIVEFACTORY,m.MATERIALPACKINGNAME";
// 转库到线边仓 // 转库到线边仓
// String sqlZK = "SELECT b.MATERIALPACKINGNAME FROM MATERIALPACKINGSUB b WHERE b.MATERIALPACKINGNAME IN (:BOXLIST)";
Map<String, Object> hashMapZK = new HashMap<String, Object>();
hashMapZK.put("BOXLIST", materialPackingKeyList);
hashMapZK.put("SHIPREQUESTNAME", shipRequestName);
hashMapZK.put("SITENAME", siteName);
List<Map<String, Object>> ZKqueryForList = IDMFrameServiceProxy.getSqlTemplate().queryForList(sqlZK.toString(), hashMapZK);
for (int z = 0; z < ZKqueryForList.size(); z++) {
String materialPackingName = ZKqueryForList.get(z).get("MATERIALPACKINGNAME").toString();
materialPackingKeyList.add(materialPackingName);
MaterialPackingKey materialPackingKey = new MaterialPackingKey("SDK",materialPackingName);
arrayList.add(materialPackingKey);
}
billCode = UnSourcedChangeLocation(arrayList,ERPRECEIVEFACTORY, billCode = UnSourcedChangeLocation(arrayList,ERPRECEIVEFACTORY,
ERPRECEIVELOCATION, "", eventUser ); ERPRECEIVELOCATION, "", eventUser );
@ -396,6 +461,7 @@ public class InvoiceServiceImpl implements InvoiceService {
untils.sendMaterialInfoToMES_NEW(shipRequestName, "", materialPackingKeyList); untils.sendMaterialInfoToMES_NEW(shipRequestName, "", materialPackingKeyList);
//billCode = NCWServiceImpl.SaleOut2(shipRequestName, "SDK", eventUser,materialPackingKeyList,""); //billCode = NCWServiceImpl.SaleOut2(shipRequestName, "SDK", eventUser,materialPackingKeyList,"");
// untils.SaveUnDoInfo_ForSap(materialPackingKeyList, billCode, makeEventInfo); // untils.SaveUnDoInfo_ForSap(materialPackingKeyList, billCode, makeEventInfo);
WlySaveUnDoInfo( billCode,commitDate);
} }
else else
{ {
@ -579,6 +645,35 @@ public class InvoiceServiceImpl implements InvoiceService {
return undoId; return undoId;
} }
public void WlySaveUnDoInfo( String undoid,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 unDoID=:UNDOID";
Map<String, Object> bindMap_insert = new HashMap<String, Object>();
bindMap_insert.put("UNDOID", undoid);
bindMap_insert.put("commitDate",commitDate);
IDMFrameServiceProxy.getSqlTemplate()
.update(insertUnDOMaterialPackingInfo, bindMap_insert);
}
/** /**
* 备份并清除特定发货请求的物料包装子记录 * 备份并清除特定发货请求的物料包装子记录