zx пре 3 година
родитељ
комит
ab1ee1be64

+ 1 - 1
pom.xml

@@ -147,7 +147,7 @@
                     <!--包名-->
                     <targetPackage>com.steerinfo.dil</targetPackage>
                     <tables>
-                        <param>TMSTRUCK_LOAD_RESULT</param>
+                        <param>AMSTRUCK_REQUIREMENT_MATERIAL</param>
                     </tables>
                 </configuration>
                 <executions>

+ 16 - 0
src/main/java/com/steerinfo/dil/controller/TmstruckMeasureCommissionController.java

@@ -57,4 +57,20 @@ public class TmstruckMeasureCommissionController extends BaseRESTfulController {
         int i = tmstruckMeasureCommissionService.addMaoMeasureCommission(map);
         return success(i);
     }
+    @ApiOperation(value="发送计量委托 ")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "resultId", value = "装车作业实绩ID", required = false, dataType = "Integer"),
+    })
+    @PostMapping("/sendMeasureCommission")
+    public RESTfulResult sendMeasureCommission(@RequestBody(required = false) Map<String, Object> map) throws Exception {
+        int i = 0;
+        try {
+            i = tmstruckMeasureCommissionService.sendMeasureCommssion(map);
+        } catch (Exception e) {
+            e.getMessage();
+        }
+        return success(i);
+    }
+
+
 }

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

@@ -66,4 +66,8 @@ public interface TmstruckEnfactoryResultMapper extends IBaseMapper<TmstruckEnfac
 
     List<Map<String, Object>> getCgNzOutFactory(Map<String, Object> map);
 
+
+    //辅料查询 有几次进厂 并进了几次厂
+    Integer selectEnFactoryNumber(BigDecimal resultTotalId);
+    Integer selectAllEnFactoryNum(BigDecimal resultTotalId);
 }

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

@@ -73,6 +73,8 @@ public interface TmstruckMeasureCommissionMapper extends IBaseMapper<TmstruckMea
     //内转计量委托(老厂区)
     Map<String,Object> purchaseXqCgNzMeasure(Map<String,Object> map);
 
+    //纯内转发送计量委托
+    Map<String,Object> purchaseNzMeasure(Map<String,Object> map);
     //内转
     Integer getReceiveIdByRequirementOrderId(Object orderId);
 

+ 3 - 0
src/main/java/com/steerinfo/dil/mapper/UtilsMapper.java

@@ -77,4 +77,7 @@ public interface UtilsMapper {
 
     //通过路段顺序号和线路ID查找 线路子表的子表的ID 和门岗ID或汽车衡ID
     List<Integer> getLineSegmentGateCalcId(Map<String, Object> map);
+
+    //通过运输订单id查找运输订单类型
+    BigDecimal getOrderTypeByOrderId(BigDecimal orderId);
 }

+ 3 - 0
src/main/java/com/steerinfo/dil/service/ITmstruckMeasureCommissionService.java

@@ -28,4 +28,7 @@ public interface ITmstruckMeasureCommissionService{
     //添加计毛委托
     int addMaoMeasureCommission(Map<String, Object> map);
 
+    //发送计量委托
+    int sendMeasureCommssion(Map<String,Object> map) throws Exception;
+
 }

+ 19 - 11
src/main/java/com/steerinfo/dil/service/impl/TmstruckEnfactoryResultServiceImpl.java

@@ -163,6 +163,7 @@ public class TmstruckEnfactoryResultServiceImpl implements ITmstruckEnfactoryRes
         map.putAll(selectMap);
         BigDecimal orderType = DataChange.dataToBigDecimal(map.get("orderTypee"));
         BigDecimal orderId = DataChange.dataToBigDecimal(map.get("orderId"));
