소스 검색

提交代码

zengyf 2 년 전
부모
커밋
c981c330c6

+ 106 - 0
src/main/java/com/steerinfo/dil/controller/OmstruckOrderSeparateController.java

@@ -1,6 +1,7 @@
 package com.steerinfo.dil.controller;
 
 import com.steerinfo.dil.feign.TmsTruckFeign;
+import com.steerinfo.dil.mapper.OmstruckOrderMapper;
 import com.steerinfo.dil.mapper.OmstruckOrderSeparateMapper;
 import com.steerinfo.dil.model.OmstruckOrder;
 import com.steerinfo.dil.service.impl.OmstruckOrderSeparateServiceImpl;
@@ -35,6 +36,9 @@ public class OmstruckOrderSeparateController extends BaseRESTfulController {
     @Autowired
     OmstruckOrderSeparateMapper omstruckOrderSeparateMapper;
 
+    @Autowired
+    private OmstruckOrderMapper omstruckOrderMapper;
+
     @Autowired
     OmstruckOrderSeparateServiceImpl omstruckOrderSeparateService;
 
@@ -251,6 +255,108 @@ public class OmstruckOrderSeparateController extends BaseRESTfulController {
         return success(capacityAllOrderList);
     }
 
+    @ApiOperation(value = "该车牌号下的该月账期的物资数量")
+    @PostMapping("/getMatrialWeight")
+    public RESTfulResult getMatrialWeight(String capacityNumber,String date){
+        Map<String, Object> map = new HashMap<>();
+        date += "-01 00:00:00";
+        map.put("capacityNumber",capacityNumber);
+        DateTimeFormatter sdf = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
+        LocalDateTime ldt = LocalDateTime.parse(date,sdf);
+        try {
+            if(date != null){
+                int month = ldt.getMonth().getValue();
+                int year = ldt.getYear();
+                // 判断是否是一月,一月则减一年,月份回到12
+                if (month == 1) {
+                    map.put("startDate", (year - 1) + "-" + 12 + "-" + 26);
+                }
+                // 非一月只需减少一个月份
+                if (month != 1){
+                    if (month > 10) {
+                        map.put("startDate", year + "-" + (month - 1) + "-" + 26);
+                    }
+                    else {
+                        map.put("startDate", year + "-0" + (month - 1) + "-" + 26);
+                    }
+                }
+                if (month >= 10) {
+                    // 结束时间为当月25号
+                    map.put("endDate", year + "-" + month + "-" + 25);
+                }
+                if (month < 10) {
+                    // 结束时间为当月25号
+                    map.put("endDate", year + "-0" + month + "-" + 25);
+                }
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        List<Map<String, Object>> capacityAllOrderList = omstruckOrderSeparateService.getCapacityAllOrder(map);
+        List<Map<String,Object>> matrialList=new LinkedList<>();
+        //把物资的值都给求出来并放到数据中去(先只测销售钢材的)
+        for (Map<String, Object> stringObjectMap : capacityAllOrderList) {
+            BigDecimal orderId = DataChange.dataToBigDecimal(stringObjectMap.get("orderId"));
+            Integer orderType = omstruckOrderMapper.getOrderTypeByOrderNumber(orderId);
+            String steelJudge = "steel";
+//        if (orderType==1){
+                List<Map<String, Object>> materialMes = omstruckOrderMapper.getMaterialMesForGrossWeight(orderId,steelJudge);
+                for (Map<String, Object> materialMe : materialMes) {
+                    String materialName = (String) materialMe.get("materialName");
+                    BigDecimal netWeight = DataChange.dataToBigDecimal(materialMe.get("netWeight"));
+                    if (contains(matrialList,materialName)){
+                        //把值给存入进去
+                        addSomeThing(matrialList,materialName,netWeight);
+                    }else {
+                        if (netWeight.compareTo(BigDecimal.ZERO)==0){
+                            continue;
+                        }
+                        Map<String,Object> map1=new HashMap<>();
+                        map1.put("materialName",materialName);
+                        map1.put("netWeight",netWeight);
+                        matrialList.add(map1);
+                    }
+                    }
+//        }
+        }
+        return success(addChinese(matrialList));
+    }
+
+    //给每个值的后面加个吨字
+    private List<Map<String,Object>> addChinese(List<Map<String, Object>> matrialList) {
+        for (Map<String, Object> map : matrialList) {
+            map.put("netWeight",map.get("netWeight")+"吨");
+        }
+        return matrialList;
+    }
+
+    private boolean contains(List<Map<String,Object>> matrialList,String materialName){
+        if (matrialList.isEmpty()){
+            return false;
+        }
+        for (Map<String, Object> map : matrialList) {
+            if (map.get("materialName").equals(materialName)){
+                return true;
+            }
+        }
+        return false;
+    }
+
+    private void addSomeThing(List<Map<String,Object>> matrialList,String materialName,BigDecimal netWeight){
+        if (netWeight.compareTo(BigDecimal.ZERO)==0){
+            return;
+        }
+        for (Map<String, Object> map : matrialList) {
+            if (map.get("materialName").equals(materialName)){
+                BigDecimal weight= DataChange.dataToBigDecimal(map.get("netWeight"));
+                map.put("materialName",materialName);
+                map.put("netWeight",weight.add(netWeight));
+                return;
+            }
+        }
+        return;
+    }
+
     @ApiOperation(value = "根据运单id关闭运输订单")
     @PostMapping("/closeOrder")
     public RESTfulResult closeOrder(@RequestParam Integer orderId){

+ 9 - 0
src/main/java/com/steerinfo/dil/mapper/OmstruckOrderMapper.java

@@ -202,6 +202,9 @@ public interface OmstruckOrderMapper extends IBaseMapper<OmstruckOrder, BigDecim
     //通过订单Id查询该订单下所有的物资
     List<Map<String,Object>> getMaterialMes(@Param("orderId") BigDecimal orderId, @Param("steelJudge") String steelJudge);
 
+    //通过订单Id查询该订单下所有的物资
+    List<Map<String,Object>> getMaterialMesForGrossWeight(BigDecimal orderId, String steelJudge);
+
     //通过订单Id查询该订单下所有的物资
     List<Map<String,Object>> getMaterialMesNew(@Param("orderId") BigDecimal orderId, @Param("steelJudge") String steelJudge);
 
@@ -281,6 +284,12 @@ public interface OmstruckOrderMapper extends IBaseMapper<OmstruckOrder, BigDecim
     //查看当前订单最大路段顺序号 与当前订单路段顺序号
     Map<String, Object> getMaxLineSeqByOrderId(BigDecimal orderId);
 
+    //查看配置表的相关信息
+    String getDilVersion();
+
+    //查询运输订单的送货单打印信息
+    BigDecimal getPrintNumber(BigDecimal orderId);
+
     //通过订单id查询零星订单id,运力id
     Map<String, Object> getSporadicOrdermapAddOrder(BigDecimal orderId);
 

+ 45 - 0
src/main/resources/com/steerinfo/dil/mapper/OmstruckOrderMapper.xml

@@ -2932,6 +2932,7 @@
         "materialName",
         RM.MATERIAL_ID   "materialId",
         OOM.MATERIAL_PRIORITY "materialPriority",
+        OOM.ORDER_MATERIAL_NUMBER "materialNumber",
         CONCAT(CONCAT(RM.MATERIAL_MODEL, '('), CONCAT(MATERIAL_SPECIFICATION, ')')) "materialMC",
         (case
         when OOM.ORDER_MATERIAL_NUMBER is not null
@@ -2962,6 +2963,50 @@
         ORDER BY RM.MATERIAL_NAME
     </select>
 
+
+    <!-- 物资信息(特供给已完成物资总数)-->
+    <select id="getMaterialMesForGrossWeight"  resultType="java.util.LinkedHashMap">
+        SELECT
+        RM.MATERIAL_NAME || (
+        case
+        when OOM.MATERIAL_LUNO is not null
+        then '-' || oom.MATERIAL_LUNO
+        end
+        )
+        "materialName",
+        RM.MATERIAL_ID   "materialId",
+        OOM.MATERIAL_PRIORITY "materialPriority",
+        OOM.ORDER_MATERIAL_NUMBER "materialNumber",
+        CONCAT(CONCAT(RM.MATERIAL_MODEL, '('), CONCAT(MATERIAL_SPECIFICATION, ')')) "materialMC",
+        (case
+        when OOM.ORDER_MATERIAL_NUMBER is not null
+        then OOM.ORDER_MATERIAL_NUMBER || '件/支'
+        end
+        ) || (
+        case
+        when OOM.ORDER_MATERIAL_WEIGHT is not null
+        then '-'||OOM.ORDER_MATERIAL_WEIGHT  || '吨'
+        end
+        )
+        AS                                                                   "weightNum",
+        (   SELECT
+        LISTAGG ( TWR.RESULT_NET_WEIGHT, '、' ) within GROUP ( ORDER BY TWR.GROSS_SEGMENT_SQE )
+        FROM TMSTRUCK_WEIGHT_RESULT TWR
+        JOIN TMSTRUCK_TOTAL_RESULT TTR
+        ON TTR.RESULT_TOTAL_ID = TWR.RESULT_TOTAL_ID
+        WHERE TTR.ORDER_ID = #{orderId} and TWR.MATERIAL_ID = OOM.MATERIAL_ID
+        )                                                                    "netWeight"
+        FROM OMSTRUCK_ORDER_MATERIAL OOM
+        LEFT JOIN RMS_MATERIAL RM
+        ON RM.MATERIAL_ID = OOM.MATERIAL_ID
+        <if test="steelJudge != null">
+            LEFT JOIN RMS_WAREHOUSE RW
+            ON OOM.MATERIAL_PRIORITY = RW.WAREHOUSE_ID
+        </if>
+        WHERE ORDER_ID = #{orderId}
+        ORDER BY RM.MATERIAL_NAME
+    </select>
+
     <!-- 物资信息(NEW) -->
     <select id="getMaterialMesNew" parameterType="DECIMAL" resultType="java.util.LinkedHashMap">
         SELECT