hujg 2 年之前
父節點
當前提交
47a9771e1f

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

@@ -53,7 +53,7 @@ public interface OmstruckOrderMaterialMapper extends IBaseMapper<OmstruckOrderMa
     int updateOutBoundResult(OmstruckOrderMaterial omstruckOrderMaterial);
     int updateOutBoundResult(OmstruckOrderMaterial omstruckOrderMaterial);
 
 
     //修改出库实绩
     //修改出库实绩
-    Map<String, Object> getSaleOrderMaterialNum(@Param("orderId")BigDecimal orderId,@Param("materialId") BigDecimal materialId);
+    Map<String, Object> getSaleOrderMaterialNum(Map<String,Object> map);
 
 
 
 
     int updateSaleOrderMaterialMes(BigDecimal saleMaterialId, BigDecimal materialNum, BigDecimal newWeight);
     int updateSaleOrderMaterialMes(BigDecimal saleMaterialId, BigDecimal materialNum, BigDecimal newWeight);

+ 44 - 26
src/main/java/com/steerinfo/dil/service/impl/OmstruckOrderMaterialServiceImpl.java

@@ -289,36 +289,54 @@ public class OmstruckOrderMaterialServiceImpl implements IOmstruckOrderMaterialS
      * @return
      * @return
      */
      */
     @Transactional
     @Transactional
