Bladeren bron

”零星物资修改“

zx 3 jaren geleden
bovenliggende
commit
03bf766508

+ 1 - 6
pom.xml

@@ -147,12 +147,7 @@
                     <!--包名-->
                     <targetPackage>com.steerinfo.dil</targetPackage>
                     <tables>
-<!--                        <param>DIL_VERSION</param>-->
-<!--                        <param>TMSTRUCK_LOAD_RESULT</param>-->
-<!--                        <param>TMSTRUCK_LEAVE_FACTORY_RESULT</param>-->
-                        <param>TMSTRUCK_UNLOAD_RESULT</param>
-<!--                        <param>TMSTRUCK_WEIGHT_RESULT</param>-->
-
+                        <param></param>
                     </tables>
                 </configuration>
                 <executions>

+ 1 - 1
src/main/java/com/steerinfo/dil/mapper/TmstruckLoadResultMapper.java

@@ -87,7 +87,7 @@ public interface TmstruckLoadResultMapper extends IBaseMapper<TmstruckLoadResult
     TangXiaoFeng
      */
     //通过物资ID和总实绩Id查询唯一的装车实绩Id
-    Integer getLoadResultIdByMIdAndTotalId(@Param("resultTotalId") Integer resultTotalId, @Param("materialId") Integer materialId);
+    Map<String, Object> getLoadResultIdByMIdAndTotalId(@Param("resultTotalId") Integer resultTotalId, @Param("materialId") Integer materialId);
 
     //通过物资ID和订单Id查询唯一的装车实绩Id
     Integer getLoadIdByOrderIdAndMId(Map<String, Object> map);

+ 7 - 1
src/main/java/com/steerinfo/dil/mapper/TmstruckMeasureCommissionMapper.java

@@ -29,8 +29,11 @@ public interface TmstruckMeasureCommissionMapper extends IBaseMapper<TmstruckMea
      * from zhangXuan
      */
 
+    //通过订单ID查询收货单位ID
+    Integer getReceiveIdByOrderId(BigDecimal orderId);
+
     //通过订单ID查询发货单位ID
-    Integer getSupplierIdByOrderId(BigDecimal orderId);
+    Integer getShipperIdByOrderId(BigDecimal orderId);
 
     //销售查询计毛
     Map<String, Object> selectMakesureGrossForSaleByOrderNumber(Map<String, Object> map);
@@ -61,4 +64,7 @@ public interface TmstruckMeasureCommissionMapper extends IBaseMapper<TmstruckMea
 
     //销售计量委托(达兴)
     Map<String, Object> saleDXMeasure(Map<String, Object> map);
+
+    //零星物资进厂计量委托
+    Map<String, Object> sporadicDXMeasure(Map<String, Object> map);
 }

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

