浏览代码

增加参数控制对定时任务的运行与否,如果是debug模式(本地开发模式),不启动。

xian 4 年之前
父节点
当前提交
36676a9209

+ 50 - 40
watero-rst-service/src/main/java/com/iamberry/rst/service/order/OrderSyncLogServiceImpl.java

@@ -898,12 +898,14 @@ public class OrderSyncLogServiceImpl implements OrderSyncLogService {
     public boolean syncXYTOrderShip(Integer[] salesOrderIds) {
         boolean flag = true;
         Integer successNum = 0,errorNum = 0;
-        StringBuffer allSb = new StringBuffer();
-        StringBuffer errorSb = new StringBuffer();
+        StringBuilder allSb = new StringBuilder();
+        StringBuilder errorSb = new StringBuilder();
         for (int m = 0; m < salesOrderIds.length; m++) {
+            // 获取订单信息
             Integer salesOrderId = salesOrderIds[m];
             SalesOrder salesOrder = salesOrderService.getSalesOrderByIdConcise(salesOrderId);
-            if(!generateKeyUtil.isXytBatchId(salesOrder.getSalesBatchId())){    //不是小亚通第三方的订单,直接通过,不走该程序
+            if(!generateKeyUtil.isXytBatchId(salesOrder.getSalesBatchId())){
+                //不是小亚通第三方的订单,直接通过,不走该程序
                 logger.info("不是小亚通订单,退出!");
                 continue;
             }
@@ -916,89 +918,93 @@ public class OrderSyncLogServiceImpl implements OrderSyncLogService {
                 logger.info("小亚通发货失败,订单未发货!");
                 continue;
             }
-
+            // 获取物流公司
             LogisticsInfo logisticsInfo = logisticsInfoService.getLogisticsNameByRSTCode(salesOrder.getSalesPostFirm());
-
+            // 查询订单项信息
             List<SalesOrderItem>  salesOrderItemList = salesOrderService.getOrderItemListBySalesId(salesOrderId);
-
             if(salesOrderItemList==null || salesOrderItemList.size()<1){
                 logger.info("小亚通发货失败,未查询到订单信息!");
-                errorSb.append("发货失败交易号:" + salesOrder.getSalesDealCode() + ",失败原因:未查询到订单信息;");
+                errorSb.append("发货失败交易号:").append(salesOrder.getSalesDealCode()).append(",失败原因:未查询到订单信息;");
                 continue;
             }
 
-            HashSet<Long> itemIdSet = new HashSet();
+            // 将订单项的ID 添加到 Set集合(不可重复无序)
+            Set<Long> itemIdSet = new HashSet<>(salesOrderItemList.size());
             try{
                 for (SalesOrderItem salesOrderItem:salesOrderItemList) {
                     Long otherItemId =  Long.valueOf(salesOrderItem.getItemOtherId());
                     itemIdSet.add(otherItemId);
                 }
             }catch (Exception e){
-                e.printStackTrace();
-                logger.info("小亚通发货失败,订单项没有商城订单项Id!");
-                errorSb.append("发货失败交易号:" + salesOrder.getSalesDealCode() + ",失败原因:订单项没有商城订单项Id;");
-                continue;
+                logger.error("", e);
+                throw new RuntimeException(salesOrder.getSalesDealCode() + "发货失败,失败原因:RST系统订单项中未包含第三方系统的订单项ID");
             }
 
+            // 将Set集合中的数据转换为Long类型的数组
             Long[] itemIds = new Long[itemIdSet.size()];
-            //通过加强for循环遍历HashSet
             int i = 0;
             for(Long item : itemIdSet) {
                 itemIds[i] = item;
                 i++;
             }
-
             allSb.append(salesOrder.getSalesDealCode());
 
-            //删除因为拆单增加的订单后缀
+            // 获取第三方平台的订单号(删除因为拆单增加的订单后缀
             String orderId  = salesOrder.getSalesDealCode();
-            if(orderId.indexOf("-")>-1){
+            if(orderId.contains("-")){
                 orderId = orderId.substring(0,orderId.indexOf("-"));
             }
             Long otherOrderId = Long.valueOf(orderId);
 
             Map[] maps = new Map[1];
-            Map<String,Object> deliveryInfosMap = new HashMap<>();
-            deliveryInfosMap.put("itemIds",itemIds);//订单项ID,如果为null 表示整个订单只有1 个包裹,否则只是部分订单项
-            deliveryInfosMap.put("companyCode",logisticsInfo.getLogisticsXytCode());//物流公司编码
+            Map<String,Object> deliveryInfosMap = new HashMap<>(5);
+            // 订单项ID,如果为null 表示整个订单只有1 个包裹,否则只是部分订单项
+            deliveryInfosMap.put("itemIds",itemIds);
+            // 物流公司编码
+            deliveryInfosMap.put("companyCode",logisticsInfo.getLogisticsXytCode());
 
-            if(logisticsInfo.getLogisticsXytCode().equals("CYS0000010")){
+            if("CYS0000010".equals(logisticsInfo.getLogisticsXytCode())){
                 //狗东专有处理操作
                 String postNum = salesOrder.getSalesPostNum();
-                if(postNum.indexOf("-")>-1){
+                if(postNum.contains("-")){
                     postNum = postNum.substring(0,postNum.indexOf("-"));
                 }
-                deliveryInfosMap.put("deliveryNo",postNum);//物流单号
+                //物流单号
+                deliveryInfosMap.put("deliveryNo",postNum);
             }else{
-                deliveryInfosMap.put("deliveryNo",salesOrder.getSalesPostNum());//物流单号
+                //物流单号
+                deliveryInfosMap.put("deliveryNo",salesOrder.getSalesPostNum());
             }
-            deliveryInfosMap.put("deliveryTime",sdf.format(salesOrder.getSalesSendTime()));//发货时间
+            //发货时间
+            deliveryInfosMap.put("deliveryTime",sdf.format(salesOrder.getSalesSendTime()));
             maps[0]=deliveryInfosMap;
-            Map<String,Object> map = new HashMap<>();
-            map.put("orderId",otherOrderId);//原始订单号
-            map.put("deliveryInfos",maps);//原始订单号
+            Map<String,Object> map = new HashMap<>(2);
+            //原始订单号
+            map.put("orderId",otherOrderId);
+            //原始订单号
+            map.put("deliveryInfos",maps);
 
             String shipResultJson = this.syncXYT("delivery",map);
             try{
-                JSONObject jsonObj = new JSONObject(shipResultJson);//转化为json格式
+                //转化为json格式
+                JSONObject jsonObj = new JSONObject(shipResultJson);
                 String resultMsg = jsonObj.getString("result_msg");
-                if(resultMsg.equals("success")) {
+                if("success".equals(resultMsg)) {
                     //修改同步物流状态
                     SalesOrder shipSalesOrder = new SalesOrder();
-                    shipSalesOrder.setSalesIsShip(1);   //同步物流状态到第三方平台 1:是
+                    //同步物流状态到第三方平台 1:是
+                    shipSalesOrder.setSalesIsShip(1);
                     shipSalesOrder.setSalesId(salesOrderId);
                     salesOrderService.update(shipSalesOrder);
                     successNum++;
                 }else{
                     flag = false;
-                    errorSb.append("发货失败交易号:" + salesOrder.getSalesDealCode() + ",失败原因:"+shipResultJson+";");
+                    errorSb.append("发货失败交易号:").append(salesOrder.getSalesDealCode()).append(",失败原因:").append(shipResultJson).append(";");
                     errorNum++;
                 }
             }catch (Exception e){
-                flag = false;
-                errorSb.append("发货失败交易号:" + salesOrder.getSalesDealCode() + ",失败原因:"+shipResultJson+";");
-                errorNum++;
-                e.printStackTrace();
+                logger.error("", e);
+                throw new RuntimeException(salesOrder.getSalesDealCode() + "发货失败,失败原因:" + shipResultJson);
             }
         }
 
@@ -1009,15 +1015,19 @@ public class OrderSyncLogServiceImpl implements OrderSyncLogService {
             orderSyncLog.setSyncPlatId(orderSyncPlatform.getSyncPlatId());
             orderSyncLog.setSyncLogType(2);
             orderSyncLog.setSyncLogMode(3);
-            orderSyncLog.setSyncLogRecentNum(successNum+errorNum); //同步总数量
-            orderSyncLog.setSyncLogErrorNum(errorNum); //同步失败数量
-            orderSyncLog.setSyncLogMsg("发货订单交易号:"+ allSb.toString());   //备注
-            if(!errorSb.toString().equals("")){
+            //同步总数量
+            orderSyncLog.setSyncLogRecentNum(successNum+errorNum);
+            //同步失败数量
+            orderSyncLog.setSyncLogErrorNum(errorNum);
+            //备注
+            orderSyncLog.setSyncLogMsg("发货订单交易号:"+ allSb.toString());
+            if(!"".equals(errorSb.toString())){
                 String newErrorMsg = errorSb.toString();
                 if(newErrorMsg.length() > 5000){
                     newErrorMsg = newErrorMsg.substring(0,4999);
                 }
-                orderSyncLog.setSyncLogErrorMsg(newErrorMsg);  //失败信息
+                //失败信息
+                orderSyncLog.setSyncLogErrorMsg(newErrorMsg);
             }
             orderSyncLogMapper.save(orderSyncLog);
         }