-    public int updateMaterialMes(Map<String, Object> map){
+    public int updateMaterialMes(Map<String, Object> map) {
         OmstruckOrderMaterial omstruckOrderMaterial = new OmstruckOrderMaterial();
         OmstruckOrderMaterial omstruckOrderMaterial = new OmstruckOrderMaterial();
         List<Map<String,Object>>mapList = (List<Map<String, Object>>) map.get("mapList");
         List<Map<String,Object>>mapList = (List<Map<String, Object>>) map.get("mapList");
+        Object orderIds = map.get("orderId");
+        Object saleOrderMaterialId = map.get("saleOrderMaterialId");
         for (Map<String, Object>map1 : mapList) {
         for (Map<String, Object>map1 : mapList) {
-            BigDecimal orderId = DataChange.dataToBigDecimal(map.get("orderId"));
-            BigDecimal materialId = DataChange.dataToBigDecimal(map1.get("materialId"));
-            BigDecimal materialNum = DataChange.dataToBigDecimal(map1.get("materialNum"));
-            //修改物资子表总理重 通过订单ID找到件数和总理重,算出单件理重
-            Map<String, Object> saleMaterialMes = omstruckOrderMaterialMapper.getSaleOrderMaterialNum(orderId, materialId);
-            BigDecimal saleMaterialId = DataChange.dataToBigDecimal(saleMaterialMes.get("saleMaterialId"));//销售订单存放物资子表id
-            BigDecimal materialWeight = DataChange.dataToBigDecimal(saleMaterialMes.get("materialWeight"));//旧总理重
-            BigDecimal newWeight = null;
-            if(materialWeight.intValue() != 0){ //如果总重量不为0,才进行重量更新
-                BigDecimal orderMaterialNumber = DataChange.dataToBigDecimal(saleMaterialMes.get("orderMaterialNumber"));//旧件数
-                BigDecimal theoreticalWeight = materialWeight.divide(orderMaterialNumber, 4);
-                newWeight = theoreticalWeight.multiply(theoreticalWeight); //得到现有理重
-
-                omstruckOrderMaterial.setOrderMaterialWeight(newWeight);
+            if (orderIds != null) {
+                BigDecimal orderId = DataChange.dataToBigDecimal(orderIds);
+                BigDecimal materialId = DataChange.dataToBigDecimal(map1.get("materialId"));
+                BigDecimal materialNum = DataChange.dataToBigDecimal(map1.get("materialNum"));
+                map1.put("orderId",orderId);
+                //修改物资子表总理重 通过订单ID找到件数和总理重,算出单件理重
+                Map<String, Object> saleMaterialMes = omstruckOrderMaterialMapper.getSaleOrderMaterialNum(map1);
+                BigDecimal saleMaterialId = DataChange.dataToBigDecimal(saleMaterialMes.get("saleMaterialId"));//销售订单存放物资子表id
+                BigDecimal materialWeight = DataChange.dataToBigDecimal(saleMaterialMes.get("materialWeight"));//旧总理重
+                BigDecimal newWeight = null;
+                if (materialWeight.intValue() != 0) { //如果总重量不为0,才进行重量更新
+                    BigDecimal orderMaterialNumber = DataChange.dataToBigDecimal(saleMaterialMes.get("orderMaterialNumber"));//旧件数
+                    BigDecimal theoreticalWeight = materialWeight.multiply(materialNum);
+                    newWeight =  theoreticalWeight.divide(orderMaterialNumber, 4);//得到现有理重
+                    omstruckOrderMaterial.setOrderMaterialWeight(newWeight);
+                }
+                //修改销售订单物资子表
+                omstruckOrderMaterialMapper.updateSaleOrderMaterialMes(saleMaterialId, materialNum, newWeight);
+                //修改订单物资子表 与出库实绩
+                omstruckOrderMaterial.setOrderId(orderId);
+                omstruckOrderMaterial.setMaterialId(materialId);
+                omstruckOrderMaterial.setOrderMaterialNumber(materialNum);
+                omstruckOrderMaterial.setUpdateTime(new Date());
+                omstruckOrderMaterialMapper.updateMaterialMes(omstruckOrderMaterial);
+                omstruckOrderMaterialMapper.updateOutBoundResult(omstruckOrderMaterial);
+            }
+            else {
+                BigDecimal materialNum = DataChange.dataToBigDecimal(map1.get("materialNum"));
+                map1.put("saleOrderMaterialId",saleOrderMaterialId);
+                //修改物资子表总理重 通过订单ID找到件数和总理重,算出单件理重
+                Map<String, Object> saleMaterialMes = omstruckOrderMaterialMapper.getSaleOrderMaterialNum(map1);
+                BigDecimal saleMaterialId = DataChange.dataToBigDecimal(saleMaterialMes.get("saleMaterialId"));//销售订单存放物资子表id
+                BigDecimal materialWeight = DataChange.dataToBigDecimal(saleMaterialMes.get("materialWeight"));//旧总理重
+                BigDecimal newWeight = null;
+                if (materialWeight.intValue() != 0) { //如果总重量不为0,才进行重量更新
+                    BigDecimal orderMaterialNumber = DataChange.dataToBigDecimal(saleMaterialMes.get("materialNumber"));//旧件数
+                    BigDecimal theoreticalWeight = materialWeight.multiply(materialNum);
+                    newWeight =  theoreticalWeight.divide(orderMaterialNumber, 4);//得到现有理重
+                }
+                //修改销售订单物资子表
+                omstruckOrderMaterialMapper.updateSaleOrderMaterialMes(saleMaterialId, materialNum, newWeight);
             }
             }
-            //修改销售订单物资子表
-            omstruckOrderMaterialMapper.updateSaleOrderMaterialMes(saleMaterialId, materialNum, newWeight);
-
-            //修改订单物资子表 与出库实绩
-            omstruckOrderMaterial.setOrderId(orderId);
-            omstruckOrderMaterial.setMaterialId(materialId);
-            omstruckOrderMaterial.setOrderMaterialNumber(materialNum);
-            omstruckOrderMaterial.setUpdateTime(new Date());
-            omstruckOrderMaterialMapper.updateMaterialMes(omstruckOrderMaterial);
-            omstruckOrderMaterialMapper.updateOutBoundResult(omstruckOrderMaterial);
-
         }
         }
         return 1;
         return 1;
     }
     }

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