@@ -89,7 +89,7 @@ public class RulesServiceImpl implements IRulesService {
     public int calculateWeighbridge(Map<String, Object> map){
         //物资类型:无法计算汽车衡 返回所有1
         if(map != null){
-            return 1;
+            return 18;
         }
         List<Integer> calculateList = queryTruckCalculate(map);
         //暂时不考虑优先级 随机进行取值

+ 4 - 2
src/main/java/com/steerinfo/dil/service/impl/TmstruckEnfactoryResultServiceImpl.java

@@ -196,7 +196,7 @@ public class TmstruckEnfactoryResultServiceImpl implements ITmstruckEnfactoryRes
             case 8:
             case 9:
                 //计算计毛汽车衡并更新计量实绩 (暂时无法计算汽车衡)  需要写一个单独的方法 先计皮再计毛的
-                map.put("grossPlaceId", 3);
+                map.put("grossPlaceId", 18);
                 i += tmstruckWeightResultService.updateWeightResult(map);
                 //通过物资ID查询物资Id
                 List<Integer> materialIdList = utilsMapper.getMaterialIdByOrderId(DataChange.dataToBigDecimal(map.get("orderId")));
@@ -213,7 +213,9 @@ public class TmstruckEnfactoryResultServiceImpl implements ITmstruckEnfactoryRes
                 //发送计量委托
                 List<Integer> materialIdByOrderId = utilsMapper.getMaterialIdByOrderId(DataChange.dataToBigDecimal(map.get("orderId")));
                 map.put("materialId", materialIdByOrderId.get(0));
-//                i += tmstruckMeasureCommissionService.addMaoMeasureCommission(map);
+                //默认收货单位为新厂区
+                map.put("receiveId",2);
+                i += tmstruckMeasureCommissionService.addMaoMeasureCommission(map);
         }
         utilsService.pushMesToWebsocket((String) map.get("capacityNumber"), "车辆进厂");
         return i;

+ 13 - 21
src/main/java/com/steerinfo/dil/service/impl/TmstruckLoadResultServiceImpl.java

@@ -204,11 +204,11 @@ public class TmstruckLoadResultServiceImpl implements ITmstruckLoadResultService
         BigDecimal resultTotalId = (BigDecimal) orderMap.get("resultTotalId");
         map.put("resultTotalId", resultTotalId.intValue());
         //通过总实绩ID与物资ID查找 装车实绩主键ID
-        Integer resultId = tmstruckLoadResultMapper.getLoadResultIdByMIdAndTotalId(resultTotalId.intValue(), materialId.intValue());
+        Map<String, Object> resultIdMap = tmstruckLoadResultMapper.getLoadResultIdByMIdAndTotalId(resultTotalId.intValue(), materialId.intValue());
         TmstruckLoadResult tmstruckLoadResult = new TmstruckLoadResult();
         tmstruckLoadResult.setStatus(new BigDecimal(0)); // 添加状态0:正常
         //编辑装车实绩主键ID对应的各个字段
-        tmstruckLoadResult.setResultId(new BigDecimal(resultId));
+        tmstruckLoadResult.setResultId(DataChange.dataToBigDecimal(resultIdMap.get("resultId")));
         // 获取扫描实绩最小Id  添加扫描开始时间
         map.put("materialId", materialId);
         Map<String, Object> scanMap = tmstruckLoadResultMapper.getMinScanIdByOrderNum(map);
@@ -243,8 +243,8 @@ public class TmstruckLoadResultServiceImpl implements ITmstruckLoadResultService
 
     /**
      * PDA新增销售钢渣、水渣、危化品装车实绩
-     * loadStartTime 装车开始时间   resultMeasuredTonnage 计量吨位
-     * warehouseName  仓库名称      orderNumber 运输订单号   insertUpdateRemark 备注
+     * loadStartTime 装车开始时间
+     * warehouseId  仓库Id      orderNumber 运输订单号   insertUpdateRemark 备注
      * @param map
      * @return
      */
@@ -252,12 +252,12 @@ public class TmstruckLoadResultServiceImpl implements ITmstruckLoadResultService
         //通过运输订单号 查询 总实绩ID、订单类型
         Map<String,Object> orderMap = tmstruckEnfactoryResultMapper.selectTotalResultIdByCpAndOn(map);
         BigDecimal resultTotalId = (BigDecimal) orderMap.get("resultTotalId");
-        Integer orderType = tmstruckLoadResultMapper.selectOrderTypeByOrderNumber((String) map.get("orderNumber"));
         //查询装车实绩ID
-        Integer resultId = tmstruckLoadResultMapper.getLoadResultIdByMIdAndTotalId(resultTotalId.intValue(), null);
+        map.putAll(tmstruckLoadResultMapper.getLoadResultIdByMIdAndTotalId(resultTotalId.intValue(), null));
         TmstruckLoadResult tmstruckLoadResult = new TmstruckLoadResult();
-        tmstruckLoadResult.setResultId(new BigDecimal(resultId));
+        tmstruckLoadResult.setResultId(DataChange.dataToBigDecimal(map.get("resultId")));
         tmstruckLoadResult.setStatus(new BigDecimal(0));
+        tmstruckLoadResult.setMaterialId(DataChange.dataToBigDecimal(map.get("materialId")));
         //添加装车开始时间
         Date loadStartTime = new Date((long) map.get("loadStartTime"));
         tmstruckLoadResult.setResultLoadStartTime(loadStartTime);
@@ -267,24 +267,16 @@ public class TmstruckLoadResultServiceImpl implements ITmstruckLoadResultService
         //计算装车时长 取分钟
         long differentTime = (loadEndTime.getTime() - loadStartTime.getTime() / 60000);
         tmstruckLoadResult.setResultLoadDuration(new BigDecimal(differentTime));
-        //添加计量吨位
-        tmstruckLoadResult.setResultMeasuredTonnage(DataChange.dataToBigDecimal(map.get("resultMeasuredTonnage")));
-        //添加装车标准时长
-        setLoadStandardTimeId((String)map.get("orderNumber"), tmstruckLoadResult);
-        // 更新装车名称
-        Object warehouseName = map.get("warehouseName");
-        if(warehouseName != null){
-            Integer warehouseId = utilsService.queryWarehouseIdByName((String) warehouseName);
-            tmstruckLoadResult.setLoadingId(new BigDecimal(warehouseId));
-        }
+        // 更新装货点
+        tmstruckLoadResult.setLoadingId(DataChange.dataToBigDecimal(map.get("warehouseId")));
         tmstruckLoadResult.setInsertUpdateRemark((String) map.get("insertUpdateRemark"));
         int i = tmstruckLoadResultMapper.updateByPrimaryKeySelective(tmstruckLoadResult);
         //装车成功后计算计毛汽车衡(出厂:2)
         i += tmstruckWeightResultService.calculateTruckCalculateByOne(map, 2);
-        //发送计毛委托
-        map.put("resultTotalId", resultTotalId);
-        map.put("orderTypee", orderType);
-        tmstruckMeasureCommissionService.addMaoMeasureCommission(map);
+        //更新路段顺序号
+        i += utilsService.updateOrderLineSequence(map);
+        //推送消息到websocket
+        utilsService.pushMesToWebsocket((String) map.get("capacityNumber"), "装货");
         return i;
     }
 

