Redeem пре 1 година
родитељ
комит
aa645ad7d8

+ 1 - 1
pom.xml

@@ -6,7 +6,7 @@
 
     <groupId>org.example</groupId>
     <artifactId>dil-wms-api</artifactId>
-    <version>1.8</version>
+    <version>1.10</version>
 
     <parent>
         <groupId>org.springframework.boot</groupId>

+ 8 - 0
src/main/java/com/steerinfo/dil/controller/OyeResultController.java

@@ -246,6 +246,14 @@ public class OyeResultController extends BaseRESTfulController {
     }
 
 
+    @ApiOperation("批量划分实时库存")
+    @PostMapping("batchUpdateRealTime")
+    public RESTfulResult batchUpdateRealTime(Map<String,Object> map) {
+        oyeResultService.batchUpdateRealTime(map);
+        return success();
+    }
+
+
 
 
 }

+ 4 - 0
src/main/java/com/steerinfo/dil/mapper/OyeRealtimeInventoryMapper.java

@@ -39,4 +39,8 @@ public interface OyeRealtimeInventoryMapper extends IBaseMapper<OyeRealtimeInven
 
     BigDecimal getSingleWeightByOIR(BigDecimal inventoryId);
 
+    List<Map<String, Object>> getRealTimeGroupBy(Map<String,Object> map);
+
+    List<Map<String, Object>> getInventoryInfo(Map<String, Object> map);
+
 }

+ 29 - 0
src/main/java/com/steerinfo/dil/service/impl/OyeResultServiceImpl.java

@@ -402,6 +402,7 @@ public class OyeResultServiceImpl implements IOyeResultService {
             map.put("inventoryId",inventoryId);
             map.put("flag",1);
             oyeRealtimeInventoryUpdate = updateRealTimeInventory(map);
+            oyeInboundResult.setInventoryId(oyeRealtimeInventoryUpdate.getInventoryId());
         }
         if (oyeRealtimeInventoryInsert != null) {
             oyeRealtimeInventoryMapper.insertSelective(oyeRealtimeInventoryInsert);
@@ -436,4 +437,32 @@ public class OyeResultServiceImpl implements IOyeResultService {
         }
         return 1;
     }
+
+    public int batchUpdateRealTime(Map<String,Object> mapValue) {
+        //获取
+        List<Map<String,Object>> mapList = oyeRealtimeInventoryMapper.getRealTimeGroupBy(mapValue);
+        for(Map<String,Object> map : mapList) {
+            if (DataChange.dataToBigDecimal(map.get("num")).intValue() > 1) {
+                List<Map<String,Object>> mapList1 = oyeRealtimeInventoryMapper.getInventoryInfo(map);
+                //第一个为移入,下一个为移出;
+                for(int i=0;i < mapList1.size();i++ ){
+                    if(i == 0) {
+                        continue;
+                    }
+                    Map<String, Object> stringObjectMap = new HashMap<>();
+                    stringObjectMap.putAll(mapList1.get(0));
+                    Map<String,Object> realMap = mapList1.get(i);
+                    realMap.put("newInventoryId",stringObjectMap.get("inventoryId"));
+                    realMap.put("oldSaleArea",stringObjectMap.get("saleArea"));
+                    try {
+                        updateInsertRealTime(realMap);
+                    } catch (Exception e) {
+                        e.printStackTrace();
+                    }
+                }
+
+            }
+        }
+        return 1;
+    }
 }

+ 75 - 3
src/main/resources/com/steerinfo/dil/mapper/OyeRealtimeInventoryMapper.xml

@@ -674,7 +674,22 @@
   <!-- 友情提示!!!-->
   <!-- 请将自己写的代码放在此标签之下,方便以后粘贴复制。-->
   <select id="getOyeRealTimeResult" resultType="java.util.Map">
