luobang 3 år sedan
förälder
incheckning
91b6fb4d59

+ 13 - 1
src/main/java/com/steerinfo/dil/controller/OmstruckOrderSeparateController.java

@@ -156,7 +156,6 @@ public class OmstruckOrderSeparateController extends BaseRESTfulController {
         if (carrierId != null && !"undefined".equals(carrierId)) {
             mapValue.put("carrierId", carrierId);
         }
-
         if (userId!=null){
             mapValue.put("userId",userId);
         }
@@ -243,6 +242,19 @@ public class OmstruckOrderSeparateController extends BaseRESTfulController {
         return success(omstruckOrderSeparateService.getAllLoadUnloadResult(map));
     }
 
+    @ApiOperation(value = "查看计时完成详情")
+    @PostMapping("/getTimeTaskEnd")
+    public RESTfulResult getTimeTaskEnd(@RequestBody (required = false) Map<String, Object> map){
+        return success(omstruckOrderSeparateService.getTimeTaskEnd(map));
+    }
+
+    @PostMapping("/getTimeTaskEndDetail")
+    public RESTfulResult getTimeTaskEndDetail(@RequestBody (required = false) Map<String, Object> map){
+        return success(omstruckOrderSeparateService.getTimeTaskEndDetail(map));
+    }
+
+
+
     @ApiOperation(value = "批量关闭运输订单")
     @PostMapping("/batchCloseOrder")
     public RESTfulResult batchCloseOrder(@RequestBody List<Map<String,Object>> mapList){

+ 4 - 0
src/main/java/com/steerinfo/dil/feign/TmsTruckFeign.java

@@ -49,4 +49,8 @@ public interface TmsTruckFeign {
     //发送计量委托,运输订单id
     @PostMapping("api/v1/truckTms/tmstruckmeasurecommissions/sendMeasureCommission")
     RESTfulResult sendMeasureCommission(@RequestBody(required = false) Map<String, Object> map);
+
+    //新增计时作业实绩
+    @PostMapping("api/v1/truckTms/tmstrucktimetaskresults/addTimeTaskResult")
+    RESTfulResult addTimeTaskResult(@RequestBody(required = false) Map<String, Object> map);
 }

+ 7 - 0
src/main/java/com/steerinfo/dil/mapper/AmstruckInwardPlanMapper.java

@@ -11,4 +11,11 @@ import java.util.Map;
 
 @Mapper
 public interface AmstruckInwardPlanMapper extends IBaseMapper<AmstruckInwardPlan, BigDecimal> {
+
+    //通过订单id查找需求类型是否为计时作业
+    Map<String,Object> getTypeByOrderId(BigDecimal orderId);
+
+    //根据计划查找是否为计时作业需求
+    String getInwardByPlanId(BigDecimal planId);
+
 }

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

@@ -214,7 +214,7 @@ public interface OmstruckOrderMapper extends IBaseMapper<OmstruckOrder, BigDecim
     //查询内转运输订单给APP 9 10 11
     Map<String, Object> getNZOrderMessageToApp(Map<String, Object> map);
 
-    //查询采购零星物资订单给app 12 13
+    //查询采购零星物资订单给app 12 13 14
     Map<String,Object>  getSporadicOrder(Map<String, Object> map);
 
     //查询发运计划运输订单给APP  2 3 4
@@ -313,4 +313,5 @@ public interface OmstruckOrderMapper extends IBaseMapper<OmstruckOrder, BigDecim
     //根据运输订单号查找需要用车时长
     Map<String,Object>  selectInwardTimeByOrderId(BigDecimal orderId);
 
+    List<Map<String, Object>> getTimeTaskEndDetail(Map<String, Object> map);
 }

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

@@ -130,6 +130,8 @@ public interface OmstruckOrderSeparateMapper {
 
     int closeInwardOrder(@Param("orderId") Integer orderId, @Param("sqe") Integer sqe);
 
+    List<Map<String, Object>> getTimeTaskEndOrder(Map<String, Object> map);
+
     int  getInward(Object orderType);
 
     //根据订单ID查询信息

+ 6 - 0
src/main/java/com/steerinfo/dil/service/IOmstruckOrderSeparateService.java

@@ -42,5 +42,11 @@ public interface IOmstruckOrderSeparateService {
 
     int closeInwardOrder(Integer orderId, Integer sqe);
 
+
+    List<Map<String,Object>> getTimeTaskEnd(Map<String, Object> map);
+
+    List<Map<String,Object>> getTimeTaskEndDetail(Map<String, Object> map);
+
     List<Map<String,Object>> getUnloadOrderWarehouseName(Map<String, Object> map);
+
 }

+ 31 - 4
src/main/java/com/steerinfo/dil/service/impl/OmstruckOrderSeparateServiceImpl.java

@@ -3,10 +3,7 @@ package com.steerinfo.dil.service.impl;
 import com.fasterxml.jackson.databind.ObjectReader;
 import com.steerinfo.dil.feign.IMFeign;
 import com.steerinfo.dil.feign.TmsTruckFeign;
-import com.steerinfo.dil.mapper.AmsSaleOrderMaterialMapper;
-import com.steerinfo.dil.mapper.OmstruckOrderMapper;
-import com.steerinfo.dil.mapper.OmstruckOrderMaterialMapper;
-import com.steerinfo.dil.mapper.OmstruckOrderSeparateMapper;
+import com.steerinfo.dil.mapper.*;
 import com.steerinfo.dil.model.OmstruckOrder;
 import com.steerinfo.dil.model.OmstruckOrderMaterial;
 import com.steerinfo.dil.service.IOmstruckOrderSeparateService;
@@ -37,6 +34,9 @@ public class OmstruckOrderSeparateServiceImpl implements IOmstruckOrderSeparateS
     @Autowired
     AmsSaleOrderMaterialMapper amsSaleOrderMaterialMapper;
 
+    @Autowired
+    AmstruckInwardPlanMapper amstruckInwardPlanMapper;
+
     @Autowired
     private OmstruckOrderMapper omstruckOrderMapper;
 
@@ -61,6 +61,14 @@ public class OmstruckOrderSeparateServiceImpl implements IOmstruckOrderSeparateS
         Integer resultTotalId = DataChange.dataToBigDecimal(map.get("resultTotalId")).intValue();
         Integer lineId = DataChange.dataToBigDecimal(map.get("lineId")).intValue();
         int result = 0;
+//        //通过订单id判断订单类型是否为计时,如果是计时就添加计时作业实绩
+//        BigDecimal orderId =DataChange.dataToBigDecimal(map.get("orderId"));
+//        Map<String, Object> mesMap = amstruckInwardPlanMapper.getTypeByOrderId(orderId);
+//        String requirementType = (String) mesMap.get("requirementType");
+//        if (requirementType.equals("计时")){
+//            //添加计时作业实绩
+//             tmsTruckFeign.addTimeTaskResult(map);
+//        }
         //通过总实绩Id 查询关联的线路子表顺序
         List<Map<String, Object>> segmentList = omstruckOrderSeparateMapper.getLineMesByOrderId(lineId);
         Map<String,Object> totalIdMap = new HashMap<>();
@@ -643,8 +651,27 @@ public class OmstruckOrderSeparateServiceImpl implements IOmstruckOrderSeparateS
         return i;
     }
 
+
+    //根据用户id和运输订单号查找已经计时完成的订单
+    @Override
+    public List<Map<String, Object>> getTimeTaskEnd(Map<String, Object> map) {
+        List<Map<String, Object>> getTimeTaskEndOrder = omstruckOrderSeparateMapper.getTimeTaskEndOrder(map);
+        return getTimeTaskEndOrder;
+
+    }
+
+    //根据运输订单号查找运输订单详情
+    @Override
+    public List<Map<String, Object>> getTimeTaskEndDetail(Map<String, Object> map) {
+        List<Map<String,Object>> mapList=omstruckOrderMapper.getTimeTaskEndDetail(map);
+        return mapList;
+    }
+
+
+
     @Override
     public List<Map<String,Object>> getUnloadOrderWarehouseName(Map<String, Object> map) {
         return omstruckOrderMaterialMapper.getUnloadOrderWarehouseName(map);
     }
+
 }

