|
|
@@ -8,6 +8,7 @@ import com.uas.eis.dao.*;
|
|
|
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.ProdResp;
|
|
|
import com.uas.eis.service.DocCommonService;
|
|
|
import com.uas.eis.service.ERPService;
|
|
|
import com.uas.eis.utils.*;
|
|
|
@@ -90,7 +91,6 @@ public class ERPServiceImpl implements ERPService {
|
|
|
}
|
|
|
private Map<String, Object> sendProdSigle(String master,String actionType,List<Map<String, Object>> list){
|
|
|
List<Object> docCodes = new ArrayList<>();
|
|
|
- String prCodes = "";
|
|
|
StringBuffer errMsg = new StringBuffer();
|
|
|
String eMsg = "";
|
|
|
Map<String, Object> retMap = new HashMap<>();
|
|
|
@@ -134,49 +134,24 @@ public class ERPServiceImpl implements ERPService {
|
|
|
retMap.put("success", false);
|
|
|
retMap.put("message", "请求失败:"+response.getStatusCode()+":"+eMsg);
|
|
|
baseDao.execute("update "+master+".product set pr_sendwmsstatus='同步失败',pr_sendwmserr=('操作:"+actionType+":"+eMsg.replaceAll("'","''")+"') " +
|
|
|
- " where pr_code IN ("+prCodes+")");
|
|
|
+ " where pr_code ='"+prCode+"'");
|
|
|
}else {
|
|
|
retMap.put("success",true);
|
|
|
- List<String> sqls = new ArrayList<>();
|
|
|
- BaseVastResp baseVastResp = xmlMapper.readValue(response.getResponseText(), BaseVastResp.class);
|
|
|
- BaseVastResp.Response baseVastRespResponse= baseVastResp.getResponse();
|
|
|
- if(baseVastRespResponse!=null){
|
|
|
+ ProdResp prodResp = xmlMapper.readValue(response.getResponseText(), ProdResp.class);
|
|
|
+ if(prodResp!=null){
|
|
|
//默认成功
|
|
|
- baseDao.execute("update "+master+".product set pr_sendwmsstatus='同步成功' ,pr_sendwmserr=null where pr_code in ("+prCodes+")");
|
|
|
- if("success".equals(baseVastRespResponse.getFlag())){
|
|
|
- logger.info("response-success code: {} message: {}", baseVastRespResponse.getCode(),baseVastRespResponse.getMessage());
|
|
|
+ baseDao.execute("update "+master+".product set pr_sendwmsstatus='同步成功' ,pr_sendwmserr=null where pr_code = '"+prCode+"'");
|
|
|
+ if("success".equals(prodResp.getFlag())){
|
|
|
+ logger.info("response-success prcode: {}",prodResp.getItemId());
|
|
|
}else {
|
|
|
retMap.put("success",false);
|
|
|
- logger.info("response-failure code: {} message: {}", baseVastRespResponse.getCode(),baseVastRespResponse.getMessage());
|
|
|
- //不一定全部失败,此处只会返回失败提示
|
|
|
- BaseVastResp.Items items = baseVastRespResponse.getItems();
|
|
|
- if(items!=null&&!CollectionUtil.isEmpty(items.getItem())){
|
|
|
- for (BaseVastResp.Item item : items.getItem()) {
|
|
|
- eMsg = item.getMessage();
|
|
|
- if(!eMsg.equals("The goods don't exists, you can't update it.")){//提示异常但是实际会自动创建 可以认定为请求成功
|
|
|
- logger.info("response-failure-item code: {} message: {}", item.getItemCode(),item.getMessage());
|
|
|
- sqls.add("update "+master+".product set pr_sendwmsstatus='同步失败',pr_sendwmserr=('操作:"+actionType+":"+eMsg.replaceAll("'","''")+"') where pr_code ='"+item.getItemCode()+"'");
|
|
|
- if(errMsg.length()>0){
|
|
|
- errMsg.append("</br>");
|
|
|
- errMsg.append("物料编号:"+item.getItemCode()+",失败原因:"+eMsg);
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- if(!CollectionUtil.isEmpty(sqls)){
|
|
|
- baseDao.execute(sqls);
|
|
|
- retMap.put("message", errMsg.toString());
|
|
|
- }else {
|
|
|
- logger.info("response-failure-item all message: {}", "The goods don't exists, you can't update it.");
|
|
|
- retMap.put("success",true);//全部提示失败但实际创建成功
|
|
|
- }
|
|
|
- }else {
|
|
|
- eMsg = StringUtil.nvl(baseVastRespResponse.getMessage(),"无");
|
|
|
- baseDao.execute("update "+master+".product set pr_sendwmsstatus='同步失败',pr_sendwmserr=('操作:"+actionType+":"+eMsg.replaceAll("'","''")+"') " +
|
|
|
- " where pr_code IN ("+prCodes+")");
|
|
|
- retMap.put("message", eMsg);
|
|
|
- }
|
|
|
+ logger.info("response-failure code: {} message: {}", prodResp.getCode(),prodResp.getMessage());
|
|
|
+ eMsg = StringUtil.nvl(prodResp.getMessage(),"无");
|
|
|
+ baseDao.execute("update "+master+".product set pr_sendwmsstatus='同步失败',pr_sendwmserr=('操作:"+actionType+":"+eMsg.replaceAll("'","''")+"') " +
|
|
|
+ " where pr_code ='"+prCode+"'");
|
|
|
+ retMap.put("message", eMsg);
|
|
|
}
|
|
|
- baseDao.execute("update "+master+".product set pr_sendwmsflag=-1 where pr_code in ("+prCodes+") AND NVL(pr_sendwmsflag,0) = 0 AND pr_sendwmsstatus='同步成功'");
|
|
|
+ baseDao.execute("update "+master+".product set pr_sendwmsflag=-1 where pr_code = '"+prCode+"' AND NVL(pr_sendwmsflag,0) = 0 AND pr_sendwmsstatus='同步成功'");
|
|
|
}else {
|
|
|
retMap.put("success", false);
|
|
|
retMap.put("message", "转换失败:"+response.getStatusCode()+":"+response.getResponseText());
|
|
|
@@ -185,7 +160,7 @@ public class ERPServiceImpl implements ERPService {
|
|
|
//TODO 考虑记录日志
|
|
|
} catch (JsonProcessingException e) {
|
|
|
e.printStackTrace();
|
|
|
- logger.info("sendProd-Error:JSON转换失败 codes {} ",prCodes);
|
|
|
+ logger.info("sendProd-Error:JSON转换失败 codes {} ",prCode);
|
|
|
retMap.put("success", false);
|
|
|
retMap.put("message", "JSON转换失败");
|
|
|
} catch (Exception e) {
|
|
|
@@ -194,7 +169,7 @@ public class ERPServiceImpl implements ERPService {
|
|
|
baseDao.execute("update "+master+".product set pr_sendwmsstatus='同步失败' ,pr_sendwmserr='操作:"+actionType+":"+eMsg+"' where pr_code = ’"+prCode+"'");
|
|
|
throw new RuntimeException(e);
|
|
|
}
|
|
|
- if(eMsg!=null){
|
|
|
+ if(StringUtil.hasText(eMsg)){
|
|
|
errMsg.append("物料编号:").append(prCode).append(eMsg);
|
|
|
}
|
|
|
}
|