|
|
@@ -9,7 +9,9 @@ import com.uas.eis.entity.vwms.req.INConfirm;
|
|
|
import com.uas.eis.entity.vwms.req.OUTConfirm;
|
|
|
import com.uas.eis.sdk.entity.WMSApiResult;
|
|
|
import com.uas.eis.sdk.entity.WMSApiResultResp;
|
|
|
+import com.uas.eis.service.ERPService;
|
|
|
import com.uas.eis.service.ERPWMSService;
|
|
|
+import com.uas.eis.utils.StringUtil;
|
|
|
import org.slf4j.Logger;
|
|
|
import org.slf4j.LoggerFactory;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
@@ -29,9 +31,11 @@ public class ERPSWMServiceImpl implements ERPWMSService {
|
|
|
|
|
|
@Autowired
|
|
|
private BaseDao baseDao;
|
|
|
+ @Autowired
|
|
|
+ private ERPService erpService;
|
|
|
|
|
|
@Override
|
|
|
- public WMSApiResultResp IOConfirm(String method, HttpServletRequest request) throws IOException {
|
|
|
+ public WMSApiResultResp IOConfirm(String method, HttpServletRequest request) throws IOException {
|
|
|
WMSApiResultResp resp = new WMSApiResultResp();
|
|
|
WMSApiResult wmsApiResult = new WMSApiResult();
|
|
|
String masterName = "";
|
|
|
@@ -43,16 +47,16 @@ public class ERPSWMServiceImpl implements ERPWMSService {
|
|
|
ObjectMapper objectMapper = new ObjectMapper();
|
|
|
BaseReq req = null;
|
|
|
//入库确认 openapi.entryorder.confirm
|
|
|
- if("openapi.entryorder.confirm".equals(method)){
|
|
|
+ if ("openapi.entryorder.confirm".equals(method)) {
|
|
|
req = objectMapper.readValue(confirmBody,
|
|
|
objectMapper.getTypeFactory().constructParametricType(BaseReq.class, INConfirm.class));
|
|
|
- INConfirm inConfirm = (INConfirm)req.getRequest();
|
|
|
+ INConfirm inConfirm = (INConfirm) req.getRequest();
|
|
|
INConfirm.EntryOrder entryOrder = inConfirm.getEntryOrder();
|
|
|
masterName = inConfirm.getMasterName();
|
|
|
orderCode = entryOrder.getEntryOrderCode();
|
|
|
}
|
|
|
//出库确认 openapi.stockout.confirm
|
|
|
- if("openapi.stockout.confirm".equals(method)){
|
|
|
+ if ("openapi.stockout.confirm".equals(method)) {
|
|
|
req = objectMapper.readValue(confirmBody,
|
|
|
objectMapper.getTypeFactory().constructParametricType(BaseReq.class, OUTConfirm.class));
|
|
|
OUTConfirm outConfirm = (OUTConfirm) req.getRequest();
|
|
|
@@ -60,7 +64,7 @@ public class ERPSWMServiceImpl implements ERPWMSService {
|
|
|
masterName = outConfirm.getMasterName();
|
|
|
orderCode = order.getDeliveryOrderCode();
|
|
|
}
|
|
|
- if("openapi.adjustmentorder.confirm".equals(method)){
|
|
|
+ if ("openapi.adjustmentorder.confirm".equals(method)) {
|
|
|
req = objectMapper.readValue(confirmBody,
|
|
|
objectMapper.getTypeFactory().constructParametricType(BaseReq.class, AdjustConfirm.class));
|
|
|
AdjustConfirm adjustConfirm = (AdjustConfirm) req.getRequest();
|
|
|
@@ -68,31 +72,31 @@ public class ERPSWMServiceImpl implements ERPWMSService {
|
|
|
masterName = adjustConfirm.getMasterName();
|
|
|
orderCode = order.getAdjustmentOrderCode();
|
|
|
}
|
|
|
- if(orderCode == null || orderCode.equals("")){
|
|
|
+ if (orderCode == null || orderCode.equals("")) {
|
|
|
wmsApiResult.setFlag("failure");
|
|
|
wmsApiResult.setCode("400");
|
|
|
wmsApiResult.setMessage("没有找到对应的单据");
|
|
|
resp.setResponse(wmsApiResult);
|
|
|
return resp;
|
|
|
}
|
|
|
- if(masterName == null || masterName.equals("")){
|
|
|
+ if (masterName == null || masterName.equals("")) {
|
|
|
wmsApiResult.setFlag("failure");
|
|
|
wmsApiResult.setCode("400");
|
|
|
wmsApiResult.setMessage("没有找到对应的账套");
|
|
|
resp.setResponse(wmsApiResult);
|
|
|
return resp;
|
|
|
}
|
|
|
- String masterCode = baseDao.queryForObject("SELECT max(MA_USER) FROM DATACENTER_P.MASTER WHERE MA_ENABLE = 1 and MA_FUNCTION = ?",String.class,masterName);
|
|
|
- if(masterCode == null){
|
|
|
+ String masterCode = baseDao.queryForObject("SELECT max(MA_USER) FROM DATACENTER_P.MASTER WHERE MA_ENABLE = 1 and MA_FUNCTION = ?", String.class, masterName);
|
|
|
+ if (masterCode == null) {
|
|
|
wmsApiResult.setFlag("failure");
|
|
|
wmsApiResult.setCode("400");
|
|
|
wmsApiResult.setMessage("没有找到对应的账套");
|
|
|
resp.setResponse(wmsApiResult);
|
|
|
return resp;
|
|
|
}
|
|
|
- logger.info("IOConfirm-Begin:method {} inoutno {}",method, orderCode);
|
|
|
- SqlRowList piMsg = baseDao.queryForRowSet("select pi_id,pi_inoutno from "+masterCode+".PRODINOUT WHERE PI_INOUTNO = '"+orderCode+"'");
|
|
|
- if(!piMsg.next()){
|
|
|
+ logger.info("IOConfirm-Begin:method {} inoutno {}", method, orderCode);
|
|
|
+ SqlRowList piMsg = baseDao.queryForRowSet("select pi_id,pi_inoutno,pi_class,pi_wmsordertype,pi_postmastercode from " + masterCode + ".PRODINOUT WHERE PI_INOUTNO = '" + orderCode + "'");
|
|
|
+ if (!piMsg.next()) {
|
|
|
wmsApiResult.setFlag("failure");
|
|
|
wmsApiResult.setCode("404");
|
|
|
wmsApiResult.setMessage("没有找到对应的单据");
|
|
|
@@ -101,24 +105,24 @@ public class ERPSWMServiceImpl implements ERPWMSService {
|
|
|
}
|
|
|
Long piId = piMsg.getGeneralLong("pi_id");
|
|
|
String inoutno = piMsg.getGeneralString("pi_inoutno");
|
|
|
- if(piId == null){
|
|
|
+ if (piId == null) {
|
|
|
wmsApiResult.setFlag("failure");
|
|
|
wmsApiResult.setCode("404");
|
|
|
wmsApiResult.setMessage("没有找到对应的单据");
|
|
|
resp.setResponse(wmsApiResult);
|
|
|
return resp;
|
|
|
}
|
|
|
- if("openapi.entryorder.confirm".equals(method)){
|
|
|
+ if ("openapi.entryorder.confirm".equals(method)) {
|
|
|
INConfirm inf = (INConfirm) req.getRequest();
|
|
|
sqls.add(inf.getGenerateMainSql());
|
|
|
sqls.addAll(inf.getGenerateLinesSql());
|
|
|
}
|
|
|
- if("openapi.stockout.confirm".equals(method)){
|
|
|
+ if ("openapi.stockout.confirm".equals(method)) {
|
|
|
OUTConfirm outf = (OUTConfirm) req.getRequest();
|
|
|
sqls.add(outf.getGenerateMainSql());
|
|
|
sqls.addAll(outf.getGenerateLinesSql());
|
|
|
}
|
|
|
- if("openapi.adjustmentorder.confirm".equals(method)){
|
|
|
+ if ("openapi.adjustmentorder.confirm".equals(method)) {
|
|
|
AdjustConfirm adjustf = (AdjustConfirm) req.getRequest();
|
|
|
sqls.add(adjustf.getGenerateMainSql());
|
|
|
sqls.addAll(adjustf.getGenerateLinesSql());
|
|
|
@@ -131,12 +135,12 @@ public class ERPSWMServiceImpl implements ERPWMSService {
|
|
|
}
|
|
|
baseDao.execute(sqls);
|
|
|
//根据下载采集数据分配采集数并自动过账
|
|
|
- String res = baseDao.callProcedure(masterCode+".DOCWMS_IO_CONFIRM",new Object[] { piId,null });
|
|
|
+ String res = baseDao.callProcedure(masterCode + ".DOCWMS_IO_CONFIRM", new Object[]{piId, null});
|
|
|
if (res != null && !res.trim().equals("")) {
|
|
|
- logger.info("IOConfirm-Err: {}",res);
|
|
|
- if(res.startsWith("AFTERSUCCESS:")){
|
|
|
- wmsApiResult.setMessage("成功但是有异常:"+res.replaceAll("AFTERSUCCESS:",""));
|
|
|
- }else {
|
|
|
+ logger.info("IOConfirm-Err: {}", res);
|
|
|
+ if (res.startsWith("AFTERSUCCESS:")) {
|
|
|
+ wmsApiResult.setMessage("成功但是有异常:" + res.replaceAll("AFTERSUCCESS:", ""));
|
|
|
+ } else {
|
|
|
wmsApiResult.setFlag("failure");
|
|
|
wmsApiResult.setCode("403");
|
|
|
wmsApiResult.setMessage(res);
|
|
|
@@ -144,7 +148,41 @@ public class ERPSWMServiceImpl implements ERPWMSService {
|
|
|
return resp;
|
|
|
}
|
|
|
}
|
|
|
- logger.info("IOConfirm-End:method {} inoutno {}",method, orderCode);
|
|
|
+ //内部交易对接:
|
|
|
+ //出货单 -> 采购验收单 国内->国内
|
|
|
+ if ("openapi.adjustmentorder.confirm".equals(method) && StringUtil.hasText(piMsg.getGeneralString("pi_postmastercode"))) {
|
|
|
+ if ("NBZK".equals(piMsg.getGeneralString("pi_wmsordertype"))) {
|
|
|
+ String toSob = piMsg.getGeneralString("pi_postmastercode");
|
|
|
+ SqlRowList pito = baseDao.queryForRowSet("select pi_id,pi_inoutno,pi_class,ds_table,pi_wmsordertype,pi_sendwmsflag,pi_wmsstatus from " + toSob + ".prodinout left join documentsetup on ds_name = pi_class " +
|
|
|
+ "where pi_sourcecode='" + piMsg.getGeneralString("pi_inoutno") + "' and pi_sourcetype = '" + piMsg.getGeneralString("pi_class") + "'");
|
|
|
+ if (pito.next()) {
|
|
|
+ if (pito.getGeneralInt("pi_sendwmsflag") == 0&& !"已确认".equals(pito.getGeneralString("pi_wmsstatus"))
|
|
|
+ &&StringUtil.hasText(pito.getGeneralString("pi_wmsordertype"))
|
|
|
+ ) {
|
|
|
+ String idTo = pito.getGeneralString("pi_id");
|
|
|
+ String codeTo = pito.getGeneralString("pi_inoutno");
|
|
|
+ String toCaller = pito.getGeneralString("ds_table");
|
|
|
+ //发起对接
|
|
|
+ try {
|
|
|
+ Map<String, Object> sendRes = erpService.sendIO(toSob, idTo, "WMS库存转移确认", toCaller);
|
|
|
+ if (sendRes.get("success") != null && "true".equals(sendRes.get("success").toString())) {
|
|
|
+ baseDao.execute("update " + toSob + ".prodinout set pi_wmsordercode='" + sendRes.get("OrderId") + "',pi_sendwmsstatus='同步成功' ,pi_sendwmserr=null,pi_sendwmsflag=-1 where pi_id = " + idTo);
|
|
|
+ //记录日志
|
|
|
+ baseDao.execute("Insert into " + toSob + ".MESSAGELOG (ML_ID,ML_DATE,ML_MAN,ML_CONTENT,ML_RESULT,ML_SEARCH,CODE) values (" + toSob + ".MESSAGELOG_seq.nextval,sysdate,'WMS库存转移确认','同步至WMS','同步成功','" + toCaller + "|pi_id=" + idTo + "','" + codeTo + "')");
|
|
|
+ } else {
|
|
|
+ String message = sendRes.get("message") == null ? "同步失败" : sendRes.get("message").toString().replaceAll("'", "''");
|
|
|
+ baseDao.execute("update " + toSob + ".prodinout set pi_sendwmsstatus='同步失败',pi_sendwmserr=('" + message + "') where pi_id = " + idTo);
|
|
|
+ //记录日志
|
|
|
+ baseDao.execute("Insert into " + toSob + ".MESSAGELOG (ML_ID,ML_DATE,ML_MAN,ML_CONTENT,ML_RESULT,ML_SEARCH,CODE) values (" + toSob + ".MESSAGELOG_seq.nextval,sysdate,'WMS库存转移确认','同步至WMS','同步失败:" + message + "','" + toCaller + "|pi_id=" + idTo + "','" + codeTo + "')");
|
|
|
+ }
|
|
|
+ } catch (Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ logger.info("IOConfirm-End:method {} inoutno {}", method, orderCode);
|
|
|
resp.setResponse(wmsApiResult);
|
|
|
return resp;
|
|
|
}
|