فهرست منبع

【越加红】【WMS对接】【调用资料中心基础资料】

wuyx 9 ماه پیش
والد
کامیت
f9e6c233ec

+ 3 - 0
src/main/java/com/uas/eis/entity/vwms/resp/BaseVastResp.java

@@ -1,6 +1,7 @@
 package com.uas.eis.entity.vwms.resp;
 
 import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+import com.fasterxml.jackson.annotation.JsonProperty;
 import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlElementWrapper;
 import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlRootElement;
 import lombok.Data;
@@ -33,6 +34,8 @@ public class BaseVastResp {
 
     @Data
     public static class Item {
+        @JsonProperty("PartnerCode")
+        private String PartnerCode;
         private String itemCode;
         private String message;
     }

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

@@ -48,9 +48,9 @@ public class ERPServiceImpl implements ERPService {
 //        SpObserver.putSp(master);//没有用
         // 执行查询
         SqlRowList docMsg = baseDao.queryForRowSet(" select pr_id,pr_code,pr_ycxh,pr_ycxhin,pr_detail,pr_orispeccode,pr_brand,pr_unit,pr_zxbzs,nvl(pr_sendwmsflag,0) pr_sendwmsflag " +
-                " from "+master+".product left join "+master+".productbrand on pb_name = pr_brand where pr_id in ("+ids+") and pb_sendwms = -1 ");
+                " from DATACENTER_P.product left join DATACENTER_P.productbrand on pb_name = pr_brand where pr_id in ("+ids+") and pb_sendwms = -1 ");
         if(!docMsg.hasNext()){
-            baseDao.execute("update "+master+".product set pr_sendwmsstatus='同步失败',pr_sendwmserr='没有需要同步的商品(品牌需设置对接MWS)。' where pr_id IN ("+ids+")");
+            baseDao.execute("update DATACENTER_P.product set pr_sendwmsstatus='同步失败',pr_sendwmserr='没有需要同步的商品(品牌需设置对接MWS)。' where pr_id IN ("+ids+")");
             retMap.put("success",false);
             retMap.put("message","没有需要同步的商品(品牌需设置对接MWS)。");
             return retMap;
@@ -102,7 +102,7 @@ public class ERPServiceImpl implements ERPService {
         for (Map<String, Object> map : list) {
             // 创建ProductReq对象
             docCodes.add(map.get("pr_code"));
-            logger.info("sendProd-test: id {} code {}",map.get("pr_id"),map.get("pr_code"));
+//            logger.info("sendProd-test: id {} code {}",map.get("pr_id"),map.get("pr_code"));
             // 创建ProductReq对象
             String ycxh = StringUtil.nvl(map.get("pr_ycxh"),"");
             ycxh = (StringUtil.hasText(ycxh)?ycxh+";":"")+StringUtil.nvl(map.get("pr_ycxhin"),"");
@@ -141,7 +141,7 @@ public class ERPServiceImpl implements ERPService {
         try {
             // 将wrapper对象转换为JSON字符串
             String json = objectMapper.writeValueAsString(prodBaseReq);
-            logger.info("Request JSON: {}", json);
+//            logger.info("Request JSON: {}", json);
             //{{testapiurl}}?method=openapi.singleitem.synchronize&timestamp=2025-03-04 15:45:00
             // &format={{format}}&app_key={{app_key}}&v=2.0&sign=B21FFFE48507569E72D573359856B19B
             // &sign_method=md5&customerId={{customerId}}
@@ -151,7 +151,7 @@ public class ERPServiceImpl implements ERPService {
                 eMsg = StringUtil.nvl(response.getResponseText(),"未知");
                 retMap.put("success", false);
                 retMap.put("message", "请求失败:"+response.getStatusCode()+":"+eMsg);
-                baseDao.execute("update "+master+".product set pr_sendwmsstatus='同步失败',pr_sendwmserr=('操作:"+actionType+":"+eMsg.replaceAll("'","''")+"') " +
+                baseDao.execute("update DATACENTER_P.product set pr_sendwmsstatus='同步失败',pr_sendwmserr=('操作:"+actionType+":"+eMsg.replaceAll("'","''")+"') " +
                             " where pr_code IN ("+prCodes+")");
             }else {
                 retMap.put("success",true);
@@ -160,7 +160,7 @@ public class ERPServiceImpl implements ERPService {
                 BaseVastResp.Response baseVastRespResponse= baseVastResp.getResponse();
                 if(baseVastRespResponse!=null){
                     //默认成功
-                    baseDao.execute("update  "+master+".product set pr_sendwmsstatus='同步成功' ,pr_sendwmserr=null where pr_code in ("+prCodes+")");
+                    baseDao.execute("update  DATACENTER_P.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());
                     }else {
@@ -173,7 +173,7 @@ public class ERPServiceImpl implements ERPService {
                                 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()+"'");
+                                    sqls.add("update DATACENTER_P.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);
@@ -189,12 +189,12 @@ public class ERPServiceImpl implements ERPService {
                             }
                         }else {
                             eMsg = StringUtil.nvl(baseVastRespResponse.getMessage(),"无");
-                            baseDao.execute("update "+master+".product set pr_sendwmsstatus='同步失败',pr_sendwmserr=('操作:"+actionType+":"+eMsg.replaceAll("'","''")+"') " +
+                            baseDao.execute("update DATACENTER_P.product set pr_sendwmsstatus='同步失败',pr_sendwmserr=('操作:"+actionType+":"+eMsg.replaceAll("'","''")+"') " +
                                     " where pr_code IN ("+prCodes+")");
                             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  DATACENTER_P.product set pr_sendwmsflag=-1 where pr_code in ("+prCodes+") AND NVL(pr_sendwmsflag,0) = 0 AND pr_sendwmsstatus='同步成功'");
                 }else {
                     retMap.put("success", false);
                     retMap.put("message", "转换失败:"+response.getStatusCode()+":"+response.getResponseText());
@@ -211,7 +211,7 @@ public class ERPServiceImpl implements ERPService {
         } catch (Exception e) {
             e.printStackTrace();
             eMsg = StringUtil.nvl(e.getMessage(),"无");
-            baseDao.execute("update "+master+".product set pr_sendwmsstatus='同步失败' ,pr_sendwmserr='操作:"+actionType+":"+eMsg+"' where pr_code in ("+prCodes+")");
+            baseDao.execute("update DATACENTER_P.product set pr_sendwmsstatus='同步失败' ,pr_sendwmserr='操作:"+actionType+":"+eMsg+"' where pr_code in ("+prCodes+")");
             throw new RuntimeException(e);
         }
     }
@@ -528,7 +528,7 @@ public class ERPServiceImpl implements ERPService {
         for (Customer cust : list) {
             // 创建Req对象
             docCodes.add(cust.getCuCode());
-            logger.info("sendVend-test: id {} code {}",cust.getCuId(),cust.getCuCode());
+//            logger.info("sendCust-test: id {} code {}",cust.getCuId(),cust.getCuCode());
             // 创建ProductReq对象
             PartnersReq req = PartnersReq.builder()
                     .partnerCode(cust.getCuCode())
@@ -576,7 +576,7 @@ public class ERPServiceImpl implements ERPService {
         try {
             // 将wrapper对象转换为JSON字符串
             String json = objectMapper.writeValueAsString(custBaseReq);
-            logger.info("Request JSON: {}", json);
+//            logger.info("Request JSON: {}", json);
             HttpUtil.Response response = HttpUtil.doPostToVWMS("openapi.partners.batchcreate", json,vwmsConfig);
             if(!String.valueOf(response.getStatusCode()).startsWith("2")){
                 eMsg = StringUtil.nvl(response.getResponseText(),"未知");
@@ -604,7 +604,7 @@ public class ERPServiceImpl implements ERPService {
                                 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+".customer set cu_sendwmsstatus='同步失败',cu_sendwmserr=('操作:"+actionType+":"+eMsg.replaceAll("'","''")+"') where cu_code ='"+item.getItemCode()+"'");
+                                    sqls.add("update "+master+".customer set cu_sendwmsstatus='同步失败',cu_sendwmserr=('操作:"+actionType+":"+eMsg.replaceAll("'","''")+"') where cu_code ='"+item.getPartnerCode()+"'");
                                     if(errMsg.length()>0){
                                         errMsg.append("</br>");
                                         errMsg.append("客户编号:"+item.getItemCode()+",失败原因:"+eMsg);
@@ -652,8 +652,9 @@ public class ERPServiceImpl implements ERPService {
         retMap.put("success",true);
         logger.info("sendIO-Begin:master {}  id {}",master,id);
         // 执行查询
-        if(!baseDao.checkIf(master+".prodiodetail left join "+master+".product on pr_code = pd_prodcode left join "+master+".productbrand on pb_name = pr_brand "
-                ,"pd_piid = "+id+" and pb_sendwms = -1")){
+        if(!baseDao.checkIf(master+".prodiodetail left join DATACENTER_P.product on pr_code = pd_prodcode left join DATACENTER_P.productbrand on pb_name = pr_brand "
+                ,"pd_piid = "+id+" and pb_sendwms = -1"
+        )){
             logger.info("sendIO-End:master {} id {} res {}",master,id,"没有需要对接的明细。");
             retMap.put("success",false);
             retMap.put("message","没有需要对接的明细。");

+ 1 - 1
src/main/resources/application-prod.yml

@@ -2,7 +2,7 @@ spring:
     datasource:
         type: com.alibaba.druid.pool.DruidDataSource
         driverClassName: oracle.jdbc.OracleDriver
-        username: HUAXK_P
+        username: DATACENTER_P
         password: select!#%*(
         url: jdbc:oracle:thin:@113.108.118.106:1521:orcl
         initialSize: 1

+ 38 - 2
src/test/java/com/uas/eis/UasEisApplicationTests.java

@@ -32,8 +32,8 @@ import com.fasterxml.jackson.dataformat.xml.XmlMapper;
 @SpringBootTest(classes = {UasEisApplication.class})
 public class UasEisApplicationTests {
 	private final Logger logger = LoggerFactory.getLogger(this.getClass());
-//	@Autowired
-//	private BaseDao baseDao;
+	@Autowired
+	private BaseDao baseDao;
 //	@Autowired
 //	private ObjectMapper objectMapper;  // 注入Jackson的ObjectMapper
 	@Autowired
@@ -41,6 +41,42 @@ public class UasEisApplicationTests {
 	@Autowired
 	private VwmsConfig vwmsConfig;
 	@Test
+	public void init_vend() {
+		//DATACENTER_P
+		String ids = baseDao.queryForObject(" select wm_concat(ve_id) from ( select ve_id from  DATACENTER_P.vendor where ve_auditstatus='已审核' and nvl(ve_sendwmsflag,0) = 0 order by ve_id ) where rownum <1000 "
+		,String.class);
+		if(ids!=null){
+			erpService.sendVend("DATACENTER_P",ids,"admin","Vendor");
+		}else {
+			logger.info("初始化完毕");
+		}
+	}
+	@Test
+	public void init_cust() {
+		//DATACENTER_P
+		String ids = baseDao.queryForObject(" select wm_concat(cu_id) from ( select cu_id FROM(SELECT cu_id from  DATACENTER_P.customer where cu_auditstatus='已审核' and nvl(cu_sendwmsflag,0) = 0 order by cu_id) where rownum <1000 )"
+				,String.class);
+		if(ids!=null){
+			erpService.sendCust("DATACENTER_P",ids,"admin","Customer!Base");
+		}else {
+			logger.info("初始化完毕");
+		}
+	}
+
+	@Test
+	public void init_prod() {
+		//DATACENTER_P
+//		String ids = baseDao.queryForObject(" select wm_concat(pr_id) from ( select pr_id FROM(SELECT pr_id FROM PRODUCT WHERE nvl(pr_sendwmsflag,0)=0 and PR_cODE IN(select 物料编号 FROM A_原厂型号初始化 where 原厂型号外箱 is not null or 原厂型号内箱 is not null) order by pr_id) " +
+//						"where rownum <1000 )"
+//				,String.class);
+		String ids="100072205";
+		if(ids!=null){
+			erpService.sendProd("DATACENTER_P", ids, "admin","Product");
+		}else {
+			logger.info("初始化完毕");
+		}
+	}
+	@Test
 	public void testSendProdByXml(){
 		// 设置测试数据
 		List<ProductReq> prodList = new ArrayList<>();