瀏覽代碼

【越加红】【WMS对接】【物料资料对接】

wuyx 8 月之前
父節點
當前提交
f53552e598

+ 16 - 0
src/main/java/com/uas/eis/entity/vwms/resp/ProdResp.java

@@ -0,0 +1,16 @@
+package com.uas.eis.entity.vwms.resp;
+
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlRootElement;
+import lombok.Data;
+
+@Data
+@JsonIgnoreProperties(ignoreUnknown = true)
+@JacksonXmlRootElement(localName = "response")
+public class ProdResp {
+    private String code;
+    private String flag;
+    private String itemId;
+    private String message;
+    private boolean success;
+}

+ 15 - 40
src/main/java/com/uas/eis/service/Impl/ERPServiceImpl.java

@@ -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);
             }
         }