From 9860c5eff48c441d486f0a8b0c184371b056b586 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=83=AD=E9=A3=9E?= Date: Fri, 23 May 2025 09:40:55 +0800 Subject: [PATCH] =?UTF-8?q?fix:=E8=87=AA=E5=8A=A8=E8=BD=AC=E4=BB=93=20?= =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=86=B2=E9=94=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../idm/service/impl/ToSAPServiceImpl.java | 2 +- .../controller/MaterialUndoController.java | 14 ++- .../controller/NoInvoiceManagerContoller.java | 3 +- .../com/cim/idm/controller/QMSController.java | 11 ++- .../service/Impl/MaterialShipServiceImpl.java | 3 +- .../service/Impl/MaterialUndoServiceImpl.java | 94 ++++++++++++++++++- .../Impl/NoInvoiceManagerServiceImpl.java | 34 ++++++- .../java/com/cim/idm/utils/CodeGenerator.java | 36 ++++++- .../java/com/cim/idm/utils/CommonUtils.java | 4 +- 9 files changed, 182 insertions(+), 19 deletions(-) diff --git a/zi-wms-inf/src/main/java/com/cim/idm/service/impl/ToSAPServiceImpl.java b/zi-wms-inf/src/main/java/com/cim/idm/service/impl/ToSAPServiceImpl.java index 10a5261..bef4234 100644 --- a/zi-wms-inf/src/main/java/com/cim/idm/service/impl/ToSAPServiceImpl.java +++ b/zi-wms-inf/src/main/java/com/cim/idm/service/impl/ToSAPServiceImpl.java @@ -4941,7 +4941,7 @@ public class ToSAPServiceImpl { ErpMessageLog erplog = new ErpMessageLog(); erplog.setEventUser(""); erplog.setServerName("WmsToErp"); - erplog.setEventName("qms质检判定自动转库-311"); + erplog.setEventName("qms质检判定自动转库311"); erplog.setId(uuid.toString()); erplog.setInterfaceTime(TimeStampUtil.getCurrentTime(TimeStampUtil.FORMAT_DEFAULT)); erplog.setMessageId(UUID.randomUUID().toString()); 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 f7fc030..5799526 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 @@ -2,7 +2,9 @@ package com.cim.idm.controller; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; +import com.cim.idm.framework.util.time.TimeStampUtil; import com.cim.idm.model.MaterialUndoDto; +import com.cim.idm.mwmsextend.materialpacking.service.MaterialPackingServiceImpl; import com.cim.idm.service.Impl.MaterialUndoServiceImpl; import com.cim.idm.utils.AjaxResult; import com.cim.idm.utils.CommonUtils; @@ -13,6 +15,10 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RestController; +import java.time.LocalDate; +import java.time.format.DateTimeFormatter; +import java.util.List; + /** * 物料冲销控制器 * @author ZXYGY17 @@ -38,6 +44,7 @@ public class MaterialUndoController { String inv_TYPE = undoDto.getINV_TYPE(); String lastEventName = undoDto.getLastEventName(); String commitDate = undoDto.getCommitDate(); + //根据物料凭证校验物料状态是否一致 try { Boolean checkUndoCondition = untils.CheckUndoCondition(undoId); @@ -64,11 +71,12 @@ public class MaterialUndoController { // return AjaxResult.me().setSuccess(false).setMessage("单据类型不支持冲销"); // } - if ("Z001".equals(inv_TYPE) || "Z005".equals(inv_TYPE) || "Z006".equals(inv_TYPE) || "Z007".equals(inv_TYPE) || "Z008".equals(inv_TYPE)) { - materialUndoServiceImpl.rkUndo(undoId, userId); // 入库 + if ("Z001".equals(inv_TYPE) || "Z005".equals(inv_TYPE) || "Z006".equals(inv_TYPE) || "Z007".equals(inv_TYPE)) { +// materialUndoServiceImpl.rkUndo(undoId, userId); // 入库 + materialUndoServiceImpl.cgrkUndo(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") || "Z008".equals(inv_TYPE)) { // 出库冲销 materialUndoServiceImpl.ckUndo(undoId, userId); } else if (inv_TYPE.contains("ZLR")) { materialUndoServiceImpl.ckUndo(undoId, userId); diff --git a/zi-wms-pda/src/main/java/com/cim/idm/controller/NoInvoiceManagerContoller.java b/zi-wms-pda/src/main/java/com/cim/idm/controller/NoInvoiceManagerContoller.java index 4d02215..d1f30f1 100644 --- a/zi-wms-pda/src/main/java/com/cim/idm/controller/NoInvoiceManagerContoller.java +++ b/zi-wms-pda/src/main/java/com/cim/idm/controller/NoInvoiceManagerContoller.java @@ -14,6 +14,7 @@ import com.cim.idm.exception.GlobalException; import com.cim.idm.framework.data.EventInfo; import com.cim.idm.model.po.MaterialReceiveRequest; import com.cim.idm.model.ShelfDto; +import com.cim.idm.service.Impl.NoInvoiceManagerServiceImpl; import com.cim.idm.service.Impl.SDKMaterialPackingServiceImpl; import com.cim.idm.service.impl.ToSAPServiceImpl; import com.cim.idm.utils.AjaxResult; @@ -234,7 +235,7 @@ public class NoInvoiceManagerContoller { String commitDate = commitDateString + " 00:00:00"; -// NoInvoiceManagerServiceImpl.QTR(boxList,user2,commitDate,opCode); + NoInvoiceManagerServiceImpl.QTR(boxList,user2,commitDate,opCode); return AjaxResult.me().setResultObj(null); diff --git a/zi-wms-pda/src/main/java/com/cim/idm/controller/QMSController.java b/zi-wms-pda/src/main/java/com/cim/idm/controller/QMSController.java index 4ff10b3..78a9610 100644 --- a/zi-wms-pda/src/main/java/com/cim/idm/controller/QMSController.java +++ b/zi-wms-pda/src/main/java/com/cim/idm/controller/QMSController.java @@ -9,6 +9,7 @@ import com.cim.idm.framework.util.sys.SystemPropHelper; import com.cim.idm.model.ErpMessageLog; import com.cim.idm.service.impl.ToSAPServiceImpl; import com.cim.idm.utils.AjaxResult; +import com.cim.idm.utils.CommonUtils; import com.cim.idm.utils.EventInfoUtil; import com.cim.idm.wmsextend.generic.GenericServiceProxy; import com.cim.idm.wmsextend.generic.errorHandler.CustomException; @@ -63,6 +64,8 @@ public class QMSController { @Autowired private ToSAPServiceImpl toSAPService; + private CommonUtils untils=new CommonUtils(); + private static final Logger log = LoggerFactory.getLogger(QMSController.class); // private NCWServiceImpl NCWServiceImpl = new NCWServiceImpl (); @@ -922,7 +925,7 @@ public class QMSController { //throw new CustomException("未维护转库对应关系"); }else { hashMap3.put("erpLocation", queryForList2.get(0).get("OKERPLOCATION")); -// hashMap3.put("locationName", queryForList2.get(0).get("OKSTORAGENAME")); +// hashMap3.put("locationName", queryForList2.get(0).get("OKSTORAGENAME")); mpList.add(new MaterialPackingKey( queryForList.get(0).get("SITENAME").toString(), queryForList.get(0).get("MATERIALPACKINGNAME").toString())); @@ -987,11 +990,15 @@ public class QMSController { // }else { // billCode = NCWServiceImpl.OQZkNoInvoice(LocationBoxList, sendUser); -// } if (billCode == null || "".equals(billCode)) { throw new CustomException("ERP过账失败!"); } + + EventInfoUtil eventInfoUtil = new EventInfoUtil(); + EventInfo makeEventInfo = eventInfoUtil.makeEventInfo("自动转库311", user, "qms质检自动转库311"); + untils.SaveUnDoInfo_ForSap(boxList2, billCode, makeEventInfo); + } } 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 c0435cb..465aa58 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 @@ -777,7 +777,7 @@ public class MaterialShipServiceImpl implements IMaterialShipService { String billCode = ""; switch (shipRequestType) { case "NLCC" : //STO调拨出库 - + // 辅材出库 // 拆条码,查询MATERIALQUANTITY 与 MATERIALQUANTITY2是否相等,如果相等则未修改了数量,不相等则修改了数量 // 如果已修改数量,则进行拆条码 for (int z = 0; z < packingQueryForList.size(); z++) { @@ -2045,6 +2045,7 @@ public class MaterialShipServiceImpl implements IMaterialShipService { bindMap.put("WEIGHT", WEIGHT); bindMap.put("DIAMETER", DIAMETER); bindMap.put("shelfName", shelfName); + bindMap.put("split", "Y"); createInfo1.setUserColumns(bindMap); MaterialPackingServiceProxy.getMaterialPackingService().create(makeEventInfo, createInfo1); 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 eaecb86..aa13ed3 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 @@ -58,6 +58,41 @@ public class MaterialUndoServiceImpl implements IMaterialUndoService { MaterialPackingServiceProxy.getMaterialPackingService().setEvent(key, makeEventInfo, setEventInfo); } +// String sql = "UPDATE BS_MATERIALPACKINGUNDOINFO b SET b.FLAG = 'Y' WHERE b.UNDOID = :UNDOID"; +// Map hashMap2 = new HashMap (); +// hashMap2.put("UNDOID", undoId); +// IDMFrameServiceProxy.getSqlTemplate().update(sql, hashMap2); + // 更新凭证冲销状态 + MaterialReversalDao.updateReversalUnDoId(undoId); + } + + /** + * 采购入库冲销 + * @param undoId + * @param user + */ + @Transactional + public void cgrkUndo (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", "Created"); + SetEventInfo setEventInfo = new SetEventInfo(); + setEventInfo.setUserColumns(hashMap); + for (MaterialPacking materialPacking : list) { + MaterialPackingKey key = materialPacking.getKey(); + MaterialPackingServiceProxy.getMaterialPackingService().setEvent(key, makeEventInfo, setEventInfo); + } + // String sql = "UPDATE BS_MATERIALPACKINGUNDOINFO b SET b.FLAG = 'Y' WHERE b.UNDOID = :UNDOID"; // Map hashMap2 = new HashMap (); // hashMap2.put("UNDOID", undoId); @@ -277,15 +312,65 @@ public class MaterialUndoServiceImpl implements IMaterialUndoService { String materialPackingName = list.get(i).getMaterialPackingName(); materialPackingKeyList.add(materialPackingName); } - String billCode = toSAPService.outOrderChancel(undoId, "SKD",user, materialPackingKeyList,commitDate); - if (billCode == null) { - throw new GlobalException("报送ERP失败,请联系IT处理!"); - } + +// String billCode = toSAPService.outOrderChancel(undoId, "SKD",user, materialPackingKeyList,commitDate); +// if (billCode == null) { +// throw new GlobalException("报送ERP失败,请联系IT处理!"); +// } Map hashMap = new HashMap (); hashMap.put("stockState", "Stocked"); hashMap.put("shipRequestName", ""); SetEventInfo setEventInfo = new SetEventInfo(); + + + for (MaterialPacking materialPackingSplit : list) { + + String MATERIALPACKINGNAME1 = materialPackingSplit.getMaterialPackingName().toString(); + String CHARGE = materialPackingSplit.getCharge(); + + Map hashMapsplit = new HashMap (); + hashMapsplit.put("MATERIALPACKINGNAME", MATERIALPACKINGNAME1); + // 如果是拆分批次 + if ("Y".equals(materialPackingSplit.getSplit())) { + + // 如果不是辅材出库,则合并批次数量并删除拆分的批次和sub + if(!CHARGE.isEmpty()) { + // 拆分的批次数量 + Double spitMaterialQuantity = materialPackingSplit.getMaterialQuantity(); + // 查出非拆分的原批次 + String NsplitCondition="WHERE charge =? AND split IS NULL"; + String[] NspliBindSet={CHARGE}; + //根据物料凭证找到所有的待冲销数据,更新库存状态为创建 + List noSplitList = MaterialPackingServiceProxy.getMaterialPackingService().select(NsplitCondition, NspliBindSet); + String NoSMaterialPackingName = noSplitList.get(0).getMaterialPackingName(); + + // 存在原批次 + if(!NoSMaterialPackingName.isEmpty()) { + MaterialPackingKey noSKey = noSplitList.get(0).getKey(); + // 原批次数量 + Double NoPMaterialQuantity = noSplitList.get(0).getMaterialQuantity(); + Map hashMapNosplit = new HashMap (); + + //累加数量 + hashMapNosplit.put("materialQuantity", NoPMaterialQuantity + spitMaterialQuantity); + setEventInfo.setUserColumns(hashMapNosplit); + MaterialPackingServiceProxy.getMaterialPackingService().setEvent(noSKey, makeEventInfo, setEventInfo); + } + + + String delSplitSql = "DELETE FROM MATERIALPACKING WHERE MATERIALPACKINGNAME = :MATERIALPACKINGNAME"; + // 删除拆分出的批次 + IDMFrameServiceProxy.getSqlTemplate().update(delSplitSql, hashMapsplit); + } + //如果是辅材、更新为在库,删除sub,不是辅材 删除sub + String delSubSql = "DELETE FROM MATERIALPACKINGSUB WHERE MATERIALPACKINGNAME = :MATERIALPACKINGNAME"; + IDMFrameServiceProxy.getSqlTemplate().update(delSubSql, hashMapsplit); + + } + } + + for (MaterialPacking materialPacking : list) { MaterialPackingKey key = materialPacking.getKey(); //获取实际发货数量 @@ -339,6 +424,7 @@ public class MaterialUndoServiceImpl implements IMaterialUndoService { String MATERIALPACKINGNAME = materialPacking.getMaterialPackingName().toString(); hashMap.put("MATERIALPACKINGNAME", MATERIALPACKINGNAME); hashMap.put("SHIPREQUESTNAME", shipRequestName); + IDMFrameServiceProxy.getSqlTemplate().update(pcSql, hashMap); IDMFrameServiceProxy.getSqlTemplate().update(cxSql, hashMap); } diff --git a/zi-wms-pda/src/main/java/com/cim/idm/service/Impl/NoInvoiceManagerServiceImpl.java b/zi-wms-pda/src/main/java/com/cim/idm/service/Impl/NoInvoiceManagerServiceImpl.java index 7b1412e..f5cff0e 100644 --- a/zi-wms-pda/src/main/java/com/cim/idm/service/Impl/NoInvoiceManagerServiceImpl.java +++ b/zi-wms-pda/src/main/java/com/cim/idm/service/Impl/NoInvoiceManagerServiceImpl.java @@ -25,7 +25,39 @@ public class NoInvoiceManagerServiceImpl { private SDKMaterialPackingServiceImpl SDKMaterialPackingServiceImpl = new SDKMaterialPackingServiceImpl(); - + @Transactional + public void QTR(List list,String user,String commitDate,String opCode) { + EventInfo makeEventInfo = EventInfoUtil.makeEventInfo("QTR", user, "QTR", "", ""); + SetEventInfo setEventInfo = new SetEventInfo(); + HashMap hashMap = new HashMap (); + hashMap.put("StockState", "Stocked"); + hashMap.put("packingState","Released"); + hashMap.put("oqaResultState","END"); + hashMap.put("oqaResult","OK"); + hashMap.put("packingGrade","OK"); + for (MaterialPacking materialPacking : list) { + //判断标签是否存在 + String sql = "SELECT * FROM MATERIALPACKING m WHERE MATERIALPACKINGNAME = :MATERIALPACKINGNAME AND STOCKSTATE <> 'Stocked' "; + Map hashMap2 = new HashMap (); + String materialPackingName = materialPacking.getMaterialPackingName(); + MaterialPackingKey materialPackingKey = new MaterialPackingKey("SDK", materialPackingName); + hashMap2.put("MATERIALPACKINGNAME", materialPackingName); + List> queryForList = IDMFrameServiceProxy.getSqlTemplate().queryForList(sql, hashMap2); + if (queryForList == null || queryForList.size() < 1) { + throw new GlobalException(materialPackingName + "标签未有系统流转记录!"); + } + hashMap.put("locationName", materialPacking.getLocationName()); + hashMap.put("erpFactory", materialPacking.getErpFactory()); + hashMap.put("erpLocation", materialPacking.getErpLocation()); + setEventInfo.setObjectValueUserColumns(hashMap); + MaterialPackingServiceProxy.getMaterialPackingService().setEvent(materialPackingKey, makeEventInfo, setEventInfo); + } + String undoid = ""; +// undoid = NCWServiceImpl.qtrNoInvoice(list,user,commitDate,opCode); + SDKMaterialPackingServiceImpl.updateUndoIdByList(list, undoid, makeEventInfo,opCode); + //更新库存状态 + SDKMaterialPackingServiceImpl.SaveUnDoInfo( undoid,commitDate); + } @Transactional diff --git a/zi-wms-pda/src/main/java/com/cim/idm/utils/CodeGenerator.java b/zi-wms-pda/src/main/java/com/cim/idm/utils/CodeGenerator.java index c6fe240..ea0bb77 100644 --- a/zi-wms-pda/src/main/java/com/cim/idm/utils/CodeGenerator.java +++ b/zi-wms-pda/src/main/java/com/cim/idm/utils/CodeGenerator.java @@ -1,12 +1,15 @@ package com.cim.idm.utils; import com.cim.idm.framework.IDMFrameServiceProxy; +import com.cim.idm.mwmsextend.materialpacking.service.MaterialPackingServiceImpl; import com.cim.idm.wmsextend.generic.errorHandler.CustomException; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.springframework.stereotype.Component; import java.text.SimpleDateFormat; +import java.time.LocalDate; +import java.time.format.DateTimeFormatter; import java.util.*; // gf 生成流水码 @@ -67,6 +70,7 @@ public class CodeGenerator { String query = "SELECT MATERIALPACKINGNAME FROM MATERIALPACKING WHERE CHARGE = :CHARGE"; try { + Map bindMap = new HashMap(); bindMap.put("CHARGE", Charge); List> result = IDMFrameServiceProxy.getSqlTemplate().queryForList(query, bindMap); @@ -99,9 +103,10 @@ public class CodeGenerator { Collections.sort(chargeNoList); int max = Integer.parseInt(chargeNoList.get(chargeNoList.size() - 1)); sequence = max + 1; - } else if (Charge.isEmpty()) { - } +// else if (Charge.isEmpty()) { +// +// } // 3. 遍历结果集,生成新条码并更新数据库 List idsToUpdate = new ArrayList(); @@ -117,7 +122,31 @@ public class CodeGenerator { for (int i = 0; i < parts.length - 4; i++) { // 不包括最后两个部分 newBasePart.append(parts[i]).append("|"); } - newBasePart.append(parts[4]).append("-").append(sequence++); // 在第五部分后添加流水码 + + // 辅材出库没有批次 + if(Charge.isEmpty()) { +// 生成一个新的批次 + LocalDate currentDate = LocalDate.now(); + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); + String formattedDate = currentDate.format(formatter); + List boxIDs = MaterialPackingServiceImpl.generateBoxID("LabelId", "SDK", + 1 + "" + , formattedDate, "SH", "1010"); + // 打印boxIDs信息 + System.out.println("boxIDs:" + boxIDs + formattedDate); + + //生成3位随机数 + // 计算哈希值并取绝对值 + int hash = Math.abs(currentDate.toString().hashCode()); + // 取后3位(范围 000-999) + int randomNumber = hash % 1000; + // 确保结果为3位数(补零) + String formatted = String.format("%03d", randomNumber); + newBasePart.append(boxIDs.get(0)).append("-").append(formatted); // 在第五部分后添加流水码 + }else { + newBasePart.append(parts[4]).append("-").append(sequence++); // 在第五部分后添加流水码 + } + // for (int i = 6; i < parts.length; i++) { // 添加最后两个部分 // newBasePart.append("|").append(parts[i]); // } @@ -132,7 +161,6 @@ public class CodeGenerator { return newBasePart.toString(); - }catch (Exception e) { log.error("Failed to generate pallet number: " + e.getMessage()); throw new RuntimeException("生成流水码错误: " + e.getMessage()); diff --git a/zi-wms-pda/src/main/java/com/cim/idm/utils/CommonUtils.java b/zi-wms-pda/src/main/java/com/cim/idm/utils/CommonUtils.java index 8bfd1dc..2642417 100644 --- a/zi-wms-pda/src/main/java/com/cim/idm/utils/CommonUtils.java +++ b/zi-wms-pda/src/main/java/com/cim/idm/utils/CommonUtils.java @@ -632,7 +632,7 @@ public void SaveUnDoInfo_ForSap(List list, String undoid, EventInfo mak // 插入undo物料包装信息 // 此SQL语句用于插入新的记录到BS_MATERIALPACKINGUNDOINFO表中,记录详细的undo信息 - String insertUnDOMaterialPackingInfo = "insert into BS_MATERIALPACKINGUNDOINFO (unDoID,preundoid,UNDODETAILNAME,undoidstate,UNDOIDDATE," + String insertUnDOMaterialPackingInfo = "insert into BS_MATERIALPACKINGUNDOINFO (unDoID,preundoid,UNDODETAILNAME,undoidstate,UNDOIDDATE,PREERPLOCATION,PRELOCATIONNAME," + "SITENAME, MATERIALPACKINGNAME, MATERIALPACKINGTYPE, CONTENTMATERIALTYPE," + "MATERIALTYPE, MATERIALSPECNAME, SUPERMATERIALPACKINGNAME, PACKINGGRADE, SUBPACKINGQUANTITY, MATERIALCREATEQUANTITY," + "MATERIALQUANTITY, PACKINGSTATE, OLDPACKINGSTATE, STOCKSTATE, OLDSTOCKSTATE, HOLDSTATE, AREANAME, LOCATIONNAME," @@ -640,7 +640,7 @@ public void SaveUnDoInfo_ForSap(List list, String undoid, EventInfo mak + "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,'Created' as undoidstate,:UNDOIDDATE AS UNDOIDDATE," // + + "select unDoID,'' as preundoid,UNDODETAILNAME,'Created' as undoidstate,:UNDOIDDATE AS UNDOIDDATE, PREERPLOCATION,PRELOCATIONNAME," + "SITENAME, MATERIALPACKINGNAME, MATERIALPACKINGTYPE, CONTENTMATERIALTYPE," + "MATERIALTYPE, MATERIALSPECNAME, SUPERMATERIALPACKINGNAME, PACKINGGRADE, SUBPACKINGQUANTITY, MATERIALCREATEQUANTITY," + "DECODE(MATERIALQUANTITY2,0,MATERIALQUANTITY,MATERIALQUANTITY2) MATERIALQUANTITY, PACKINGSTATE, OLDPACKINGSTATE, STOCKSTATE, OLDSTOCKSTATE, HOLDSTATE, AREANAME, LOCATIONNAME,"