yangk 3 роки тому
батько
коміт
77d9206d4d

+ 23 - 0
src/main/java/com/steerinfo/dil/controller/TmstruckTotalResultController.java

@@ -70,4 +70,27 @@ public class TmstruckTotalResultController extends BaseRESTfulController {
         PageListAdd pageList = columnDataUtil.tableColumnData(apiId, allUnloadResult,unloadResult);
         return success(pageList);
     }
+    @ApiOperation(value="查询所有的包月作业实绩")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "mapValue", value = "表头和参数", required = false, dataType = "map"),
+            @ApiImplicitParam(name = "apiId(111)", value = "动态表头", required = false, dataType = "Integer"),
+            @ApiImplicitParam(name = "pageNum", value = "页码", required = false, dataType = "Integer"),
+            @ApiImplicitParam(name = "pageSize", value = "页", required = false, dataType = "Integer"),
+            @ApiImplicitParam(name = "status", value = "状态码", required = false, dataType = "Integer"),
+    })
+    @PostMapping("/getTmstruckMonthResult")
+    public RESTfulResult getTmstruckMonthResult(@RequestBody(required=false) Map<String,Object> mapValue,
+                                                Integer apiId,
+                                                Integer pageNum,
+                                                Integer pageSize
+    ){
+        //不分页筛选数据
+        List<Map<String, Object>> allQualityResult = tmstruckTotalResultService.getTmstruckMonthResult(mapValue);
+        PageHelper.startPage(pageNum,pageSize);
+        //分页数据
+        List<Map<String, Object>> qualityResult = tmstruckTotalResultService.getTmstruckMonthResult(mapValue);
+        DataChange.dataTo2Number(qualityResult, "resultDeduction");
+        PageListAdd pageList = columnDataUtil.tableColumnData(apiId, allQualityResult,qualityResult);
+        return success(pageList);
+    }
 }

+ 10 - 0
src/main/java/com/steerinfo/dil/controller/TmstruckWeightResultController.java

@@ -13,6 +13,7 @@ import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
+import java.math.BigDecimal;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -130,6 +131,15 @@ public class TmstruckWeightResultController extends BaseRESTfulController {
         int i = tmstruckWeightResultService.addJiPiResult(mapValue);
         return success(i);
     }
+
+    /**
+     *通过运输订单判断下一步是否需要计量,更新汽车衡到计量实绩中
+     */
+    @PostMapping("/updateTruckCalculate/{orderId}")
+    public RESTfulResult updateTruckCalculate(@PathVariable("orderId") Integer orderId){
+        int i=tmstruckWeightResultService.isNextNeedJl(new BigDecimal(orderId));
+        return  success(i);
+    }
 }
 
   

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

@@ -17,4 +17,6 @@ public interface TmstruckTotalResultMapper extends IBaseMapper<TmstruckTotalResu
 
     //查询计数作业
     List<Map<String,Object>> selectCountList(Map<String,Object> map);
+    //查询包月作业
+    List<Map<String, Object>> getTmstruckMonthResult(Map<String, Object> mapValue);
 }

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

@@ -33,5 +33,12 @@ public interface TmstruckWeightResultMapper extends IBaseMapper<TmstruckWeightRe
 
     //通过物资ID查询应该在哪个汽车衡计量
     List<Integer> getCalculateIdByMaterial(BigDecimal material);
-
+    //通过运输订单id获取路段顺序号、物资类型、计量实绩主键、line_id
+    Map<BigDecimal, String> selectByOrderId(BigDecimal orderId);
+    /**
+     * 通过物料、性质判断所去的汽车衡
+     */
+    BigDecimal getTruckCalculateNumber(BigDecimal materialTypeId, BigDecimal bigDecimal);
+
+    List<BigDecimal> getNextStep(BigDecimal lineId, int orderLineSequence);
 }

+ 2 - 0
src/main/java/com/steerinfo/dil/service/ITmstruckTotalResultService.java