@@ -2034,8 +2034,8 @@
         ASM.MATERIAL_WEIGHT "materialWeight",
         ASM.MATERIAL_WEIGHT "materialWeight",
         TWR.RESULT_NET_WEIGHT "netWeight",
         TWR.RESULT_NET_WEIGHT "netWeight",
         OO.ORDER_LINE_SEQUENCE "lineSequence"
         OO.ORDER_LINE_SEQUENCE "lineSequence"
-        FROM OMSTRUCK_ORDER OO
-        LEFT JOIN AMS_SALE_ORDER_MATERIAL ASOM
+        FROM AMS_SALE_ORDER_MATERIAL ASOM
+        LEFT JOIN OMSTRUCK_ORDER OO
         ON ASOM.SALE_ORDER_MATERIAL_ID=OO.ORDER_PLAN_ID
         ON ASOM.SALE_ORDER_MATERIAL_ID=OO.ORDER_PLAN_ID
         LEFT JOIN AMS_SALE_TRUCKNO_MATERIAL ASTM
         LEFT JOIN AMS_SALE_TRUCKNO_MATERIAL ASTM
         ON ASTM.SALE_ORDER_MATERIAL_ID = ASOM.SALE_ORDER_MATERIAL_ID
         ON ASTM.SALE_ORDER_MATERIAL_ID = ASOM.SALE_ORDER_MATERIAL_ID

+ 16 - 8
src/main/resources/com/steerinfo/dil/mapper/OmstruckOrderMaterialMapper.xml

@@ -542,14 +542,22 @@
 
 
   <select id="getSaleOrderMaterialNum" resultType="java.util.Map">
   <select id="getSaleOrderMaterialNum" resultType="java.util.Map">
     select OOM.ORDER_MATERIAL_NUMBER "orderMaterialNumber",
     select OOM.ORDER_MATERIAL_NUMBER "orderMaterialNumber",
-           ASM.MATERIAL_WEIGHT "materialWeight",
-           ASM.SALE_MATERIAL_ID "saleMaterialId"
-    from OMSTRUCK_ORDER OO
-        left join AMS_SALE_ORDER_MATERIAL ASOM on OO.ORDER_PLAN_ID = ASOM.SALE_ORDER_MATERIAL_ID
-        left join AMS_SALE_TRUCKNO_MATERIAL ASTM on ASOM.SALE_ORDER_MATERIAL_ID = ASTM.SALE_ORDER_MATERIAL_ID
-        left join AMS_SALE_MATERIAL ASM on ASTM.MATERIAL_ID = ASM.SALE_MATERIAL_ID
-        left join OMSTRUCK_ORDER_MATERIAL OOM on OO.ORDER_ID = OOM.ORDER_ID
-    where OO.ORDER_ID = #{orderId} and OOM.MATERIAL_ID = #{materialId} and ASM.MATERIAL_ID = #{materialId}
+    ASM.MATERIAL_WEIGHT "materialWeight",
+    ASM.SALE_MATERIAL_ID "saleMaterialId",
+    ASM.MATERIAL_NUMBER "materialNumber"
+    from AMS_SALE_ORDER_MATERIAL ASOM
+    left join OMSTRUCK_ORDER OO on OO.ORDER_PLAN_ID = ASOM.SALE_ORDER_MATERIAL_ID
+    left join AMS_SALE_TRUCKNO_MATERIAL ASTM on ASOM.SALE_ORDER_MATERIAL_ID = ASTM.SALE_ORDER_MATERIAL_ID
+    left join AMS_SALE_MATERIAL ASM on ASTM.MATERIAL_ID = ASM.SALE_MATERIAL_ID
+    left join OMSTRUCK_ORDER_MATERIAL OOM on OO.ORDER_ID = OOM.ORDER_ID
+    where ASM.MATERIAL_ID = #{materialId}
+    <if test="saleOrderMaterialId != null">
+      AND ASOM.SALE_ORDER_MATERIAL_ID = #{saleOrderMaterialId}
+    </if>
+    <if test="orderId != null">
+      AND OO.ORDER_ID = #{orderId}
+      AND OOM.MATERIAL_ID = #{materialId}
+    </if>
   </select>
   </select>