Browse Source

Merge branch 'master' of dq/cus-wms-supervise2.0 into master

段曲 5 years ago
parent
commit
398504d1a1

+ 21 - 7
src/main/java/com/emato/cus/supervise/biz/acqGoodsSeat/AcqGoodsOnSeatCusData.java

@@ -47,13 +47,15 @@ public class AcqGoodsOnSeatCusData implements CusData {
         List<CusAcqGoodsSeat06> insertList = new ArrayList<>();
         // 修改库存list
         List<CusAcqGoodsSeat06> updateList = new ArrayList<>();
+        // 删除库存list
+        List<CusAcqGoodsSeat06> deleteList = new ArrayList<>();
 
         List<String> gUnitNameList = Lists.newArrayList();
         cusList.forEach(i -> gUnitNameList.add(i.getgUnit()));
 
         // 查询已有库存信息表对应sku数据
         List<CusAcqGoodsSeat06> listgoodsSeat = cusAcqGoodsSeatService06.listCusAcqGoodsSeat(cusList);
-        Map<String, String> exitGoodsSeat = listgoodsSeat.stream().collect(Collectors.toMap(k->k.getSkuNo()+k.getSeatNo(), v->v.getLocalEmsNo()));
+        Map<String, String> exitGoodsSeat = listgoodsSeat.stream().collect(Collectors.toMap(k->k.getSkuNo()+k.getSeatNo(), v->v.getId()));
 
         List<OmsCusUnitCode> codeList = omsCusUnitCodeMapper.getOmsCusUnitCodeList(gUnitNameList);
         Map<String,OmsCusUnitCode> omsCusUnitCodeMap = codeList.stream().collect(Collectors.toMap(k->k.getgUnitName(), v->v));
@@ -66,16 +68,25 @@ public class AcqGoodsOnSeatCusData implements CusData {
 
             String key = seat.getSkuNo() + seat.getSeatNo();
             if (exitGoodsSeat.containsKey(key)) {
-                // 存在, 则更新
-                updateList.add(seat);
+                if (seat.getgQty().intValue() != 0) {
+                    // 存在并且库存不为0, 则更新
+                    updateList.add(seat);
+                } else {
+                    // 存在并库存为0,则删除
+                    seat.setId(exitGoodsSeat.get(key));
+                    deleteList.add(seat);
+                }
             } else {
-                // 不存在, 则插入
-                insertList.add(seat);
+                if (seat.getgQty().intValue() != 0) {
+                    // 不存在并且库存不为0, 则插入
+                    insertList.add(seat);
+                }
             }
         }
 
         int insertResult = 0;
         int updateResult = 0;
+        int deleteResult = 0;
 
         if (insertList.size() > 0) {
             insertResult = cusAcqGoodsSeatService06.addCusAcqGoodsSeat06(insertList);
@@ -83,10 +94,13 @@ public class AcqGoodsOnSeatCusData implements CusData {
         if (updateList.size() > 0) {
             updateResult = cusAcqGoodsSeatService06.updateCusAcqGoodsSeat06(updateList);
         }
+        if (deleteList.size() > 0) {
+            deleteResult = cusAcqGoodsSeatService06.deleteCusAcqGoodsSeat06(deleteList);
+        }
 
-        logger.info("---【" + DATA_TYPE_INFO + "】写入监控数据:{} 条, 更新监控数据:{}条", insertResult, updateResult);
+        logger.info("---【" + DATA_TYPE_INFO + "】写入监控数据:{} 条, 更新监控数据:{}条, 删除监控数据:{}条", insertResult, updateResult, deleteResult);
 
         logger.info("---------- 库位货物数据::写入本次监控数据结束 --------------------");
-        return insertResult + updateResult;
+        return insertResult + updateResult + deleteResult;
     }
 }

+ 2 - 0
src/main/java/com/emato/cus/supervise/mapperCus/CusAcqGoodsSeatMapper06.java

@@ -24,4 +24,6 @@ public interface CusAcqGoodsSeatMapper06 {
     List<CusAcqGoodsSeat06> listCusAcqGoodsSeat(List<CusAcqGoodsSeat06> list);
 
     int updateCusAcqGoodsSeat06(List<CusAcqGoodsSeat06> list);
+
+    int deleteCusAcqGoodsSeat06(List<CusAcqGoodsSeat06> list);
 }

+ 8 - 1
src/main/java/com/emato/cus/supervise/service/cus/CusAcqGoodsSeatService06.java

@@ -27,8 +27,15 @@ public interface CusAcqGoodsSeatService06 {
 
     /**
      * 更新库位货物信息
-     * @param updateList
+     * @param list
      * @return
      */
     int updateCusAcqGoodsSeat06(List<CusAcqGoodsSeat06> list);
+
+    /**
+     * 删除库位货物信息
+     * @param list
+     * @return
+     */
+    int deleteCusAcqGoodsSeat06(List<CusAcqGoodsSeat06> list);
 }

+ 6 - 0
src/main/java/com/emato/cus/supervise/service/cus/impl/CusAcqGoodsMoveSeatServiceImpl06.java

@@ -38,4 +38,10 @@ public class CusAcqGoodsMoveSeatServiceImpl06 implements CusAcqGoodsSeatService0
     public int updateCusAcqGoodsSeat06(List<CusAcqGoodsSeat06> list) {
         return cusAcqGoodsSeatMapper06.updateCusAcqGoodsSeat06(list);
     }
+
+    @Override
+    @Transactional(value ="secondTransactionManager")
+    public int deleteCusAcqGoodsSeat06(List<CusAcqGoodsSeat06> list) {
+        return cusAcqGoodsSeatMapper06.deleteCusAcqGoodsSeat06(list);
+    }
 }

