Ver Fonte

Merge branch 'master' of https://git.steerinfo.com/DAL-DAZHOU/DAL-DAZHOU-AMS-API

liyg há 2 anos atrás
pai
commit
61ddaf13f2

+ 22 - 21
src/main/java/com/steerinfo/dil/controller/AmsSaleOrderController.java

@@ -1334,27 +1334,28 @@ public class AmsSaleOrderController<RedisTemplate> extends BaseRESTfulController
         if (result1 == 0) {
             return failed("已装货车辆不允许修改车牌");
         }
-        else {
-            // 调用EAS接口将车牌号传给金蝶
-            List<Map<String,Object>> mapList = new ArrayList<>();
-            mapList.add(mapValue);
-            Map<String, Object> input = joinFeign.findCarNumberByOrderList(mapList);
-            Map<String, Object> totalMap = easCapacityTestUtil.getTotalMap();
-            totalMap.put("input", input);
-            System.out.println(totalMap);
-            String json = JSONUtils.toJSONString(totalMap);
-            System.out.println(json);
-            Map<String, Object> s = joinFeign.pushCarNumberToEas(totalMap);
-            System.out.println("-------------------------------------");
-            System.out.println(s);
-            System.out.println("-------------------------------------");
-            if (s == null || s.size() == 0) {
-                //失败,存入重试队列,准备重试
-                retryQueen.add(mapList);
-                return failed("车牌号同步金蝶失败!");
-            }
-            return success(result);
-        }
+        return success(result);
+        //else {
+        //    // 调用EAS接口将车牌号传给金蝶
+        //    List<Map<String,Object>> mapList = new ArrayList<>();
+        //    mapList.add(mapValue);
+        //    Map<String, Object> input = joinFeign.findCarNumberByOrderList(mapList);
+        //    Map<String, Object> totalMap = easCapacityTestUtil.getTotalMap();
+        //    totalMap.put("input", input);
+        //    System.out.println(totalMap);
+        //    String json = JSONUtils.toJSONString(totalMap);
+        //    System.out.println(json);
+        //    Map<String, Object> s = joinFeign.pushCarNumberToEas(totalMap);
+        //    System.out.println("-------------------------------------");
+        //    System.out.println(s);
+        //    System.out.println("-------------------------------------");
+        //    if (s == null || s.size() == 0) {
+        //        //失败,存入重试队列,准备重试
+        //        retryQueen.add(mapList);
+        //        return failed("车牌号同步金蝶失败!");
+        //    }
+        //    return success(result);
+        //}
     }
 
     @ApiModelProperty(value = "修改收货客户的电话(销售)")

+ 2 - 0
src/main/java/com/steerinfo/dil/mapper/AmsSaleMaterialMapper.java

@@ -44,4 +44,6 @@ public interface AmsSaleMaterialMapper extends IBaseMapper<AmsSaleMaterial, BigD
 
     List<BigDecimal> getSaleMaterialIds(BigDecimal saleOrderMaterialId);
 
+    int getSaleMaterialWeight(Map<String, Object> mapValue);
+
 }

+ 18 - 7
src/main/java/com/steerinfo/dil/service/impl/AmsSaleOrderServiceImpl.java

@@ -1971,6 +1971,7 @@ public class AmsSaleOrderServiceImpl implements IAmsSaleOrderService {
         BigDecimal oldCapacityId = omstruckOrderMapper.getOldCapacityId(DataChange.dataToBigDecimal(mapValue.get("orderId")));
         if(oldCapacityId.compareTo(DataChange.dataToBigDecimal(mapValue.get("capacityId"))) == 0) {
             mapValue.put("result",1);
+            pushCarNumberToEas(mapValue);
             return mapValue;
         }
         Integer isCheckGps = amsSaleOrderMapper.getDispachSwitch();
@@ -1996,6 +1997,7 @@ public class AmsSaleOrderServiceImpl implements IAmsSaleOrderService {
                 throw new Exception("该车没有GPS定位信息,请联系销售公司物流部,申请是否可以派车。");
             }
         }