@@ -14,4 +14,6 @@ public interface ITmstruckTotalResultService {
     public int addTotalResult(BigDecimal orderId);
     //查询计数作业
     List<Map<String,Object>> selectCountList(Map<String,Object> map);
+    //查询包月作业
+    List<Map<String, Object>> getTmstruckMonthResult(Map<String, Object> mapValue);
 }

+ 4 - 0
src/main/java/com/steerinfo/dil/service/ITmstruckWeightResultService.java

@@ -35,4 +35,8 @@ public interface ITmstruckWeightResultService{
 
     //通过物资ID查询应该在哪个汽车衡计量
     int getCalculateIdByMaterial(BigDecimal materialId);
+    /**
+     *通过运输订单判断下一步是否需要计量,更新汽车衡到计量实绩中
+     */
+    int isNextNeedJl(BigDecimal bigDecimal);
 }

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

@@ -45,5 +45,12 @@ public class TmstruckTotalResultServiceImpl implements ITmstruckTotalResultServi
     public List<Map<String, Object>> selectCountList(Map<String, Object> map) {
         return tmstruckTotalResultMapper.selectCountList(map);
     }
-
+    /**
+     * 展示包月实绩列表
+     * @param map
+     * @return
+     */
+    public List<Map<String, Object>> getTmstruckMonthResult(Map<String, Object> mapValue) {
+        return tmstruckTotalResultMapper.getTmstruckMonthResult(mapValue);
+    }
 }

+ 107 - 0
src/main/java/com/steerinfo/dil/service/impl/TmstruckWeightResultServiceImpl.java

@@ -295,4 +295,111 @@ public class TmstruckWeightResultServiceImpl implements ITmstruckWeightResultSer
         tmstruckWeightResult.setUpdateTime(new Date());
         tmstruckWeightResult.setUpdateUsername("admin");
     }