-
+    SELECT
+    TT."materialId" "materialId",
+    TT."meter" "meter",
+    TT."singleWeight" "singleWeight",
+    TT."consigneeName" "consigneeName",
+    TT."materialModel" "materialModel",
+    TT."materialSpe" "materialSpe",
+    TT."materialName" "materialName",
+    TT."consigneeId" "consigneeId",
+    TT."inboundArea" "inboundArea",
+    TT."inboundWarehouse" "inboundWarehouse",
+    TT."saleArea" "saleArea",
+    SUM(TT."materialNumber") "materialNumber",
+    SUM(TT."theoryWeight") "theoryWeight",
+    SUM(TT."netWeight") "netWeight"
+    FROM (
     SELECT ORI.SINGLE_WEIGHT "singleWeight",
     ORI.METER    "meter",
     ORI.MATERIAL_ID  "materialId",
@@ -737,8 +752,19 @@
         </foreach>
       </if>
     </where>
-    ORDER BY ORI.INSERT_TIME DESC
-
+    ) TT
+    GROUP BY TT."materialId",
+    TT."meter",
+    TT."singleWeight",
+    TT."consigneeName",
+    TT."materialModel",
+    TT."materialSpe",
+    TT."materialName",
+    TT."consigneeId",
+    TT."inboundArea",
+    TT."inboundWarehouse",
+    TT."saleArea"
+    ORDER BY TT."consigneeName" desc, TT."saleArea" desc, TT."inboundWarehouse" DESC
   </select>
   <select id="getInventoryId" resultType="java.math.BigDecimal" parameterType="java.util.Map">
     SELECT ORI.INVENTORY_ID FROM OYE_REALTIME_INVENTORY ORI
@@ -948,6 +974,7 @@
              TT."saleArea",
              TT."meter",
              TT."singleWeight"
+    ORDER BY TT."companyName" DESC,TT."inboundWarehouse" DESC,TT."saleArea" DESC
   </select>
   <select id="getSaleAreaRemark" resultType="java.lang.String">
     SELECT RSR.SALE_REMARK FROM RMS_SALER_REMAR RSR
@@ -980,5 +1007,50 @@
     SELECT OIR.SINGLE_WEIGHT FROM OYE_INBOUND_RESULT OIR
     WHERE OIR.INVENTORY_ID = #{inventoryId}
   </select>
+  <select id="getRealTimeGroupBy" resultType="java.util.Map" parameterType="java.util.Map">
+    SELECT
+      COUNT( * ) "num",
+      ORI.CONSIGNEE_ID "consigneeId",
+      ORI.SALE_AREA "saleArea",
+      ORI.INBOUND_WAREHOUSE "inboundWarehouse",
+      ORI.MATERIAL_ID "materialId",
+      ORI.METER "meter",
+      ORI.SINGLE_WEIGHT "singleWeight"
+    FROM
+      OYE_REALTIME_INVENTORY ORI
+    LEFT JOIN RMS_CONSIGNEE RC ON RC.CONSIGNEE_ID = ORI.CONSIGNEE_ID
+    WHERE RC.CONSIGNEE_COMPANY_NAME LIKE '%${consigneeName}%'
+    AND ORI.SALE_AREA LIKE '%${saleArea}%'
+    and ori.MATERIAL_NUMBER > 0
+    GROUP BY
+      ORI.CONSIGNEE_ID,
+      ORI.SALE_AREA,
+      ORI.INBOUND_WAREHOUSE,
+      ORI.MATERIAL_ID,
+      ORI.METER,
+      ORI.SINGLE_WEIGHT
+  </select>
+  <select id="getInventoryInfo" resultType="java.util.Map">
+    SELECT ORI.INVENTORY_ID "inventoryId",
+           ORI.THEORY_WEIGHT "theoryWeight",
+           ORI.NET_WEIGHT "netWeight",
+           ORI.MATERIAL_NUMBER "materialNumber",
+           ORI.SINGLE_WEIGHT "singleWeight",
+           ORI.METER "meter",
+           ORI.INBOUND_WAREHOUSE "inboundWarehouse",
+           ORI.INBOUND_AREA "inboundArea",
+           ORI.SALE_AREA "saleArea",
+           ORI.MATERIAL_ID "materialId"
+           FROM OYE_REALTIME_INVENTORY ORI
+    WHERE ORI.CONSIGNEE_ID = #{consigneeId,jdbcType=DECIMAL}
+    AND ORI.SINGLE_WEIGHT = #{singleWeight,jdbcType=DECIMAL}
+    AND ORI.SALE_AREA = #{saleArea,jdbcType=VARCHAR}
+    AND ORI.material_Id = #{materialId,jdbcType=DECIMAL}
+    AND ORI.INBOUND_WAREHOUSE = #{inboundWarehouse,jdbcType=VARCHAR}
+    <if test="meter != null">
+      AND ORI.meter = #{meter,jdbcType=DECIMAL}
+    </if>
+    AND ORI.INBOUND_AREA = '欧冶库'
+  </select>
 
 </mapper>