+        pushCarNumberToEas(mapValue);
         BigDecimal capacityTel = omstruckOrderMapper.getCapacityTel(capacityNo);
         if (capacityTel.compareTo(BigDecimal.ZERO)!=0){
             mapValue.put("capacityTel",capacityTel);
@@ -2168,18 +2170,22 @@ public class AmsSaleOrderServiceImpl implements IAmsSaleOrderService {
         if ((loadIdList == null || loadIdList.size() == 0) && orderStatus == 5) {
             return result;
         }
+        //判断该分录对应净重有没有出来
+        int netWeightCount = amsSaleMaterialMapper.getSaleMaterialWeight(mapValue);
         //判断关闭分录是否为最后一拼
         int asmMaterialCount = amsSaleMaterialMapper.getSaleMaterialDelete(saleOrderMaterialId);
-        if (asmMaterialCount > 1 && orderStatus == 5) {
+        if (asmMaterialCount > 1 && orderStatus == 5 && netWeightCount == 0) {
                 // 删除实绩表
                 Map<String, Object> loadMap = loadIdList.get(0);
                 Map<String, Object> weightMap = weightIdList.get(0);
                 BigDecimal loadId = (BigDecimal) loadMap.get("loadId");
                 BigDecimal weightId = (BigDecimal) weightMap.get("weightId");
-                result += amsSaleMaterialMapper.deleteLoadResult(loadId);
-                result += amsSaleMaterialMapper.deleteWeightResult(weightId);
-                result += amsSaleMaterialMapper.deleteWmspOutResult(mapValue);
-        }else if(asmMaterialCount <= 1){
+                int i = amsSaleMaterialMapper.deleteWeightResult(weightId);
+                if(i != 0) {
+                    result += amsSaleMaterialMapper.deleteLoadResult(loadId);
+                    result += amsSaleMaterialMapper.deleteWmspOutResult(mapValue);
+                }
+        }else if(asmMaterialCount <= 1 && netWeightCount == 0){
                 //关闭运输订单
                 OmstruckOrder omstruckOrder = new OmstruckOrder();
                 omstruckOrder.setOrderId(DataChange.dataToBigDecimal(orderId));
@@ -2190,7 +2196,9 @@ public class AmsSaleOrderServiceImpl implements IAmsSaleOrderService {
                 result += omstruckOrderMapper.updateByPrimaryKeySelective(omstruckOrder);
         }
         result += amsSaleMaterialMapper.updateByPrimaryKeySelective(amsSaleMaterial);
-        result += amsSaleMaterialMapper.updateOrderMaterialToClose(mapValue);
+        if(netWeightCount == 0) {
+            result += amsSaleMaterialMapper.updateOrderMaterialToClose(mapValue);
+        }
         return result;
     }
 
@@ -2807,8 +2815,11 @@ public class AmsSaleOrderServiceImpl implements IAmsSaleOrderService {
     @Override
     public int pushCarNumberToEas(Map<String, Object> map) throws Exception {
         // 调用EAS接口将车牌号传给金蝶
+        List<Map<String,Object>> mapList = new ArrayList<>();
+        mapList.add(map);
+        Map<String,Object> input = joinFeign.findCarNumberByOrderList(mapList);
         Map<String, Object> totalMap = easCapacityTestUtil.getTotalMap();
-        totalMap.put("input",map);
+        totalMap.put("input",input);
         System.out.println(totalMap);
         String json = JSONUtils.toJSONString(totalMap);
         System.out.println(json);

+ 15 - 1
src/main/resources/com/steerinfo/dil/mapper/AmsSaleMaterialMapper.xml

@@ -775,6 +775,7 @@
 
   <delete id="deleteWeightResult" parameterType="DECIMAL" >
     DELETE FROM TMSTRUCK_WEIGHT_RESULT WHERE WEIGHT_TASK_RESULT_ID = #{weightId}
+    and RESULT_NET_WEIGHT IS NULL
   </delete>
 
   <delete id="updateOrderMaterialToClose" parameterType="java.util.Map" >
@@ -859,9 +860,22 @@
       SELECT ASTM.MATERIAL_ID FROM AMS_SALE_TRUCKNO_MATERIAL ASTM
       WHERE ASTM.SALE_ORDER_MATERIAL_ID = #{saleOrderMaterialId}
     </select>
-    <update id="updateSaleMaterialMakeDate">
+  <update id="updateSaleMaterialMakeDate">
     update AMS_SALE_MATERIAL ASM
     SET ASM.SALE_MAKE_DATE = #{easprimaryIdMakeDate}
     WHERE ASM.EAS_PRIMARY_ID = #{FSALEORDERENTRYID}
   </update>
+  <select id="getSaleMaterialWeight" resultType="java.lang.Integer" parameterType="map">
+    SELECT COUNT(TWR.RESULT_TOTAL_ID)  FROM OMSTRUCK_ORDER OO
+    LEFT JOIN TMSTRUCK_TOTAL_RESULT TTR
+    ON TTR.ORDER_ID = OO.ORDER_ID
+    LEFT JOIN TMSTRUCK_WEIGHT_RESULT TWR
+    ON TWR.RESULT_TOTAL_ID = TTR.RESULT_TOTAL_ID
+    WHERE
+    TWR.RESULT_NET_WEIGHT IS NOT NULL
+    AND
+    TWR.MATERIAL_ID = (select ASM.MATERIAL_ID from AMS_SALE_MATERIAL ASM where ASM.SALE_MATERIAL_ID = #{saleMaterialId})
+    AND
+    OO.ORDER_ID = #{orderId}
+  </select>
 </mapper>