zhs 2 éve
szülő
commit
ea1706e1ad

+ 3 - 0
src/main/java/com/tld/mapper/DeliveryMapper.java

@@ -3,6 +3,7 @@ package com.tld.mapper;
 import com.tld.model.AskGoods;
 import com.tld.model.Delivery;
 import com.tld.model.Inventory;
+import com.tld.model.MaterialClass;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 
@@ -29,4 +30,6 @@ public interface DeliveryMapper {
     List<Inventory> getAttribute(String storageLocationCode, Delivery delivery);
 
     int getSumAmount(Inventory inventory);
+
+    MaterialClass getMaterialClass(String materialId);
 }

+ 37 - 16
src/main/java/com/tld/service/impl/DeliveryServiceImpl.java

@@ -2,10 +2,7 @@ package com.tld.service.impl;
 
 import com.tld.mapper.AskGoodsMapper;
 import com.tld.mapper.DeliveryMapper;
-import com.tld.model.AskGoods;
-import com.tld.model.Delivery;
-import com.tld.model.Inventory;
-import com.tld.model.ReturRemoval;
+import com.tld.model.*;
 import com.tld.service.DeliveryService;
 import org.redisson.api.RLock;
 import org.redisson.api.RedissonClient;
@@ -46,20 +43,44 @@ public class DeliveryServiceImpl implements DeliveryService {
     public Map<String, Object> getRecommend(Delivery delivery) {
         Map<String, Object> map = new HashMap<>();
         try{
-            //查询所有产成品库位
-            String storageLocationCode = deliveryMapper.getStorageLocationCodeList();
-            List<Inventory> list = new LinkedList<>();
-            Map<String, Object> occupyMap = new HashMap<>();
-            for(Inventory inventory : deliveryMapper.getInventory(storageLocationCode, delivery)){
-                int occupy = deliveryMapper.getVitrual(inventory);
-                if(Integer.parseInt(inventory.getAmount()) == occupy){
-                    list.add(inventory);
-                    int num = Integer.parseInt(inventory.getAmount()) - occupy;
-                    occupyMap.put(inventory.getStorageLocationCode(), num);
+            MaterialClass materialClass = deliveryMapper.getMaterialClass(delivery.getMaterialId());
+            if(materialClass == null){
+                map.put("msg", "500");
+                map.put("errMsg", "物料信息未录入,请联系管理员");
+                return map;
+            }
+            if(materialClass.getPartType().equals("产成品")){
+                //查询所有产成品库位
+                String storageLocationCode = deliveryMapper.getStorageLocationCodeList();
+                List<Inventory> list = new LinkedList<>();
+                Map<String, Object> occupyMap = new HashMap<>();
+                for(Inventory inventory : deliveryMapper.getInventory(storageLocationCode, delivery)){
+                    int occupy = deliveryMapper.getVitrual(inventory);
+                    if(Integer.parseInt(inventory.getAmount()) == occupy){
+                        list.add(inventory);
+                        int num = Integer.parseInt(inventory.getAmount()) - occupy;
+                        occupyMap.put(inventory.getStorageLocationCode(), num);
+                    }
                 }
+                map.put("data", list);
+                map.put("occupyMap", occupyMap);
+            } else if(materialClass.getPartType().equals("半成品")){
+                String storageLocationCode = "000000,";
+                List<Inventory> list = new LinkedList<>();
+                Map<String, Object> occupyMap = new HashMap<>();
+                for(Inventory inventory : deliveryMapper.getInventory(storageLocationCode, delivery)){
+                    int occupy = deliveryMapper.getVitrual(inventory);
+                    if(Integer.parseInt(inventory.getAmount()) > occupy){
+                        list.add(inventory);
+                        int num = Integer.parseInt(inventory.getAmount()) - occupy;
+                        occupyMap.put(inventory.getStorageLocationCode(), num);
+                    }
+                }
+                map.put("data", list);
+                map.put("occupyMap", occupyMap);
+            } else {
+
             }
-            map.put("data", list);
-            map.put("occupyMap", occupyMap);
             map.put("msg", "200");
         }catch (Exception e){
             map.put("msg", "500");

+ 1 - 1
src/main/resources/mapper/AskGoodsMapper.xml

@@ -122,7 +122,7 @@
            wllb_code,
            produc_date,
            scrq
-        from tld_inventory where supplier_id = #{supplierId} and serial = #{serial} and wllb_code = #{wllbCode} and produc_date = #{producDate}
+        from tld_inventory where supplier_id = #{supplierId} and serial = #{serial} and wllb_code = #{wllbCode} and produc_date = #{producDate} and account_sleeve = #{companyNumber}
     </select>
     <!-- 查询库存是否充足 -->
     <select id="getAsk" resultType="com.tld.model.AskGoods">

+ 21 - 2
src/main/resources/mapper/DeliveryMapper.xml

@@ -35,7 +35,7 @@
     <!-- 查询所有产成品库位 -->
     <select id="getStorageLocationCodeList" resultType="String">
         select
-               CONCAT(GROUP_CONCAT(storage_location_code SEPARATOR ","),',')
+            CONCAT(CONCAT(GROUP_CONCAT(storage_location_code SEPARATOR ","),','), '111111,')
         from tld_storage_location where is_product = '1'
     </select>
     <!-- 查询指定库位跟物料的库存 -->
@@ -57,8 +57,11 @@
             b.storage_location_name as storageLocationName
         FROM tld_inventory a
         LEFT JOIN tld_storage_location b on a.storage_location_code = b.storage_location_code
-        WHERE CONCAT(#{storageLocationCode},'111111,') LIKE CONCAT( '%', CONCAT( a.storage_location_code, ',' ), '%' )
+        WHERE #{storageLocationCode} LIKE CONCAT( '%', CONCAT( a.storage_location_code, ',' ), '%' )
           AND a.material_id = #{delivery.materialId} AND a.hold = '0'
+        <if test="delivery.attribute != null and delivery.attribute != ''">
+            and a.attribute = #{delivery.attribute}
+        </if>
         ORDER BY
             a.produc_batch
     </select>
@@ -130,4 +133,20 @@
     <select id="getSumAmount" resultType="int">
         select sum(amount) from tld_inventory where storage_location_code = #{storageLocationCode}
     </select>
+    <!-- 查询物料信息 -->
+    <select id="getMaterialClass" resultType="com.tld.model.MaterialClass">
+        select
+            id,
+            name,
+            code,
+            tld_id,
+            specification_and_model,
+            unit_of_measurement,
+            size,
+            wllb_class,
+            is_not_disable,
+            is_recommend,
+            part_type
+        from tld_material where tld_id = #{materialId}
+    </select>
 </mapper>