+ 26 - 20
src/main/resources/mybatis/mapper/wms-acq-goods-on-seat.xml

@@ -5,28 +5,34 @@
 
     <!-- 库位上的货品信息 -->
     <select id="getWmsAcqGoodsSeat" parameterType="java.util.Map" resultType="com.emato.cus.supervise.domain.WmsAcqGoodsOnSeat">
-        SELECT
-        li.companyCode AS merchSn,
-        li.locationCode AS seatNo,
-        li.itemName AS goodsName,
-        li.itemCode AS codeTs,
-        li.itemCode AS skuNo,
-        li.itemCode AS goodsId,
-        i.unitDesc AS gUnit,
-        SUM(li.onHandQty) AS gQty,
-        li.warehouseCode AS storeCode,
-        CONCAT(i.itemSize, '-', i.itemColor, '-', i.itemStyle) AS goodsModel
-        FROM location_inventory li
-        LEFT JOIN item i ON li.itemCode = i.CODE
-        LEFT JOIN location l ON li.locationCode = l.CODE
+        SELECT * FROM
+        (SELECT
+          th.companyCode AS merchSn,
+          th.locationCode AS seatNo,
+          th.itemName AS goodsName,
+          th.itemCode AS codeTs,
+          th.itemCode AS skuNo,
+          th.itemCode AS goodsId,
+          i.unitDesc AS gUnit,
+          th.afterOnHandQty AS gQty,
+          th.warehouseCode AS storeCode,
+          CONCAT( i.itemSize, '-', i.itemColor, '-', i.itemStyle ) AS goodsModel
+        FROM transaction_history th
+        LEFT JOIN ( SELECT itemCode, locationCode, SUM( onHandQty ) AS qty FROM location_inventory GROUP BY itemCode, locationCode ) AS li
+          ON th.itemCode = li.itemCode AND th.locationCode = li.locationCode
+        LEFT JOIN item i ON th.itemCode = i.CODE
         <where>
-            1 = 1
-            and l.zoneCode in ('A区', 'B区', 'C区', 'GQ区', 'F区', 'P区')
-            <if test="thisTime != null">
-                and li.lastUpdated &gt;= #{thisTime}
-            </if>
+           1 = 1
+           and th.zone in ('A区', 'B区', 'C区', 'GQ区', 'F区', 'P区')
+           and (th.afterOnHandQty = li.qty or th.afterOnHandQty = 0)
+           and li.qty is not null
+           <if test="thisTime != null">
+              and th.created &gt;= #{thisTime}
+           </if>
         </where>
-        GROUP BY li.itemCode, li.locationCode
+        ORDER BY th.created DESC
+        ) AS temp
+        GROUP BY skuNo, seatNo
     </select>
 
 

+ 10 - 0
src/main/resources/mybatis/mapperCus/cus-acq-goods-seat.xml

@@ -205,4 +205,14 @@
         </where>
     </update>
 
+    <delete id="deleteCusAcqGoodsSeat06" parameterType="List">
+        DELETE FROM acq_goods_on_seat
+        <where>
+            <if test="list != null and list.size()>0">
+                <foreach collection="list" item="i" index="index" open="id IN (" separator="," close=")">
+                    #{i.id}
+                </foreach>
+            </if>
+        </where>
+    </delete>
 </mapper>

+ 2 - 1
src/main/resources/mybatis/mapperOms/oms-product-info.xml

@@ -15,7 +15,8 @@
 		pr.sku AS skuNo,
 		t1.local_ems_no AS localEmsNo
 		FROM
-		pd_product_record pr left outer join sys_cus_goods_code gc on pr.cus_goods_code = gc.cus_goods_code
+		pd_product_record pr
+		left outer join sys_cus_goods_code gc on pr.cus_goods_code = gc.cus_goods_code
 		left outer join merchant_record t1 on pr.merch_sn=t1.merch_sn
 		where t1.local_ems_no is not null AND pr.sku IN
 		<foreach collection="list" item="sku" index="index"