Compare commits

..

2 Commits

9 changed files with 182 additions and 19 deletions

View File

@ -4956,7 +4956,7 @@ public class ToSAPServiceImpl {
ErpMessageLog erplog = new ErpMessageLog(); ErpMessageLog erplog = new ErpMessageLog();
erplog.setEventUser(""); erplog.setEventUser("");
erplog.setServerName("WmsToErp"); erplog.setServerName("WmsToErp");
erplog.setEventName("qms质检判定自动转库-311"); erplog.setEventName("qms质检判定自动转库311");
erplog.setId(uuid.toString()); erplog.setId(uuid.toString());
erplog.setInterfaceTime(TimeStampUtil.getCurrentTime(TimeStampUtil.FORMAT_DEFAULT)); erplog.setInterfaceTime(TimeStampUtil.getCurrentTime(TimeStampUtil.FORMAT_DEFAULT));
erplog.setMessageId(UUID.randomUUID().toString()); erplog.setMessageId(UUID.randomUUID().toString());

View File

@ -2,7 +2,9 @@ package com.cim.idm.controller;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.cim.idm.framework.util.time.TimeStampUtil;
import com.cim.idm.model.MaterialUndoDto; 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.service.Impl.MaterialUndoServiceImpl;
import com.cim.idm.utils.AjaxResult; import com.cim.idm.utils.AjaxResult;
import com.cim.idm.utils.CommonUtils; 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.RequestMethod;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.List;
/** /**
* 物料冲销控制器 * 物料冲销控制器
* @author ZXYGY17 * @author ZXYGY17
@ -38,6 +44,7 @@ public class MaterialUndoController {
String inv_TYPE = undoDto.getINV_TYPE(); String inv_TYPE = undoDto.getINV_TYPE();
String lastEventName = undoDto.getLastEventName(); String lastEventName = undoDto.getLastEventName();
String commitDate = undoDto.getCommitDate(); String commitDate = undoDto.getCommitDate();
//根据物料凭证校验物料状态是否一致 //根据物料凭证校验物料状态是否一致
try { try {
Boolean checkUndoCondition = untils.CheckUndoCondition(undoId); Boolean checkUndoCondition = untils.CheckUndoCondition(undoId);
@ -64,11 +71,12 @@ public class MaterialUndoController {
// return AjaxResult.me().setSuccess(false).setMessage("单据类型不支持冲销"); // 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)) { if ("Z001".equals(inv_TYPE) || "Z005".equals(inv_TYPE) || "Z006".equals(inv_TYPE) || "Z007".equals(inv_TYPE)) {
materialUndoServiceImpl.rkUndo(undoId, userId); // 入库 // materialUndoServiceImpl.rkUndo(undoId, userId); // 入库
materialUndoServiceImpl.cgrkUndo(undoId, userId); // 采购入库
} else if ("Z002".equals(inv_TYPE) || "Z003".equals(inv_TYPE) || "Z004".equals(inv_TYPE)) { } else if ("Z002".equals(inv_TYPE) || "Z003".equals(inv_TYPE) || "Z004".equals(inv_TYPE)) {
materialUndoServiceImpl.cprkUndo(undoId, userId);// 成品入库 materialUndoServiceImpl.cprkUndo(undoId, userId);// 成品入库
} else if (inv_TYPE.contains("ZLF")) { // 出库冲销 } else if (inv_TYPE.contains("ZLF") || "Z008".equals(inv_TYPE)) { // 出库冲销
materialUndoServiceImpl.ckUndo(undoId, userId); materialUndoServiceImpl.ckUndo(undoId, userId);
} else if (inv_TYPE.contains("ZLR")) { } else if (inv_TYPE.contains("ZLR")) {
materialUndoServiceImpl.ckUndo(undoId, userId); materialUndoServiceImpl.ckUndo(undoId, userId);

View File

@ -14,6 +14,7 @@ import com.cim.idm.exception.GlobalException;
import com.cim.idm.framework.data.EventInfo; import com.cim.idm.framework.data.EventInfo;
import com.cim.idm.model.po.MaterialReceiveRequest; import com.cim.idm.model.po.MaterialReceiveRequest;
import com.cim.idm.model.ShelfDto; 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.SDKMaterialPackingServiceImpl;
import com.cim.idm.service.impl.ToSAPServiceImpl; import com.cim.idm.service.impl.ToSAPServiceImpl;
import com.cim.idm.utils.AjaxResult; import com.cim.idm.utils.AjaxResult;
@ -234,7 +235,7 @@ public class NoInvoiceManagerContoller {
String commitDate = commitDateString + " 00:00:00"; String commitDate = commitDateString + " 00:00:00";
// NoInvoiceManagerServiceImpl.QTR(boxList,user2,commitDate,opCode); NoInvoiceManagerServiceImpl.QTR(boxList,user2,commitDate,opCode);
return AjaxResult.me().setResultObj(null); return AjaxResult.me().setResultObj(null);

View File

@ -9,6 +9,7 @@ import com.cim.idm.framework.util.sys.SystemPropHelper;
import com.cim.idm.model.ErpMessageLog; import com.cim.idm.model.ErpMessageLog;
import com.cim.idm.service.impl.ToSAPServiceImpl; import com.cim.idm.service.impl.ToSAPServiceImpl;
import com.cim.idm.utils.AjaxResult; import com.cim.idm.utils.AjaxResult;
import com.cim.idm.utils.CommonUtils;
import com.cim.idm.utils.EventInfoUtil; import com.cim.idm.utils.EventInfoUtil;
import com.cim.idm.wmsextend.generic.GenericServiceProxy; import com.cim.idm.wmsextend.generic.GenericServiceProxy;
import com.cim.idm.wmsextend.generic.errorHandler.CustomException; import com.cim.idm.wmsextend.generic.errorHandler.CustomException;
@ -63,6 +64,8 @@ public class QMSController {
@Autowired @Autowired
private ToSAPServiceImpl toSAPService; private ToSAPServiceImpl toSAPService;
private CommonUtils untils=new CommonUtils();
private static final Logger log = LoggerFactory.getLogger(QMSController.class); private static final Logger log = LoggerFactory.getLogger(QMSController.class);
// private NCWServiceImpl NCWServiceImpl = new NCWServiceImpl (); // private NCWServiceImpl NCWServiceImpl = new NCWServiceImpl ();
@ -987,11 +990,15 @@ public class QMSController {
// }else { // }else {
// billCode = NCWServiceImpl.OQZkNoInvoice(LocationBoxList, sendUser); // billCode = NCWServiceImpl.OQZkNoInvoice(LocationBoxList, sendUser);
// }
if (billCode == null || "".equals(billCode)) { if (billCode == null || "".equals(billCode)) {
throw new CustomException("ERP过账失败"); throw new CustomException("ERP过账失败");
} }
EventInfoUtil eventInfoUtil = new EventInfoUtil();
EventInfo makeEventInfo = eventInfoUtil.makeEventInfo("自动转库311", user, "qms质检自动转库311");
untils.SaveUnDoInfo_ForSap(boxList2, billCode, makeEventInfo);
} }
} }

View File

@ -777,7 +777,7 @@ public class MaterialShipServiceImpl implements IMaterialShipService {
String billCode = ""; String billCode = "";
switch (shipRequestType) { switch (shipRequestType) {
case "NLCC" : //STO调拨出库 case "NLCC" : //STO调拨出库
// 辅材出库
// 拆条码查询MATERIALQUANTITY MATERIALQUANTITY2是否相等如果相等则未修改了数量不相等则修改了数量 // 拆条码查询MATERIALQUANTITY MATERIALQUANTITY2是否相等如果相等则未修改了数量不相等则修改了数量
// 如果已修改数量则进行拆条码 // 如果已修改数量则进行拆条码
for (int z = 0; z < packingQueryForList.size(); z++) { for (int z = 0; z < packingQueryForList.size(); z++) {
@ -2045,6 +2045,7 @@ public class MaterialShipServiceImpl implements IMaterialShipService {
bindMap.put("WEIGHT", WEIGHT); bindMap.put("WEIGHT", WEIGHT);
bindMap.put("DIAMETER", DIAMETER); bindMap.put("DIAMETER", DIAMETER);
bindMap.put("shelfName", shelfName); bindMap.put("shelfName", shelfName);
bindMap.put("split", "Y");
createInfo1.setUserColumns(bindMap); createInfo1.setUserColumns(bindMap);
MaterialPackingServiceProxy.getMaterialPackingService().create(makeEventInfo, createInfo1); MaterialPackingServiceProxy.getMaterialPackingService().create(makeEventInfo, createInfo1);

View File

@ -58,6 +58,41 @@ public class MaterialUndoServiceImpl implements IMaterialUndoService {
MaterialPackingServiceProxy.getMaterialPackingService().setEvent(key, makeEventInfo, setEventInfo); MaterialPackingServiceProxy.getMaterialPackingService().setEvent(key, makeEventInfo, setEventInfo);
} }
// String sql = "UPDATE BS_MATERIALPACKINGUNDOINFO b SET b.FLAG = 'Y' WHERE b.UNDOID = :UNDOID";
// Map<String, Object> hashMap2 = new HashMap<String, Object> ();
// 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<MaterialPacking> list = MaterialPackingServiceProxy.getMaterialPackingService().select(condition, bindSet);
Map<String, Object> hashMap = new HashMap<String, Object> ();
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"; // String sql = "UPDATE BS_MATERIALPACKINGUNDOINFO b SET b.FLAG = 'Y' WHERE b.UNDOID = :UNDOID";
// Map<String, Object> hashMap2 = new HashMap<String, Object> (); // Map<String, Object> hashMap2 = new HashMap<String, Object> ();
// hashMap2.put("UNDOID", undoId); // hashMap2.put("UNDOID", undoId);
@ -277,15 +312,65 @@ public class MaterialUndoServiceImpl implements IMaterialUndoService {
String materialPackingName = list.get(i).getMaterialPackingName(); String materialPackingName = list.get(i).getMaterialPackingName();
materialPackingKeyList.add(materialPackingName); materialPackingKeyList.add(materialPackingName);
} }
String billCode = toSAPService.outOrderChancel(undoId, "SKD",user, materialPackingKeyList,commitDate);
if (billCode == null) { // String billCode = toSAPService.outOrderChancel(undoId, "SKD",user, materialPackingKeyList,commitDate);
throw new GlobalException("报送ERP失败,请联系IT处理"); // if (billCode == null) {
} // throw new GlobalException("报送ERP失败,请联系IT处理");
// }
Map<String, Object> hashMap = new HashMap<String, Object> (); Map<String, Object> hashMap = new HashMap<String, Object> ();
hashMap.put("stockState", "Stocked"); hashMap.put("stockState", "Stocked");
hashMap.put("shipRequestName", ""); hashMap.put("shipRequestName", "");
SetEventInfo setEventInfo = new SetEventInfo(); SetEventInfo setEventInfo = new SetEventInfo();
for (MaterialPacking materialPackingSplit : list) {
String MATERIALPACKINGNAME1 = materialPackingSplit.getMaterialPackingName().toString();
String CHARGE = materialPackingSplit.getCharge();
Map<String, Object> hashMapsplit = new HashMap<String, Object> ();
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<MaterialPacking> 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<String, Object> hashMapNosplit = new HashMap<String, Object> ();
//累加数量
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) { for (MaterialPacking materialPacking : list) {
MaterialPackingKey key = materialPacking.getKey(); MaterialPackingKey key = materialPacking.getKey();
//获取实际发货数量 //获取实际发货数量
@ -339,6 +424,7 @@ public class MaterialUndoServiceImpl implements IMaterialUndoService {
String MATERIALPACKINGNAME = materialPacking.getMaterialPackingName().toString(); String MATERIALPACKINGNAME = materialPacking.getMaterialPackingName().toString();
hashMap.put("MATERIALPACKINGNAME", MATERIALPACKINGNAME); hashMap.put("MATERIALPACKINGNAME", MATERIALPACKINGNAME);
hashMap.put("SHIPREQUESTNAME", shipRequestName); hashMap.put("SHIPREQUESTNAME", shipRequestName);
IDMFrameServiceProxy.getSqlTemplate().update(pcSql, hashMap); IDMFrameServiceProxy.getSqlTemplate().update(pcSql, hashMap);
IDMFrameServiceProxy.getSqlTemplate().update(cxSql, hashMap); IDMFrameServiceProxy.getSqlTemplate().update(cxSql, hashMap);
} }

View File

@ -25,7 +25,39 @@ public class NoInvoiceManagerServiceImpl {
private SDKMaterialPackingServiceImpl SDKMaterialPackingServiceImpl = new SDKMaterialPackingServiceImpl(); private SDKMaterialPackingServiceImpl SDKMaterialPackingServiceImpl = new SDKMaterialPackingServiceImpl();
@Transactional
public void QTR(List<MaterialPacking> list,String user,String commitDate,String opCode) {
EventInfo makeEventInfo = EventInfoUtil.makeEventInfo("QTR", user, "QTR", "", "");
SetEventInfo setEventInfo = new SetEventInfo();
HashMap<String, Object> hashMap = new HashMap<String,Object> ();
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<String, Object> hashMap2 = new HashMap<String,Object> ();
String materialPackingName = materialPacking.getMaterialPackingName();
MaterialPackingKey materialPackingKey = new MaterialPackingKey("SDK", materialPackingName);
hashMap2.put("MATERIALPACKINGNAME", materialPackingName);
List<Map<String, Object>> 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 @Transactional

View File

@ -1,12 +1,15 @@
package com.cim.idm.utils; package com.cim.idm.utils;
import com.cim.idm.framework.IDMFrameServiceProxy; import com.cim.idm.framework.IDMFrameServiceProxy;
import com.cim.idm.mwmsextend.materialpacking.service.MaterialPackingServiceImpl;
import com.cim.idm.wmsextend.generic.errorHandler.CustomException; import com.cim.idm.wmsextend.generic.errorHandler.CustomException;
import org.apache.commons.logging.Log; import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory; import org.apache.commons.logging.LogFactory;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.*; import java.util.*;
// gf 生成流水码 // gf 生成流水码
@ -67,6 +70,7 @@ public class CodeGenerator {
String query = "SELECT MATERIALPACKINGNAME FROM MATERIALPACKING WHERE CHARGE = :CHARGE"; String query = "SELECT MATERIALPACKINGNAME FROM MATERIALPACKING WHERE CHARGE = :CHARGE";
try { try {
Map<String, String> bindMap = new HashMap<String, String>(); Map<String, String> bindMap = new HashMap<String, String>();
bindMap.put("CHARGE", Charge); bindMap.put("CHARGE", Charge);
List<Map<String, Object>> result = IDMFrameServiceProxy.getSqlTemplate().queryForList(query, bindMap); List<Map<String, Object>> result = IDMFrameServiceProxy.getSqlTemplate().queryForList(query, bindMap);
@ -99,9 +103,10 @@ public class CodeGenerator {
Collections.sort(chargeNoList); Collections.sort(chargeNoList);
int max = Integer.parseInt(chargeNoList.get(chargeNoList.size() - 1)); int max = Integer.parseInt(chargeNoList.get(chargeNoList.size() - 1));
sequence = max + 1; sequence = max + 1;
} else if (Charge.isEmpty()) {
} }
// else if (Charge.isEmpty()) {
//
// }
// 3. 遍历结果集生成新条码并更新数据库 // 3. 遍历结果集生成新条码并更新数据库
List<Integer> idsToUpdate = new ArrayList<Integer>(); List<Integer> idsToUpdate = new ArrayList<Integer>();
@ -117,7 +122,31 @@ public class CodeGenerator {
for (int i = 0; i < parts.length - 4; i++) { // 不包括最后两个部分 for (int i = 0; i < parts.length - 4; i++) { // 不包括最后两个部分
newBasePart.append(parts[i]).append("|"); newBasePart.append(parts[i]).append("|");
} }
// 辅材出库没有批次
if(Charge.isEmpty()) {
// 生成一个新的批次
LocalDate currentDate = LocalDate.now();
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
String formattedDate = currentDate.format(formatter);
List<String> 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++); // 在第五部分后添加流水码 newBasePart.append(parts[4]).append("-").append(sequence++); // 在第五部分后添加流水码
}
// for (int i = 6; i < parts.length; i++) { // 添加最后两个部分 // for (int i = 6; i < parts.length; i++) { // 添加最后两个部分
// newBasePart.append("|").append(parts[i]); // newBasePart.append("|").append(parts[i]);
// } // }
@ -132,7 +161,6 @@ public class CodeGenerator {
return newBasePart.toString(); return newBasePart.toString();
}catch (Exception e) { }catch (Exception e) {
log.error("Failed to generate pallet number: " + e.getMessage()); log.error("Failed to generate pallet number: " + e.getMessage());
throw new RuntimeException("生成流水码错误: " + e.getMessage()); throw new RuntimeException("生成流水码错误: " + e.getMessage());

View File

@ -632,7 +632,7 @@ public void SaveUnDoInfo_ForSap(List<String> list, String undoid, EventInfo mak
// 插入undo物料包装信息 // 插入undo物料包装信息
// 此SQL语句用于插入新的记录到BS_MATERIALPACKINGUNDOINFO表中记录详细的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," + "SITENAME, MATERIALPACKINGNAME, MATERIALPACKINGTYPE, CONTENTMATERIALTYPE,"
+ "MATERIALTYPE, MATERIALSPECNAME, SUPERMATERIALPACKINGNAME, PACKINGGRADE, SUBPACKINGQUANTITY, MATERIALCREATEQUANTITY," + "MATERIALTYPE, MATERIALSPECNAME, SUPERMATERIALPACKINGNAME, PACKINGGRADE, SUBPACKINGQUANTITY, MATERIALCREATEQUANTITY,"
+ "MATERIALQUANTITY, PACKINGSTATE, OLDPACKINGSTATE, STOCKSTATE, OLDSTOCKSTATE, HOLDSTATE, AREANAME, LOCATIONNAME," + "MATERIALQUANTITY, PACKINGSTATE, OLDPACKINGSTATE, STOCKSTATE, OLDSTOCKSTATE, HOLDSTATE, AREANAME, LOCATIONNAME,"
@ -640,7 +640,7 @@ public void SaveUnDoInfo_ForSap(List<String> list, String undoid, EventInfo mak
+ "LASTEVENTCOMMENT, CREATETIME, CREATEUSER, RECEIVEREQUESTNAME, RECEIVEREQUESTDETAILNAME," + "LASTEVENTCOMMENT, CREATETIME, CREATEUSER, RECEIVEREQUESTNAME, RECEIVEREQUESTDETAILNAME,"
+ "MAKEDATE, RECEIVEACTNO, STOCKINTYPE, RECEIVETIME, RECEIVEUSER, SHIPREQUESTNAME, SHIPREQUESTDETAILNAME, SHIPTIME," + "MAKEDATE, RECEIVEACTNO, STOCKINTYPE, RECEIVETIME, RECEIVEUSER, SHIPREQUESTNAME, SHIPREQUESTDETAILNAME, SHIPTIME,"
+ "SHIPUSER, REASONCODETYPE, OQARESULTSTATE, OQARESULT, ERPLOCATION, ERPFACTORY, REASONCODE, CHARGE, SUPPLIERNAME,ETCSTATE,ERPEVENTTIME,NPFLAG)" + "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," + "SITENAME, MATERIALPACKINGNAME, MATERIALPACKINGTYPE, CONTENTMATERIALTYPE,"
+ "MATERIALTYPE, MATERIALSPECNAME, SUPERMATERIALPACKINGNAME, PACKINGGRADE, SUBPACKINGQUANTITY, MATERIALCREATEQUANTITY," + "MATERIALTYPE, MATERIALSPECNAME, SUPERMATERIALPACKINGNAME, PACKINGGRADE, SUBPACKINGQUANTITY, MATERIALCREATEQUANTITY,"
+ "DECODE(MATERIALQUANTITY2,0,MATERIALQUANTITY,MATERIALQUANTITY2) MATERIALQUANTITY, PACKINGSTATE, OLDPACKINGSTATE, STOCKSTATE, OLDSTOCKSTATE, HOLDSTATE, AREANAME, LOCATIONNAME," + "DECODE(MATERIALQUANTITY2,0,MATERIALQUANTITY,MATERIALQUANTITY2) MATERIALQUANTITY, PACKINGSTATE, OLDPACKINGSTATE, STOCKSTATE, OLDSTOCKSTATE, HOLDSTATE, AREANAME, LOCATIONNAME,"