+    /**
+     *通过运输订单判断下一步是否需要计量,更新汽车衡到计量实绩中
+     */
+    @Override
+    public int isNextNeedJl(BigDecimal orderId) {
+        //通过运输订单id获取路段顺序号、物资类型、计量实绩主键、line_id
+        Map<BigDecimal,String> map=tmstruckWeightResultMapper.selectByOrderId(orderId);
+        //通过运输订单id获取物资的类型
+        BigDecimal materialTypeId=new BigDecimal(map.get("materialTypeId").toString());
+        //获取路段顺序号
+        BigDecimal orderLineSequence=new BigDecimal(map.get("orderLineSequence").toString());
+        //计量实绩主键
+        BigDecimal weightTaskResultId=new BigDecimal(map.get("weightTaskResultId").toString());
+        //line_id
+        BigDecimal lineId=new BigDecimal(map.get("lineId").toString());
+        //通过运输线路判断下一步是否为计量,当前是啥,下下一步是啥
+        //如果下一步为计量,且当前步为进厂,则选择进厂称,如果下下步为出厂则选择出厂称,其他则选择中转称
+        List<BigDecimal> list=getNextStep(lineId,orderLineSequence.intValue());
+        if(list.size()==3){
+            //0:进厂;1:计毛;2:计皮;3:卸货;4:装货;5:出厂
+            if(list.get(1).intValue()==1 || list.get(1).intValue()==2){
+                //如果当前为进厂
+                if(list.get(0).intValue()==0){
+                    //获取到汽车衡id
+                    BigDecimal truckCalculateId =tmstruckWeightResultMapper.getTruckCalculateNumber(materialTypeId,new BigDecimal(1));
+                    //将获取到的汽车衡id更新到计量实绩表中
+                    //如果下一步为计毛作业
+                    if(list.get(1).intValue()==1){
+                        //通过订单号获取计量实绩主键,并更新
+                        TmstruckWeightResult tmstruckWeightResult=new TmstruckWeightResult();
+                        tmstruckWeightResult.setWeightTaskResultId(weightTaskResultId);
+                        tmstruckWeightResult.setResultGrossPlaceId(truckCalculateId);
+                        tmstruckWeightResult.setUpdateTime(new Date());
+                        tmstruckWeightResult.setUpdateUsername("admin");
+                        tmstruckWeightResultMapper.updateByPrimaryKeySelective(tmstruckWeightResult);
+                    }
+                    //如果下一步为计皮作业
+                    if(list.get(1).intValue()==2){
+                        //通过订单号获取计量实绩主键,并更新
+                        TmstruckWeightResult tmstruckWeightResult=new TmstruckWeightResult();
+                        tmstruckWeightResult.setWeightTaskResultId(weightTaskResultId);
+                        tmstruckWeightResult.setResultTarePlaceId(truckCalculateId);
+                        tmstruckWeightResult.setUpdateTime(new Date());
+                        tmstruckWeightResult.setUpdateUsername("admin");
+                        tmstruckWeightResultMapper.updateByPrimaryKeySelective(tmstruckWeightResult);
+                    }
+                }
+                //如果计量后一步为出厂
+                else if(list.get(2).intValue()==5){
+                    //获取到汽车衡id
+                    BigDecimal truckCalculateId =tmstruckWeightResultMapper.getTruckCalculateNumber(materialTypeId,new BigDecimal(2));
+                    //将获取到的汽车衡id更新到计量实绩表中
+                    //如果下一步为计毛作业
+                    if(list.get(1).intValue()==1){
+                        //通过订单号获取计量实绩主键,并更新
+                        TmstruckWeightResult tmstruckWeightResult=new TmstruckWeightResult();
+                        tmstruckWeightResult.setWeightTaskResultId(weightTaskResultId);
+                        tmstruckWeightResult.setResultGrossPlaceId(truckCalculateId);
+                        tmstruckWeightResult.setUpdateTime(new Date());
+                        tmstruckWeightResult.setUpdateUsername("admin");
+                        tmstruckWeightResultMapper.updateByPrimaryKeySelective(tmstruckWeightResult);
+                    }
+                    //如果下一步为计皮作业
+                    if(list.get(1).intValue()==2){
+                        //通过订单号获取计量实绩主键,并更新
+                        TmstruckWeightResult tmstruckWeightResult=new TmstruckWeightResult();
+                        tmstruckWeightResult.setWeightTaskResultId(weightTaskResultId);
+                        tmstruckWeightResult.setResultTarePlaceId(truckCalculateId);
+                        tmstruckWeightResult.setUpdateTime(new Date());
+                        tmstruckWeightResult.setUpdateUsername("admin");
+                        tmstruckWeightResultMapper.updateByPrimaryKeySelective(tmstruckWeightResult);
+                    }
+                }else{
+                    //获取到汽车衡id
+                    BigDecimal truckCalculateId =tmstruckWeightResultMapper.getTruckCalculateNumber(materialTypeId,new BigDecimal(3));
+                    //将获取到的汽车衡id更新到计量实绩表中
+                    //如果下一步为计毛作业
+                    if(list.get(1).intValue()==1){
+                        //通过订单号获取计量实绩主键,并更新
+                        TmstruckWeightResult tmstruckWeightResult=new TmstruckWeightResult();
+                        tmstruckWeightResult.setWeightTaskResultId(weightTaskResultId);
+                        tmstruckWeightResult.setResultGrossPlaceId(truckCalculateId);
+                        tmstruckWeightResult.setUpdateTime(new Date());
+                        tmstruckWeightResult.setUpdateUsername("admin");
+                        tmstruckWeightResultMapper.updateByPrimaryKeySelective(tmstruckWeightResult);
+                    }
+                    //如果下一步为计皮作业
+                    if(list.get(1).intValue()==2){
+                        //通过订单号获取计量实绩主键,并更新
+                        TmstruckWeightResult tmstruckWeightResult=new TmstruckWeightResult();
+                        tmstruckWeightResult.setWeightTaskResultId(weightTaskResultId);
+                        tmstruckWeightResult.setResultTarePlaceId(truckCalculateId);
+                        tmstruckWeightResult.setUpdateTime(new Date());
+                        tmstruckWeightResult.setUpdateUsername("admin");
+                        tmstruckWeightResultMapper.updateByPrimaryKeySelective(tmstruckWeightResult);
+                    }
+                }
+            }
+        }else {
+            return 0;
+        }
+        return 0;
+    }
+
+    public List<BigDecimal> getNextStep(BigDecimal lineId, int orderLineSequence) {
+        return tmstruckWeightResultMapper.getNextStep(lineId,orderLineSequence);
+    }
 }