+ 57 - 5
src/main/java/com/steerinfo/dil/service/impl/TmstruckMeasureCommissionServiceImpl.java

@@ -72,7 +72,7 @@ public class TmstruckMeasureCommissionServiceImpl implements ITmstruckMeasureCom
     }
 
     /**
-     * 添加计量委托 并发送计量委托
+     * 添加计量委托 并发送采购订单计量委托
      * @param map {orderTypee: 订单类型
      *            resultTotalId:总实绩ID  orderId: 订单ID
      *            总实绩ID }
@@ -82,18 +82,56 @@ public class TmstruckMeasureCommissionServiceImpl implements ITmstruckMeasureCom
         int i = addMeasureCommission(map); // 添加计毛委托
         //发送数据给计量系统 必要数据 orderTypee:订单类型  resultTotalId: 总实绩Id   orderId
         //获取当前订单是属于哪个厂区订单
-        Integer receiveId = tmstruckMeasureCommissionMapper.getSupplierIdByOrderId(DataChange.dataToBigDecimal(map.get("orderId")));
-        if(receiveId == 1){
+        Integer receiveId=0;
+        if (map.get("receiveId")==null) {
+             receiveId = tmstruckMeasureCommissionMapper.getReceiveIdByOrderId(DataChange.dataToBigDecimal(map.get("orderId")));
+        }else {
+            //零星物资默认为新厂区(暂时)
+            receiveId=(Integer) map.get("receiveId");
+        }
+            if (receiveId == 1) {
+                //发送委托给达州钢铁
+                i += sendMeasureCommissionMes(map);
+            }
+            if (receiveId == 2) {
+                //发送委托给达兴能源
+                i += sendDXMeasureCommissionMes(map);
+        }
+        return i;
+    }
+
+    /**
+     * 发送销售订单计量委托
+     * @param map
+     * @return
+     */
+    public int addXSMeasureCommission(Map<String, Object> map){
+        int i = addMeasureCommission(map); // 添加计毛委托
+        //发送数据给计量系统 必要数据 orderTypee:订单类型  resultTotalId: 总实绩Id   orderId
+        //获取当前订单是属于哪个厂区订单
+        Integer shipperId = tmstruckMeasureCommissionMapper.getShipperIdByOrderId(DataChange.dataToBigDecimal(map.get("orderId")));
+        if(shipperId == 1){
             //发送委托给达州钢铁
             i += sendMeasureCommissionMes(map);
         }
-        if(receiveId == 2) {
+        if(shipperId == 2) {
             //发送委托给达兴能源
             i += sendDXMeasureCommissionMes(map);
         }
         return i;
     }
 
+    /**
+     * 添加零星物资计量委托
+     * @param map
+     * @return
+     */
+    public int addLXMeasureCommission(Map<String, Object> map){
+        int i = addMeasureCommission(map); // 添加计毛委托
+        i += sendDXMeasureCommissionMes(map);
+        return i;
+    }
+
 
     /**
      * 新增计毛、计皮委托
@@ -189,16 +227,30 @@ public class TmstruckMeasureCommissionServiceImpl implements ITmstruckMeasureCom
             case 6:
             case 7:
             case 8:
-            case 9:
                 measureCommission =  tmstruckMeasureCommissionMapper.purchaseDXMeasure(map);
                 measureCommission.put("deliveryType", "计重");
                 measureCommission.put("billType", "0");
                 measureCommission.put("crname", "admin");
                 measureCommission.put("ended", "0");
+            case 9:
+                break;
             case 10:
+                break;
             case 11:
             case 12:
+                measureCommission = tmstruckMeasureCommissionMapper.sporadicDXMeasure(map);
+                measureCommission.put("regionName", " "); //无法确定汽车衡
+                measureCommission.put("deliveryType", "计重");
+                measureCommission.put("billType", "2");
+                measureCommission.put("planQuantity", "0");
+                measureCommission.put("crname", "admin");
+                measureCommission.put("orderSource", "0");
+                measureCommission.put("ended", "0");
                 break;
+            case 13:
+            case 14:
+
+
         }
         /*访问接口发送数据*/
         return sendMesToDXMeasure(measureCommission);

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

@@ -257,6 +257,7 @@ public class TmstruckUnloadResultServiceImpl implements ITmstruckUnloadResultSer
             Map<String,Object> map2=new HashMap<>();
             map2.put("materialId",materialId);
             map2.put("orderId",orderId);
+            map2.put("receiveId",2);
             //判断物资是否被计量
             Integer integer = tmstruckUnloadResultMapper.selectUnloadMaterialId(map2);
             if (integer==0){

+ 2 - 1
src/main/resources/com/steerinfo/dil/mapper/TmstruckEnfactoryResultMapper.xml

@@ -628,7 +628,8 @@
     <!--  通过车牌号并且状态不为2 或 运输订单 或运输订单ID  查询关联的实绩总表ID -->
     <select id="selectTotalResultIdByCpAndOn" parameterType="java.util.Map" resultType="java.util.Map">
         select TTR.RESULT_TOTAL_ID "resultTotalId",
-               RC.CAPACITY_NUMBER "capacityNumber"
+               RC.CAPACITY_NUMBER "capacityNumber",
+               OO.ORDER_TYPE       "orderType"
         from OMSTRUCK_ORDER OO
         left join TMSTRUCK_TOTAL_RESULT TTR
         on TTR.ORDER_ID = OO.ORDER_ID

+ 3 - 2
src/main/resources/com/steerinfo/dil/mapper/TmstruckLoadResultMapper.xml

@@ -1099,8 +1099,9 @@
     </select>
 
 <!--  通过物资ID和总实绩Id查询唯一的装车实绩Id  -->
-    <select id="getLoadResultIdByMIdAndTotalId" parameterType="int" resultType="java.lang.Integer">
-        select TLR.RESULT_ID
+    <select id="getLoadResultIdByMIdAndTotalId" parameterType="int" resultType="java.util.Map">
+        select TLR.RESULT_ID "resultId",
+               TLR.SEGMENT_SQE "segmentSqe"
         from TMSTRUCK_LOAD_RESULT TLR
         <where>
             TLR.RESULT_TOTAL_ID = #{resultTotalId}

+ 45 - 3
src/main/resources/com/steerinfo/dil/mapper/TmstruckMeasureCommissionMapper.xml

@@ -833,8 +833,8 @@
         where OO.ORDER_ID = #{orderId}
     </select>
 
-<!--   通过订单ID查询货单位ID -->
-    <select id="getSupplierIdByOrderId" parameterType="java.math.BigDecimal" resultType="java.lang.Integer">
+<!--   通过订单ID查询货单位ID -->
+    <select id="getReceiveIdByOrderId" parameterType="java.math.BigDecimal" resultType="java.lang.Integer">
         select APO.RECEIVE_UNIT_ID
         from OMSTRUCK_ORDER OO
         left join AMS_PURCHASE_ORDER APO
@@ -897,7 +897,49 @@
                 <if test="weightTaskResultId != null">
                     and TWR.WEIGHT_TASK_RESULT_ID = #{weightTaskResultId}
                 </if>
-                and ASM.MATERIAL_ID = TWR.MATERIAL_ID
+                and ASM.MATERIAL_ID = #{materialId}
                 and rownum = 1
     </select>
+<!--  通过订单ID查询发货单位ID  -->
+    <select id="getShipperIdByOrderId" parameterType="java.math.BigDecimal" resultType="java.lang.Integer">
+        select ASO.SHIPPER_ID
+        from OMSTRUCK_ORDER OO
+        left join AMS_SALE_ORDER_MATERIAL ASOM
+            on ASOM.SALE_ORDER_MATERIAL_ID = OO.ORDER_PLAN_ID
+        left join AMS_SALE_ORDER ASO
+            on ASO.SALE_ORDER_ID = ASOM.SALE_ORDER_ID
+        where OO.ORDER_ID = #{orderId}
+    </select>
+
+<!--  零星物资进厂计量委托  -->
+    <select id="sporadicDXMeasure" parameterType="map" resultType="java.util.Map">
+        select oo.order_number            "orderId",
+               oom.material_id            "item",
+               rc.capacity_number         "carNumber",
+               rm.material_code           "goodsNo",
+               rm.material_name           "goodsName",
+               rs.supplier_name           "provider",
+               (case
+                    when RS.SUPPLIER_DUTY_PARAGRAPH is null
+                        then ' '
+                    else RS.SUPPLIER_DUTY_PARAGRAPH
+                   end
+                   )                      "providerNo",
+               rce.consignee_company_name "receiver",
+               rce.CONSIGNEE_CODE          "receiverNo"
+        from omstruck_order oo
+                 left join omstruck_order_material oom
+                           on oom.order_id = oo.order_id
+                 left join rms_capacity rc
+                           on rc.capacity_id = oo.capacity_id
+                 left join rms_material rm
+                           on rm.material_id = oom.material_id
+                 left join amstruck_sporadic_order aso
+                           on aso.sporadic_order_id = oo.order_plan_id
+                 left join rms_supplier rs
+                           on rs.supplier_id = aso.send_unit_id
+                 left join rms_consignee rce
+                           on rce.consignee_id = aso.receive_unit_id
+        where oo.order_id = #{orderId} and oom.material_id = #{materialId}
+    </select>
 </mapper>

+ 7 - 6
src/main/resources/com/steerinfo/dil/mapper/TmstruckUnloadResultMapper.xml

@@ -989,12 +989,13 @@
     </select>
     <!--  根据物资是否计量 -->
     <select id="selectUnloadMaterialId" resultType="java.lang.Integer" parameterType="java.util.Map">
-        select COUNT(*)
-        from OMSTRUCK_ORDER_MATERIAL OOM
-                 join OMSTRUCK_ORDER OO
-                      on OO.ORDER_ID=OOM.ORDER_ID
-                 join TMSTRUCK_WEIGHT_RESULT TWR
-                      on TWR.MATERIAL_ID=OOM.MATERIAL_ID
+        SELECT
+            COUNT( * )
+        FROM
+            OMSTRUCK_ORDER_MATERIAL OOM
+                JOIN OMSTRUCK_ORDER OO ON OO.ORDER_ID = OOM.ORDER_ID
+                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 OOM.MATERIAL_ID=#{materialId}  AND OO.ORDER_ID=#{orderId}
     </select>