update 辅材出库,解决出库成功后再次出库时失败的问题

This commit is contained in:
18110972313 2025-04-24 19:48:37 +08:00
parent 4256c15f5d
commit ca12615cc5

View File

@ -245,6 +245,7 @@ public class MaterialShipServiceImpl implements IMaterialShipService {
for (int i = 0; i < boxList.size(); i++) {
LinkedHashMap<String, String> boxlinkedHashMap = boxList.get(i);
String boxShipRequestName = (String) boxlinkedHashMap.get("SHIPREQUESTNAME");
String boxShipRequestDetailName = (String) boxlinkedHashMap.get("SHIPREQUESTDETAILNAME");
String materialSpecName = (String) boxlinkedHashMap.get("MATERIALSPECNAME");
String sdkId = (String) boxlinkedHashMap.get("SDK_ID");
String phase = (String) boxlinkedHashMap.get("PHASE");
@ -261,10 +262,11 @@ public class MaterialShipServiceImpl implements IMaterialShipService {
"AND M.MATERIALSPECNAME = :MATERIALSPECNAME AND (M.SDK_ID = :SDK_ID OR :SDK_ID IS NULL) AND (M.PHASE = :PHASE OR :PHASE IS NULL)\n" +
"UNION \n" +
"SELECT T.RECEIVEREQUESTNAME SHIPREQUESTNAME,T.RECEIVEREQUESTDETAILNAME SHIPREQUESTDETAILNAME , T.REQUESTQUANTITY - T.RECEIVEDQUANTITY MINQTY \n" +
"FROM MATERIALRECEIVEREQUESTDETAIL T WHERE T.RECEIVEREQUESTNAME = :SHIPREQUESTNAME AND T.REQUESTQUANTITY - T.RECEIVEDQUANTITY > 0 \n" +
"FROM MATERIALRECEIVEREQUESTDETAIL T WHERE T.RECEIVEREQUESTNAME = :SHIPREQUESTNAME AND T.RECEIVEREQUESTDETAILNAME = :SHIPREQUESTDETAILNAME AND T.REQUESTQUANTITY - T.RECEIVEDQUANTITY > 0 \n" +
"AND T.MATERIALSPECNAME = :MATERIALSPECNAME AND (T.SDK_ID = :SDK_ID OR :SDK_ID IS NULL) AND (T.PHASE = :PHASE OR :PHASE IS NULL)";
Map<String, Object> bindMap1 = new HashMap<String, Object>();
bindMap1.put("SHIPREQUESTNAME",shipRequestName);
bindMap1.put("SHIPREQUESTNAME",boxShipRequestName);
bindMap1.put("SHIPREQUESTDETAILNAME",boxShipRequestDetailName);
bindMap1.put("MATERIALSPECNAME",materialSpecName);
bindMap1.put("SDK_ID",sdkId);
bindMap1.put("PHASE",phase);
@ -331,6 +333,7 @@ public class MaterialShipServiceImpl implements IMaterialShipService {
" AND A.OQARESULTSTATE <> 'PREOQA'\r\n" +
" AND to_char(A.EXPIRINGDATE, 'yyyymmdd') >= to_char(SYSDATE, 'yyyymmdd')\r\n" +
" ORDER BY to_char(A.RECEIVETIME, 'yyyymmdd') ";
bindMap1.put("SHIPREQUESTDETAILNAME",shipRequestDetailName);
List<Map<String,Object>> list2 = IDMFrameServiceProxy.getSqlTemplate().queryForList(boxListSql, bindMap1);
if(null != list2 && list2.size() > 0){
for (Map<String, Object> map2 : list2) {
@ -648,6 +651,7 @@ public class MaterialShipServiceImpl implements IMaterialShipService {
}
}
}
//备份过账条码表的信息并删除
String bfSql = "INSERT\r\n" +
" INTO\r\n" +
@ -664,8 +668,8 @@ public class MaterialShipServiceImpl implements IMaterialShipService {
" MATERIALPACKINGSUB M\r\n" +
"WHERE\r\n" +
" M.RECEIVEREQUESTNAME = :SHIPREQUESTNAME";
String scSql = "DELETE FROM MATERIALPACKINGSUB WHERE RECEIVEREQUESTNAME = :SHIPREQUESTNAME";
IDMFrameServiceProxy.getSqlTemplate().update(bfSql, hashMap);
String scSql = "DELETE FROM MATERIALPACKINGSUB WHERE RECEIVEREQUESTNAME = :SHIPREQUESTNAME";
IDMFrameServiceProxy.getSqlTemplate().update(scSql, hashMap);
//循环过账批次
@ -746,6 +750,7 @@ public class MaterialShipServiceImpl implements IMaterialShipService {
// MaterialPackingKey materialPackingKey = new MaterialPackingKey("SDK",materialPackingName);
// arrayList.add(materialPackingKey);
}
//判断会有多少个仓库发货不同仓库需要分开走账
StringBuffer cklx = new StringBuffer();
cklx.append("SELECT DISTINCT m.ERPLOCATION FROM MATERIALPACKING m WHERE m.MATERIALPACKINGNAME IN ");
@ -929,6 +934,8 @@ public class MaterialShipServiceImpl implements IMaterialShipService {
default :
break;
}
String deleteSql = "DELETE FROM MATERIALPACKINGSUB WHERE RECEIVEREQUESTNAME = :SHIPREQUESTNAME";
IDMFrameServiceProxy.getSqlTemplate().update(deleteSql, hashMap);
return AjaxResult.me().setSuccess(true).setErrorCode(200);
}