fix:修改成品入库如果是非质检过账 为311质检为321

This commit is contained in:
郭飞 2025-05-24 17:26:36 +08:00
parent 59c6846ece
commit 75f40226cf
8 changed files with 260 additions and 99 deletions

View File

@ -5131,6 +5131,166 @@ public class ToSAPServiceImpl {
return undoId;
}
//成品入库-无来源转库过账-已质检323非质检311
public String FGStockNoSourceChangeLocation(List<MaterialPackingKey> all,
String aimFactory,
String aimERPlocation,
String aimLocationName,
String user, String commitDate) throws Exception {
String rcode;
String undoId = "";
String rmsg = null;
StringBuffer sql = new StringBuffer();
sql
.append(" SELECT ").append(SystemPropHelper.CR)
.append(" MP.MATERIALSPECNAME, ").append(SystemPropHelper.CR)
.append(" MP.ERPFACTORY , ").append(SystemPropHelper.CR)
.append(" :AIMFACTORY AS UMWRK_RECIEVEFACTORY, ").append(SystemPropHelper.CR)
.append(" MP.ERPLOCATION, ").append(SystemPropHelper.CR)
.append(" :AIMERPLOCATION AS UMLGO_RECIEVEERPLOCATION, ").append(SystemPropHelper.CR)
.append(" MP.MATERIALQUANTITY , ").append(SystemPropHelper.CR)
.append(" MP.UNIT, ").append(SystemPropHelper.CR)
.append(" MP.PACKINGGRADE, ").append(SystemPropHelper.CR)
.append(" :AIMLOCATIONNAME AS NULL_RECIVELOCAITONNAME ").append(SystemPropHelper.CR)
.append(" FROM ").append(SystemPropHelper.CR)
.append(" MATERIALPACKING MP ").append(SystemPropHelper.CR)
.append(" WHERE ").append(SystemPropHelper.CR)
.append(" MP.MATERIALPACKINGNAME IN ").append(SystemPropHelper.CR);
Map<String, Object> hashMap = new HashMap<String,Object> ();
hashMap.put("AIMFACTORY", aimFactory);
hashMap.put("AIMLOCATIONNAME", aimLocationName);
hashMap.put("AIMERPLOCATION", aimERPlocation);
String str = "";
str += "(";
for (MaterialPackingKey materialPackingKey : all) {
str += "'" + materialPackingKey.getMaterialPackingName() + "',";
}
str += "'')";
List<Map<String, Object>> queryForList = IDMFrameServiceProxy.getSqlTemplate().queryForList(sql.toString() + str, hashMap);
if (queryForList == null || queryForList.size() < 1) {
return "";
}
try {
JSONObject sendData = new JSONObject(true);
JSONObject header = new JSONObject(true);
sendData.put("HEAD", header);
JSONObject body = new JSONObject(true);
sendData.put("BODY", body);
JSONArray itemArray = new JSONArray();
/*
HEAD
*/
header.put("INTF_ID", "MM067");
String uniqueID = UUID.randomUUID().toString();
header.put("REQ_KEYID", uniqueID);
header.put("SRC_MSGID", uniqueID);
header.put("SRC_SYSTEM", "WMS");
header.put("DEST_SYSTEM", "SAP");
header.put("REQUSER", user);
/*
BODY
*/
body.put("ITEM", itemArray);
body.put("ITEMID", uniqueID);
String outputDate = "";
if(commitDate.isEmpty()) {
outputDate = TimeStampUtil.getCurrentTime("yyyyMMdd");
}else {
SimpleDateFormat inputFormat = new SimpleDateFormat("yyyy-MM-dd");
SimpleDateFormat outputFormat = new SimpleDateFormat("yyyyMMdd");
Date date = inputFormat.parse(commitDate);
outputDate = outputFormat.format(date);
}
//过账日期
body.put("BUDAT", outputDate);
//凭证日期
body.put("BLDAT", outputDate);
//凭证抬头文本
body.put("BKTXT", uniqueID);
//用户名
body.put("USNAM", user);
for (Map<String, Object> mm : queryForList) {
JSONObject item = new JSONObject(true);
// MATNR 发货物料号
item.put("MATNR", mm.get("MATERIALSPECNAME"));
//UMMAT 收货物料
item.put("UMMAT", mm.get("MATERIALSPECNAME"));
// WERKS 发货工厂
item.put("WERKS", mm.get("ERPFACTORY"));
// LGORT 发货库存地点
item.put("LGORT", mm.get("ERPLOCATION"));
//UMWRK 收货工厂
item.put("UMWRK", mm.get("UMWRK_RECIEVEFACTORY"));
//UMLGO 收货库存地点
item.put("UMLGO", mm.get("UMLGO_RECIEVEERPLOCATION"));
//MENGE 数量
item.put("MENGE", mm.get("MATERIALQUANTITY"));
//MENGE 单位
item.put("MEINS", mm.get("UNIT"));
String insmk = "";
if (StringUtils.isEmpty((String)mm.get("PACKINGGRADE"))) {
insmk = "2";
//BWART 移动类型
item.put("BWART", "311"); //非质检
}else {
item.put("BWART", "323"); // 质检
}
// String insmk = StringUtils.equals(mm.get("OQARESULTSTATE").toString(),"END")?"":"X";
item.put("INSMK", insmk);
// item.put("BWART", "311");
// //ZLLORDER 自定义领料单号
// item.put("ZLLORDER", mm.get("SHIPREQUESTNAME"));
// //ZLLITEM 自定义领料单行号
// item.put("ZLLITEM", mm.get("SHIPREQUESTDETAILNAME"));
itemArray.add(item);
}
log.info("SendTOSAP >>>>" + sendData);
String sapreturn = toSAPMessageUtil.sendHttpPost(toSAPMessageUtil.materialChangeLocationUrl, "", sendData.toJSONString());
org.json.JSONObject receiveJsonObject = new org.json.JSONObject(sapreturn);
org.json.JSONObject returnJsonObject = (org.json.JSONObject) receiveJsonObject.get("RETURN");
rcode = returnJsonObject.get("STATUS").toString();
rmsg = returnJsonObject.get("MSGTXT").toString();
if ("S".equals(rcode)) {
undoId = returnJsonObject.get("MBLNR").toString()+"_"+returnJsonObject.get("MJAHR").toString();//将物料凭证号与凭证年度拼在一起
}
//将log写到表里
UUID uuid = UUID.randomUUID();
ErpMessageLog erplog = new ErpMessageLog();
erplog.setEventUser(user);
erplog.setServerName("WmsToErp");
erplog.setEventName("无来源转库-311");
erplog.setId(uuid.toString());
erplog.setInterfaceTime(TimeStampUtil.getCurrentTime(TimeStampUtil.FORMAT_DEFAULT));
erplog.setMessageId(UUID.randomUUID().toString());
erplog.setSendMsg(sendData.toJSONString());
erplog.setSendMsg2(sendData.toJSONString());
erplog.setReturnMsg2(sapreturn);
erplog.setResultCode(rcode);
MessageLogUtil.writeMessageLog(erplog);
} catch (Exception e) {
log.info(e.getMessage(), e);
throw new RuntimeException("SAP返回" + rmsg);
}
if (!"S".equals(rcode)) {
throw new RuntimeException("SAP返回" + rmsg);
}
return undoId;
}
//物料报废/降级品出库 (Z07)
public String MaterialScrapStockOut(List<MaterialPackingKey> all, String siteName, String user,String commitDate,
String opCode,String qtc,String costName) throws Exception {

View File

@ -1098,7 +1098,7 @@ public class InvoiceController {
" mmm.SJMS,\n" +
" mmm.PRODUCTORDERTYPE,\n" +
" m2.COMMONMATERIALFLAG)\n" +
" WHERE REQUESTQUANTITY - SALEOUTQUANTITY > 0";
" WHERE REQUESTQUANTITY - NVL(SALEOUTQUANTITY, 0) > 0";
Map<String, Object> bindMap = new HashMap<String, Object>();
bindMap.put("SHIPREQUESTNAME",shipRequestName);

View File

@ -77,12 +77,12 @@ public class MaterialUndoController {
// }
if ("Z002".equals(inv_TYPE) || "Z003".equals(inv_TYPE) || "Z004".equals(inv_TYPE) || "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)) {
// materialUndoServiceImpl.cprkUndo(undoId, userId);// 成品入库
// }
else if (lastEventName.contains("FGStockIn")) {
materialUndoServiceImpl.cprkUndo(undoId, userId);// 成品入库
}
else if ("Z008".equals(inv_TYPE)) { // 出库冲销
materialUndoServiceImpl.ckUndo(undoId, userId);
} else if (inv_TYPE.contains("ZLR")) {

View File

@ -3078,11 +3078,11 @@ public class InvoiceServiceImpl implements InvoiceService {
String qtysql = "WHERE MATERIALPACKINGNAME = ?";
List<MaterialPacking> qtyQueryForList = MaterialPackingServiceProxy.getMaterialPackingService().select(qtysql, bindSet);
String qty = new Double(qtyQueryForList.get(z).getMaterialQuantity()) == null ? "0" : String.valueOf(qtyQueryForList.get(z).getMaterialQuantity());
String qty = new Double(qtyQueryForList.get(0).getMaterialQuantity()) == null ? "0" : String.valueOf(qtyQueryForList.get(0).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();
String qty2 = new Double(qtyQueryForList.get(0).getMaterialQuantity2()) == null ? "0" : String.valueOf(qtyQueryForList.get(0).getMaterialQuantity2());
String materialPackingName = qtyQueryForList.get(0).getMaterialPackingName();
String charge = qtyQueryForList.get(0).getCharge();
BigDecimal bigQty = new BigDecimal(qty);
// 已拆数量
BigDecimal bigQty2 = new BigDecimal(qty2);
@ -3105,13 +3105,13 @@ public class InvoiceServiceImpl implements InvoiceService {
// materialpackingNew.setKey(materialpackingKey);
// 复制一个当前的原标签数据
materialpackingNew.setKey(qtyQueryForList.get(z).getKey());
materialpackingNew.setKey(qtyQueryForList.get(0).getKey());
// MaterialPacking materialpackingNew = qtyQueryForList.get(z);
// 设置新为标签和数量
materialpackingNew.setMaterialPackingName(newPalletNo);
// bigQty2 转double类型
materialpackingNew.setMaterialQuantity(bigQty2.doubleValue());
boxList.add(qtyQueryForList.get(z));
boxList.add(qtyQueryForList.get(0));
boxList.add(materialpackingNew);
boolean moveTransformOut = packingChargeSplit(boxList, eventUser);
if (moveTransformOut != true) {
@ -3126,7 +3126,7 @@ public class InvoiceServiceImpl implements InvoiceService {
List<Map<String, Object>> 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();
String shipRequestDetailName = qtyQueryForList.get(0).getShipRequestDetailName() == null ? "" : qtyQueryForList.get(0).getShipRequestDetailName().toString();
untils.fahuoSplit(newPalletNo, shipRequestName, preReceiverequestdetailname, bigQty2);
// 原条码扣减拆出的数量用剩余数量更新原条码条码不变数量更新
@ -3297,87 +3297,87 @@ public class InvoiceServiceImpl implements InvoiceService {
} else {
if(!ERPRECEIVELOCATION.isEmpty()) {
// 拆条码查询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<MaterialPacking> qtyQueryForList = MaterialPackingServiceProxy.getMaterialPackingService().select(qtysql, bindSet);
// 拆条码查询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<MaterialPacking> qtyQueryForList = MaterialPackingServiceProxy.getMaterialPackingService().select(qtysql, bindSet);
String qty = new Double(qtyQueryForList.get(z).getMaterialQuantity()) == null ? "0" : String.valueOf(qtyQueryForList.get(z).getMaterialQuantity());
String qty = new Double(qtyQueryForList.get(0).getMaterialQuantity()) == null ? "0" : String.valueOf(qtyQueryForList.get(0).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);
String qty2 = new Double(qtyQueryForList.get(0).getMaterialQuantity2()) == null ? "0" : String.valueOf(qtyQueryForList.get(0).getMaterialQuantity2());
String materialPackingName = qtyQueryForList.get(0).getMaterialPackingName();
String charge = qtyQueryForList.get(0).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);
// 如果已拆数量不等于原数量并且已拆数量为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);
// 生成新的拆分条码
String stringBigQty2 = bigQty2.toString();
String newPalletNo = CodeGenerator.packingGenerateCode(materialPackingName,stringBigQty2,charge);
// 写入拆分的新条码更新原数据库
List<MaterialPacking> boxList = new ArrayList<MaterialPacking>();
// MaterialPackingKey materialpackingKey = new MaterialPackingKey();
MaterialPacking materialpackingNew = new MaterialPacking();
// materialpackingKey.setSiteName("SDK");
// materialpackingKey.setMaterialPackingName(newPalletNo);
// materialpackingNew.setKey(materialpackingKey);
// 写入拆分的新条码更新原数据库
List<MaterialPacking> boxList = new ArrayList<MaterialPacking>();
// 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("修改数量拆分失败");
}
// 复制一个当前的原标签数据
materialpackingNew.setKey(qtyQueryForList.get(0).getKey());
// MaterialPacking materialpackingNew = qtyQueryForList.get(z);
// 设置新为标签和数量
materialpackingNew.setMaterialPackingName(newPalletNo);
// bigQty2 转double类型
materialpackingNew.setMaterialQuantity(bigQty2.doubleValue());
boxList.add(qtyQueryForList.get(0));
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<String, Object> subHashMap = new HashMap<String, Object>();
subHashMap.put("RECEIVEREQUESTNAME", shipRequestName);
subHashMap.put("MATERIALPACKINGNAME", MATERIALPACKINGNAME);
List<Map<String, Object>> ZKqueryForList = IDMFrameServiceProxy.getSqlTemplate().queryForList(subsql, subHashMap);
String preReceiverequestdetailname = ZKqueryForList.get(0).get("RECEIVEREQUESTDETAILNAME").toString();
//记录到拆分表
String subsql = "SELECT RECEIVEREQUESTDETAILNAME FROM MATERIALPACKINGSUB WHERE RECEIVEREQUESTNAME = :RECEIVEREQUESTNAME AND MATERIALPACKINGNAME = :MATERIALPACKINGNAME\n";
Map<String, Object> subHashMap = new HashMap<String, Object>();
subHashMap.put("RECEIVEREQUESTNAME", shipRequestName);
subHashMap.put("MATERIALPACKINGNAME", MATERIALPACKINGNAME);
List<Map<String, Object>> 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);
String shipRequestDetailName = qtyQueryForList.get(0).getShipRequestDetailName() == null ? "" : qtyQueryForList.get(0).getShipRequestDetailName().toString();
untils.fahuoSplit(newPalletNo, shipRequestName, preReceiverequestdetailname, bigQty2);
// 原条码扣减拆出的数量用剩余数量更新原条码条码不变数量更新
SetEventInfo setEventInfo = new SetEventInfo();
Map<String, Object> pakHashMap = new HashMap<>();
pakHashMap.put("materialQuantity", restQty.doubleValue());
pakHashMap.put("materialQuantity2", 0);
pakHashMap.put("shipRequestName", "");
pakHashMap.put("shipRequestDetailName", "");
// 原条码扣减拆出的数量用剩余数量更新原条码条码不变数量更新
SetEventInfo setEventInfo = new SetEventInfo();
Map<String, Object> 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);
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);
}
// 删除被拆分的原条码数据用拆分出的新条码覆盖进行后面的过账现场仓过账只过账已拆分出的数量剩余数量的原条码不过账
boolean deletePacking = materialPackingKeyList.remove(MATERIALPACKINGNAME);
if (deletePacking) {
materialPackingKeyList.add(newPalletNo);
}
}
}
//new MESServiceImpl().NeedReceiveMaterialInfoSend_NEW(shipRequestName, "SDK", materialPackingKeyList);
billCode="Y";

View File

@ -143,7 +143,6 @@ public class MESToWMSServiceImpl implements MESToWMSService {
}
}
}
// 将工单的物料消耗数据传给SAP
String undoId = toSAPService.mesMaterialConsume("MES",payMentDate, eventInfo);

View File

@ -786,13 +786,13 @@ public class MaterialShipServiceImpl implements IMaterialShipService {
String qtysql = "WHERE MATERIALPACKINGNAME = ?";
List<MaterialPacking> qtyQueryForList = MaterialPackingServiceProxy.getMaterialPackingService().select(qtysql, bindSet);
String qty = String.valueOf(qtyQueryForList.get(z).getMaterialQuantity());
String qty = String.valueOf(qtyQueryForList.get(0).getMaterialQuantity());
String qty2 = new Double(qtyQueryForList.get(z).getMaterialQuantity2()) == null ? "0" : String.valueOf(qtyQueryForList.get(z).getMaterialQuantity2());
String materialPackingName = qtyQueryForList.get(z).getMaterialPackingName();
String qty2 = new Double(qtyQueryForList.get(0).getMaterialQuantity2()) == null ? "0" : String.valueOf(qtyQueryForList.get(0).getMaterialQuantity2());
String materialPackingName = qtyQueryForList.get(0).getMaterialPackingName();
// String charge = qtyQueryForList.get(z).getCharge(); // 辅材出库无批次
List<String> boxId = MaterialPackingServiceImpl.generateBoxID("LabelId", siteName,
"1", qtyQueryForList.get(z).getMakeDate().toString(),packingQueryForList.get(z).get("MATERIALTYPE").toString(),qtyQueryForList.get(z).getErpFactory());
"1", qtyQueryForList.get(0).getMakeDate().toString(),packingQueryForList.get(z).get("MATERIALTYPE").toString(),qtyQueryForList.get(0).getErpFactory());
BigDecimal bigQty = new BigDecimal(qty);
// 已拆数量
BigDecimal bigQty2 = new BigDecimal(qty2);
@ -815,20 +815,20 @@ public class MaterialShipServiceImpl implements IMaterialShipService {
// materialpackingNew.setKey(materialpackingKey);
// 复制一个当前的原标签数据
materialpackingNew.setKey(qtyQueryForList.get(z).getKey());
materialpackingNew.setKey(qtyQueryForList.get(0).getKey());
// MaterialPacking materialpackingNew = qtyQueryForList.get(z);
// 设置新为标签和数量
materialpackingNew.setMaterialPackingName(newPalletNo);
// bigQty2 转double类型
materialpackingNew.setMaterialQuantity(bigQty2.doubleValue());
boxList2.add(qtyQueryForList.get(z));
boxList2.add(qtyQueryForList.get(0));
boxList2.add(materialpackingNew);
boolean moveTransformOut = packingChargeSplit(boxList2, user);
if (moveTransformOut != true) {
throw new RuntimeException("修改数量拆分失败");
}
// 记录到拆分表
String shipRequestDetailName = qtyQueryForList.get(z).getShipRequestDetailName() == null ? "" : qtyQueryForList.get(z).getShipRequestDetailName().toString();
String shipRequestDetailName = qtyQueryForList.get(0).getShipRequestDetailName() == null ? "" : qtyQueryForList.get(0).getShipRequestDetailName().toString();
untils.fahuoSplit(newPalletNo, shipRequestName, shipRequestDetailName, bigQty2);
// 原条码扣减拆出的数量用剩余数量更新原条码条码不变数量更新,并且解绑单据

View File

@ -73,7 +73,8 @@ public class MaterialUndoServiceImpl implements IMaterialUndoService {
*/
@Transactional
public void cgrkUndo (String undoId, String user) throws Exception {
String billCode = toSAPService.cancelShipInter(undoId, user);
String billCode = "";
billCode = toSAPService.cancelShipInter(undoId, user);
if (billCode == null) {
throw new GlobalException("报送ERP失败,请联系IT处理");
}
@ -146,11 +147,12 @@ public class MaterialUndoServiceImpl implements IMaterialUndoService {
*/
@Transactional
public void cprkUndo (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");
// sap过账
// String billCode = toSAPService.cancelShipInter(undoId, user);
// if (billCode == null) {
// throw new GlobalException("报送ERP失败,请联系IT处理");
// }
EventInfo makeEventInfo = new EventInfoUtil ().makeEventInfo("成品入库冲销", user, "成品入库冲销");
String condition="SELECT MATERIALPACKINGNAME FROM MATERIALPACKING WHERE UNDOID = :UNDOID ";
// String[] bindSet={undoId};
Map<String, Object> hashMap = new HashMap<String, Object> ();
@ -393,7 +395,7 @@ public class MaterialUndoServiceImpl implements IMaterialUndoService {
List<String> materialPackingKeyList = new ArrayList<>();
EventInfo makeEventInfo = new EventInfoUtil ().makeEventInfo("MakeUndo", user, "MakeUndo");
EventInfo makeEventInfo = new EventInfoUtil ().makeEventInfo("单号凭证冲销", user, "单号凭证冲销");
String condition="WHERE UNDOID =? ";
String[] bindSet={undoId};
//根据物料凭证找到所有的待冲销数据更新库存状态为创建
@ -403,10 +405,10 @@ public class MaterialUndoServiceImpl implements IMaterialUndoService {
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<String, Object> hashMap = new HashMap<String, Object> ();
hashMap.put("stockState", "Stocked");
@ -431,7 +433,7 @@ public class MaterialUndoServiceImpl implements IMaterialUndoService {
// 查出非拆分的原批次
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();

View File

@ -327,7 +327,7 @@ public class ProductIntoServiceImpl implements FGStockInService {
String aimErpFactory = boxList.get(0).getErpFactory();
String aimErpLocation = boxList.get(0).getErpLocation();
String aimLOcationName = boxList.get(0).getLocationName();
undoID = toSAPService.NoSourceChangeLocation(arrayList,aimErpFactory,
undoID = toSAPService.FGStockNoSourceChangeLocation(arrayList,aimErpFactory,
aimErpLocation, aimLOcationName, user, commitDate);
//更新物料凭证和库存状态
toSapDao.updateLocationStockState(boxList, "Stocked", undoID,aimErpFactory,aimErpLocation,aimLOcationName,user);