修改回传问题

This commit is contained in:
2022-12-01 11:52:21 +08:00
parent b4f1ee22c2
commit 5997254aef
4 changed files with 324 additions and 358 deletions

View File

@@ -576,12 +576,9 @@ public class MesToLmsServiceImpl implements MesToLmsService {
JSONObject mst_jo = new JSONObject();
mst_jo.put("biz_date", DateUtil.now());
mst_jo.put("bill_type", "1003");
//查询成品库仓库
JSONObject stor = WQLObject.getWQLObject("st_ivt_bsrealstorattr").query("is_delete = '0' AND is_used = '1' AND is_productstore = '1'").uniqueResult(0);
if (ObjectUtil.isEmpty(stor)) {
throw new BadRequestException("仓库不存在");
}
mst_jo.put("stor_id", stor.getString("stor_id"));
mst_jo.put("stor_id",struct.getString("stor_id"));
mst_jo.put("stor_code",struct.getString("stor_code"));
mst_jo.put("stor_name",struct.getString("stor_name"));
mst_jo.put("total_qty", "0");
mst_jo.put("bill_status", "10");

View File

@@ -52,11 +52,13 @@ public class LmsToSapServiceImpl implements LmsToSapService {
// String url = acsUrl + api;
String url = SpringContextHolder.getBean(ParamServiceImpl.class).findByCode("SAP_URL").getValue();
String token = SpringContextHolder.getBean(ParamServiceImpl.class).findByCode("SAP_TOKEN").getValue();
String sap_client = SpringContextHolder.getBean(ParamServiceImpl.class).findByCode("SAP_CLIENT").getValue();
String api = "";
url = url + "/sap/center/wms/004";
try {
String resultMsg = HttpRequest.post(url).header("TOKEN","877734686FA61EDD99E9D85A96D91E14")
.header("sap-client","800")
String resultMsg = HttpRequest.post(url).header("TOKEN",token)
.header("sap-client",sap_client)
.body(String.valueOf(jo))
.execute().body();
result = JSONObject.parseObject(resultMsg);

View File

@@ -72,9 +72,20 @@ public class SapToLmsServiceImpl implements SapToLmsService {
JSONArray item = jo.getJSONArray("ITEM");
JSONObject jsonMst = new JSONObject();
jsonMst.put("stor_id", "1582991156504039424");
jsonMst.put("stor_code", "CP01");
jsonMst.put("stor_name", "成品仓库");
//获取SAP的存储地点
String LGORT = jo.getString("LGORT");
JSONObject stor_jo = WQLObject.getWQLObject("ST_IVT_BSRealStorAttr").query("ext_id = '"+LGORT+"'").uniqueResult(0);
if (ObjectUtil.isEmpty(stor_jo)){
result.put("RTYPE", "E");
result.put("RTMSG", "操作失败!" + "未查询到外部标识为:"+LGORT+"对应的仓库!");
result.put("RTOAL", 1);
result.put("RTDAT", null);
return result;
}
jsonMst.put("stor_id", stor_jo.getString("stor_id"));
jsonMst.put("stor_code", stor_jo.getString("stor_code"));
jsonMst.put("stor_name", stor_jo.getString("stor_name"));
jsonMst.put("detail_count", item.size());
jsonMst.put("bill_status", "10");
jsonMst.put("create_mode", "03");
@@ -100,7 +111,7 @@ public class SapToLmsServiceImpl implements SapToLmsService {
jsonMst.put("receiptphone", json.getString("TEL_NUMBER")); // 联系电话
jsonMst.put("contractno", json.getString("BSTNK")); // 合同号
jsonMst.put("cust_code", json.getString("KUNNR")); // 客户
jsonMst.put("remark",json.getString("LGORT"));//库位
/*jsonMst.put("remark",json.getString("LGORT"));//库位*/
// 明细
JSONObject jsonMater = materTab.query("material_code = '" + json.getString("MATNR") + "'").uniqueResult(0);
@@ -118,7 +129,7 @@ public class SapToLmsServiceImpl implements SapToLmsService {
tableData.add(jsonDtl);
}
if (StrUtil.equals(lfart, "ZLR")) {
jsonMst.put("remark",json.getString("LGORT"));//库位
/*jsonMst.put("remark",json.getString("LGORT"));//库位*/
HashMap map = new HashMap();
//更新包装关系
String sap_pcsn = json.getString("CHARG");
@@ -207,8 +218,6 @@ public class SapToLmsServiceImpl implements SapToLmsService {
//创建退货入库单
jsonMst.put("bill_type", "0002");
jsonMst.put("biz_date", DateUtil.now());
JSONObject stor = WQLObject.getWQLObject("st_ivt_bsrealstorattr").query("is_delete = '0' AND is_used = '1' AND is_productstore = '1'").uniqueResult(0);
jsonMst.put("stor_id", stor.getString("stor_id"));
jsonMst.put("bill_status", "30");
rawAssistIStorService.insertDtl(jsonMst);
}

View File

@@ -58,11 +58,11 @@ public class InAndOutRetrunServiceImpl implements InAndOutReturnService {
UserStorServiceImpl userStorService = new UserStorServiceImpl();
String in_stor_id = userStorService.getInStor();
if (ObjectUtil.isNotEmpty(in_stor_id)) map.put("in_stor_id",in_stor_id);
if (ObjectUtil.isNotEmpty(in_stor_id)) map.put("in_stor_id", in_stor_id);
JSONObject jo = WQL.getWO("QST_IVT_INANDOUTRETRUN").addParamMap(map).pageQuery(WqlUtil.getHttpContext(page), "mst.input_time desc");
return jo;
}
@Override
@@ -88,130 +88,104 @@ public class InAndOutRetrunServiceImpl implements InAndOutReturnService {
for (int i = 0; i < rows.size(); i++) {
JSONObject jo_mst = rows.getJSONObject(i);
String isUpload = SpringContextHolder.getBean(ParamServiceImpl.class).findByCode("is_upload").getValue();
if (StrUtil.equals(isUpload, "1")) {
String bill_type = jo_mst.getString("bill_type");
//生产入库
if (StrUtil.equals(bill_type, "0001")) {
//1.回传MES
//查询该入库单下的所有箱子回传
JSONArray box_rows = WQL.getWO("QST_IVT_INANDOUTRETRUN").addParam("iostorinv_id",jo_mst.getString("iostorinv_id")).addParam("flag","2").process().getResultJSONArray(0);
for (int j = 0; j < box_rows.size(); j++) {
JSONObject box_row = box_rows.getJSONObject(j);
// 调用接口回传
JSONObject paramMesMst = new JSONObject();
paramMesMst.put("PackageBoxSN",box_row.getString("box_no"));
paramMesMst.put("User",box_row.getString("confirm_optname"));
new LmsToMesServiceImpl().childRollFGInboundComplete(paramMesMst);
}
}
// 销售出库
if (StrUtil.equals(bill_type, "1001")) {
// 1.回传sap
JSONArray paramSapMstArr = new JSONArray();
JSONObject paramSapMst = new JSONObject();
paramSapMst.put("ZACTION", "P");
paramSapMst.put("BUDAT", jo_mst.getString("biz_date"));
paramSapMst.put("ZZYGYF", jo_mst.getString("estimated_freight"));
paramSapMst.put("ZZYFGY", jo_mst.getString("trans_code"));
JSONArray paramDtlArr = new JSONArray();
JSONArray dtlArr = wo_dtl.query("iostorinv_id = '" + jo_mst.getString("iostorinv_id") + "'").getResultJSONArray(0);
for (int k = 0; k < dtlArr.size(); k++) {
JSONArray paramDisArr = new JSONArray();
JSONObject json = dtlArr.getJSONObject(k);
JSONObject jsonMater = materTab.query("material_id = '" + json.getString("material_id") + "'").uniqueResult(0);
// 明细
JSONObject jsonDtl = new JSONObject();
jsonDtl.put("VBELN", json.getString("vbeln")); // 交货
paramSapMst.put("VBELN", json.getString("vbeln")); // 主表交货
jsonDtl.put("POSNR", json.getString("posnr")); // 项目
jsonDtl.put("MATNR", jsonMater.getString("material_code"));
// 分配明细
JSONArray disArr = wo_dis.query("iostorinvdtl_id = '" + json.getString("iostorinvdtl_id") + "'").getResultJSONArray(0);
for (int j = 0; j < disArr.size(); j++) {
JSONObject json2 = disArr.getJSONObject(j);
JSONObject jsonDis = new JSONObject();
JSONObject jsonSect = sectTab.query("sect_id = '" + json2.getString("sect_id") + "'").uniqueResult(0);
if (ObjectUtil.isNotEmpty(jsonSect)) {
//jsonDtl.put("LGORT", jsonSect.getString("ext_id")); // 明細储存地点
jsonDtl.put("LGORT", jo_mst.getString("remark")); // 明細储存地点
}
JSONObject jsonSub = subTab.query("container_name = '" + json2.getString("pcsn") + "'").uniqueResult(0);
if (ObjectUtil.isNotEmpty(jsonSect)) {
jsonDis.put("CHARG", jsonSub.getString("sap_pcsn")); // sap批次
}
jsonDis.put("VBELN", json.getString("vbeln")); // 交货
jsonDis.put("POSNR", json.getString("posnr")); // 项目
jsonDis.put("LFIMG", json2.getString("real_qty"));
jsonDis.put("VRKME", json.getString("qty_unit_name"));
jsonDis.put("PIKMG", json2.getString("real_qty"));
jsonDis.put("VRKMP", json2.getString("qty_unit_name"));
paramDisArr.add(jsonDis);
}
jsonDtl.put("CHARG_T", paramDisArr);
paramDtlArr.add(jsonDtl);
}
paramSapMst.put("ITEM", paramDtlArr);
paramSapMstArr.add(paramSapMst);
JSONObject param = new JSONObject();
param.put("HEAD", paramSapMstArr);
System.out.println(param.toString());
String bill_type = jo_mst.getString("bill_type");
String stor_id = jo_mst.getString("stor_id");
JSONObject stor_jo = WQLObject.getWQLObject("ST_IVT_BSRealStorAttr").query("stor_id = '" + stor_id + "'").uniqueResult(0);
String lgort = stor_jo.getString("ext_id");
String is_virtualstore = stor_jo.getString("is_virtualstore");
String is_productstore = stor_jo.getString("is_productstore");
//生产入库
if (StrUtil.equals(bill_type, "0001")) {
//1.回传MES
//查询该入库单下的所有箱子回传
JSONArray box_rows = WQL.getWO("QST_IVT_INANDOUTRETRUN").addParam("iostorinv_id", jo_mst.getString("iostorinv_id")).addParam("flag", "2").process().getResultJSONArray(0);
for (int j = 0; j < box_rows.size(); j++) {
JSONObject box_row = box_rows.getJSONObject(j);
// 调用接口回传
// new LmsToSapServiceImpl().returnDelivery(param);
// 2.回传mes
JSONObject paramMesMst = new JSONObject();
String userName = SpringContextHolder.getBean(ParamServiceImpl.class).findByCode("MES_USERNAME").getValue();
String passWord = SpringContextHolder.getBean(ParamServiceImpl.class).findByCode("MES_PASSWORD").getValue();
paramMesMst.put("UserName", userName);
paramMesMst.put("Password", passWord);
paramMesMst.put("iOutboundOrderNum", jo_mst.getString("bill_code"));
paramMesMst.put("iOutboundUser", jo_mst.getString("confirm_optname"));
paramMesMst.put("iOutboundTime", jo_mst.getString("confirm_time"));
JSONArray boxArr = WQL.getWO("ST_OUTIVT02").addParam("flag", "2")
.addParam("iostorinv_id", jo_mst.getString("iostorinv_id"))
.process().getResultJSONArray(0);
JSONArray paramArr = new JSONArray();
for (int j = 0; j < boxArr.size(); j++) {
JSONObject json = boxArr.getJSONObject(j);
JSONObject jsonBox = new JSONObject();
jsonBox.put("PackageBoxSN", json.getString("box_no"));
paramArr.add(jsonBox);
}
paramMesMst.put("item", paramArr);
// 调用接口回传
JSONObject jsonObject = new LmsToMesServiceImpl().childRollFGOutboundComplete(paramMesMst);
paramMesMst.put("PackageBoxSN", box_row.getString("box_no"));
paramMesMst.put("User", box_row.getString("confirm_optname"));
new LmsToMesServiceImpl().childRollFGInboundComplete(paramMesMst);
}
}
// 改切出库
if (StrUtil.equals(bill_type, "1003")) {
JSONArray disArr = wo_dis.query("iostorinv_id = '" + jo_mst.getString("iostorinv_id") + "'").getResultJSONArray(0);
// 销售出库
if (StrUtil.equals(bill_type, "1001") && is_productstore.equals("1")) {
// 2.回传mes
JSONObject paramMesMst = new JSONObject();
String userName = SpringContextHolder.getBean(ParamServiceImpl.class).findByCode("MES_USERNAME").getValue();
String passWord = SpringContextHolder.getBean(ParamServiceImpl.class).findByCode("MES_PASSWORD").getValue();
//调用母卷配送到位接口
JSONObject mes_jo = new JSONObject();
paramMesMst.put("UserName", userName);
paramMesMst.put("Password", passWord);
paramMesMst.put("iOutboundOrderNum", jo_mst.getString("bill_code"));
paramMesMst.put("iOutboundUser", jo_mst.getString("confirm_optname"));
paramMesMst.put("iOutboundTime", jo_mst.getString("confirm_time"));
//查询该子卷对应的分切计划
//JSONArray cut_rows = WQLObject.getWQLObject("")
JSONObject source_dtl = WQLObject.getWQLObject("st_ivt_iostorinvdtl").query("iostorinv_id = '"+jo_mst.getString("iostorinv_id")+"' AND IFNULL(source_billdtl_id,'') <> ''").uniqueResult(0);
mes_jo.put("container_name", source_dtl.getString("pcsn"));
mes_jo.put("package_box_sn", source_dtl.getString("box_no"));
mes_jo.put("warehouse", "3");
new LmsToMesServiceImpl().cutPlanMomRollDeliveryComplete(mes_jo);
JSONArray boxArr = WQL.getWO("ST_OUTIVT02").addParam("flag", "2")
.addParam("iostorinv_id", jo_mst.getString("iostorinv_id"))
.process().getResultJSONArray(0);
JSONArray paramArr = new JSONArray();
for (int j = 0; j < boxArr.size(); j++) {
JSONObject json = boxArr.getJSONObject(j);
JSONObject jsonBox = new JSONObject();
jsonBox.put("PackageBoxSN", json.getString("box_no"));
paramArr.add(jsonBox);
}
paramMesMst.put("item", paramArr);
// 调用接口回传
new LmsToMesServiceImpl().childRollFGOutboundComplete(paramMesMst);
}
// 调拨出库
if (StrUtil.equals(bill_type, "1004") && is_productstore.equals("1")) {
// 2.回传mes
JSONObject paramMesMst = new JSONObject();
String userName = SpringContextHolder.getBean(ParamServiceImpl.class).findByCode("MES_USERNAME").getValue();
String passWord = SpringContextHolder.getBean(ParamServiceImpl.class).findByCode("MES_PASSWORD").getValue();
paramMesMst.put("UserName", userName);
paramMesMst.put("Password", passWord);
paramMesMst.put("iOutboundOrderNum", jo_mst.getString("bill_code"));
paramMesMst.put("iOutboundUser", jo_mst.getString("confirm_optname"));
paramMesMst.put("iOutboundTime", jo_mst.getString("confirm_time"));
JSONArray boxArr = WQL.getWO("ST_OUTIVT02").addParam("flag", "2")
.addParam("iostorinv_id", jo_mst.getString("iostorinv_id"))
.process().getResultJSONArray(0);
JSONArray paramArr = new JSONArray();
for (int j = 0; j < boxArr.size(); j++) {
JSONObject json = boxArr.getJSONObject(j);
JSONObject jsonBox = new JSONObject();
jsonBox.put("PackageBoxSN", json.getString("box_no"));
paramArr.add(jsonBox);
}
paramMesMst.put("item", paramArr);
// 调用接口回传
new LmsToMesServiceImpl().childRollFGOutboundComplete(paramMesMst);
}
// 改切出库
if (StrUtil.equals(bill_type, "1003")) {
JSONArray disArr = wo_dis.query("iostorinv_id = '" + jo_mst.getString("iostorinv_id") + "'").getResultJSONArray(0);
//调用母卷配送到位接口
JSONObject mes_jo = new JSONObject();
//查询该子卷对应的分切计划
//JSONArray cut_rows = WQLObject.getWQLObject("")
JSONObject source_dtl = WQLObject.getWQLObject("st_ivt_iostorinvdtl").query("iostorinv_id = '" + jo_mst.getString("iostorinv_id") + "' AND IFNULL(source_billdtl_id,'') <> ''").uniqueResult(0);
mes_jo.put("container_name", source_dtl.getString("pcsn"));
mes_jo.put("package_box_sn", source_dtl.getString("box_no"));
mes_jo.put("warehouse", "3");
new LmsToMesServiceImpl().cutPlanMomRollDeliveryComplete(mes_jo);
}
}
}
@@ -238,6 +212,11 @@ public class InAndOutRetrunServiceImpl implements InAndOutReturnService {
String isUpload = SpringContextHolder.getBean(ParamServiceImpl.class).findByCode("is_upload").getValue();
if (StrUtil.equals(isUpload, "1")) {
String bill_type = jo_mst.getString("bill_type");
String stor_id = jo_mst.getString("stor_id");
JSONObject stor_jo = WQLObject.getWQLObject("ST_IVT_BSRealStorAttr").query("stor_id = '" + stor_id + "'").uniqueResult(0);
String lgort = stor_jo.getString("ext_id");
String is_virtualstore = stor_jo.getString("is_virtualstore");
String is_productstore = stor_jo.getString("is_productstore");
//退货入库
if (StrUtil.equals(bill_type, "0002")) {
// 1.回传sap
@@ -270,7 +249,7 @@ public class InAndOutRetrunServiceImpl implements InAndOutReturnService {
JSONObject jsonSect = sectTab.query("sect_id = '" + json2.getString("sect_id") + "'").uniqueResult(0);
if (ObjectUtil.isNotEmpty(jsonSect)) {
//jsonDtl.put("LGORT", jsonSect.getString("ext_id")); // 明細储存地点
jsonDtl.put("LGORT", jo_mst.getString("remark")); // 明細储存地点
jsonDtl.put("LGORT", lgort); // 明細储存地点
}
JSONObject jsonSub = subTab.query("container_name = '" + json2.getString("pcsn") + "'").uniqueResult(0);
@@ -333,7 +312,7 @@ public class InAndOutRetrunServiceImpl implements InAndOutReturnService {
JSONObject jsonSect = sectTab.query("sect_id = '" + json2.getString("sect_id") + "'").uniqueResult(0);
if (ObjectUtil.isNotEmpty(jsonSect)) {
//jsonDtl.put("LGORT", jsonSect.getString("ext_id")); // 明細储存地点
jsonDtl.put("LGORT", jo_mst.getString("remark")); // 明細储存地点
jsonDtl.put("LGORT", lgort); // 明細储存地点
}
JSONObject jsonSub = subTab.query("container_name = '" + json2.getString("pcsn") + "'").uniqueResult(0);
@@ -360,34 +339,6 @@ public class InAndOutRetrunServiceImpl implements InAndOutReturnService {
// 调用接口回传
new LmsToSapServiceImpl().returnDelivery(param);
// 2.回传mes
JSONObject paramMesMst = new JSONObject();
String userName = SpringContextHolder.getBean(ParamServiceImpl.class).findByCode("MES_USERNAME").getValue();
String passWord = SpringContextHolder.getBean(ParamServiceImpl.class).findByCode("MES_PASSWORD").getValue();
paramMesMst.put("UserName", userName);
paramMesMst.put("Password", passWord);
paramMesMst.put("iOutboundOrderNum", jo_mst.getString("bill_code"));
paramMesMst.put("iOutboundUser", jo_mst.getString("confirm_optname"));
paramMesMst.put("iOutboundTime", jo_mst.getString("confirm_time"));
JSONArray boxArr = WQL.getWO("ST_OUTIVT02").addParam("flag", "2")
.addParam("iostorinv_id", jo_mst.getString("iostorinv_id"))
.process().getResultJSONArray(0);
JSONArray paramArr = new JSONArray();
for (int j = 0; j < boxArr.size(); j++) {
JSONObject json = boxArr.getJSONObject(j);
JSONObject jsonBox = new JSONObject();
jsonBox.put("PackageBoxSN", json.getString("box_no"));
paramArr.add(jsonBox);
}
paramMesMst.put("item", paramArr);
// 调用接口回传
// JSONObject jsonObject = new LmsToMesServiceImpl().childRollFGOutboundComplete(paramMesMst);
}
// 改切出库
@@ -420,7 +371,7 @@ public class InAndOutRetrunServiceImpl implements InAndOutReturnService {
JSONObject jsonSect = sectTab.query("sect_id = '" + json.getString("sect_id") + "'").uniqueResult(0);
if (ObjectUtil.isNotEmpty(jsonSect)) {
//jsonDtl.put("LGORT", jsonSect.getString("ext_id")); // 库存地点:库区外部标识
jsonDtl.put("LGORT", jo_mst.getString("remark")); // 库存地点:库区外部标识
jsonDtl.put("LGORT", lgort); // 库存地点:库区外部标识
}
JSONObject jsonSub = subTab.query("container_name = '" + json.getString("pcsn") + "'").uniqueResult(0);
@@ -496,176 +447,152 @@ public class InAndOutRetrunServiceImpl implements InAndOutReturnService {
JSONArray rows = whereJson.getJSONArray("rows");
for (int i = 0; i < rows.size(); i++) {
JSONObject jo_mst = rows.getJSONObject(i);
String isUpload = SpringContextHolder.getBean(ParamServiceImpl.class).findByCode("is_upload").getValue();
if (StrUtil.equals(isUpload, "1")) {
String bill_type = jo_mst.getString("bill_type");
//生产入库
if (StrUtil.equals(bill_type, "0001")) {
//1.回传MES
String bill_type = jo_mst.getString("bill_type");
String stor_id = jo_mst.getString("stor_id");
JSONObject stor_jo = WQLObject.getWQLObject("ST_IVT_BSRealStorAttr").query("stor_id = '" + stor_id + "'").uniqueResult(0);
String lgort = stor_jo.getString("ext_id");
String is_virtualstore = stor_jo.getString("is_virtualstore");
String is_productstore = stor_jo.getString("is_productstore");
//生产入库
if (StrUtil.equals(bill_type, "0001")) {
//1.回传MES
//查询该入库单下的所有箱子回传
JSONArray box_rows = WQL.getWO("QST_IVT_INANDOUTRETRUN").addParam("iostorinv_id",jo_mst.getString("iostorinv_id")).addParam("flag","2").process().getResultJSONArray(0);
for (int j = 0; j < box_rows.size(); j++) {
JSONObject box_row = box_rows.getJSONObject(j);
// 调用接口回传
JSONObject paramMesMst = new JSONObject();
paramMesMst.put("PackageBoxSN",box_row.getString("box_no"));
paramMesMst.put("User",box_row.getString("confirm_optname"));
new LmsToMesServiceImpl().childRollFGInboundComplete(paramMesMst);
}
//查询该入库单下的所有箱子回传
JSONArray box_rows = WQL.getWO("QST_IVT_INANDOUTRETRUN").addParam("iostorinv_id", jo_mst.getString("iostorinv_id")).addParam("flag", "2").process().getResultJSONArray(0);
for (int j = 0; j < box_rows.size(); j++) {
JSONObject box_row = box_rows.getJSONObject(j);
// 调用接口回传
JSONObject paramMesMst = new JSONObject();
paramMesMst.put("PackageBoxSN", box_row.getString("box_no"));
paramMesMst.put("User", box_row.getString("confirm_optname"));
new LmsToMesServiceImpl().childRollFGInboundComplete(paramMesMst);
}
}
//退货入库
if (StrUtil.equals(bill_type, "0002")) {
// 1.回传sap
JSONArray paramSapMstArr = new JSONArray();
//退货入库
if (StrUtil.equals(bill_type, "0002")) {
// 1.回传sap
JSONArray paramSapMstArr = new JSONArray();
JSONObject paramSapMst = new JSONObject();
paramSapMst.put("ZACTION", "P");
paramSapMst.put("BUDAT", jo_mst.getString("biz_date"));
JSONObject paramSapMst = new JSONObject();
paramSapMst.put("ZACTION", "P");
paramSapMst.put("BUDAT", jo_mst.getString("biz_date"));
JSONArray paramDtlArr = new JSONArray();
JSONArray dtlArr = wo_dtl.query("iostorinv_id = '" + jo_mst.getString("iostorinv_id") + "'").getResultJSONArray(0);
for (int k = 0; k < dtlArr.size(); k++) {
JSONArray paramDisArr = new JSONArray();
JSONObject json = dtlArr.getJSONObject(k);
JSONObject jsonMater = materTab.query("material_id = '" + json.getString("material_id") + "'").uniqueResult(0);
JSONArray paramDtlArr = new JSONArray();
JSONArray dtlArr = wo_dtl.query("iostorinv_id = '" + jo_mst.getString("iostorinv_id") + "'").getResultJSONArray(0);
for (int k = 0; k < dtlArr.size(); k++) {
JSONArray paramDisArr = new JSONArray();
JSONObject json = dtlArr.getJSONObject(k);
JSONObject jsonMater = materTab.query("material_id = '" + json.getString("material_id") + "'").uniqueResult(0);
// 明细
JSONObject jsonDtl = new JSONObject();
jsonDtl.put("VBELN", json.getString("vbeln")); // 交货
paramSapMst.put("VBELN", json.getString("vbeln")); // 主表交货
jsonDtl.put("POSNR", json.getString("posnr")); // 项目
jsonDtl.put("MATNR", jsonMater.getString("material_code"));
// 明细
JSONObject jsonDtl = new JSONObject();
jsonDtl.put("VBELN", json.getString("vbeln")); // 交货
paramSapMst.put("VBELN", json.getString("vbeln")); // 主表交货
jsonDtl.put("POSNR", json.getString("posnr")); // 项目
jsonDtl.put("MATNR", jsonMater.getString("material_code"));
// 分配明细
JSONArray disArr = wo_dis.query("iostorinvdtl_id = '" + json.getString("iostorinvdtl_id") + "'").getResultJSONArray(0);
for (int j = 0; j < disArr.size(); j++) {
JSONObject json2 = disArr.getJSONObject(j);
JSONObject jsonDis = new JSONObject();
// 分配明细
JSONArray disArr = wo_dis.query("iostorinvdtl_id = '" + json.getString("iostorinvdtl_id") + "'").getResultJSONArray(0);
for (int j = 0; j < disArr.size(); j++) {
JSONObject json2 = disArr.getJSONObject(j);
JSONObject jsonDis = new JSONObject();
JSONObject jsonSect = sectTab.query("sect_id = '" + json2.getString("sect_id") + "'").uniqueResult(0);
if (ObjectUtil.isNotEmpty(jsonSect)) {
// jsonDtl.put("LGORT", jsonSect.getString("ext_id")); // 明細储存地点
jsonDtl.put("LGORT", jo_mst.getString("remark")); // 明細储存地点
}
JSONObject jsonSub = subTab.query("container_name = '" + json2.getString("pcsn") + "'").uniqueResult(0);
if (ObjectUtil.isNotEmpty(jsonSect)) {
jsonDis.put("CHARG", jsonSub.getString("sap_pcsn")); // sap批次
}
jsonDis.put("VBELN", json.getString("vbeln")); // 交货
jsonDis.put("POSNR", json.getString("posnr")); // 项目
jsonDis.put("LFIMG", json2.getString("real_qty"));
jsonDis.put("VRKME", json.getString("qty_unit_name"));
jsonDis.put("PIKMG", json2.getString("real_qty"));
jsonDis.put("VRKMP", json2.getString("qty_unit_name"));
paramDisArr.add(jsonDis);
JSONObject jsonSect = sectTab.query("sect_id = '" + json2.getString("sect_id") + "'").uniqueResult(0);
if (ObjectUtil.isNotEmpty(jsonSect)) {
// jsonDtl.put("LGORT", jsonSect.getString("ext_id")); // 明細储存地点
jsonDtl.put("LGORT", jo_mst.getString("remark")); // 明細储存地点
}
jsonDtl.put("CHARG_T", paramDisArr);
paramDtlArr.add(jsonDtl);
}
paramSapMst.put("ITEM", paramDtlArr);
paramSapMstArr.add(paramSapMst);
JSONObject param = new JSONObject();
param.put("HEAD", paramSapMstArr);
JSONObject jsonSub = subTab.query("container_name = '" + json2.getString("pcsn") + "'").uniqueResult(0);
if (ObjectUtil.isNotEmpty(jsonSect)) {
jsonDis.put("CHARG", jsonSub.getString("sap_pcsn")); // sap批次
}
jsonDis.put("VBELN", json.getString("vbeln")); // 交货
jsonDis.put("POSNR", json.getString("posnr")); // 项目
jsonDis.put("LFIMG", json2.getString("real_qty"));
jsonDis.put("VRKME", json.getString("qty_unit_name"));
jsonDis.put("PIKMG", json2.getString("real_qty"));
jsonDis.put("VRKMP", json2.getString("qty_unit_name"));
paramDisArr.add(jsonDis);
}
jsonDtl.put("CHARG_T", paramDisArr);
paramDtlArr.add(jsonDtl);
}
paramSapMst.put("ITEM", paramDtlArr);
paramSapMstArr.add(paramSapMst);
JSONObject param = new JSONObject();
param.put("HEAD", paramSapMstArr);
// System.out.println(param.toString());
// 调用接口回传
new LmsToSapServiceImpl().returnDelivery(param);
// 调用接口回传
new LmsToSapServiceImpl().returnDelivery(param);
}
// 销售出库
if (StrUtil.equals(bill_type, "1001")) {
// 1.回传sap
JSONArray paramSapMstArr = new JSONArray();
// 2.回传mes
JSONObject paramMesMst = new JSONObject();
String userName = SpringContextHolder.getBean(ParamServiceImpl.class).findByCode("MES_USERNAME").getValue();
String passWord = SpringContextHolder.getBean(ParamServiceImpl.class).findByCode("MES_PASSWORD").getValue();
JSONObject paramSapMst = new JSONObject();
paramSapMst.put("ZACTION", "P");
paramSapMst.put("BUDAT", jo_mst.getString("biz_date"));
paramSapMst.put("ZZYGYF", jo_mst.getString("estimated_freight"));
paramSapMst.put("ZZYFGY", jo_mst.getString("trans_code"));
paramMesMst.put("UserName", userName);
paramMesMst.put("Password", passWord);
paramMesMst.put("OutboundOrderNum", jo_mst.getString("bill_code"));
paramMesMst.put("OutboundUser", jo_mst.getString("confirm_optname"));
paramMesMst.put("OutboundTime", jo_mst.getString("confirm_time"));
JSONArray paramDtlArr = new JSONArray();
JSONArray dtlArr = wo_dtl.query("iostorinv_id = '" + jo_mst.getString("iostorinv_id") + "'").getResultJSONArray(0);
for (int k = 0; k < dtlArr.size(); k++) {
JSONArray paramDisArr = new JSONArray();
JSONObject json = dtlArr.getJSONObject(k);
JSONObject jsonMater = materTab.query("material_id = '" + json.getString("material_id") + "'").uniqueResult(0);
JSONArray boxArr = WQL.getWO("ST_OUTIVT02").addParam("flag", "2")
.addParam("iostorinv_id", jo_mst.getString("iostorinv_id"))
.process().getResultJSONArray(0);
// 明细
JSONObject jsonDtl = new JSONObject();
jsonDtl.put("VBELN", json.getString("vbeln")); // 交货
paramSapMst.put("VBELN", json.getString("vbeln")); // 主表交货
jsonDtl.put("POSNR", json.getString("posnr")); // 项目
jsonDtl.put("MATNR", jsonMater.getString("material_code"));
JSONArray paramArr = new JSONArray();
for (int j = 0; j < boxArr.size(); j++) {
JSONObject json = boxArr.getJSONObject(j);
JSONObject jsonBox = new JSONObject();
// 分配明细
JSONArray disArr = wo_dis.query("iostorinvdtl_id = '" + json.getString("iostorinvdtl_id") + "'").getResultJSONArray(0);
for (int j = 0; j < disArr.size(); j++) {
JSONObject json2 = disArr.getJSONObject(j);
JSONObject jsonDis = new JSONObject();
jsonBox.put("PackageBoxSN", json.getString("box_no"));
paramArr.add(jsonBox);
}
paramMesMst.put("item", paramArr);
// 调用接口回传
new LmsToMesServiceImpl().childRollFGOutboundComplete(paramMesMst);
}
// 销售出库
if (StrUtil.equals(bill_type, "1001")) {
// 1.回传sap
JSONArray paramSapMstArr = new JSONArray();
JSONObject paramSapMst = new JSONObject();
paramSapMst.put("ZACTION", "P");
paramSapMst.put("BUDAT", jo_mst.getString("biz_date"));
paramSapMst.put("ZZYGYF", jo_mst.getString("estimated_freight"));
paramSapMst.put("ZZYFGY", jo_mst.getString("trans_code"));
JSONArray paramDtlArr = new JSONArray();
JSONArray dtlArr = wo_dtl.query("iostorinv_id = '" + jo_mst.getString("iostorinv_id") + "'").getResultJSONArray(0);
for (int k = 0; k < dtlArr.size(); k++) {
JSONArray paramDisArr = new JSONArray();
JSONObject json = dtlArr.getJSONObject(k);
JSONObject jsonMater = materTab.query("material_id = '" + json.getString("material_id") + "'").uniqueResult(0);
// 明细
JSONObject jsonDtl = new JSONObject();
jsonDtl.put("VBELN", json.getString("vbeln")); // 交货
paramSapMst.put("VBELN", json.getString("vbeln")); // 主表交货
jsonDtl.put("POSNR", json.getString("posnr")); // 项目
jsonDtl.put("MATNR", jsonMater.getString("material_code"));
// 分配明细
JSONArray disArr = wo_dis.query("iostorinvdtl_id = '" + json.getString("iostorinvdtl_id") + "'").getResultJSONArray(0);
for (int j = 0; j < disArr.size(); j++) {
JSONObject json2 = disArr.getJSONObject(j);
JSONObject jsonDis = new JSONObject();
JSONObject jsonSect = sectTab.query("sect_id = '" + json2.getString("sect_id") + "'").uniqueResult(0);
if (ObjectUtil.isNotEmpty(jsonSect)) {
//jsonDtl.put("LGORT", jsonSect.getString("ext_id")); // 明細储存地点
jsonDtl.put("LGORT", jo_mst.getString("remark")); // 明細储存地点
}
JSONObject jsonSub = subTab.query("container_name = '" + json2.getString("pcsn") + "'").uniqueResult(0);
if (ObjectUtil.isNotEmpty(jsonSect)) {
jsonDis.put("CHARG", jsonSub.getString("sap_pcsn")); // sap批次
}
jsonDis.put("VBELN", json.getString("vbeln")); // 交货
jsonDis.put("POSNR", json.getString("posnr")); // 项目
jsonDis.put("LFIMG", json2.getString("real_qty"));
jsonDis.put("VRKME", json.getString("qty_unit_name"));
jsonDis.put("PIKMG", json2.getString("real_qty"));
jsonDis.put("VRKMP", json2.getString("qty_unit_name"));
paramDisArr.add(jsonDis);
JSONObject jsonSect = sectTab.query("sect_id = '" + json2.getString("sect_id") + "'").uniqueResult(0);
if (ObjectUtil.isNotEmpty(jsonSect)) {
//jsonDtl.put("LGORT", jsonSect.getString("ext_id")); // 明細储存地点
jsonDtl.put("LGORT", lgort); // 明細储存地点
}
jsonDtl.put("CHARG_T", paramDisArr);
paramDtlArr.add(jsonDtl);
JSONObject jsonSub = subTab.query("container_name = '" + json2.getString("pcsn") + "'").uniqueResult(0);
if (ObjectUtil.isNotEmpty(jsonSect)) {
jsonDis.put("CHARG", jsonSub.getString("sap_pcsn")); // sap批次
}
jsonDis.put("VBELN", json.getString("vbeln")); // 交货
jsonDis.put("POSNR", json.getString("posnr")); // 项目
jsonDis.put("LFIMG", json2.getString("real_qty"));
jsonDis.put("VRKME", json.getString("qty_unit_name"));
jsonDis.put("PIKMG", json2.getString("real_qty"));
jsonDis.put("VRKMP", json2.getString("qty_unit_name"));
paramDisArr.add(jsonDis);
}
paramSapMst.put("ITEM", paramDtlArr);
paramSapMstArr.add(paramSapMst);
jsonDtl.put("CHARG_T", paramDisArr);
paramDtlArr.add(jsonDtl);
}
paramSapMst.put("ITEM", paramDtlArr);
paramSapMstArr.add(paramSapMst);
JSONObject param = new JSONObject();
param.put("HEAD", paramSapMstArr);
System.out.println(param.toString());
JSONObject param = new JSONObject();
param.put("HEAD", paramSapMstArr);
System.out.println(param.toString());
// 调用接口回传
new LmsToSapServiceImpl().returnDelivery(param);
// 调用接口回传
new LmsToSapServiceImpl().returnDelivery(param);
// 2.回传mes
// 2.回传mes
if (is_productstore.equals("1")){
JSONObject paramMesMst = new JSONObject();
String userName = SpringContextHolder.getBean(ParamServiceImpl.class).findByCode("MES_USERNAME").getValue();
String passWord = SpringContextHolder.getBean(ParamServiceImpl.class).findByCode("MES_PASSWORD").getValue();
@@ -693,53 +620,84 @@ public class InAndOutRetrunServiceImpl implements InAndOutReturnService {
// 调用接口回传
new LmsToMesServiceImpl().childRollFGOutboundComplete(paramMesMst);
}
// 改切出库
if (StrUtil.equals(bill_type, "1003")) {
JSONObject paramMst = new JSONObject();
JSONArray paramArr = new JSONArray();
paramMst.put("BLDAT", jo_mst.getString("biz_date"));
paramMst.put("BUDAT", jo_mst.getString("biz_date"));
paramMst.put("BKTXT", ""); // 凭证抬头文本
paramMst.put("XBLNR", ""); // 参考
JSONArray disArr = wo_dis.query("iostorinv_id = '" + jo_mst.getString("iostorinv_id") + "'").getResultJSONArray(0);
for (int j = 0; j < disArr.size(); j++) {
JSONObject json = disArr.getJSONObject(j);
JSONObject jsonMater = materTab.query("material_id = '" + json.getString("material_id") + "'").uniqueResult(0);
JSONObject jsonDtl = new JSONObject();
jsonDtl.put("RSPOS", i + 1);
jsonDtl.put("MATNR", jsonMater.getString("material_code"));
jsonDtl.put("BWART", "311");
jsonDtl.put("MENGE", json.getDoubleValue("plan_qty"));
jsonDtl.put("MEINS", json.getString("qty_unit_id"));
jsonDtl.put("LGORT", jo_mst.getString("remark")); // 库存地点
jsonDtl.put("CHARG", json.getString("pcsn"));
jsonDtl.put("UMLGO", ""); // 收货库存地点
jsonDtl.put("UMCHA", json.getString("pcsn"));
jsonDtl.put("KDAUF", ""); // 销售订单
jsonDtl.put("KDPOS", ""); // 销售订单行项目
paramArr.add(jsonDtl);
}
paramMst.put("item", paramArr);
// 调用接口回传
new LmsToSapServiceImpl().returnMoveDtl(paramMst);
//调用母卷配送到位接口
JSONObject mes_jo = new JSONObject();
//查询该子卷对应的分切计划
//JSONArray cut_rows = WQLObject.getWQLObject("")
mes_jo.put("contain_name", disArr.getJSONObject(0).getString("pcsn"));
mes_jo.put("package_box_sn", disArr.getJSONObject(0).getString("box_no"));
mes_jo.put("warehouse", "3");
new LmsToMesServiceImpl().cutPlanMomRollDeliveryComplete(mes_jo);
}
}
// 改切出库
if (StrUtil.equals(bill_type, "1003")) {
JSONObject paramMst = new JSONObject();
JSONArray paramArr = new JSONArray();
paramMst.put("BLDAT", jo_mst.getString("biz_date"));
paramMst.put("BUDAT", jo_mst.getString("biz_date"));
paramMst.put("BKTXT", ""); // 凭证抬头文本
paramMst.put("XBLNR", ""); // 参考
JSONArray disArr = wo_dis.query("iostorinv_id = '" + jo_mst.getString("iostorinv_id") + "'").getResultJSONArray(0);
for (int j = 0; j < disArr.size(); j++) {
JSONObject json = disArr.getJSONObject(j);
JSONObject jsonMater = materTab.query("material_id = '" + json.getString("material_id") + "'").uniqueResult(0);
JSONObject jsonDtl = new JSONObject();
jsonDtl.put("RSPOS", i + 1);
jsonDtl.put("MATNR", jsonMater.getString("material_code"));
jsonDtl.put("BWART", "311");
jsonDtl.put("MENGE", json.getDoubleValue("plan_qty"));
jsonDtl.put("MEINS", json.getString("qty_unit_id"));
jsonDtl.put("LGORT", lgort); // 库存地点
jsonDtl.put("CHARG", json.getString("pcsn"));
jsonDtl.put("UMLGO", ""); // 收货库存地点
jsonDtl.put("UMCHA", json.getString("pcsn"));
jsonDtl.put("KDAUF", ""); // 销售订单
jsonDtl.put("KDPOS", ""); // 销售订单行项目
paramArr.add(jsonDtl);
}
paramMst.put("item", paramArr);
// 调用接口回传
new LmsToSapServiceImpl().returnMoveDtl(paramMst);
//调用母卷配送到位接口
JSONObject mes_jo = new JSONObject();
//查询该子卷对应的分切计划
//JSONArray cut_rows = WQLObject.getWQLObject("")
mes_jo.put("contain_name", disArr.getJSONObject(0).getString("pcsn"));
mes_jo.put("package_box_sn", disArr.getJSONObject(0).getString("box_no"));
mes_jo.put("warehouse", "3");
new LmsToMesServiceImpl().cutPlanMomRollDeliveryComplete(mes_jo);
}
// 调拨出库
if (StrUtil.equals(bill_type, "1004") && is_productstore.equals("1")) {
// 2.回传mes
JSONObject paramMesMst = new JSONObject();
String userName = SpringContextHolder.getBean(ParamServiceImpl.class).findByCode("MES_USERNAME").getValue();
String passWord = SpringContextHolder.getBean(ParamServiceImpl.class).findByCode("MES_PASSWORD").getValue();
paramMesMst.put("UserName", userName);
paramMesMst.put("Password", passWord);
paramMesMst.put("iOutboundOrderNum", jo_mst.getString("bill_code"));
paramMesMst.put("iOutboundUser", jo_mst.getString("confirm_optname"));
paramMesMst.put("iOutboundTime", jo_mst.getString("confirm_time"));
JSONArray boxArr = WQL.getWO("ST_OUTIVT02").addParam("flag", "2")
.addParam("iostorinv_id", jo_mst.getString("iostorinv_id"))
.process().getResultJSONArray(0);
JSONArray paramArr = new JSONArray();
for (int j = 0; j < boxArr.size(); j++) {
JSONObject json = boxArr.getJSONObject(j);
JSONObject jsonBox = new JSONObject();
jsonBox.put("PackageBoxSN", json.getString("box_no"));
paramArr.add(jsonBox);
}
paramMesMst.put("item", paramArr);
// 调用接口回传
new LmsToMesServiceImpl().childRollFGOutboundComplete(paramMesMst);
}
jo_mst.put("is_upload", "1");
jo_mst.put("upload_optid", SecurityUtils.getCurrentUserId());
jo_mst.put("upload_time", DateUtil.now());