zengyf 2 éve
szülő
commit
bc4984d9a1

+ 44 - 6
src/main/java/com/steerinfo/dil/controller/OmstruckOrderSeparateController.java

@@ -292,14 +292,54 @@ public class OmstruckOrderSeparateController extends BaseRESTfulController {
         } catch (Exception e) {
             e.printStackTrace();
         }
-        List<Map<String, Object>> capacityAllOrderList = omstruckOrderSeparateService.getCapacityAllOrder(map);
+        List<Map<String, Object>> capacityAllOrderList = omstruckOrderSeparateService.getCapacityAllOrderTwo(map);
         List<Map<String,Object>> matrialList=new LinkedList<>();
-        //把物资的值都给求出来并放到数据中去(先只测销售钢材的)
+        //第二种解决思路
         for (Map<String, Object> stringObjectMap : capacityAllOrderList) {
+            String materialName = (String) stringObjectMap.get("materialName");
+            //因为netWeight有String类型的
+            if (stringObjectMap.get("netWeight")==null){
+                continue;
+            }
+            String netWeight1 = (String) stringObjectMap.get("netWeight");
+            String[] split = netWeight1.split("、");
+            if (split.length<=1){
+                if (contains(matrialList,materialName)){
+                    //把值给存入进去
+                    addSomeThing(matrialList,materialName,DataChange.dataToBigDecimal(split[0]));
+                }else {
+                    if (split==null){
+                        continue;
+                    }
+                    Map<String,Object> map1=new HashMap<>();
+                    map1.put("materialName",materialName);
+                    map1.put("netWeight",DataChange.dataToBigDecimal(split[0]));
+                    matrialList.add(map1);
+                }
+            }else{
+                for (String s : split) {
+                    if (contains(matrialList,materialName)){
+                        //把值给存入进去
+                        addSomeThing(matrialList,materialName,DataChange.dataToBigDecimal(s));
+                    }else {
+                        if (s==null){
+                            continue;
+                        }
+                        Map<String,Object> map1=new HashMap<>();
+                        map1.put("materialName",materialName);
+                        map1.put("netWeight",DataChange.dataToBigDecimal(s));
+                        matrialList.add(map1);
+                    }
+                }
+            }
+
+        }
+        //把物资的值都给求出来并放到数据中去
+        //第一种想法
+        /*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");
@@ -316,9 +356,7 @@ public class OmstruckOrderSeparateController extends BaseRESTfulController {
                         map1.put("netWeight",netWeight);
                         matrialList.add(map1);
                     }
-                    }
-//        }
-        }
+                    }*/
         return success(addChinese(matrialList));
     }
 

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

@@ -77,6 +77,9 @@ public interface OmstruckOrderSeparateMapper {
     //查询当前车辆之前所有已完成的订单
     List<Map<String, Object>> getCapacityAllOrder(Map<String,Object> map);
 
+    //查询当前车辆之前所有已完成的订单
+    List<Map<String, Object>> getCapacityAllOrderTwo(Map<String,Object> map);
+
     //查询订单发货日期(订单类型为2)
     Integer getDeliveryDate(Object orderId);
 

+ 12 - 0
src/main/java/com/steerinfo/dil/service/impl/OmstruckOrderSeparateServiceImpl.java

@@ -526,6 +526,18 @@ public class OmstruckOrderSeparateServiceImpl implements IOmstruckOrderSeparateS
         return omstruckOrderSeparateMapper.getCapacityAllOrder(map);
     }
 
+    /**
+     *@Date:2023/1/10
+     *@DETAILEDTIME:15:37
+     *@Author:zyf
+     *@description:隶属于第二种思想(一条sql直接查出来)
+     *@version:1.0
+     *@return:
+     */
+    public List<Map<String, Object>> getCapacityAllOrderTwo(Map<String,Object>map){
+        return omstruckOrderSeparateMapper.getCapacityAllOrderTwo(map);
+    }
+
 
 //    @Override
 //    public int updateTimes(BigDecimal orderPlanId, int times) {

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

@@ -466,6 +466,54 @@
         </if>
     </select>
 
+
+    <select id="getCapacityAllOrderTwo" parameterType="java.util.Map" resultType="java.util.Map">
+        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 = OO.ORDER_ID and TWR.MATERIAL_ID = OOM.MATERIAL_ID
+        )                                                                    "netWeight"
+        FROM OMSTRUCK_ORDER OO
+        left join RMS_CAPACITY RC
+        on RC.CAPACITY_ID = OO.CAPACITY_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_WAREHOUSE RW
+        ON OOM.MATERIAL_PRIORITY = RW.WAREHOUSE_ID
+        WHERE CAPACITY_NUMBER = #{capacityNumber}
+        AND OO.ORDER_STATUS = 2
+        and to_char(OO.ORDER_RECEIVE_REFUSE_TIME,'YYYY-MM-DD') &gt;= #{startDate}
+        AND to_char(OO.ORDER_RECEIVE_REFUSE_TIME,'YYYY-MM-DD') &lt;= #{endDate}
+        ORDER BY RM.MATERIAL_NAME
+    </select>
+
 <!--  查询订单发货日期 (订单类型为2) -->
     <select id="getDeliveryDate" parameterType="object" resultType="int">
         select OO.ORDER_ID