diff --git a/zi-wms-pda/src/main/java/com/cim/idm/controller/MaterialUndoController.java b/zi-wms-pda/src/main/java/com/cim/idm/controller/MaterialUndoController.java index 1b41f7b..78e31b9 100644 --- a/zi-wms-pda/src/main/java/com/cim/idm/controller/MaterialUndoController.java +++ b/zi-wms-pda/src/main/java/com/cim/idm/controller/MaterialUndoController.java @@ -36,6 +36,7 @@ public class MaterialUndoController { String userId = undoDto.getUserId(); String flag = undoDto.getFlag(); String inv_TYPE = undoDto.getINV_TYPE(); + String lastEventName = undoDto.getLastEventName(); //根据物料凭证校验物料状态是否一致 try { Boolean checkUndoCondition = untils.CheckUndoCondition(undoId); @@ -66,12 +67,14 @@ public class MaterialUndoController { materialUndoServiceImpl.rkUndo(undoId, userId); // 入库 } else if ("Z002".equals(inv_TYPE) || "Z003".equals(inv_TYPE) || "Z004".equals(inv_TYPE)) { materialUndoServiceImpl.cprkUndo(undoId, userId);// 成品入库 - } else if (inv_TYPE.contains("ZLF")) { + } else if (inv_TYPE.contains("ZLF")) { // 出库冲销 materialUndoServiceImpl.ckUndo(undoId, userId); } else if (inv_TYPE.contains("ZLR")) { materialUndoServiceImpl.ckUndo(undoId, userId); }else if(inv_TYPE.contains("ZK")) { // 转库 materialUndoServiceImpl.zkUndo(undoId, userId); + }else if(inv_TYPE.contains("NLCC") && lastEventName.contains("调拨出库")) { // 调拨出库 + materialUndoServiceImpl.orderUndo(undoId, userId); }else { return AjaxResult.me().setSuccess(false).setMessage("单据类型不支持冲销"); } diff --git a/zi-wms-pda/src/main/java/com/cim/idm/model/MaterialUndoDto.java b/zi-wms-pda/src/main/java/com/cim/idm/model/MaterialUndoDto.java index 878a79f..3f5f2b8 100644 --- a/zi-wms-pda/src/main/java/com/cim/idm/model/MaterialUndoDto.java +++ b/zi-wms-pda/src/main/java/com/cim/idm/model/MaterialUndoDto.java @@ -12,5 +12,7 @@ public class MaterialUndoDto { private String INV_TYPE; private String userId; + + private String lastEventName; } diff --git a/zi-wms-pda/src/main/java/com/cim/idm/service/Impl/AssignAndDessignServiceImpl.java b/zi-wms-pda/src/main/java/com/cim/idm/service/Impl/AssignAndDessignServiceImpl.java index 8bba77e..bee7312 100644 --- a/zi-wms-pda/src/main/java/com/cim/idm/service/Impl/AssignAndDessignServiceImpl.java +++ b/zi-wms-pda/src/main/java/com/cim/idm/service/Impl/AssignAndDessignServiceImpl.java @@ -1,5 +1,6 @@ package com.cim.idm.service.Impl; +import com.cim.idm.framework.IDMFrameServiceProxy; import com.cim.idm.framework.data.EventInfo; import com.cim.idm.model.AssignAndDessignDto; import com.cim.idm.model.MaterialPacking; @@ -91,6 +92,33 @@ public class AssignAndDessignServiceImpl implements AssignAndDessignService { MaterialPackingServiceProxy.getMaterialPackingService() .assignShipRequest(materialPackingKeyList, eventInfo, assignShipRequestInfo); + + for (MaterialPacking materialPacking : boxList) { + String materialPackingName = materialPacking.getMaterialPackingName(); + String siteName = materialPacking.getSiteName(); + + MaterialPackingKey materialPackingKey = new MaterialPackingKey(siteName, materialPackingName); + com.cim.idm.wmspackage.materialpacking.management.data.MaterialPacking materialPacking1 = MaterialPackingServiceProxy.getMaterialPackingService().selectByKey(materialPackingKey); + + //更新备货数量 + // BigDecimal QTY = new BigDecimal(materialQuantity); + String updateSql= " UPDATE MATERIALRECEIVEREQUESTDETAIL m SET m.RECEIVEDQUANTITY = m.RECEIVEDQUANTITY + :QTY WHERE m.SITENAME = :SITENAME" + + " AND m.RECEIVEREQUESTNAME = :RECEIVEREQUESTNAME AND m.MATERIALSPECNAME = :MATERIALSPECNAME " +// + " AND (:SDK_ID IS NULL OR SDK_ID = :SDK_ID) " + + + "AND (:PHASE IS NULL OR PHASE = :PHASE) " + + "AND ROWNUM = 1 "; + Map bindMap = new HashMap(); + bindMap.put("QTY", materialPacking1.getMaterialQuantity()); + bindMap.put("SITENAME", siteName); + bindMap.put("RECEIVEREQUESTNAME", receiveRequestName); + bindMap.put("MATERIALPACKINGNAME", materialPackingName); + bindMap.put("MATERIALSPECNAME", materialPacking1.getMaterialSpecName()); +// bindMap.put("SDK_ID", sdk_id); + bindMap.put("PHASE", materialPacking1.getPHASE()); + IDMFrameServiceProxy.getSqlTemplate().update(updateSql, bindMap); + + } + break; case "Dessign": EventInfo eventInfo1 = EventInfoUtil.makeEventInfo("Dessign", userId, "解绑单据"); @@ -100,6 +128,32 @@ public class AssignAndDessignServiceImpl implements AssignAndDessignService { MaterialPackingServiceProxy.getMaterialPackingService() .assignShipRequest(materialPackingKeyList, eventInfo1, assignShipRequestInfo); + + for (MaterialPacking materialPacking : boxList) { + String materialPackingName = materialPacking.getMaterialPackingName(); + String siteName = materialPacking.getSiteName(); + + MaterialPackingKey materialPackingKey = new MaterialPackingKey(siteName, materialPackingName); + com.cim.idm.wmspackage.materialpacking.management.data.MaterialPacking materialPacking1 = MaterialPackingServiceProxy.getMaterialPackingService().selectByKey(materialPackingKey); + + + String updateSql= " UPDATE MATERIALRECEIVEREQUESTDETAIL m SET m.RECEIVEDQUANTITY = m.RECEIVEDQUANTITY - :QTY WHERE m.SITENAME = :SITENAME" + + " AND m.RECEIVEREQUESTNAME = :RECEIVEREQUESTNAME AND m.MATERIALSPECNAME = :MATERIALSPECNAME " + // + "AND (:SDK_ID IS NULL OR SDK_ID = :SDK_ID) " + + + "AND (:PHASE IS NULL OR PHASE = :PHASE)" + + " AND ROWNUM = 1 "; + Map bindMap = new HashMap(); + //bindMap.put("QTY", materialQuantity2); + bindMap.put("QTY", materialPacking1.getMaterialQuantity()); + bindMap.put("SITENAME", siteName); + bindMap.put("RECEIVEREQUESTNAME", receiveRequestName); + bindMap.put("MATERIALPACKINGNAME", materialPackingName); + bindMap.put("MATERIALSPECNAME", materialPacking1.getMaterialSpecName()); + // bindMap.put("SDK_ID", sdk_id); + bindMap.put("PHASE", materialPacking1.getPHASE()); + IDMFrameServiceProxy.getSqlTemplate().update(updateSql, bindMap); + + } break; default: break; diff --git a/zi-wms-pda/src/main/java/com/cim/idm/service/Impl/InvoiceServiceImpl.java b/zi-wms-pda/src/main/java/com/cim/idm/service/Impl/InvoiceServiceImpl.java index 837d543..8a60fb2 100644 --- a/zi-wms-pda/src/main/java/com/cim/idm/service/Impl/InvoiceServiceImpl.java +++ b/zi-wms-pda/src/main/java/com/cim/idm/service/Impl/InvoiceServiceImpl.java @@ -1813,8 +1813,8 @@ public class InvoiceServiceImpl implements InvoiceService { // BigDecimal QTY = new BigDecimal(materialQuantity); String updateSql= " UPDATE MATERIALSHIPREQUESTDETAIL m SET m.ASSIGNEDQUANTITY = m.ASSIGNEDQUANTITY + :QTY WHERE m.SITENAME = :SITENAME" + " AND m.SHIPREQUESTNAME = :SHIPREQUESTNAME AND m.MATERIALSPECNAME = :MATERIALSPECNAME " - + " AND (:SDK_ID IS NULL OR SDK_ID = :SDK_ID) " + -// "AND (:PHASE IS NULL OR PHASE = :PHASE) " + +// + " AND (:SDK_ID IS NULL OR SDK_ID = :SDK_ID) " + + + "AND (:PHASE IS NULL OR PHASE = :PHASE) " + "AND ROWNUM = 1 "; Map bindMap = new HashMap(); bindMap.put("QTY", queryForList.get(0).get("MATERIALQUANTITY").toString()); @@ -1822,7 +1822,7 @@ public class InvoiceServiceImpl implements InvoiceService { bindMap.put("SHIPREQUESTNAME", shipReuqestName); bindMap.put("MATERIALPACKINGNAME", materialPackingName); bindMap.put("MATERIALSPECNAME", materialSpecName); - bindMap.put("SDK_ID", sdk_id); +// bindMap.put("SDK_ID", sdk_id); bindMap.put("PHASE", phase); IDMFrameServiceProxy.getSqlTemplate().update(updateSql, bindMap); } @@ -3068,8 +3068,90 @@ public class InvoiceServiceImpl implements InvoiceService { String billCode = ""; switch (shipRequestType) { case "NLCC" : //STO调拨出库 - makeEventInfo.setEventName("CompletedShipRequestNLCC"); - makeEventInfo.setEventComment("CompletedShipRequestNLCC"); + + // 拆条码,查询MATERIALQUANTITY 与 MATERIALQUANTITY2是否相等,如果相等则未修改了数量,不相等则修改了数量 + //如果已修改数量,则进行拆条码 + for (int z = 0; z < packingQueryForList.size(); z++) { + String MATERIALPACKINGNAME = packingQueryForList.get(z).get("MATERIALPACKINGNAME").toString(); + Object[] bindSet = {MATERIALPACKINGNAME}; + String qtysql = "WHERE MATERIALPACKINGNAME = ?"; + List qtyQueryForList = MaterialPackingServiceProxy.getMaterialPackingService().select(qtysql, bindSet); + + String qty = new Double(qtyQueryForList.get(z).getMaterialQuantity()) == null ? "0" : String.valueOf(qtyQueryForList.get(z).getMaterialQuantity()); + + String qty2 = new Double(qtyQueryForList.get(z).getMaterialQuantity2()) == null ? "0" : String.valueOf(qtyQueryForList.get(z).getMaterialQuantity2()); + String materialPackingName = qtyQueryForList.get(z).getMaterialPackingName(); + String charge = qtyQueryForList.get(z).getCharge(); + BigDecimal bigQty = new BigDecimal(qty); + // 已拆数量 + BigDecimal bigQty2 = new BigDecimal(qty2); + + // 如果已拆数量不等于原数量,并且已拆数量为0(未拆分数量) + if(bigQty.compareTo(bigQty2) != 0 && !"0".equals(qty2)) { + // 剩余数量 + BigDecimal restQty = bigQty.subtract(bigQty2); + + // 生成新的拆分条码 + String stringBigQty2 = bigQty2.toString(); + String newPalletNo = CodeGenerator.packingGenerateCode(materialPackingName,stringBigQty2,charge); + + // 写入拆分的新条码,更新原数据库 + List boxList = new ArrayList(); +// MaterialPackingKey materialpackingKey = new MaterialPackingKey(); + MaterialPacking materialpackingNew = new MaterialPacking(); +// materialpackingKey.setSiteName("SDK"); +// materialpackingKey.setMaterialPackingName(newPalletNo); +// materialpackingNew.setKey(materialpackingKey); + + // 复制一个当前的原标签数据 + materialpackingNew.setKey(qtyQueryForList.get(z).getKey()); +// MaterialPacking materialpackingNew = qtyQueryForList.get(z); + // 设置新为标签和数量 + materialpackingNew.setMaterialPackingName(newPalletNo); + // bigQty2 转double类型 + materialpackingNew.setMaterialQuantity(bigQty2.doubleValue()); + boxList.add(qtyQueryForList.get(z)); + boxList.add(materialpackingNew); + boolean moveTransformOut = packingChargeSplit(boxList, eventUser); + if (moveTransformOut != true) { + throw new RuntimeException("修改数量拆分失败"); + } + + //记录到拆分表 + String subsql = "SELECT RECEIVEREQUESTDETAILNAME FROM MATERIALPACKINGSUB WHERE RECEIVEREQUESTNAME = :RECEIVEREQUESTNAME AND MATERIALPACKINGNAME = :MATERIALPACKINGNAME\n"; + Map subHashMap = new HashMap(); + subHashMap.put("RECEIVEREQUESTNAME", shipRequestName); + subHashMap.put("MATERIALPACKINGNAME", MATERIALPACKINGNAME); + List> ZKqueryForList = IDMFrameServiceProxy.getSqlTemplate().queryForList(subsql, subHashMap); + String preReceiverequestdetailname = ZKqueryForList.get(0).get("RECEIVEREQUESTDETAILNAME").toString(); + + String shipRequestDetailName = qtyQueryForList.get(z).getShipRequestDetailName() == null ? "" : qtyQueryForList.get(z).getShipRequestDetailName().toString(); + untils.fahuoSplit(newPalletNo, shipRequestName, preReceiverequestdetailname, bigQty2); + + // 原条码扣减拆出的数量,用剩余数量更新原条码,条码不变,数量更新 + SetEventInfo setEventInfo = new SetEventInfo(); + Map pakHashMap = new HashMap<>(); + pakHashMap.put("materialQuantity", restQty.doubleValue()); + pakHashMap.put("materialQuantity2", 0); + pakHashMap.put("shipRequestName", ""); + pakHashMap.put("shipRequestDetailName", ""); + + EventInfo eventInfo = new EventInfoUtil().makeEventInfo("备货出库调拨出拆分条码", eventUser, "拆分条码"); + setEventInfo.setUserColumns(pakHashMap); + MaterialPackingServiceProxy.getMaterialPackingService().setEvent(new MaterialPackingKey( "SDK", MATERIALPACKINGNAME), eventInfo, setEventInfo); + + // 删除被拆分的原条码数据,用拆分出的新条码覆盖,进行后面的过账,现场仓过账只过账已拆分出的数量,剩余数量的原条码不过账 + boolean deletePacking = materialPackingKeyList.remove(MATERIALPACKINGNAME); + if (deletePacking) { + materialPackingKeyList.add(newPalletNo); + } + + } + + } + + makeEventInfo.setEventName("调拨出库"); + makeEventInfo.setEventComment("备货调拨出库"); billCode=TransferStockOut_NLCC(shipRequestName, "SDK", eventUser,materialPackingKeyList,commitDate); untils.SaveUnDoInfo_ForSap(materialPackingKeyList, billCode, makeEventInfo); break; diff --git a/zi-wms-pda/src/main/java/com/cim/idm/service/Impl/MaterialShipServiceImpl.java b/zi-wms-pda/src/main/java/com/cim/idm/service/Impl/MaterialShipServiceImpl.java index 5cdb720..cf48b8e 100644 --- a/zi-wms-pda/src/main/java/com/cim/idm/service/Impl/MaterialShipServiceImpl.java +++ b/zi-wms-pda/src/main/java/com/cim/idm/service/Impl/MaterialShipServiceImpl.java @@ -839,7 +839,7 @@ public class MaterialShipServiceImpl implements IMaterialShipService { pakHashMap.put("shipRequestName", ""); pakHashMap.put("shipRequestDetailName", ""); - EventInfo eventInfo2 = new EventInfoUtil().makeEventInfo("辅材出库拆分", user, "拆分条码"); + EventInfo eventInfo2 = new EventInfoUtil().makeEventInfo("调拨出库", user, "辅材出库拆分"); setEventInfo.setUserColumns(pakHashMap); MaterialPackingServiceProxy.getMaterialPackingService().setEvent(new MaterialPackingKey( "SDK",MATERIALPACKINGNAME), eventInfo2, setEventInfo); @@ -852,7 +852,7 @@ public class MaterialShipServiceImpl implements IMaterialShipService { } } billCode=TransferStockOut_NLCC(shipRequestName, "SDK", user,materialPackingKeyList, commitDate); - //makeEventInfo = eventInfoUtil.makeEventInfo("CompleteShipRequest", eventUser, "CompleteShipRequest:"+shipRequestType); +// makeEventInfo = eventInfoUtil.makeEventInfo("CompleteShipRequest", eventUser, "CompleteShipRequest:"+shipRequestType); untils.SaveUnDoInfo_ForSap(materialPackingKeyList, billCode, eventInfo); // untils.SaveSplitUnDoInfo_ForSap(materialPackingKeyList, billCode, eventInfo); break; diff --git a/zi-wms-pda/src/main/java/com/cim/idm/service/Impl/MaterialUndoServiceImpl.java b/zi-wms-pda/src/main/java/com/cim/idm/service/Impl/MaterialUndoServiceImpl.java index f3e5b43..b1e8512 100644 --- a/zi-wms-pda/src/main/java/com/cim/idm/service/Impl/MaterialUndoServiceImpl.java +++ b/zi-wms-pda/src/main/java/com/cim/idm/service/Impl/MaterialUndoServiceImpl.java @@ -262,4 +262,82 @@ public class MaterialUndoServiceImpl implements IMaterialUndoService { MaterialReversalDao.updateReversalUnDoId(undoId); } + @Transactional + public void orderUndo (String undoId, String user) throws Exception { + + String billCode = toSAPService.cancelShipInter(undoId, user); + if (billCode == null) { + throw new GlobalException("报送ERP失败,请联系IT处理!"); + } + + EventInfo makeEventInfo = new EventInfoUtil ().makeEventInfo("MakeUndo", user, "MakeUndo"); + String condition="WHERE UNDOID =? "; + String[] bindSet={undoId}; + //根据物料凭证找到所有的待冲销数据,更新库存状态为创建 + List list = MaterialPackingServiceProxy.getMaterialPackingService().select(condition, bindSet); + Map hashMap = new HashMap (); + hashMap.put("stockState", "Stocked"); + hashMap.put("shipRequestName", ""); + SetEventInfo setEventInfo = new SetEventInfo(); + for (MaterialPacking materialPacking : list) { + MaterialPackingKey key = materialPacking.getKey(); + //获取实际发货数量 + Double materialQuantity = materialPacking.getMaterialQuantity(); + Double materialQuantity2 = materialPacking.getMaterialQuantity2(); + String shipRequestName = materialPacking.getShipRequestName(); + //判断批次现在的库存状态,如果是已出库说明Box已被该单据完全出库,从出库明细表获取信息更新数量,如果状态还是在库更新数量为原有基础上增加 + String pcSql = "MERGE INTO MATERIALPACKING T USING (SELECT MATERIALPACKINGNAME,SUM(QTY) QTY FROM \n" + + "(SELECT DISTINCT M.MATERIALPACKINGNAME,M.QTY FROM MATERIALPACKINGSUB M WHERE M.MATERIALPACKINGNAME = :MATERIALPACKINGNAME AND M.RECEIVEREQUESTNAME = :SHIPREQUESTNAME\n" + + "UNION \n" + + "SELECT DISTINCT M.MATERIALPACKINGNAME,M.QTY FROM MATERIALPACKINGSUBHISTORY M WHERE M.MATERIALPACKINGNAME = :MATERIALPACKINGNAME AND M.RECEIVEREQUESTNAME = :SHIPREQUESTNAME)\n" + + "GROUP BY MATERIALPACKINGNAME) M ON (T.MATERIALPACKINGNAME = M.MATERIALPACKINGNAME )\n" + + "WHEN MATCHED THEN UPDATE SET T.MATERIALQUANTITY = T.MATERIALQUANTITY + M.QTY"; + if ("Stocked".equals(materialPacking.getStockState())) { + pcSql = "MERGE INTO MATERIALPACKING T USING (SELECT MATERIALPACKINGNAME,SUM(QTY) QTY FROM \n" + + "(SELECT DISTINCT M.MATERIALPACKINGNAME,M.QTY FROM MATERIALPACKINGSUB M WHERE M.MATERIALPACKINGNAME = :MATERIALPACKINGNAME AND M.RECEIVEREQUESTNAME = :SHIPREQUESTNAME\n" + + "UNION \n" + + "SELECT DISTINCT M.MATERIALPACKINGNAME,M.QTY FROM MATERIALPACKINGSUBHISTORY M WHERE M.MATERIALPACKINGNAME = :MATERIALPACKINGNAME AND M.RECEIVEREQUESTNAME = :SHIPREQUESTNAME)\n" + + "GROUP BY MATERIALPACKINGNAME) M ON (T.MATERIALPACKINGNAME = M.MATERIALPACKINGNAME )\n" + + "WHEN MATCHED THEN UPDATE SET T.MATERIALQUANTITY = T.MATERIALQUANTITY + M.QTY,T.MATERIALQUANTITY2 = 0 "; + } else if ("StockOut".equals(materialPacking.getStockState())) { + pcSql = "MERGE INTO MATERIALPACKING T USING (SELECT MATERIALPACKINGNAME,SUM(QTY) QTY FROM \n" + + "(SELECT DISTINCT M.MATERIALPACKINGNAME,M.QTY FROM MATERIALPACKINGSUB M WHERE M.MATERIALPACKINGNAME = :MATERIALPACKINGNAME AND M.RECEIVEREQUESTNAME = :SHIPREQUESTNAME\n" + + "UNION \n" + + "SELECT DISTINCT M.MATERIALPACKINGNAME,M.QTY FROM MATERIALPACKINGSUBHISTORY M WHERE M.MATERIALPACKINGNAME = :MATERIALPACKINGNAME AND M.RECEIVEREQUESTNAME = :SHIPREQUESTNAME)\n" + + "GROUP BY MATERIALPACKINGNAME) M ON (T.MATERIALPACKINGNAME = M.MATERIALPACKINGNAME )\n" + + "WHEN MATCHED THEN UPDATE SET T.MATERIALQUANTITY = M.QTY,T.MATERIALQUANTITY2 = 0 "; + } +// BigDecimal fmaterialQuantity = new BigDecimal(materialQuantity); +// BigDecimal fmaterialQuantity2 = new BigDecimal(materialQuantity2); +// if (fmaterialQuantity.compareTo(fmaterialQuantity2) == 0) { +// fmaterialQuantity = BigDecimal.ZERO; +// } +// hashMap.put("materialQuantity", fmaterialQuantity); +// hashMap.put("materialQuantity2", 0); + setEventInfo.setUserColumns(hashMap); + MaterialPackingServiceProxy.getMaterialPackingService().setEvent(key, makeEventInfo, setEventInfo); + + String cxSql = "MERGE INTO MATERIALSHIPREQUESTDETAIL T USING (SELECT RECEIVEREQUESTNAME,RECEIVEREQUESTDETAILNAME,SUM(QTY) QTY FROM \r\n" + + "(SELECT DISTINCT M.RECEIVEREQUESTNAME,M.RECEIVEREQUESTDETAILNAME,M.QTY FROM MATERIALPACKINGSUB M WHERE M.MATERIALPACKINGNAME = :MATERIALPACKINGNAME\r\n" + + "UNION \r\n" + + "SELECT DISTINCT M.RECEIVEREQUESTNAME,M.RECEIVEREQUESTDETAILNAME,M.QTY FROM MATERIALPACKINGSUBHISTORY M WHERE M.MATERIALPACKINGNAME = :MATERIALPACKINGNAME)\r\n" + + "GROUP BY RECEIVEREQUESTNAME,RECEIVEREQUESTDETAILNAME) M ON (T.SHIPREQUESTNAME = M.RECEIVEREQUESTNAME AND T.SHIPREQUESTDETAILNAME = M.RECEIVEREQUESTDETAILNAME)\r\n" + + "WHEN MATCHED THEN UPDATE SET T.ASSIGNEDQUANTITY = T.ASSIGNEDQUANTITY - M.QTY,T.SALEOUTQUANTITY = T.SALEOUTQUANTITY - M.QTY"; + + + //根据当前的出库数量更新saleQty +// String sql = "SELECT M.RECEIVEREQUESTNAME,M.RECEIVEREQUESTDETAILNAME,M.QTY FROM MATERIALPACKINGSUB M WHERE M.MATERIALPACKINGNAME = :MATERIALPACKINGNAME\r\n" + +// "UNION \r\n" + +// "SELECT M.RECEIVEREQUESTNAME,M.RECEIVEREQUESTDETAILNAME,M.QTY FROM MATERIALPACKINGSUBHISTORY M WHERE M.MATERIALPACKINGNAME = :MATERIALPACKINGNAME"; + String MATERIALPACKINGNAME = materialPacking.getMaterialPackingName().toString(); + hashMap.put("MATERIALPACKINGNAME", MATERIALPACKINGNAME); + hashMap.put("SHIPREQUESTNAME", shipRequestName); + IDMFrameServiceProxy.getSqlTemplate().update(pcSql, hashMap); + IDMFrameServiceProxy.getSqlTemplate().update(cxSql, hashMap); + } + + // 更新凭证冲销状态 + MaterialReversalDao.updateReversalUnDoId(undoId); + } + }