+ 9 - 0
src/main/resources/com/steerinfo/dil/mapper/TmstruckTotalResultMapper.xml

@@ -383,4 +383,13 @@
     WHERE AIR.REQUIREMENT_TYPE=2 AND RW.WAREHOUSE_TYPE_ID=3
       AND  OO.ORDER_STATUS=4
   </select>
+  <!-- 查询所有的包月作业实绩 -->
+  <select id="getTmstruckMonthResult" parameterType="java.util.Map" resultType="java.util.Map">
+    select * from tmstruck_total_result  ttr
+                    left join omstruck_order oo on ttr.order_id=oo.order_id
+                    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 arp.requirement_plan_id=air.requirement_id
+    where oo.order_type=4 and air.requirement_type=3
+  </select>
 </mapper>

+ 40 - 0
src/main/resources/com/steerinfo/dil/mapper/TmstruckWeightResultMapper.xml

@@ -795,4 +795,44 @@
       on RTC.TRUCK_CALCULATE_ID = RTCM.TRUCK_CALCULATE_ID and RTC.TRUCK_CALCULATE_STATUS = 0
       where RM.MATERIAL_ID = #{materialId}
     </select>
+<!--  //通过运输订单id获取路段顺序号、物资类型、计量实绩主键、line_id
+    Map<BigDecimal, String> selectByOrderId(BigDecimal orderId);-->
+    <select id="selectByOrderId" parameterType="java.math.BigDecimal" resultType="java.util.Map">
+      select oo.ORDER_LINE_SEQUENCE as "orderLineSequence",
+             oo.LINE_ID as "lineId",
+             rm.material_type_id as "materialTypeId",
+             twr.weight_task_result_id as "weightTaskResultId"
+        from omstruck_order oo
+             join omstruck_order_material oom on oom.order_id=oo.order_id
+             left join rms_material rm on oom.material_id=rm.material_id
+             left join tmstruck_total_result ttr on oo.order_id=ttr.order_id
+             left join tmstruck_weight_result twr on ttr.result_total_id=twr.result_total_id
+      where oo.order_id=#{orderId} and rownum=1 order by twr.weight_task_result_id desc
+    </select>
+
+<!--  * 通过物料、性质判断所去的汽车衡-->
+  <select id="getTruckCalculateNumber" parameterType="java.util.Map" resultType="java.math.BigDecimal">
+    select rtc.truck_calculate_id from rms_truck_calculate_material rtcm
+                                         left join rms_truck_calculate rtc on rtcm.truck_calculate_id=rtc.truck_calculate_id
+    where rtcm.material_type_id=#{materialTypeId} and rtc.nature=#{nature} and rownum=1 order by rtc.truck_calculate_priority
+  </select>
+
+  <!--    //返回下一步路段顺序号对应的终点type
+    BigDecimal getNextStep(BigDecimal lineId, int i);-->
+  <select id="getNextStep" parameterType="java.util.Map" resultType="java.math.BigDecimal">
+    select rls.segment_end_node_type
+    from rms_line_segemnt rls
+    where rls.line_id = #{lineId}
+      and rls.segment_sqe = #{orderLineSequence}
+    union
+    select rls.segment_end_node_type
+    from rms_line_segemnt rls
+    where rls.line_id = 1
+      and rls.segment_sqe = #{orderLineSequence}+1
+    union
+    select rls.segment_end_node_type
+    from rms_line_segemnt rls
+    where rls.line_id = 1
+      and rls.segment_sqe = #{orderLineSequence}+2
+  </select>
 </mapper>