luobang 2 år sedan
förälder
incheckning
e0f683aaaa

+ 0 - 1
src/main/java/com/steerinfo/dil/controller/AmsSaleOrderController.java

@@ -1762,7 +1762,6 @@ public class AmsSaleOrderController<RedisTemplate> extends BaseRESTfulController
                 List<Map<String,Object>> mapList = new ArrayList<>();
                 mapList.add(map1);
                 i = amsSaleOrderService.continueSteelOrder(mapList);
-                // 调用EAS接口将车牌号传给金蝶
                 Map<String,Object> input = joinFeign.findCarNumberByOrderList(mapList);
                 Map<String, Object> totalMap = new HashMap<>();
                 totalMap.putAll(easCapacityTestUtil.getTotalMap());

+ 6 - 0
src/main/java/com/steerinfo/dil/controller/AmsSaleOrderMaterialController.java

@@ -250,6 +250,12 @@ public class AmsSaleOrderMaterialController extends BaseRESTfulController {
     @PostMapping("dispatchInwardTruckOrderBySale")
     public RESTfulResult dispatchInwardTruckOrderBySale(@RequestBody Map<String,Object> mapValue){
         int result = amsSaleOrderMaterialService.dispatchInwardTruckOrderBySale(mapValue);
+        if(result == -1) {
+            return failed("存在分录已派车!");
+        }
+        if(result == -2) {
+            return failed("该分录已关闭无法派车");
+        }
         return success(result);
 
     }

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

@@ -48,4 +48,8 @@ public interface AmsSaleMaterialMapper extends IBaseMapper<AmsSaleMaterial, BigD
 
     Integer getAbleFlcount(BigDecimal saleOrderMaterialId);
 
+    BigDecimal getToOrderId(BigDecimal saleMaterialId);
+
+    int getSaleMaterialDeleteBySaleMaterialId(BigDecimal saleMaterialId);
+
 }

+ 39 - 4
src/main/java/com/steerinfo/dil/service/impl/AmsSaleOrderMaterialServiceImpl.java

@@ -54,6 +54,8 @@ public class AmsSaleOrderMaterialServiceImpl implements IAmsSaleOrderMaterialSer
     AmsSaleMaterialMapper amsSaleMaterialMapper;
     @Autowired
     SaleLogUtil saleLogUtil;