+        BigDecimal resultTotalId = DataChange.dataToBigDecimal(map.get("resultTotalId"));
         //判断委托是否发送成功
         int checkMeasureCommission = 0;
         switch (orderType.intValue()){
@@ -182,22 +183,29 @@ public class TmstruckEnfactoryResultServiceImpl implements ITmstruckEnfactoryRes
                 checkMeasureCommission = tmstruckMeasureCommissionService.addXSMeasureCommission(map); //添加计皮委托
                 break;
             case 5:
-            case 6:
-            case 7:
-            case 8:
-            case 9:
-            case 17:
-            case 18:
-                //通过订单ID查询物资Id
-                List<Integer> materialIds = utilsMapper.getMaterialIdByOrderId(DataChange.dataToBigDecimal(map.get("orderId")));
-                map.put("materialId", materialIds.get(0));
+                Integer num = tmstruckEnfactoryResultMapper.selectAllEnFactoryNum(resultTotalId);
+                if(num == 2){
+                    //如果辅料有两次进厂,则判断还剩几次没进厂数据,如果还剩两次则发委托
+                    Integer judgeNum = tmstruckEnfactoryResultMapper.selectEnFactoryNumber(resultTotalId);
+                    if (judgeNum == 1){
+                        checkMeasureCommission = 1;
+                        break;
+                    }
+                }
                 checkMeasureCommission = tmstruckMeasureCommissionService.addMaoMeasureCommission(map); //添加计毛委托 并发送计毛委托
                 break;
+            case 6:
+            case 7:
+//            case 8:
+//            case 9:
             case 10:
-                checkMeasureCommission = tmstruckMeasureCommissionService.addMaoMeasureCommission(map); //添加计量委托
-                break;
             case 11:
+//            case 17:
+            case 18:
+                checkMeasureCommission = tmstruckMeasureCommissionService.addMaoMeasureCommission(map); //添加计毛委托 并发送计毛委托
                 break;
+//            case 11:
+//                break;
             case 12:
             case 13:
             case 16:

+ 2 - 1
src/main/java/com/steerinfo/dil/service/impl/TmstruckLeaveFactoryResultServiceImpl.java

@@ -201,6 +201,7 @@ public class TmstruckLeaveFactoryResultServiceImpl implements ITmstruckLeaveFact
                 break;
             case 4:
                 break;
+            case 5:
             case 6:
             case 7:
                 //判断出厂路段顺序号是否为最后一个 采购订单关闭订单
@@ -212,7 +213,6 @@ public class TmstruckLeaveFactoryResultServiceImpl implements ITmstruckLeaveFact
                     omsFeign.addNewTransportOrder(orderId.intValue());
                 }
                 break;
-            case 5:
             case 8:
             case 9:
             case 17:
@@ -246,6 +246,7 @@ public class TmstruckLeaveFactoryResultServiceImpl implements ITmstruckLeaveFact
                 }
                 break;
             case 11:
+                i += utilsService.closeOrderNormally(map);
                 break;
             case 12:
             case 13:

+ 95 - 17
src/main/java/com/steerinfo/dil/service/impl/TmstruckMeasureCommissionServiceImpl.java

@@ -4,12 +4,14 @@ import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
 import com.steerinfo.dil.mapper.RulesMapper;
 import com.steerinfo.dil.mapper.TmstruckMeasureCommissionMapper;
+import com.steerinfo.dil.mapper.UtilsMapper;
 import com.steerinfo.dil.model.TmstruckMeasureCommission;
 import com.steerinfo.dil.service.ITmstruckMeasureCommissionService;
 import com.steerinfo.dil.util.DataChange;
 import com.steerinfo.dil.util.HTTPRequestUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
 import java.io.IOException;
 import java.math.BigDecimal;
@@ -36,6 +38,10 @@ public class TmstruckMeasureCommissionServiceImpl implements ITmstruckMeasureCom
 
     @Autowired
     private RulesMapper rulesMapper;
