|
|
@@ -2,12 +2,15 @@ package com.uas.eis.service.Impl;
|
|
|
|
|
|
import com.fasterxml.jackson.core.JsonProcessingException;
|
|
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
|
|
+import com.fasterxml.jackson.dataformat.xml.XmlMapper;
|
|
|
import com.uas.eis.config.VwmsConfig;
|
|
|
import com.uas.eis.dao.BaseDao;
|
|
|
import com.uas.eis.dao.SqlRowList;
|
|
|
import com.uas.eis.entity.vwms.entity.*;
|
|
|
import com.uas.eis.entity.vwms.req.*;
|
|
|
import com.uas.eis.entity.vwms.resp.BaseVastResp;
|
|
|
+import com.uas.eis.entity.vwms.resp.IOResp;
|
|
|
+import com.uas.eis.entity.vwms.resp.ProdResp;
|
|
|
import com.uas.eis.service.DocCommonService;
|
|
|
import com.uas.eis.service.ERPService;
|
|
|
import com.uas.eis.utils.CollectionUtil;
|
|
|
@@ -19,6 +22,7 @@ import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.jdbc.core.BeanPropertyRowMapper;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
+import java.io.IOException;
|
|
|
import java.math.BigDecimal;
|
|
|
import java.util.*;
|
|
|
import java.util.stream.Collectors;
|
|
|
@@ -41,19 +45,27 @@ public class DocCommonServiceImpl implements DocCommonService {
|
|
|
private ObjectMapper objectMapper; // 注入Jackson的ObjectMapper
|
|
|
|
|
|
@Override
|
|
|
- public ProdInout getIO(String master,String id,boolean onlyMain){
|
|
|
+ public ProdInout getIO(String master,String id){
|
|
|
// 查询主表信息
|
|
|
ProdInout prodInOut = queryMainTable(master, id);
|
|
|
- if (!onlyMain) {
|
|
|
- // 构建明细查询SQL
|
|
|
- String detSql = buildDetailSql(master, prodInOut);
|
|
|
- // 查询明细数据
|
|
|
- List<Prodiodetail> details = queryDetails(master, detSql);
|
|
|
- prodInOut.setDetails(details);
|
|
|
- // 更新WMS相关表
|
|
|
- if (!prodInOut.getPiWmsstatus().equals("已确认")) {
|
|
|
- updateWmsTables(master, prodInOut, detSql);
|
|
|
- }
|
|
|
+ prodInOut.setOutBizCode(prodInOut.getPiOrderType()+"-"+System.currentTimeMillis());// 外部业务代码 消息ID, 用于去重, 因为网络等原因导致重复传输, 请求不会被重复处理
|
|
|
+ // 构建明细查询SQL
|
|
|
+ String detSql = buildDetailSql(master, prodInOut);
|
|
|
+ // 查询明细数据
|
|
|
+ List<Prodiodetail> details = queryDetails(master, detSql);
|
|
|
+ prodInOut.setDetails(details);
|
|
|
+ // 更新WMS相关表
|
|
|
+ if (!prodInOut.getPiWmsstatus().equals("已确认")) {
|
|
|
+ updateWmsTables(master, prodInOut, detSql);
|
|
|
+ }
|
|
|
+ if("YUEJH_TEST".equals(master)){
|
|
|
+ prodInOut.setCurrentMaster("YUEJH");
|
|
|
+ }
|
|
|
+ if("YJH_T".equals(master)){
|
|
|
+ prodInOut.setCurrentMaster("AIFL");
|
|
|
+ }
|
|
|
+ if("YIT_T".equals(master)){
|
|
|
+ prodInOut.setCurrentMaster("YJH_HK");
|
|
|
}
|
|
|
return prodInOut;
|
|
|
}
|
|
|
@@ -64,8 +76,8 @@ public class DocCommonServiceImpl implements DocCommonService {
|
|
|
.append("to_char(pi_recorddate,'yyyy-mm-dd hh24:mi:ss') piDate,pi_Cardcode piCardcode,pi_Title piTitle,")
|
|
|
.append("pi_Recordman piRecordman,to_char(pi_recorddate,'yyyy-mm-dd hh24:mi:ss') piRecorddate,pi_Remark piRemark,")
|
|
|
.append("abs(nvl(pi_sendwmsflag,0)) piSendwmsflag,nvl(pi_WmsInType,'in') piWmsInType,pi_wmsstatus piWmsstatus,")
|
|
|
- .append("pi_invostatuscode piInvoStatusCode,pi_lxr_user piLxr,pi_lxdh_user piLxdh,pi_shrsj_user piShrsj,pi_khdz_user piKhdz,ma_function currentMasterName ")
|
|
|
- .append("from ").append(master).append(".prodinout left join DATACENTER_P.MASTER on MA_USER = '").append(master).append("' where pi_id = ").append(id)
|
|
|
+ .append("pi_invostatuscode piInvoStatusCode,'"+master+"' currentMaster ")
|
|
|
+ .append("from ").append(master).append(".prodinout where pi_id = ").append(id)
|
|
|
.toString();
|
|
|
List<ProdInout> prodInOuts = baseDao.getJdbcTemplate().query(sql,
|
|
|
new BeanPropertyRowMapper<>(ProdInout.class));
|
|
|
@@ -104,51 +116,13 @@ public class DocCommonServiceImpl implements DocCommonService {
|
|
|
" ,pi_custwhcode_user,iwh.wh_description,pi_postmastercode,ma_function" +
|
|
|
" order by MIN(pd_pdno) ");
|
|
|
}
|
|
|
- //BCCK 拨出、拨入单 BCCKZF 库存转移-直发(拨出、拨入)
|
|
|
- if("BCCK".equals(prodInOut.getPiOrderType())||"BCCKZF".equals(prodInOut.getPiOrderType())){
|
|
|
- sqlBuilder.append("select pd_piid pdPiid,min(pd_id) pdId,min(pd_pdno) pdPdno,pd_prodcode pdProdcode,pr_detail pdProdname,pr_brand pdBrandName" +
|
|
|
- ",sum(nvl(pd_inqty,0)+nvl(pd_outqty,0)) pdQty" +
|
|
|
- ",pd_whcode pdWhcode,owh.wh_description pdWhname,pd_description pdInBatch" +
|
|
|
- ",pd_inwhcode pdWhcodeTo,iwh.wh_description pdWhnameTo" +
|
|
|
- ",'"+master+"' postMasterCode,'"+prodInOut.getCurrentMasterName()+"' postMasterName " +
|
|
|
- ",pd_prodcode pdProdcodeTo,pr_brand pdBrandNameTo" +
|
|
|
- " from "+master+".prodiodetail LEFT JOIN "+master+".product on pr_code = pd_prodcode left join "+master+".productbrand on pb_name = pr_brand " +
|
|
|
- " left join "+master+".warehouse owh on owh.wh_Code = pd_whcode " +
|
|
|
- " left join "+master+".warehouse iwh on iwh.wh_Code = pd_inwhcode " +
|
|
|
- " where pd_piid = "+prodInOut.getPiId()+" and pb_sendwms = -1 " +
|
|
|
- " group by pd_piid,pd_prodcode,pr_detail,pr_brand,pd_whcode,owh.wh_description,pd_description" +
|
|
|
- " ,pd_inwhcode,iwh.wh_description" +
|
|
|
- " order by MIN(pd_pdno) ");
|
|
|
- }
|
|
|
- //XHTZ 型号调整(其它出库单) XHTZZF 型号调整-直发(其它出库单)
|
|
|
- if("XHTZ".equals(prodInOut.getPiOrderType())||"XHTZZF".equals(prodInOut.getPiOrderType())){
|
|
|
- sqlBuilder.append("select pd_piid pdPiid,min(pd_id) pdId,min(pd_pdno) pdPdno,pd_prodcode pdProdcode,opr.pr_detail pdProdname,opr.pr_brand pdBrandName" +
|
|
|
- ",sum(nvl(pd_inqty,0)+nvl(pd_outqty,0)) pdQty" +
|
|
|
- ",pd_whcode pdWhcode,owh.wh_description pdWhname,pd_description pdInBatch" +
|
|
|
- ",pd_postwhcode pdWhcodeTo,iwh.wh_description pdWhnameTo" +
|
|
|
- ",'"+master+"' postMasterCode,'"+prodInOut.getCurrentMasterName()+"' postMasterName " +
|
|
|
- ",pd_prodcode1_user pdProdcodeTo,ipr.pr_brand pdBrandNameTo" +
|
|
|
- " from "+master+".prodiodetail " +
|
|
|
- " LEFT JOIN "+master+".product ipr on ipr.pr_code = pd_prodcode left join "+master+".productbrand ibr on ibr.pb_name = ipr.pr_brand " +
|
|
|
- " LEFT JOIN "+master+".product opr on opr.pr_code = pd_prodcode left join "+master+".productbrand obr on obr.pb_name = opr.pr_brand " +
|
|
|
- " left join "+master+".warehouse owh on owh.wh_Code = pd_whcode " +
|
|
|
- " left join "+master+".warehouse iwh on iwh.wh_Code = pd_postwhcode " +
|
|
|
- " where pd_piid = "+prodInOut.getPiId()+" and obr.pb_sendwms = -1 and ibr.pb_sendwms = -1 " +
|
|
|
- " group by pd_piid,pd_prodcode,opr.pr_detail,opr.pr_brand,pd_whcode,owh.wh_description,pd_description" +
|
|
|
- " ,pd_postwhcode,iwh.wh_description,pd_prodcode1_user,ipr.pr_brand" +
|
|
|
- " order by MIN(pd_pdno) ");
|
|
|
- }
|
|
|
} else {
|
|
|
- sqlBuilder.append("select pd_piid pdPiid,min(pd_id) pdId,min(pd_pdno) pdPdno,pd_prodcode pdProdcode,pr_detail pdProdname,pr_brand pdBrandName" +
|
|
|
- ",sum(nvl(pd_inqty,0)+nvl(pd_outqty,0)) pdQty" +
|
|
|
- ",pd_whcode pdWhcode,wh_description pdWhname,pd_description pdInBatch" +
|
|
|
- " from "+master+".prodiodetail LEFT JOIN "+master+".product on pr_code = pd_prodcode left join "+master+".productbrand on pb_name = pr_brand " +
|
|
|
- " left join "+master+".warehouse on wh_Code = pd_whcode " +
|
|
|
- " where pd_piid = "+prodInOut.getPiId()+" and pb_sendwms = -1 " +
|
|
|
- " group by pd_piid,pd_prodcode,pr_detail,pr_brand,pd_whcode,wh_description,pd_description" +
|
|
|
- " order by MIN(pd_pdno) ");
|
|
|
+ sqlBuilder.append("select pd_piid pdPiid,(pd_id) pdId,(pd_pdno) pdPdno,pd_prodcode pdProdcode,pr_detail pdProdname,pr_brand pdBrandName" +
|
|
|
+ " ,(nvl(pd_inqty,0)+nvl(pd_outqty,0)) pdQty ,pd_whcode pdWhcode,wh_description pdWhname" +
|
|
|
+ " from "+master+".prodiodetail LEFT JOIN "+master+".product on pr_code = pd_prodcode left join "+master+".warehouse on wh_Code = pd_whcode " +
|
|
|
+ " where pd_piid = "+prodInOut.getPiId()+" and nvl(pr_sendwmsflag,0) = -1 " +
|
|
|
+ " order by pd_pdno ");
|
|
|
}
|
|
|
-
|
|
|
return sqlBuilder.toString();
|
|
|
}
|
|
|
|
|
|
@@ -164,17 +138,16 @@ public class DocCommonServiceImpl implements DocCommonService {
|
|
|
String deleteDetailSql = "delete from " + master + ".prodiowms_lines where pl_piid = " + piId;
|
|
|
baseDao.execute(deleteMainSql);
|
|
|
baseDao.execute(deleteDetailSql);
|
|
|
-
|
|
|
// 插入主表数据
|
|
|
String sql = new StringBuilder()
|
|
|
- .append("INSERT INTO ").append(master).append(".prodiowms(ITIME,PIID, PIINOUTNO, ORDERCODE, OWNERCODE, WAREHOUSECODE, WMSORDERID, WMSORDERTYPE)")
|
|
|
+ .append("INSERT INTO ").append(master).append(".prodiowms(ITIME,PIID, PIINOUTNO, ORDERCODE, OWNERCODE, WAREHOUSECODE, WMSORDERID, WMSORDERTYPE,OUTBIZCODE)")
|
|
|
.append(" select sysdate,pi_id,pi_inoutno,pi_inoutno,'")
|
|
|
- .append(vwmsConfig.getOwnerCode()).append("','")
|
|
|
- .append(vwmsConfig.getWarehouseCode()).append("',PI_WMSORDERCODE,PI_WMSORDERTYPE")
|
|
|
+ .append(prodInOut.getCurrentMaster()).append("','")
|
|
|
+ .append(vwmsConfig.getWarehouseCode()).append("',PI_WMSORDERCODE,PI_WMSORDERTYPE,'").append(prodInOut.getOutBizCode()).append("'")
|
|
|
.append(" from ").append(master).append(".prodinout where pi_id = ").append(prodInOut.getPiId())
|
|
|
.toString();
|
|
|
baseDao.execute(sql);
|
|
|
- // 插入明细数据
|
|
|
+ // 插入明细数据 PL_PIID, ITIME, UTIME, OUTBIZCODE, LOGICWAREHOUSECODE, INLOGICWAREHOUSECODE, LINENO, ITEMCODE, PLANQTY, ACTUALQTY
|
|
|
if ("out".equals(prodInOut.getPiWmsInType())) {
|
|
|
String insertDetailSql = new StringBuilder()
|
|
|
.append("INSERT INTO ").append(master).append(".prodiowms_Lines(ITIME,PL_PIID,LINENO, ITEMCODE, PLANQTY,virtualWarehouse, USERDEFINED1,userDefined3,USERDEFINED4,customField1,customField2,customField3)")
|
|
|
@@ -183,9 +156,6 @@ public class DocCommonServiceImpl implements DocCommonService {
|
|
|
.toString();
|
|
|
baseDao.execute(insertDetailSql);
|
|
|
} else if ("transfer".equals(prodInOut.getPiWmsInType())) {
|
|
|
- //NBZK 内部转库(出货单) QTCK 其他出库(其它出库单) NBZKZF: 内部转库-直发(其它出库单、出货单、采购验退单)
|
|
|
- //BCCK: 拨出、拨入单 BCCKZF: 库存转移-直发(拨出、拨入)
|
|
|
- //XHTZ: 型号调整(其它出库单) XHTZZF: 型号调整-直发(其它出库单)
|
|
|
String insertDetailSql = new StringBuilder()
|
|
|
.append("INSERT INTO ").append(master).append(".prodiowms_Lines(ITIME,PL_PIID,LINENO, ITEMCODE, PLANQTY,virtualWarehouse")
|
|
|
.append(" ,targetItemCode,s_virtualwarehouse,s_userdefined1,s_userdefined3,s_userdefined4,t_virtualwarehouse,t_userdefined1,t_userdefined3,t_userdefined4)")
|
|
|
@@ -196,9 +166,9 @@ public class DocCommonServiceImpl implements DocCommonService {
|
|
|
baseDao.execute(insertDetailSql);
|
|
|
} else {
|
|
|
String insertDetailSql = new StringBuilder()
|
|
|
- .append("INSERT INTO ").append(master).append(".prodiowms_Lines(ITIME,PL_PIID,LINENO, ITEMCODE, PLANQTY,virtualWarehouse, USERDEFINED1,userDefined3,USERDEFINED4)")
|
|
|
- .append(" select sysdate,pdPiid,pdPdno,pdProdcode,pdQty,pdWhname,pdInBatch,pdBrandName,'")
|
|
|
- .append(master).append("' from (").append(detSql).append(")")
|
|
|
+ .append("INSERT INTO ").append(master).append(".prodiowms_Lines(ITIME,PL_PIID,LOGICWAREHOUSECODE,LINENO, ITEMCODE, PLANQTY)")
|
|
|
+ .append(" select sysdate,pdPiid,pdWhcode,pdPdno,pdProdcode,pdQty ")
|
|
|
+ .append(" from (").append(detSql).append(")")
|
|
|
.toString();
|
|
|
baseDao.execute(insertDetailSql);
|
|
|
}
|
|
|
@@ -209,45 +179,19 @@ public class DocCommonServiceImpl implements DocCommonService {
|
|
|
String orderType = prodInOut.getPiOrderType();
|
|
|
for (Prodiodetail detail : prodInOut.getDetails()) {
|
|
|
OrderLine orderLine;
|
|
|
- if ("in".equals(prodInOut.getPiWmsInType())) {
|
|
|
- orderLine = new OrderLineIn(); // 创建入库订单行对象
|
|
|
- ((OrderLineIn) orderLine).setStockinDate(prodInOut.getPiDate()); // 设置入库日期
|
|
|
- }else if ("out".equals(prodInOut.getPiWmsInType())) {
|
|
|
+ if ("out".equals(prodInOut.getPiWmsInType())) {
|
|
|
orderLine = new OrderLineOut(); // 创建普通订单行对象
|
|
|
- ((OrderLineOut) orderLine).setCustomField1(detail.getPdCustprodcode());
|
|
|
- ((OrderLineOut) orderLine).setCustomField2(detail.getPdCustprodcode1());
|
|
|
- ((OrderLineOut) orderLine).setCustomField3(detail.getPdPocode());
|
|
|
- }else {//move
|
|
|
+ }else {//transfer
|
|
|
orderLine = new OrderLineMove(); // 创建普通订单行对象
|
|
|
- OrderLineMove.Source moveSource = new OrderLineMove.Source();
|
|
|
- moveSource.setVirtualWarehouse(detail.getPdWhname());
|
|
|
- moveSource.setUserDefined1(detail.getPdInBatch());
|
|
|
- moveSource.setUserDefined3(detail.getPdBrandName());
|
|
|
- moveSource.setUserDefined4(prodInOut.getCurrentMasterName());
|
|
|
- ((OrderLineMove) orderLine).setSource(moveSource);
|
|
|
- OrderLineMove.Target moveTarget = new OrderLineMove.Target();
|
|
|
- moveTarget.setVirtualWarehouse(detail.getPdWhnameTo());
|
|
|
- moveTarget.setUserDefined1(detail.getPdInBatch());
|
|
|
- moveTarget.setUserDefined3(detail.getPdBrandName());
|
|
|
- moveTarget.setUserDefined4(detail.getPostMasterName());
|
|
|
- ((OrderLineMove) orderLine).setTarget(moveTarget);
|
|
|
- //型号调整(其它出库单) XHTZ 型号调整-直发(其它出库单) XHTZZF
|
|
|
- if("XHTZ".equals(orderType)||"XHTZZF".equals(orderType)){
|
|
|
- ((OrderLineMove) orderLine).setTargetItemCode(detail.getPdProdcodeTo());
|
|
|
- }
|
|
|
}
|
|
|
// 设置通用属性
|
|
|
- orderLine.setLineNo(String.valueOf(detail.getPdPdno()));// 行号
|
|
|
+ orderLine.setOutBizCode(prodInOut.getOutBizCode());
|
|
|
+ orderLine.setLogicWarehouseCode(detail.getPdWhcode());
|
|
|
+ orderLine.setOrderLineNo(String.valueOf(detail.getPdPdno()));// 行号
|
|
|
+ orderLine.setOwnerCode(prodInOut.getCurrentMaster());// 货主编码
|
|
|
orderLine.setItemCode(detail.getPdProdcode());// 商品编码
|
|
|
orderLine.setItemName(detail.getPdProdname());// 商品名称
|
|
|
orderLine.setPlanQty(detail.getPdQty());// 数量
|
|
|
- if (!"transfer".equals(prodInOut.getPiWmsInType())) {
|
|
|
- orderLine.setOwnerCode(vwmsConfig.getOwnerCode());// 货主编码
|
|
|
- orderLine.setVirtualWarehouse(detail.getPdWhname());// 虚拟仓库编号
|
|
|
- orderLine.setUserDefined1(detail.getPdInBatch());// 入库批次
|
|
|
- orderLine.setUserDefined3(detail.getPdBrandName());// 品牌
|
|
|
- orderLine.setUserDefined4(masterName);//账套
|
|
|
- }
|
|
|
orderLineList.add(orderLine);
|
|
|
}
|
|
|
return orderLineList;
|
|
|
@@ -260,7 +204,7 @@ public class DocCommonServiceImpl implements DocCommonService {
|
|
|
AdjustmentOrder adjustmentOrder = new AdjustmentOrder();
|
|
|
adjustmentOrder.setAdjustmentOrderCode(prodInOut.getPiInoutno());// 转移单号(ERP单号)
|
|
|
adjustmentOrder.setAdjustmentOrderType(prodInOut.getPiOrderType());// 转移单类型
|
|
|
- adjustmentOrder.setOwnerCode(vwmsConfig.getOwnerCode());// 货主编码
|
|
|
+ adjustmentOrder.setOwnerCode(prodInOut.getCurrentMaster());// 货主编码
|
|
|
adjustmentOrder.setWarehouseCode(vwmsConfig.getWarehouseCode());// 仓库编码
|
|
|
// adjustmentOrder.setCreateTime(prodInOut.getPiRecordDate());
|
|
|
adjustmentOrder.setRemark(prodInOut.getPiRemark());
|
|
|
@@ -291,7 +235,7 @@ public class DocCommonServiceImpl implements DocCommonService {
|
|
|
DeliveryOrder deliveryOrder = new DeliveryOrder();
|
|
|
deliveryOrder.setOutBizCode(prodInOut.getPiOrderType()+"-"+System.currentTimeMillis());// 外部业务代码 消息ID, 用于去重, 因为网络等原因导致重复传输, 请求不会被重复处理
|
|
|
deliveryOrder.setDeliveryOrderCode(prodInOut.getPiInoutno());// 出库单号
|
|
|
- deliveryOrder.setOwnerCode(vwmsConfig.getOwnerCode());// 货主编码
|
|
|
+ deliveryOrder.setOwnerCode(prodInOut.getCurrentMaster());// 货主编码
|
|
|
deliveryOrder.setWarehouseCode(vwmsConfig.getWarehouseCode());// 仓库编码
|
|
|
deliveryOrder.setPlacedAt(prodInOut.getPiDate());// 订单创建时间
|
|
|
deliveryOrder.setOrderType(prodInOut.getPiOrderType());// 订单类型
|
|
|
@@ -356,15 +300,13 @@ public class DocCommonServiceImpl implements DocCommonService {
|
|
|
@Override
|
|
|
public String sendInToWms(ProdInout prodInOut,String masterName){
|
|
|
EntryOrder entryOrder = new EntryOrder();
|
|
|
- entryOrder.setOutBizCode(prodInOut.getPiOrderType()+"-"+System.currentTimeMillis());// 外部业务代码 消息ID, 用于去重, 因为网络等原因导致重复传输, 请求不会被重复处理
|
|
|
entryOrder.setEntryOrderCode(prodInOut.getPiInoutno());// 入库单号
|
|
|
- entryOrder.setOwnerCode(vwmsConfig.getOwnerCode());// 货主编码
|
|
|
+ entryOrder.setOwnerCode(prodInOut.getCurrentMaster());// 货主编码
|
|
|
entryOrder.setWarehouseCode(vwmsConfig.getWarehouseCode());// 仓库编码
|
|
|
-// entryOrder.setOrderCreateTime(prodInOut.getPiRecordDate());// 订单创建时间
|
|
|
+ entryOrder.setOrderCreateTime(prodInOut.getPiRecordDate());// 订单创建时间
|
|
|
entryOrder.setOrderType(prodInOut.getPiOrderType());// 订单类型
|
|
|
entryOrder.setSupplierCode(prodInOut.getPiCardCode());// 供应商编码
|
|
|
entryOrder.setSupplierName(prodInOut.getPiTitle());// 供应商名称
|
|
|
- entryOrder.setDocumentMaker(prodInOut.getPiRecordman());// 制单人
|
|
|
entryOrder.setRemark(prodInOut.getPiRemark());// 备注
|
|
|
List<OrderLineIn> orderList = (List<OrderLineIn>) getOrderLines(prodInOut, masterName);
|
|
|
EntryOrderAndDetRequest entryOrderAndDetRequest = new EntryOrderAndDetRequest();
|
|
|
@@ -373,117 +315,59 @@ public class DocCommonServiceImpl implements DocCommonService {
|
|
|
entryOrderAndDetRequest.setEntryOrder(entryOrder);
|
|
|
entryOrderAndDetRequest.setOrderLines(orderLineIns);
|
|
|
//转换为JSON字符串
|
|
|
- String json = null;
|
|
|
- String method = null;
|
|
|
- if(prodInOut.getPiSendwmsflag() == 0){
|
|
|
- method = "openapi.entryorder.create";
|
|
|
- BaseReq<EntryOrderAndDetRequest> req = new BaseReq();
|
|
|
- req.setRequest(entryOrderAndDetRequest);
|
|
|
- try {
|
|
|
- json = objectMapper.writeValueAsString(req);
|
|
|
- } catch (JsonProcessingException e) {
|
|
|
- e.printStackTrace();
|
|
|
- return "JSON转换失败";
|
|
|
- }
|
|
|
- //TODO 写入表:WMS_IO_RECORD_SEQ
|
|
|
- }else {
|
|
|
- method = "openapi.entryorder.batchupdate";
|
|
|
- BaseReq<OrderVastRequest<EntryOrderAndDetRequest>> req = new BaseReq();
|
|
|
- OrderVastRequest<EntryOrderAndDetRequest> vastReq = new OrderVastRequest();
|
|
|
- OrderVastRequest.OrdersRequest<EntryOrderAndDetRequest> orders = new OrderVastRequest.OrdersRequest<EntryOrderAndDetRequest>();
|
|
|
- orders.setOrder(Arrays.asList(entryOrderAndDetRequest));
|
|
|
- vastReq.setOutBizCode(entryOrderAndDetRequest.getEntryOrder().getOutBizCode());
|
|
|
- vastReq.setOrders(orders);
|
|
|
- req.setRequest(vastReq);
|
|
|
- try {
|
|
|
- json = objectMapper.writeValueAsString(req);
|
|
|
- } catch (JsonProcessingException e) {
|
|
|
- e.printStackTrace();
|
|
|
- return "JSON转换失败";
|
|
|
- }
|
|
|
- }
|
|
|
- return doSendOrderToWms(json,method);
|
|
|
- }
|
|
|
-
|
|
|
- private String doSendOrderToWms(String json,String method){
|
|
|
- String eMsg = null;
|
|
|
+ String xml = null;
|
|
|
+ String method = "entryorder.create";
|
|
|
try {
|
|
|
- logger.info("doSendInOrderToWms method:{} json: {}",method, json);
|
|
|
- HttpUtil.Response response = HttpUtil.doPostToVWMS(method, json,vwmsConfig);
|
|
|
- if(!String.valueOf(response.getStatusCode()).startsWith("2")){
|
|
|
- eMsg = "("+response.getStatusCode()+")"+StringUtil.nvl(response.getResponseText(),"未知").replaceAll("'","''");
|
|
|
- }else {
|
|
|
- BaseVastResp baseVastResp = new ObjectMapper().readValue(response.getResponseText(), BaseVastResp.class);
|
|
|
- BaseVastResp.Response baseVastRespResponse= baseVastResp.getResponse();
|
|
|
- if(baseVastRespResponse!=null){
|
|
|
- if("success".equals(baseVastRespResponse.getFlag())){
|
|
|
- String orderId = "";
|
|
|
- if("openapi.entryorder.create".equals(method)){
|
|
|
- orderId = baseVastRespResponse.getEntryOrderId();
|
|
|
- eMsg = "OrderId:"+orderId;
|
|
|
- }
|
|
|
- if("openapi.stockout.create".equals(method)){
|
|
|
- orderId = baseVastRespResponse.getDeliveryOrderId();
|
|
|
- eMsg = "OrderId:"+orderId;
|
|
|
- }
|
|
|
- if("openapi.adjustmentorder.create".equals(method)){
|
|
|
- orderId = baseVastRespResponse.getAdjustmentOrderId();
|
|
|
- eMsg = "OrderId:"+orderId;
|
|
|
- }
|
|
|
- logger.info("doSendInOrderToWms-resp-s code: {} method {} OrderId {} message: {}", baseVastRespResponse.getCode(),method,orderId,baseVastRespResponse.getMessage());
|
|
|
- }else {
|
|
|
- eMsg = "(" + baseVastRespResponse.getCode() + ")";
|
|
|
- String errorMessage = baseVastRespResponse.getMessage();
|
|
|
- if (baseVastRespResponse.getOrders() != null &&
|
|
|
- !CollectionUtil.isEmpty(baseVastRespResponse.getOrders().getOrder())) {
|
|
|
- errorMessage = StringUtil.nvl(baseVastRespResponse.getOrders().getOrder().get(0).getMessage(),baseVastRespResponse.getMessage());
|
|
|
- }
|
|
|
- eMsg += StringUtil.nvl(errorMessage, "未知").replaceAll("'", "''");
|
|
|
- }
|
|
|
- }else {
|
|
|
- eMsg = "RespJSON转换失败:"+response.getStatusCode()+":"+response.getResponseText();
|
|
|
- }
|
|
|
- }
|
|
|
+ XmlMapper xmlMapper = new XmlMapper();
|
|
|
+ xml = xmlMapper.writeValueAsString(entryOrderAndDetRequest);
|
|
|
} catch (JsonProcessingException e) {
|
|
|
e.printStackTrace();
|
|
|
- eMsg = "JSON转换失败";
|
|
|
- } catch (Exception e) {
|
|
|
- e.printStackTrace();
|
|
|
- eMsg = StringUtil.nvl(e.getMessage(),"无").replaceAll("'","''");
|
|
|
+ return "JSON转换失败";
|
|
|
}
|
|
|
- return eMsg;
|
|
|
+ //TODO 写入表:WMS_IO_RECORD_SEQ
|
|
|
+ return doSendOrderToWms(xml,method);
|
|
|
}
|
|
|
|
|
|
- @Override
|
|
|
- public String sendToWms(String json,String method){
|
|
|
+ private String doSendOrderToWms(String xml,String method){
|
|
|
String eMsg = null;
|
|
|
try {
|
|
|
- logger.info("sendToWms method:{} json: {}",method, json);
|
|
|
- HttpUtil.Response response = HttpUtil.doPostToVWMS(method, json,vwmsConfig);
|
|
|
+ logger.info("doSendInOrderToWms method:{} XML: {}",method, xml);
|
|
|
+ HttpUtil.Response response= HttpUtil.postXmlToVWMS(method,xml, "UTF-8",vwmsConfig);
|
|
|
if(!String.valueOf(response.getStatusCode()).startsWith("2")){
|
|
|
eMsg = "("+response.getStatusCode()+")"+StringUtil.nvl(response.getResponseText(),"未知").replaceAll("'","''");
|
|
|
}else {
|
|
|
- BaseVastResp baseVastResp = new ObjectMapper().readValue(response.getResponseText(), BaseVastResp.class);
|
|
|
- BaseVastResp.Response baseVastRespResponse= baseVastResp.getResponse();
|
|
|
- if(baseVastRespResponse!=null){
|
|
|
- if("success".equals(baseVastRespResponse.getFlag())){
|
|
|
- logger.info("sendToWms-resp-s code: {} method {} message: {}", baseVastRespResponse.getCode(),method,baseVastRespResponse.getMessage());
|
|
|
- }else {
|
|
|
- eMsg = "(" + baseVastRespResponse.getCode() + ")";
|
|
|
- String errorMessage = baseVastRespResponse.getMessage();
|
|
|
- if (baseVastRespResponse.getOrders() != null &&
|
|
|
- !CollectionUtil.isEmpty(baseVastRespResponse.getOrders().getOrder())) {
|
|
|
- errorMessage = StringUtil.nvl(baseVastRespResponse.getOrders().getOrder().get(0).getMessage(),baseVastRespResponse.getMessage());
|
|
|
+ logger.info("doSendInOrderToWms method:{} response: {}",response.getResponseText());
|
|
|
+ // 创建XmlMapper实例
|
|
|
+ XmlMapper xmlMapper = new XmlMapper();
|
|
|
+ IOResp ioResp = xmlMapper.readValue(response.getResponseText(), IOResp.class);
|
|
|
+ if(ioResp!=null){
|
|
|
+ if("success".equals(ioResp.getFlag())){
|
|
|
+ String orderId = "";
|
|
|
+ if("entryorder.create".equals(method)){
|
|
|
+ orderId = ioResp.getEntryOrderId();
|
|
|
+ eMsg = "OrderId:"+orderId;
|
|
|
}
|
|
|
+// if("openapi.stockout.create".equals(method)){
|
|
|
+// orderId = baseVastRespResponse.getDeliveryOrderId();
|
|
|
+// eMsg = "OrderId:"+orderId;
|
|
|
+// }
|
|
|
+// if("openapi.adjustmentorder.create".equals(method)){
|
|
|
+// orderId = baseVastRespResponse.getAdjustmentOrderId();
|
|
|
+// eMsg = "OrderId:"+orderId;
|
|
|
+// }
|
|
|
+ logger.info("doSendInOrderToWms-resp-s code: {} method {} OrderId {} message: {}", ioResp.getCode(),method,orderId,ioResp.getMessage());
|
|
|
+ }else {
|
|
|
+ eMsg = "(" + ioResp.getCode() + ")";
|
|
|
+ String errorMessage = ioResp.getMessage();
|
|
|
eMsg += StringUtil.nvl(errorMessage, "未知").replaceAll("'", "''");
|
|
|
}
|
|
|
}else {
|
|
|
- eMsg = "RespJSON转换失败:"+response.getStatusCode()+":"+response.getResponseText();
|
|
|
+ eMsg = "Resp XML转换失败:"+response.getStatusCode()+":"+response.getResponseText();
|
|
|
}
|
|
|
}
|
|
|
- } catch (JsonProcessingException e) {
|
|
|
+ } catch (IOException e) {
|
|
|
e.printStackTrace();
|
|
|
- eMsg = "JSON转换失败";
|
|
|
+ eMsg = "xmL转换失败";
|
|
|
} catch (Exception e) {
|
|
|
e.printStackTrace();
|
|
|
eMsg = StringUtil.nvl(e.getMessage(),"无").replaceAll("'","''");
|