Compare commits
2 Commits
7693406adc
...
67b3e39472
Author | SHA1 | Date | |
---|---|---|---|
67b3e39472 | |||
75f40226cf |
@ -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 {
|
||||
|
@ -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);
|
||||
|
@ -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")) {
|
||||
|
@ -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";
|
||||
|
@ -143,7 +143,6 @@ public class MESToWMSServiceImpl implements MESToWMSService {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
// 将工单的物料消耗数据传给SAP
|
||||
String undoId = toSAPService.mesMaterialConsume("MES",payMentDate, eventInfo);
|
||||
|
@ -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);
|
||||
|
||||
// 原条码扣减拆出的数量,用剩余数量更新原条码,条码不变,数量更新,并且解绑单据
|
||||
|
@ -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();
|
||||
|
||||
|
@ -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);
|
||||
|
Loading…
x
Reference in New Issue
Block a user