+    @Autowired
+    UtilsMapper utilsMapper;
+    @Autowired
+    private RulesServiceImpl rulesService;
    /**
      * 查询计量委托 0 :计皮     1:计毛
      * @param map orderTypee 订单类型   type 是计皮还是计毛
@@ -85,22 +91,23 @@ public class TmstruckMeasureCommissionServiceImpl implements ITmstruckMeasureCom
         int i = 0;
         addMeasureCommission(map); // 添加计毛委托
         //发送数据给计量系统 必要数据 orderTypee:订单类型  resultTotalId: 总实绩Id   orderId
-        //获取当前订单是属于哪个厂区订单
-        Integer receiveId = 0 ;
-        if(DataChange.dataToBigDecimal(map.get("orderTypee")).intValue() == 10){
-            receiveId = tmstruckMeasureCommissionMapper.getReceiveIdByRequirementOrderId(DataChange.dataToBigDecimal(map.get("orderId")));
-        }else{
-            //查询采购订单中的组织
-            receiveId = tmstruckMeasureCommissionMapper.getReceiveIdByOrderId(DataChange.dataToBigDecimal(map.get("orderId")));
-        }
-        if(receiveId == 1){
+        int orderType = DataChange.dataToBigDecimal(map.get("orderTypee")).intValue();
+        if(orderType == 10){
+            //获取当前订单是属于哪个厂区订单
+            Integer receiveId = tmstruckMeasureCommissionMapper.getReceiveIdByRequirementOrderId(DataChange.dataToBigDecimal(map.get("orderId")));
+            if(receiveId == 1){
+                i += sendMeasureCommissionMes(map);  //发送委托给达州钢铁
+            }else if(receiveId == 2) {
+                i += sendDXMeasureCommissionMes(map); //发送委托给达兴能源
+            }
+        }else if(orderType == 6 || orderType == 5 || orderType == 11){
             //发送委托给达州钢铁
             i += sendMeasureCommissionMes(map);
-        }
-        if(receiveId == 2) {
+        }else if(orderType == 18 || orderType == 7) {
             //发送委托给达兴能源
             i += sendDXMeasureCommissionMes(map);
         }
+
         return i;
     }
 
@@ -213,7 +220,7 @@ public class TmstruckMeasureCommissionServiceImpl implements ITmstruckMeasureCom
 
 
     /**
-     * 查询计量委托并向计量系统发送数据  调用他们接口
+     * 查询计量委托并向计量系统发送数据  调用他们接口 (老厂区)
      * 1:销售订单;2:焦炭发运计划;3:水渣发运计划;4:内转到异地库;5:采购辅料订单;6:采购老区燃料订单;
      * 7:采购新区燃料订单;8:采购进口矿(万州-厂内);9:采购内转(达州-厂内);10:采购内转(老区-厂内); 11:厂内内转
      * @param map orderTypee 订单类型  type 计皮0还是计毛1类型  orderId  订单ID
@@ -221,8 +228,8 @@ public class TmstruckMeasureCommissionServiceImpl implements ITmstruckMeasureCom
     public int sendMeasureCommissionMes(Map<String, Object> map){
         Map<String, Object> measureCommission = null;
         //查询计量委托
-        BigDecimal orderType = DataChange.dataToBigDecimal(map.get("orderTypee"));
-        switch (orderType.intValue()){
+        Integer orderType = DataChange.dataToBigDecimal(map.get("orderTypee")).intValue();
+        switch (orderType){
             case 1:
                 break;
             case 2:
@@ -231,16 +238,31 @@ public class TmstruckMeasureCommissionServiceImpl implements ITmstruckMeasureCom
                 break;
             case 10:
                 break;
-            case 11:
+            case 11://纯内转发送计量委托
+                 measureCommission = tmstruckMeasureCommissionMapper.purchaseNzMeasure(map);
+                 measureCommission.put("isRelationEAS", false);
+                 measureCommission.put("flowTo", "进厂");
+                 measureCommission.put("isDel", false);
+                 measureCommission.put("isInsert", true);
+                 measureCommission.put("IsAssembly", false);
+                 measureCommission.put("deliveryMethod", "磅重交货");
+                 measureCommission.put("packagesNum", 0);
+                 measureCommission.put("ReceivUnit","四川省达州钢铁集团有限责任公司");
+                 measureCommission.put("sendUnit","四川省达州钢铁集团有限责任公司");
+                 break;
             case 4:
                 break;
             case 5:
             case 6:
             case 7:
             case 8:
-            case 9:
+//            case 9:
                 measureCommission =  tmstruckMeasureCommissionMapper.purchaseMeasure(map);
-                measureCommission.put("isRelationEAS", false);
+                if(orderType == 6){
+                    measureCommission.put("isRelationEAS", false);
+                }else {
+                    measureCommission.put("isRelationEAS", true);
+                }
                 measureCommission.put("flowTo", "进厂");
                 measureCommission.put("isDel", false);
                 measureCommission.put("isInsert", true);
@@ -398,6 +420,8 @@ public class TmstruckMeasureCommissionServiceImpl implements ITmstruckMeasureCom
             if(success){
                 return 1;
             }
+        }else{
+            System.out.println("委托发送失败:" + jsonData);
         }
         return 0;
     }
@@ -429,4 +453,58 @@ public class TmstruckMeasureCommissionServiceImpl implements ITmstruckMeasureCom
         }
         return 0;
     }
+
+    //发送计量委托
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public int sendMeasureCommssion(Map<String, Object> map)  throws Exception {
+        int i=0;
+        //获取订单类型
+        BigDecimal orderId = DataChange.dataToBigDecimal(map.get("orderId"));
+        BigDecimal orderType = utilsMapper.getOrderTypeByOrderId(orderId);
+        map.put("orderTypee", orderType);
+        //根据运输订单id查找运输订单号
+        switch (orderType.intValue()){
+            case 1: //查询未装车实绩
+                List<Map<String, Object>> mapList = rulesService.judgeLastMaterial(DataChange.dataToBigDecimal(map.get("orderId")));
+                map.put("materialId", mapList.get(0).get("materialId"));
+                i+=addXSMeasureCommission(map);
+            case 2:
+            case 3: //通过物资ID查询订单ID(针对单拼)
+                List<Integer> materialIdList = utilsMapper.getMaterialIdByOrderId(orderId);
+                map.put("materialId", materialIdList.get(0));
+                i+=addXSMeasureCommission(map);
+                break;
+            case 12:
+            case 13:
+            case 15:
+            case 20:
+            case 16: //发送计量委托(查询物资顺序第一个装卸货的物资)
+                //拿到需要计量的物资ID
+                Integer materialId = utilsMapper.getLxFirstMaterialId(DataChange.dataToBigDecimal(map.get("orderId")));
+                map.put("materialId", materialId);
+                i+=addLXMeasureCommission(map);
+                break;
+            case 5:
+            case 6:
+            case 7:
+            case 8:
+            case 9:
+            case 17:
+            case 18://通过订单ID查询物资Id
+                List<Integer> materialIds = utilsMapper.getMaterialIdByOrderId(DataChange.dataToBigDecimal(map.get("orderId")));
+                map.put("materialId", materialIds.get(0));
+                i+=addMaoMeasureCommission(map);
+                break;
+            case 10:
+            case 11:
+                i+=addMaoMeasureCommission(map);
+
+        }
+        if (i==0){
+            throw new Exception("委托发送失败");
+        }
+        return i;
+    }
+
 }

+ 0 - 5
src/main/java/com/steerinfo/dil/service/impl/TmstruckUnloadResultServiceImpl.java

@@ -145,11 +145,6 @@ public class TmstruckUnloadResultServiceImpl implements ITmstruckUnloadResultSer
         i += updateUnloadResultBy(map); //更新卸货实绩
         //路段顺序号 + 1
         i += utilsService.updateOrderLineSequence(map);
-        BigDecimal resultTotalId = DataChange.dataToBigDecimal(map.get("resultTotalId"));
-        BigDecimal orderId = DataChange.dataToBigDecimal(map.get("orderId"));
-        Map<String, Object> mesMap = new HashMap<>();
-        mesMap.put("orderId", orderId);
-        mesMap.put("orderType", orderType);
         switch (orderType.intValue()){
             case 1:
                 break;

+ 13 - 0
src/main/resources/com/steerinfo/dil/mapper/TmstruckEnfactoryResultMapper.xml

@@ -1404,4 +1404,17 @@
         </where>
     </select>
 
+    <select id="selectAllEnFactoryNum" parameterType="java.math.BigDecimal" resultType="int">
+        select count(TER.RESULT_TOTAL_ID)
+        from TMSTRUCK_ENFACTORY_RESULT TER
+        where TER.RESULT_TOTAL_ID = #{resultTotalId}
+    </select>
+
+    <select id="selectEnFactoryNumber" parameterType="java.math.BigDecimal" resultType="int">
+        select count(TER.RESULT_TOTAL_ID)
+        from TMSTRUCK_ENFACTORY_RESULT TER
+        where TER.RESULT_TOTAL_ID = #{resultTotalId}
+        and TER.RESULT_ENTRY_GATE_TIME is null
+    </select>
+
 </mapper>

+ 0 - 1
src/main/resources/com/steerinfo/dil/mapper/TmstruckLeaveFactoryResultMapper.xml

@@ -962,7 +962,6 @@
         on RC.CAPACITY_ID = OO.CAPACITY_ID
         left join RMS_GATEPOST RG
         on RG.GATEPOST_ID = TLFR.GATEPOST_ID
-
         where RESULT_OUT_GATE_TIME is not null
         and OO.ORDER_TYPE = 11
         )

+ 41 - 0
src/main/resources/com/steerinfo/dil/mapper/TmstruckMeasureCommissionMapper.xml

@@ -1138,8 +1138,49 @@
                     OO.ORDER_ID = #{orderId}
                 ORDER BY
                     TWR.TARE_SEGMENT_SQE DESC
+                )
+        WHERE
+            ROWNUM = 1
+    </select>
+    <select id="purchaseNzMeasure" resultType="java.util.Map" parameterType="java.util.Map">
+        SELECT
+            *
+        FROM
+            (
+                SELECT
+                    OO.ORDER_NUMBER "transportNum",
+                    RC.CAPACITY_NUMBER "carNum",
+                    APO.PURCHASE_ORDER_NO "purchaseOrder",
+                    RW.WAREHOUSE_NAME "unloadPlace",
+                    TWR.INSERT_UPDATE_REMARK "demo",
+                    RM.MATERIAL_ID "materialId",
+                    RM.MATERIAL_NAME "materiaName",
+                    concat( RM.MATERIAL_SPECIFICATION, RM.MATERIAL_MODEL ) "goodsType",
+                    RTC.TRUCK_CALCULATE_NUMBER "steelyardNum"
+                FROM
+                    OMSTRUCK_ORDER OO
+                        LEFT JOIN RMS_CAPACITY RC ON RC.CAPACITY_ID = OO.CAPACITY_ID
+                        LEFT JOIN AMSTRUCK_INWARD_PLAN AIP ON AIP.PLAN_ID = OO.ORDER_PLAN_ID
+                        LEFT JOIN AMSTRUCK_REQUIREMENT_PLAN ARP ON ARP.PLAN_ID = AIP.PLAN_ID
+                        LEFT JOIN AMSTRUCK_INWARD_REQUIREMENT AIR ON AIR.REQUIREMENT_ID = ARP.REQUIREMENT_ID
+                        LEFT JOIN AMS_PURCHASE_ORDER APO ON APO.PURCHASE_ORDER_ID = AIR.PURCHASE_ORDER_ID
+                        LEFT JOIN RMS_SUPPLIER RS ON RS.SUPPLIER_ID = APO.SUPPLIER_UNIT_ID
+                        LEFT JOIN RMS_CONSIGNEE RCE ON RCE.CONSIGNEE_ID = APO.RECEIVE_UNIT_ID
+                        LEFT JOIN TMSTRUCK_TOTAL_RESULT TTR ON TTR.ORDER_ID = OO.ORDER_ID
+                        LEFT JOIN TMSTRUCK_UNLOAD_RESULT TUR ON TUR.RESULT_TOTAL_ID = TTR.RESULT_TOTAL_ID
+                        LEFT JOIN RMS_WAREHOUSE RW ON RW.WAREHOUSE_ID = AIR.REQUIREMENT_UNLOAD_UNIT_ID
+                        LEFT JOIN TMSTRUCK_WEIGHT_RESULT TWR ON TWR.RESULT_TOTAL_ID = TTR.RESULT_TOTAL_ID
+                        LEFT JOIN OMSTRUCK_ORDER_MATERIAL OOM ON OOM.ORDER_ID = OO.ORDER_ID
+                        LEFT JOIN RMS_MATERIAL RM ON RM.MATERIAL_ID = OOM.MATERIAL_ID
+                        LEFT JOIN RMS_TRUCK_CALCULATE RTC ON RTC.TRUCK_CALCULATE_ID = TWR.RESULT_TARE_PLACE_ID
+                WHERE
+                    OO.ORDER_ID = #{orderId}
+                ORDER BY
+                    TWR.TARE_SEGMENT_SQE DESC,
+                    OOM.MATERIAL_PRIORITY DESC
             )
         WHERE
             ROWNUM = 1
     </select>
+
 </mapper>

+ 5 - 0
src/main/resources/com/steerinfo/dil/mapper/UtilsMapper.xml

@@ -178,4 +178,9 @@
                            on RLGC.SEGMENT_ID = RLS.SEGMENT_ID
         where RLS.LINE_ID = #{lineId} and RLS.SEGMENT_SQE = #{segmentSqe}
     </select>
+    <select id="getOrderTypeByOrderId" resultType="java.math.BigDecimal">
+        select OO.ORDER_TYPE "orderType"
+        from OMSTRUCK_ORDER OO
+        where  OO.ORDER_ID=#{orderId}
+    </select>
 </mapper>

+ 0 - 27
src/main/test/tts.java

@@ -1,27 +0,0 @@
-import org.junit.Test;
-
-import java.math.BigDecimal;
-
-public class tts {
-    @Test
-    public void test(){
-        BigDecimal bigDecimal = new BigDecimal("10.001");
-        BigDecimal bigDecimal1 = new BigDecimal("7.288");
-        BigDecimal divide = bigDecimal.subtract(bigDecimal1).divide(new BigDecimal(1), 2, 4);
-        System.out.println(divide);
-    }
-
-    @Test
-    public void test2(){
-        BigDecimal b1 = new BigDecimal("2");
-        BigDecimal b2 = new BigDecimal("1");
-        int i = b1.compareTo(b2);
-        System.out.println(i);
-    }
-
-
-    @Test
-    public void test3(){
-
-    }
-}