|
@@ -45,12 +45,12 @@ public class DocCommonServiceImpl implements DocCommonService {
|
|
|
private ObjectMapper objectMapper; // 注入Jackson的ObjectMapper
|
|
private ObjectMapper objectMapper; // 注入Jackson的ObjectMapper
|
|
|
|
|
|
|
|
@Override
|
|
@Override
|
|
|
- public ProdInout getIO(String master,String id){
|
|
|
|
|
|
|
+ public ProdInout getIO(String master,String id,String pdIds){
|
|
|
// 查询主表信息
|
|
// 查询主表信息
|
|
|
ProdInout prodInOut = queryMainTable(master, id);
|
|
ProdInout prodInOut = queryMainTable(master, id);
|
|
|
prodInOut.setOutBizCode(prodInOut.getPiOrderType()+"-"+System.currentTimeMillis());// 外部业务代码 消息ID, 用于去重, 因为网络等原因导致重复传输, 请求不会被重复处理
|
|
prodInOut.setOutBizCode(prodInOut.getPiOrderType()+"-"+System.currentTimeMillis());// 外部业务代码 消息ID, 用于去重, 因为网络等原因导致重复传输, 请求不会被重复处理
|
|
|
// 构建明细查询SQL
|
|
// 构建明细查询SQL
|
|
|
- String detSql = buildDetailSql(master, prodInOut);
|
|
|
|
|
|
|
+ String detSql = buildDetailSql(master, prodInOut,pdIds);
|
|
|
// 查询明细数据
|
|
// 查询明细数据
|
|
|
List<Prodiodetail> details = queryDetails(master, detSql);
|
|
List<Prodiodetail> details = queryDetails(master, detSql);
|
|
|
prodInOut.setDetails(details);
|
|
prodInOut.setDetails(details);
|
|
@@ -94,7 +94,7 @@ public class DocCommonServiceImpl implements DocCommonService {
|
|
|
new BeanPropertyRowMapper<>(ProdInout.class));
|
|
new BeanPropertyRowMapper<>(ProdInout.class));
|
|
|
return prodInOuts.get(0);
|
|
return prodInOuts.get(0);
|
|
|
}
|
|
}
|
|
|
- private String buildDetailSql(String master, ProdInout prodInOut) {
|
|
|
|
|
|
|
+ private String buildDetailSql(String master, ProdInout prodInOut,String pdIds) {
|
|
|
StringBuilder sqlBuilder = new StringBuilder();
|
|
StringBuilder sqlBuilder = new StringBuilder();
|
|
|
if ("in".equals(prodInOut.getPiWmsInType())) {
|
|
if ("in".equals(prodInOut.getPiWmsInType())) {
|
|
|
sqlBuilder.append("select pd_piid pdPiid,(pd_id) pdId,(pd_pdno) pdPdno,pd_prodcode pdProdcode,pr_detail pdProdname,pr_brand pdBrandName" +
|
|
sqlBuilder.append("select pd_piid pdPiid,(pd_id) pdId,(pd_pdno) pdPdno,pd_prodcode pdProdcode,pr_detail pdProdname,pr_brand pdBrandName" +
|
|
@@ -118,8 +118,11 @@ public class DocCommonServiceImpl implements DocCommonService {
|
|
|
.append(" left join ").append(master).append(".saledetail on sd_Code = pd_ordercode and sd_Detno = pd_orderdetno ")
|
|
.append(" left join ").append(master).append(".saledetail on sd_Code = pd_ordercode and sd_Detno = pd_orderdetno ")
|
|
|
.append(" left join ").append(master).append(".TRANSFERSTOCK ON PI_INOUTNO = TS_CODE ")
|
|
.append(" left join ").append(master).append(".TRANSFERSTOCK ON PI_INOUTNO = TS_CODE ")
|
|
|
.append(" left join ").append(master).append(".TRANSFERSTOCKDETAIL ON TS_ID=TSD_TSID AND PD_PDNO = TSD_DETNO ")
|
|
.append(" left join ").append(master).append(".TRANSFERSTOCKDETAIL ON TS_ID=TSD_TSID AND PD_PDNO = TSD_DETNO ")
|
|
|
- .append("where pd_piid = ").append(prodInOut.getPiId()).append(" and nvl(pr_sendwmsflag,0) = -1")
|
|
|
|
|
- .append(" order by pd_pdno ");
|
|
|
|
|
|
|
+ .append("where pd_piid = ").append(prodInOut.getPiId()).append(" and nvl(pr_sendwmsflag,0) = -1");
|
|
|
|
|
+ if(StringUtil.hasText(pdIds)){
|
|
|
|
|
+ sqlBuilder.append(" and pd_id in (").append(pdIds).append(")");
|
|
|
|
|
+ }
|
|
|
|
|
+ sqlBuilder.append(" order by pd_pdno ");
|
|
|
}else {
|
|
}else {
|
|
|
sqlBuilder.append("select pd_piid pdPiid,(pd_id) pdId,(pd_pdno) pdPdno,pd_prodcode pdProdcode,")
|
|
sqlBuilder.append("select pd_piid pdPiid,(pd_id) pdId,(pd_pdno) pdPdno,pd_prodcode pdProdcode,")
|
|
|
.append("pr_detail pdProdname,pr_brand pdBrandName,(nvl(pd_inqty,0)+nvl(pd_outqty,0)) pdQty,")
|
|
.append("pr_detail pdProdname,pr_brand pdBrandName,(nvl(pd_inqty,0)+nvl(pd_outqty,0)) pdQty,")
|
|
@@ -131,8 +134,11 @@ public class DocCommonServiceImpl implements DocCommonService {
|
|
|
.append(" left join ").append(master).append(".product on pr_code = pd_prodcode ")
|
|
.append(" left join ").append(master).append(".product on pr_code = pd_prodcode ")
|
|
|
.append(" left join ").append(master).append(".warehouse on wh_Code = pd_whcode ")
|
|
.append(" left join ").append(master).append(".warehouse on wh_Code = pd_whcode ")
|
|
|
.append(" left join ").append(master).append(".saledetail on sd_Code = pd_ordercode and sd_Detno = pd_orderdetno ")
|
|
.append(" left join ").append(master).append(".saledetail on sd_Code = pd_ordercode and sd_Detno = pd_orderdetno ")
|
|
|
- .append("where pd_piid = ").append(prodInOut.getPiId()).append(" and nvl(pr_sendwmsflag,0) = -1")
|
|
|
|
|
- .append(" order by pd_pdno ");
|
|
|
|
|
|
|
+ .append("where pd_piid = ").append(prodInOut.getPiId()).append(" and nvl(pr_sendwmsflag,0) = -1");
|
|
|
|
|
+ if(StringUtil.hasText(pdIds)){
|
|
|
|
|
+ sqlBuilder.append(" and pd_id in (").append(pdIds).append(")");
|
|
|
|
|
+ }
|
|
|
|
|
+ sqlBuilder.append(" order by pd_pdno ");
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
return sqlBuilder.toString();
|
|
return sqlBuilder.toString();
|
|
@@ -262,7 +268,7 @@ public class DocCommonServiceImpl implements DocCommonService {
|
|
|
return "JSON转换失败";
|
|
return "JSON转换失败";
|
|
|
}
|
|
}
|
|
|
//TODO 写入表:WMS_IO_RECORD_SEQ
|
|
//TODO 写入表:WMS_IO_RECORD_SEQ
|
|
|
- return doSendOrderToWms(xml,method);
|
|
|
|
|
|
|
+ return doPostToWms(xml,method);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
@Override
|
|
@@ -293,20 +299,21 @@ public class DocCommonServiceImpl implements DocCommonService {
|
|
|
return "JSON转换失败";
|
|
return "JSON转换失败";
|
|
|
}
|
|
}
|
|
|
//TODO 写入表:WMS_IO_RECORD_SEQ
|
|
//TODO 写入表:WMS_IO_RECORD_SEQ
|
|
|
- return doSendOrderToWms(xml,method);
|
|
|
|
|
|
|
+ return doPostToWms(xml,method);
|
|
|
}
|
|
}
|
|
|
-
|
|
|
|
|
- private String doSendOrderToWms(String xml,String method){
|
|
|
|
|
|
|
+ @Override
|
|
|
|
|
+ public String doPostToWms(String xml,String method){
|
|
|
String eMsg = null;
|
|
String eMsg = null;
|
|
|
try {
|
|
try {
|
|
|
- logger.info("doSendInOrderToWms method:{} XML: {}",method, xml);
|
|
|
|
|
|
|
+ logger.info("doPostToWms method:{} XML: {}",method, xml);
|
|
|
// HttpUtil.Response response = new HttpUtil.Response();
|
|
// HttpUtil.Response response = new HttpUtil.Response();
|
|
|
// response.setStatusCode(404);
|
|
// response.setStatusCode(404);
|
|
|
|
|
+// response.setResponseText("单据已分配。");
|
|
|
HttpUtil.Response response = HttpUtil.postXmlToVWMS(method,xml, "UTF-8",vwmsConfig);
|
|
HttpUtil.Response response = HttpUtil.postXmlToVWMS(method,xml, "UTF-8",vwmsConfig);
|
|
|
if(!String.valueOf(response.getStatusCode()).startsWith("2")){
|
|
if(!String.valueOf(response.getStatusCode()).startsWith("2")){
|
|
|
eMsg = "("+response.getStatusCode()+")"+StringUtil.nvl(response.getResponseText(),"未知").replaceAll("'","''");
|
|
eMsg = "("+response.getStatusCode()+")"+StringUtil.nvl(response.getResponseText(),"未知").replaceAll("'","''");
|
|
|
}else {
|
|
}else {
|
|
|
- logger.info("doSendInOrderToWms method:{} response: {}",response.getResponseText());
|
|
|
|
|
|
|
+ logger.info("doPostToWms method:{} response: {}",response.getResponseText());
|
|
|
// 创建XmlMapper实例
|
|
// 创建XmlMapper实例
|
|
|
XmlMapper xmlMapper = new XmlMapper();
|
|
XmlMapper xmlMapper = new XmlMapper();
|
|
|
IOResp ioResp = xmlMapper.readValue(response.getResponseText(), IOResp.class);
|
|
IOResp ioResp = xmlMapper.readValue(response.getResponseText(), IOResp.class);
|