+    @Autowired
+    AmsSaleOrderServiceImpl amsSaleOrderService;
 
     @Override
     public int addAmsSaleOrderMaterial(AmsSaleOrderMaterial amsSaleOrderMaterial) {
@@ -542,7 +544,7 @@ public class AmsSaleOrderMaterialServiceImpl implements IAmsSaleOrderMaterialSer
      */
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public int dispatchInwardTruckOrderBySale(Map<String, Object> mapValue) {
+    public synchronized int dispatchInwardTruckOrderBySale(Map<String, Object> mapValue) {
         int result = 0;
         // 得到列内容
         List<Map<String,Object>> mapList = (List<Map<String, Object>>) mapValue.get("mapList");
@@ -565,6 +567,7 @@ public class AmsSaleOrderMaterialServiceImpl implements IAmsSaleOrderMaterialSer
         amsSaleOrderMaterial.setIssueStatus(new BigDecimal(2));
         // 新增车序号表
         result += amsSaleOrderMaterialMapper.insertSelective(amsSaleOrderMaterial);
+        String capacityNumber = "";
         BigDecimal orderId = omstruckOrderMapper.selectMaxId();
         if(mapList.size()>=1){
             //更新发站
@@ -589,7 +592,7 @@ public class AmsSaleOrderMaterialServiceImpl implements IAmsSaleOrderMaterialSer
             // 运输线路id
             BigDecimal lineId = DataChange.dataToBigDecimal(map.get("lineId"));
             // 车牌号
-            String capacityNumber = (String) map.get("capacityNumber");
+            capacityNumber = (String) map.get("capacityNumber");
             // 得到运力id
             BigDecimal capacityId = amsSaleOrderMaterialMapper.getCapacityId(capacityNumber);
             // 运输订单号
@@ -606,6 +609,8 @@ public class AmsSaleOrderMaterialServiceImpl implements IAmsSaleOrderMaterialSer
             omstruckOrder.setOrderType(new BigDecimal(4));
             // 运输线路id
             omstruckOrder.setLineId(lineId);
+            //
+            omstruckOrder.setOptionerCode(mapValue.get("userName") + "");
             omstruckOrder.setInsertTime(new Date());
             // 新增运输订单
             result += omstruckOrderMapper.insertSelective(omstruckOrder);
@@ -614,6 +619,14 @@ public class AmsSaleOrderMaterialServiceImpl implements IAmsSaleOrderMaterialSer
         for (Map<String, Object> map : mapList) {
             // 销售订单-物资中间表id
             BigDecimal saleMaterialId = DataChange.dataToBigDecimal(map.get("saleMaterialId"));
+            if(amsSaleMaterialMapper.getSaleMaterialDeleteBySaleMaterialId(saleMaterialId) == 0) {
+                return -2;
+            }
+            //判断该分录有没有派车
+            BigDecimal toOrderId = amsSaleMaterialMapper.getToOrderId(saleMaterialId);
+            if(toOrderId != null) {
+                return -1;
+            }
             // 物资id
             BigDecimal materialId = DataChange.dataToBigDecimal(map.get("materialId"));
             // 承运商id
@@ -627,7 +640,7 @@ public class AmsSaleOrderMaterialServiceImpl implements IAmsSaleOrderMaterialSer
             // 物资数量
             BigDecimal materialNum = DataChange.dataToBigDecimal(map.get("materialNum"));
             // 车牌号
-            String capacityNumber = (String) map.get("capacityNumber");
+            capacityNumber = (String) map.get("capacityNumber");
             // 得到运力id
             BigDecimal capacityId = amsSaleOrderMaterialMapper.getCapacityId(capacityNumber);
             // 收货方姓名
@@ -640,7 +653,6 @@ public class AmsSaleOrderMaterialServiceImpl implements IAmsSaleOrderMaterialSer
             if (!"null".equals(dateOfReceiptStr) && !"undefined".equals(dateOfReceiptStr)) {
                 dateOfReceipt = new Date(Long.valueOf(dateOfReceiptStr));
             }
-
             /*
              车序号与物资子表
              */
@@ -707,6 +719,29 @@ public class AmsSaleOrderMaterialServiceImpl implements IAmsSaleOrderMaterialSer
         pushMesToWebsocket(orderIdMap);
         // 生成运输执行总实绩
         result += tmsTruckFeign.addTotalResult(orderIdMap);
+        try{
+            String finalCapacityNumber = capacityNumber;
+            new Thread(new Runnable() {
+                public void run(){
+                    try {
+                        Thread.sleep(200);
+                    } catch (InterruptedException e) {
+                        e.printStackTrace();
+                    }
+                    //orderMessage.put("gatepostId",29998);
+                    Map<String, Object> toEasMap = new HashMap<>();
+                    toEasMap.put("capacityNo", finalCapacityNumber + "");
+                    toEasMap.put("saleOrderMaterialId",saleOrderMaterialId);
+                    try {
+                        amsSaleOrderService.pushCarNumberToEas(toEasMap);
+                    } catch (Exception e) {
+                        e.printStackTrace();
+                    }
+                }
+            }).start();
+        }catch (Exception e) {
+            e.printStackTrace();
+        }
         return result;
     }
 

+ 15 - 5
src/main/java/com/steerinfo/dil/service/impl/AmsSaleOrderServiceImpl.java

@@ -113,6 +113,11 @@ public class AmsSaleOrderServiceImpl implements IAmsSaleOrderService {
     @Autowired
     SaleLogUtil saleLogUtil;
 
+    private static final List<Integer> dazhouLineIds = Arrays.asList(189982, 189983, 189984, 189985, 189986);
+    private static final List<Integer> zhuanxianLineIds = Arrays.asList(189987,189988, 189989, 189990, 189991);
+
+
+
     @Override
     public List<Map<String, Object>> getSaleOrderInfo(Map<String, Object> map) {
         return amsSaleOrderMapper.getSaleOrderInfo(map);
@@ -1167,6 +1172,14 @@ public class AmsSaleOrderServiceImpl implements IAmsSaleOrderService {
             }
             // 程序根据剩余多少拼生成运输线路id 110001 到 110010(单拼到十拼)
             BigDecimal lineId = DataChange.dataToBigDecimal(110000+materialList.size());
+            if(omstruckOrder.getOrderType() != null && omstruckOrder.getOrderType().intValue() == 4) {
+                //如果是内转钢材的,那么需要切换路线,判断是到专线还是到达州站
+                if(zhuanxianLineIds.contains(omstruckOrder.getLineId().intValue())){
+                    lineId = DataChange.dataToBigDecimal(zhuanxianLineIds.get(materialList.size() - 1));
+                }else{
+                    lineId = DataChange.dataToBigDecimal(dazhouLineIds.get(materialList.size() - 1));
+                }
+            }
             /*
              定向派单表
              */
@@ -2115,7 +2128,7 @@ public class AmsSaleOrderServiceImpl implements IAmsSaleOrderService {
         //查询输入进来的车牌号是否与原有车牌号一致,如果一致则退出
         BigDecimal oldCapacityId = omstruckOrderMapper.getOldCapacityId(DataChange.dataToBigDecimal(mapValue.get("orderId")));
         String oldCapacityNumber = omstruckOrderMapper.getOldCapacityNumber(oldCapacityId);
-        if(oldCapacityId.compareTo(DataChange.dataToBigDecimal(mapValue.get("capacityId"))) == 0 && orderTypee.compareTo(new BigDecimal(1)) == 0) {
+        if(oldCapacityId.compareTo(DataChange.dataToBigDecimal(mapValue.get("capacityId"))) == 0) {
             mapValue.put("result",1);
             pushCarNumberToEas(mapValue);
             return mapValue;
@@ -2155,10 +2168,7 @@ public class AmsSaleOrderServiceImpl implements IAmsSaleOrderService {
                 throw new Exception("该车没有GPS定位信息,请联系销售公司物流部,申请是否可以派车。");
             }
         }
-        if(orderTypee.compareTo(new BigDecimal(1)) == 0) {
-            pushCarNumberToEas(mapValue);
-        }
-
+        pushCarNumberToEas(mapValue);
         //try{
         //    //不为空且为新手机号,则修改电话号码
         //    if(driverTel!=null && !"".equals(driverTel) && !driverTel.equals(tel)){

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

@@ -19,7 +19,7 @@ openfeign:
    ImFeign:
       url: ${IMFEIGN_URL:172.16.33.166:8055}
    JoinFeign:
-     url: ${JOINFEIGN_URL:172.16.33.166:8066}
+     url: ${JOINFEIGN_URL:localhost:8066}
    OTMSFeign:
      url: ${OTMSFEIGN_URL:172.16.33.166:8038}
    RmsFeign:

+ 14 - 2
src/main/resources/com/steerinfo/dil/mapper/AmsSaleMaterialMapper.xml

@@ -774,7 +774,7 @@
                      ON OO.ORDER_ID = TTR.ORDER_ID
            LEFT JOIN TMSTRUCK_LOAD_RESULT TLR
                      ON TLR.RESULT_TOTAL_ID = TTR.RESULT_TOTAL_ID
-    WHERE OO.ORDER_TYPE = 1
+    WHERE OO.ORDER_TYPE in ( 1,4)
       AND OO.ORDER_STATUS = 5
       AND TLR.MATERIAL_ID IS NULL
       AND OO.ORDER_PLAN_ID = #{saleOrderMaterialId}
@@ -788,7 +788,7 @@
                      ON OO.ORDER_ID = TTR.ORDER_ID
            LEFT JOIN TMSTRUCK_WEIGHT_RESULT TWR
                      ON TWR.RESULT_TOTAL_ID = TTR.RESULT_TOTAL_ID
-    WHERE OO.ORDER_TYPE = 1
+    WHERE OO.ORDER_TYPE in (1,4)
       AND OO.ORDER_STATUS IN (4, 5)
       AND TWR.MATERIAL_ID IS NULL
       AND OO.ORDER_PLAN_ID = #{saleOrderMaterialId}
@@ -923,4 +923,16 @@
         ASTM.SALE_ORDER_MATERIAL_ID = #{saleOrderMaterialId}
         AND ASM.DELETED IS NULL
     </select>
+    <select id="getToOrderId" resultType="java.math.BigDecimal" parameterType="decimal">
+      SELECT OOM.ORDER_ID FROM AMS_SALE_MATERIAL ASM
+      LEFT JOIN OMSTRUCK_ORDER_MATERIAL OOM
+      ON OOM.SALE_MATERIAL_ID = ASM.SALE_MATERIAL_ID
+      WHERE ASM.SALE_MATERIAL_ID = #{saleMaterialId}
+      fetch next 1 rows only
+    </select>
+  <select id="getSaleMaterialDeleteBySaleMaterialId" resultType="java.lang.Integer">
+    SELECT COUNT(ASM.SALE_MATERIAL_ID) FROM AMS_SALE_MATERIAL ASM
+    WHERE ASM.SALE_MATERIAL_ID = #{saleMaterialId}
+    AND ASM.DELETED IS NULL
+  </select>
 </mapper>

+ 17 - 2
src/main/resources/com/steerinfo/dil/mapper/AmsSaleOrderMapper.xml

@@ -4687,7 +4687,7 @@
     ON ASTM.MATERIAL_ID = ASM.SALE_MATERIAL_ID
     LEFT JOIN OMSTRUCK_ORDER OO
     ON ASTM.SALE_ORDER_MATERIAL_ID = OO.ORDER_PLAN_ID
-    AND OO.ORDER_TYPE = 1
+    AND OO.ORDER_TYPE in (1,4)
     LEFT JOIN WMSP_OUTBOUND_RESULT WOR
     ON WOR.BILL_LADING_ID = OO.ORDER_ID
     LEFT JOIN TMSTRUCK_TOTAL_RESULT TTR
@@ -4718,7 +4718,10 @@
                         RAS.ARRIVAL_ID                                          "toTheStationId",
                         ASM.IS_POUND_SALE                                       "isPoundSale",
                         ASM.SALE_MATERIAL_ID                                    "saleMaterialId",
-                        TPAR.RESULT_ID                                          "approveId"
+                        ASM.EAS_PRIMARY_ID                                      "flId",
+                        TPAR.RESULT_ID                                          "approveId",
+                        TPAR.UPDATE_USERNAME                                    "sendStationOptionName",
+                        ASO.UPDATE_USERNAME                                     "consigneeOptionName"
                       FROM AMS_SALE_ORDER ASO
                         LEFT JOIN AMS_SALE_MATERIAL ASM
                       ON ASM.SALE_ORDER_ID = ASO.SALE_ORDER_ID
@@ -4739,6 +4742,9 @@
                         LEFT JOIN RMS_INWARD_STEEL_WAREHOUSE RISWINOF
                         ON RISWINOF.INWARD_WAREHOUSE_CODE = ASM.TRANSFER_IN_OF_WAREHOUSE
                       WHERE ASO.SALE_TYPE = 4
+                        and asm.DELETED is null
+                        and asm.SALE_ORDER_ID != -1
+                        and aso.SALE_ORDER_STATUS = 4
                       <if test="oneDate != null">
                         and to_date(#{oneDate}, 'yyyy-mm-dd hh24:mi:ss') &lt; = ASO.INSERT_TIME
                       </if>
@@ -4758,6 +4764,15 @@
                       <if test="transferIndep != null">
                         and  RDOINDEP.ORG_NAME LIKE #{transferIndep}
                       </if>
+                      <if test="materialName != null">
+                        and RM.MATERIAL_NAME  LIKE '%${materialName}%'
+                      </if>
+                      <if test="materialSpa != null">
+                        and RM.MATERIAL_SPECIFICATION||'('||RM.MATERIAL_MODEL||')'  LIKE '%${materialSpa}%'
+                      </if>
+                      <if test="sendStation != null">
+                        and RAS1.ARRIVAL_NAME  LIKE '%${sendStation}%'
+                      </if>
        )
     </select>
   <select id="selectSaleAreaId" resultType="java.math.BigDecimal" parameterType="decimal">

+ 7 - 0
src/main/resources/com/steerinfo/dil/mapper/AmsSaleOrderMaterialMapper.xml

@@ -927,6 +927,7 @@
            LEFT JOIN AMS_SALE_MATERIAL ASM
                      ON ASM.SALE_MATERIAL_ID = ASTM.MATERIAL_ID
     WHERE ASTM.SALE_ORDER_MATERIAL_ID = #{saleOrderMaterialId}
+
             AND ASM.SALE_MATERIAL_ID IS NOT NULL
   </select>
     <select id="selectSaleOrderIdIsUpload" resultType="java.lang.Integer" parameterType="java.math.BigDecimal">
@@ -952,12 +953,18 @@
     update
       TMSTRAIN_PLEASE_APPROVE_RESULT
     set SEND_STATION_ID=#{sendStationId}
+    <if test="userName != null">
+        ,update_userName = #{userName}
+    </if>
     WHERE RAIL_PLAN_ID=#{saleMaterialId}
   </update>
   <update id="updateInwardConsignee">
     update
       AMS_SALE_ORDER
     set RECEIVE_ID=#{consigneeId}
+    <if test="userName != null">
+      ,update_userName = #{userName}
+    </if>
     WHERE SALE_ORDER_ID=#{saleOrderId}
   </update>
   <update id="updateTransportOrderStatus">