Browse Source

问题修改

zhs 2 years ago
parent
commit
4d63f251e8

+ 13 - 2
src/main/java/com/tld/controller/TraceBackController.java

@@ -7,6 +7,7 @@ import com.tld.model.StorageLocation;
 import com.tld.model.TraceBack;
 import com.tld.service.TraceBackService;
 import lombok.RequiredArgsConstructor;
+import org.apache.ibatis.annotations.Param;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
@@ -104,8 +105,18 @@ public class TraceBackController {
     * @Date: 2023/4/24
     */
     @PostMapping("addTraceBackSn")
-    public Map<String, Object> addTraceBackSn(@RequestBody TraceBack traceBack){
-        return traceBackService.addTraceBackSn(traceBack);
+    public Map<String, Object> addTraceBackSn(@RequestBody List<TraceBack> list){
+        return traceBackService.addTraceBackSn(list);
+    }
+
+    /**
+     * 查询追溯单绑定的SN码
+     * @param traceBack 参数
+     * @return 返回结果
+     */
+    @GetMapping("getTraceBackSn")
+    public Map<String, Object >getTraceBackSn(TraceBack traceBack){
+        return traceBackService.getTraceBackSn(traceBack);
     }
 
     /**

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

@@ -49,4 +49,6 @@ public interface DeliveryMapper {
     int getScanSum(Delivery delivery1);
 
     void addRemovalHalfProduct(Delivery delivery1);
+
+    Inventory getTemporarily(AskGoods askGoods);
 }

+ 8 - 1
src/main/java/com/tld/mapper/TraceBackMapper.java

@@ -2,6 +2,7 @@ package com.tld.mapper;
 
 import com.tld.model.TraceBack;
 import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
 import java.util.Map;
@@ -16,5 +17,11 @@ public interface TraceBackMapper {
 
     List<Map<String, Object>> export(TraceBack traceBack);
 
-    void addTraceBackSn(TraceBack traceBack);
+    void addTraceBackSn(List<TraceBack> list);
+
+    List<TraceBack> getTraceBackSn(TraceBack traceBack);
+
+    List<Map<String, Object>> TraceBackSnExport(TraceBack traceBack);
+
+    void updateTraceBackSn(@Param("size")int size, @Param("trackId")String trackId);
 }

+ 3 - 1
src/main/java/com/tld/model/TraceBack.java

@@ -3,13 +3,15 @@ package com.tld.model;
 import lombok.Data;
 import lombok.experimental.Accessors;
 
+import java.io.Serializable;
+
 /**
  * 追溯
  */
 @Data
 @Accessors(chain = true)
 @SuppressWarnings("serial")
-public class TraceBack {
+public class TraceBack implements Serializable {
     /**
      * 主键
      */

+ 3 - 3
src/main/java/com/tld/service/TraceBackService.java

@@ -1,8 +1,6 @@
 package com.tld.service;
 
-import com.alibaba.fastjson.JSONObject;
 import com.tld.model.TraceBack;
-
 import javax.servlet.http.HttpServletResponse;
 import java.util.List;
 import java.util.Map;
@@ -16,7 +14,9 @@ public interface TraceBackService {
 
     void export(TraceBack traceBack, HttpServletResponse response);
 
-    Map<String, Object> addTraceBackSn(TraceBack traceBack);
+    Map<String, Object> addTraceBackSn(List<TraceBack> list);
 
     void TraceBackSnExport(TraceBack traceBack, HttpServletResponse response);
+
+    Map<String, Object> getTraceBackSn(TraceBack traceBack);
 }

+ 13 - 3
src/main/java/com/tld/service/impl/DeliveryServiceImpl.java

@@ -143,7 +143,19 @@ public class DeliveryServiceImpl implements DeliveryService {
             for(AskGoods askGoods : askGoodsMapper.getAskGoodsVitrual(uniqueCode, type)){
                 askGoods.setStorageCode(removalCode);
                 askGoods.setCompanyNumber(askGoods.getAccountSleeve());
-                Inventory inventory = deliveryMapper.getInventoryHalf(askGoods);
+                //判断物料是否录入
+                MaterialClass materialClass = warehousingMapper.getMateriaIsExist(askGoods.getWllbCode());
+
+                //临时使用后期删除
+                //-------------------------------
+                Inventory inventory = new Inventory();
+                if(materialClass.getPartType().equals("产成品")){
+                    inventory = deliveryMapper.getTemporarily(askGoods);
+                } else {
+                    inventory = deliveryMapper.getInventoryHalf(askGoods);
+                }
+                //------------------------------
+//                Inventory inventory = deliveryMapper.getInventoryHalf(askGoods);
                 //如果出库库存等于虚拟表库存则删除此库存
                 if(Double.doubleToLongBits(Double.parseDouble(askGoods.getNum())) == Double.doubleToLongBits(Double.parseDouble(inventory.getAmount()))){
                     askGoodsMapper.deleteInventory(inventory);
@@ -151,8 +163,6 @@ public class DeliveryServiceImpl implements DeliveryService {
                     inventory.setAmount(askGoods.getNum());
                     askGoodsMapper.updateInventory(inventory);
                 }
-                //判断物料是否录入
-                MaterialClass materialClass = warehousingMapper.getMateriaIsExist(askGoods.getWllbCode());
                 //查询销售单部分信息
                 Delivery delivery = new Delivery().setDeliveryId(deliveryId).setMaterialId(materialClass.getTldId());
                 List<Delivery> list = deliveryMapper.getDelivery(delivery);

+ 46 - 2
src/main/java/com/tld/service/impl/TraceBackServiceImpl.java

@@ -39,6 +39,7 @@ public class TraceBackServiceImpl implements TraceBackService {
                 return map;
             }
             traceBackMapper.delTraceBack(id);
+            map.put("msg", "200");
         }catch (Exception e){
             map.put("msg", "500");
             map.put("errMsg","服务器请求异常,请稍后再试");
@@ -98,10 +99,16 @@ public class TraceBackServiceImpl implements TraceBackService {
      * @Date: 2023/4/24
      */
     @Override
-    public Map<String, Object> addTraceBackSn(TraceBack traceBack) {
+    public Map<String, Object> addTraceBackSn(List<TraceBack> list) {
         Map<String, Object> map = new HashMap<>();
         try{
-            traceBackMapper.addTraceBackSn(traceBack);
+            if(list.size() == 0){
+                map.put("msg", "500");
+                map.put("errMsg", "请扫描。");
+                return map;
+            }
+            traceBackMapper.addTraceBackSn(list);
+            traceBackMapper.updateTraceBackSn(list.size(), list.get(0).getTrackId());
             map.put("msg", "200");
         }catch (Exception e){
             e.printStackTrace();
@@ -113,6 +120,43 @@ public class TraceBackServiceImpl implements TraceBackService {
 
     @Override
     public void TraceBackSnExport(TraceBack traceBack, HttpServletResponse response) {
+        try{
+            //导出数据汇总
+            List<List<Object>> sheetDataList = new ArrayList<>();
+            //表头数据
+            List<Object> head = Arrays.asList("交货单号(发货任务号)", "销售订单编号", "销售公司编号", "SN");
+            //查询数据
+            List<Map<String, Object>> list = traceBackMapper.TraceBackSnExport(traceBack);
+            sheetDataList.add(head);
+            for(Map<String, Object> userMap : list){
+                List<Object> listSheet = new ArrayList<>();
+                for(String key: userMap.keySet()){
+                    listSheet.add(userMap.get(key));
+                }
+                sheetDataList.add(listSheet);
+            }
+            //当前时间
+            Date time = new Date();
+            SimpleDateFormat sdf = new SimpleDateFormat("yyyyMddHHmmss");
+            ExcelUtils.export(response, "SN绑定信息" + sdf.format(time), sheetDataList);
+        }catch (Exception e){
+            e.printStackTrace();
+        }
+    }
 
+    @Override
+    public Map<String, Object> getTraceBackSn(TraceBack traceBack) {
+        Map<String, Object> map = new HashMap<>();
+        try{
+            PageHelper.startPage(traceBack.getPage(), traceBack.getLimit());
+            PageInfo<TraceBack> list = new PageInfo<>(traceBackMapper.getTraceBackSn(traceBack));
+            map.put("data", list);
+            map.put("msg", "200");
+        } catch (Exception e){
+            e.printStackTrace();
+            map.put("msg", "500");
+            map.put("errMsg", "服务器请求异常,请稍后再试");
+        }
+        return map;
     }
 }

+ 34 - 0
src/main/resources/mapper/DeliveryMapper.xml

@@ -98,6 +98,40 @@
             and a.storage_location_code = #{storageLocationCode}
         </if>
     </select>
+
+
+    <!--  暂时使用 后期删除-->
+    <!-- 查询指定库存内容 -->
+    <select id="getTemporarily" resultType="com.tld.model.Inventory">
+        SELECT
+        a.id,
+        a.storage_location_code,
+        a.wllb_class,
+        a.library_type,
+        a.material_id,
+        a.amount,
+        a.amount_lock,
+        a.wbs,
+        a.serial,
+        a.wllb_code,
+        a.produc_date,
+        a.scrq,
+        a.produc_batch,
+        a.attribute
+        FROM tld_inventory a
+        JOIN tld_material b on a.material_id = b.tld_id
+        WHERE b.code = #{wllbCode} and a.account_sleeve = #{companyNumber} and a.wbs = #{wbs} and a.hold = '0'
+        <if test="attribute != null and attribute != ''">
+            and a.attribute = #{attribute}
+        </if>
+        <if test="storageLocationCode != null and storageLocationCode != ''">
+            and a.storage_location_code = #{storageLocationCode}
+        </if>
+    </select>
+    <!--    暂时使用 后期删除-->
+
+
+
     <!-- 查询指定库存被占用数量 -->
     <select id="getVitrual" resultType="int">
         select

+ 24 - 3
src/main/resources/mapper/TraceBackMapper.xml

@@ -14,8 +14,15 @@
     </insert>
     <!--添加追溯单sn编码-->
     <insert id="addTraceBackSn">
-        insert into tld_trace_back_sn(track_id,sn_code) values (#{trackId},#{snCode})
+        insert into tld_trace_back_sn(track_id,sn_code) values
+        <foreach collection="list" item="item" index="index" separator=",">
+            (#{item.trackId},#{item.snCode})
+        </foreach>
     </insert>
+    <!-- 修改出库数量 -->
+    <update id="updateTraceBackSn">
+        update tld_trace_back set out_num = out_num + #{size} where id = #{trackId}
+    </update>
     <!-- 查询销售发货单 -->
     <select id="getTraceBack" resultType="com.tld.model.TraceBack">
         select
@@ -124,9 +131,8 @@
             power_station_name,
             material_code,
             material_name,
-            wbs,
+            if(wbs = "", " ", wbs) as wbs,
             num,
-            out_num,
             province,
             city,
             address
@@ -195,4 +201,19 @@
         </trim>
         order by id desc
     </select>
+    <!-- 查询追溯单绑定的SN码 -->
+    <select id="getTraceBackSn" resultType="com.tld.model.TraceBack">
+        select id,track_id,sn_code from tld_trace_back_sn where track_id = #{trackId}
+    </select>
+    <!-- 导出追溯单绑定的SN码 -->
+    <select id="TraceBackSnExport" resultType="java.util.LinkedHashMap">
+        select
+            b.delivery_order,
+            b.delivery_code,
+            b.delivery_company,
+            a.sn_code
+        from tld_trace_back_sn a
+        join tld_trace_back b on a.track_id = b.id
+        where a.track_id = #{trackId}
+    </select>
 </mapper>