+ 61 - 32
src/main/java/com/steerinfo/dil/service/impl/OmstruckOrderServiceImpl.java

@@ -531,6 +531,7 @@ public class OmstruckOrderServiceImpl implements IOmstruckOrderService {
             case 13:
             case 19:
             case 12:
+            case 14:
                 if (transStatus.intValue()==1){
                     amsFeign.addSporadicOrderTimes(addMapSporadicOrder);
                 }
@@ -767,30 +768,30 @@ public class OmstruckOrderServiceImpl implements IOmstruckOrderService {
     @Override
     @Transactional
     public synchronized int driverReceiveOrRefuse(Map<String, Object> map) throws RuntimeException {
-        BigDecimal orderId = DataChange.dataToBigDecimal(map.get("orderId"));
-        OmstruckOrder omstruckOrder = new OmstruckOrder();
-        if((Integer) map.get("orderReceiveStatus") == 1) {
-            List<Integer> orderIdList = omstruckOrderMapper.getReceiveOrderIdListByCapacityNum((String) map.get("capacityNumber"));
-            if (orderIdList.size() > 0) {
-                throw  new RuntimeException("已有接收的订单!");
-            }
-            omstruckOrder.setOrderStatus(new BigDecimal(5)); //5 :已接收
-            //通过订单ID查询信息
-            Map<String, Object> orderMessage = omstruckOrderSeparateMapper.getOrderMessagge(orderId);
-            int orderStatus = DataChange.dataToBigDecimal(orderMessage.get("orderStatus")).intValue();
-            if(orderStatus == 5 || orderStatus == 6) {
-                throw new RuntimeException("订单已被接收或已被拒绝!");
-            }
-            int orderType = DataChange.dataToBigDecimal(orderMessage.get("orderType")).intValue();
-            if(orderType == 11){
-                //发送计量委托
-                orderMessage.put("asd", 1);
-                orderMessage.put("orderId", orderId);
-                tmsTruckFeign.sendMeasureCommission(orderMessage);
-            }else {
-                //添加各个实绩
-                omstruckOrderSeparateService.addAllSonResult(orderMessage);
-            }
+            BigDecimal orderId = DataChange.dataToBigDecimal(map.get("orderId"));
+            OmstruckOrder omstruckOrder = new OmstruckOrder();
+            if((Integer) map.get("orderReceiveStatus") == 1) {
+                List<Integer> orderIdList = omstruckOrderMapper.getReceiveOrderIdListByCapacityNum((String) map.get("capacityNumber"));
+                if (orderIdList.size() > 0) {
+                    throw  new RuntimeException("已有接收的订单!");
+                }
+                omstruckOrder.setOrderStatus(new BigDecimal(5)); //5 :已接收
+                //通过订单ID查询信息
+                Map<String, Object> orderMessage = omstruckOrderSeparateMapper.getOrderMessagge(orderId);
+                int orderStatus = DataChange.dataToBigDecimal(orderMessage.get("orderStatus")).intValue();
+                if(orderStatus == 5 || orderStatus == 6) {
+                    throw new RuntimeException("订单已被接收或已被拒绝!");
+                }
+                int orderType = DataChange.dataToBigDecimal(orderMessage.get("orderType")).intValue();
+                if(orderType == 11||orderType==22){
+                    //发送计量委托
+                    orderMessage.put("asd", 1);
+                    orderMessage.put("orderId", orderId);
+                    tmsTruckFeign.sendMeasureCommission(orderMessage);
+                }else if(orderType!=21){
+                    //添加各个实绩
+                    omstruckOrderSeparateService.addAllSonResult(orderMessage);
+                }
             //判断订单是否是一车多单
             if (orderType ==15 || orderType ==16 || orderType ==19) {
                 //通过订单查询趟次
@@ -1420,16 +1421,30 @@ public class OmstruckOrderServiceImpl implements IOmstruckOrderService {
     @Override
     public int addInwardOrder(Map<String, Object> mapValue) {
         int result = 0;
+        BigDecimal orderType;
         List<Map<String,Object>> mapList = (List<Map<String, Object>>) mapValue.get("mapList");
         BigDecimal planId = DataChange.dataToBigDecimal(mapValue.get("planId")) ;
         BigDecimal lineId = DataChange.dataToBigDecimal(mapValue.get("lineId")) ;
-        BigDecimal orderType = DataChange.dataToBigDecimal(mapValue.get("orderType")) ;
+        orderType = DataChange.dataToBigDecimal(mapValue.get("orderType"));
+        String orgCode=(String) mapValue.get("orgCode");
+        //根据计划查找需求,如果是计时,就添加新的订单类型
+        String inwardType = amstruckInwardPlanMapper.getInwardByPlanId(planId);
+        if (inwardType.equals("计时")){
+          mapValue.remove(orderType);
+          orderType = BigDecimal.valueOf(21);
+          mapValue.put("orderType",orderType);
+        }else if (inwardType.equals("计次")){
+            mapValue.remove(orderType);
+            orderType = BigDecimal.valueOf(22);
+            mapValue.put("orderType",orderType);
+        }
         Integer carrierId = (Integer) mapValue.get("carrierId");
         AmstruckInwardPlan amstruckInwardPlan = amstruckInwardPlanMapper.selectByPrimaryKey(planId);
         amstruckInwardPlan.setPlanStatus(new BigDecimal(3));
         result += amstruckInwardPlanMapper.updateByPrimaryKeySelective(amstruckInwardPlan);
         for (Map<String,Object> orderMap : mapList) {
             OmstruckOrder omstruckOrder = new OmstruckOrder();
+            omstruckOrder.setInsertUsername(orgCode);
             String capacityNumber = (String)orderMap.get("capacityNumber");
             List<Map<String,Object>>orderMaterialList = (List<Map<String,Object>>)orderMap.get("orderMaterialList");
             Map<String,Object> capacityMap = new HashMap<>();
@@ -1455,8 +1470,6 @@ public class OmstruckOrderServiceImpl implements IOmstruckOrderService {
             omstruckOrder.setCapacityId(capacityId);
             omstruckOrder.setInsertTime(new Date());
             omstruckOrder.setUpdateTime(new Date());
-            omstruckOrder.setInsertUsername("admin");
-            omstruckOrder.setUpdateUsername("admin");
             omstruckOrder.setInsertUpdateRemark("无");
             omstruckOrder.setDeleted(new BigDecimal(0));
             omstruckOrder.setOrderType(orderType);
@@ -1477,10 +1490,8 @@ public class OmstruckOrderServiceImpl implements IOmstruckOrderService {
                 omstruckOrderMaterial.setMaterialId(materialId);
                 omstruckOrderMaterial.setOrderMaterialNumber(materialCount);
                 omstruckOrderMaterial.setInsertTime(new Date());
+                omstruckOrderMaterial.setInsertUsername(orgCode);
                 omstruckOrderMaterial.setUpdateTime(new Date());
-                omstruckOrderMaterial.setInsertUsername("admin");
-                omstruckOrderMaterial.setUpdateUsername("admin");
-                omstruckOrderMaterial.setInsertUpdateRemark("无");
                 omstruckOrderMaterial.setOrderMaterialWeight(materialWeight);
                 result +=omstruckOrderMaterialMapper.insertSelective(omstruckOrderMaterial);
             }
@@ -1880,6 +1891,7 @@ public class OmstruckOrderServiceImpl implements IOmstruckOrderService {
     public Map<String, Object> getMessageToApp(Map<String, Object> map){
         BigDecimal orderId = DataChange.dataToBigDecimal(map.get("orderId"));
         Integer orderType;
+        String inwardType="";
         //获取订单类型
         if(map.get("orderType") == null){
             orderType = omstruckOrderMapper.getOrderTypeByOrderNumber(orderId);
@@ -1918,11 +1930,28 @@ public class OmstruckOrderServiceImpl implements IOmstruckOrderService {
                 break;
             case 11:
                 mesMap = omstruckOrderMapper.getInwardOrderMessageToApp(map);
+                inwardType += "计重";
+                mesMap.put("inwardType", inwardType);
+                mesMap.put("shipperName","四川省达州钢铁集团有限责任公司");
+                mesMap.put("consigneeCompanyName","四川省达州钢铁集团有限责任公司");
+                break;
+            case 21:
+                mesMap = omstruckOrderMapper.getInwardOrderMessageToApp(map);
+                inwardType += "计时";
+                mesMap.put("inwardType", inwardType);
+                mesMap.put("shipperName","四川省达州钢铁集团有限责任公司");
+                mesMap.put("consigneeCompanyName","四川省达州钢铁集团有限责任公司");
+                break;
+            case 22:
+                mesMap = omstruckOrderMapper.getInwardOrderMessageToApp(map);
+                inwardType += "计次";
+                mesMap.put("inwardType", inwardType);
+                mesMap.put("shipperName","四川省达州钢铁集团有限责任公司");
+                mesMap.put("consigneeCompanyName","四川省达州钢铁集团有限责任公司");
                 break;
             case 12:
             case 13:
-            case 15:
-            case 16:
+            case 14:
                 mesMap = omstruckOrderMapper.getSporadicOrder(map);
                 break;
             case 19:

+ 1 - 1
src/main/resources/bootstrap.yml

@@ -1,7 +1,7 @@
 api.version: api/v1/oms
 spring:
   profiles:
-    include: ${SPRING_PROFILES:prod}
+    include: ${SPRING_PROFILES:dev}
   jackson:
     date-format: yyyy-MM-dd HH:mm:ss
     time-zone: GMT+8

+ 22 - 1
src/main/resources/com/steerinfo/dil/mapper/AmstruckInwardPlanMapper.xml

@@ -336,6 +336,7 @@
         <include refid="select"/>
         <include refid="whereLike"/>
     </select>
+
     <insert id="batchInsert" parameterType="java.util.List">
         insert into AMSTRUCK_INWARD_PLAN
         (PLAN_ID,
@@ -426,5 +427,25 @@
     </delete>
     <!-- 友情提示!!!-->
     <!-- 请将自己写的代码放在此标签之下,方便以后粘贴复制。-->
-
+    <select id="getTypeByOrderId" resultType="java.util.Map" parameterType="java.math.BigDecimal">
+        select AIR.REQUIREMENT_TYPE "requirementType"
+        from OMSTRUCK_ORDER oo
+        left join AMSTRUCK_INWARD_PLAN AIP
+        ON oo.ORDER_PLAN_ID=AIP.PLAN_ID
+        LEFT JOIN AMSTRUCK_REQUIREMENT_PLAN ARP
+        ON AIP.PLAN_ID=ARP.PLAN_ID
+        LEFT JOIN AMSTRUCK_INWARD_REQUIREMENT AIR
+        ON AIR.REQUIREMENT_ID=ARP.REQUIREMENT_ID
+        WHERE  OO.ORDER_ID=#{orderId}
+    </select>
+<!-- 根据计划id查找需求为计时-->
+    <select id="getInwardByPlanId" resultType="java.lang.String" parameterType="java.math.BigDecimal">
+        select AIR.REQUIREMENT_TYPE "requirementType"
+         from AMSTRUCK_INWARD_PLAN AIP
+         LEFT JOIN AMSTRUCK_REQUIREMENT_PLAN ARP
+         ON AIP.PLAN_ID=ARP.PLAN_ID
+         LEFT JOIN AMSTRUCK_INWARD_REQUIREMENT AIR
+         ON ARP.REQUIREMENT_ID=AIR.REQUIREMENT_ID
+         WHERE AIP.PLAN_ID=#{planId}
+    </select>
 </mapper>

+ 6 - 2
src/main/resources/com/steerinfo/dil/mapper/OmstruckOrderMapper.xml

@@ -2572,8 +2572,8 @@
     </select>
 
     <!-- 物资信息 -->
-    <select id="getMaterialMes" parameterType="DECIMAL" resultType="java.util.Map">
-        SELECT RM.MATERIAL_NAME  "materialName",
+    <select id="getMaterialMes" parameterType="DECIMAL" resultType="java.util.LinkedHashMap">
+        SELECT RM.MATERIAL_NAME  "materialName",OOM.MATERIAL_PRIORITY "materialPriority",
                CONCAT(CONCAT(RM.MATERIAL_MODEL, '('), CONCAT(MATERIAL_SPECIFICATION, ')')) "materialMC",
                (case
                     when OOM.ORDER_MATERIAL_WEIGHT is not null
@@ -2594,6 +2594,7 @@
                  LEFT JOIN RMS_MATERIAL RM
                            ON RM.MATERIAL_ID = OOM.MATERIAL_ID
         WHERE ORDER_ID = #{orderId}
+        ORDER BY OOM.MATERIAL_PRIORITY
     </select>
 
     <!-- 内转原料司机接单 -->
@@ -3269,4 +3270,7 @@
    on AIR.REQUIREMENT_ID=ARP.REQUIREMENT_ID
    where OO.ORDER_ID=#{orderId}
  </select>
+    <select id="getTimeTaskEndDetail" resultType="java.util.Map" parameterType="java.util.Map">
+
+    </select>
 </mapper>

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

@@ -185,7 +185,7 @@
         left join RMS_TRUCK_CALCULATE RTC
             on RTC.TRUCK_CALCULATE_ID = TWR.RESULT_GROSS_PLACE_ID
         left join RMS_MATERIAL RM
-                  on TWR.MATERIAL_ID = RM.MATERIAL_ID
+            on TWR.MATERIAL_ID = RM.MATERIAL_ID
         where TWR.RESULT_TOTAL_ID = #{resultTotalId} and TWR.GROSS_SEGMENT_SQE = #{segmentSqe}
     </select>
 
@@ -400,12 +400,12 @@
         select OO.ORDER_ID         "orderId",
         TTR.RESULT_TOTAL_ID        "resultTotalId",
         ASO.SPORADIC_ORDER_NO      "sporadicOrderNo",
+        ASO.SPORADIC_ORDER_ID       "sporadicOrderId",
         OO.ORDER_NUMBER            "orderNumber",
         RS.SUPPLIER_NAME           "sendCompany",
         RC2.CONSIGNEE_COMPANY_NAME "receiveCompany",
         ASO.INSERT_TIME            "insertTime",
         RC.CAPACITY_NUMBER         "capacityNumber",
-        RM.MATERIAL_NAME           "materialName",
         rce.carrier_name           "carrierName"
         from OMSTRUCK_ORDER OO
         left join TMSTRUCK_TOTAL_RESULT TTR
@@ -418,28 +418,15 @@
         on RS.SUPPLIER_ID = ASO.SEND_UNIT_ID
         left join RMS_CONSIGNEE RC2
         on RC2.CONSIGNEE_ID = ASO.RECEIVE_UNIT_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_carrier rce
         on rce.carrier_id = aso.carrier_id
         <where>
             <if test="status != null">
              and  OO.ORDER_STATUS = #{status}
            </if>
-
             <if test="type == 1">
-                and OO.ORDER_TYPE in (12, 13 , 20)
-            </if>
-            <if test="type == 2">
-                and OO.ORDER_TYPE = 14
-            </if>
-            <if test="type == 3">
-                and OO.ORDER_TYPE in (15,16)
-            </if>
-            <if test="type1!=null">
-                 and OO.ORDER_STATUS IN (2,5)
+                and OO.ORDER_TYPE in (12, 13 ,14)
+                and OO.CAPACITY_ID IS NOT NULL
             </if>
             <if test="carrierId != null">
                 and ASO.CARRIER_ID = (select rc.carrier_id from rms_carrier rc
@@ -764,6 +751,19 @@
             </if>
         </where>
     </select>
+    <select id="getTimeTaskEndOrder" resultType="java.util.Map" parameterType="java.util.Map">
+        select OO.ORDER_NUMBER "orderNumber",
+               RC.CAPACITY_NUMBER "capacityNumber",
+               OO.ORDER_ID "orderId"
+        from OMSTRUCK_ORDER OO
+        LEFT JOIN TMSTRUCK_TOTAL_RESULT TTR
+        ON TTR.ORDER_ID=OO.ORDER_ID
+        left join RMS_CAPACITY RC
+        ON RC.CAPACITY_ID=OO.CAPACITY_ID
+        LEFT JOIN TMSTRUCK_TIME_TASK_RESULT TTTR
+        ON TTTR.RESULT_TOTAL_ID=TTR.RESULT_TOTAL_ID
+        WHERE OO.INSERT_USERNAME=#{orgCode}
+    </select>
 
     <select id="getInward" resultType="java.lang.Integer">
         select count(*) from  OMSTRUCK_ORDER OO