소스 검색

导入溯源码落表商品详情表

luolinsong 2 주 전
부모
커밋
e539c8ec8e

+ 6 - 0
fs-service/src/main/java/com/fs/course/dto/FsOrderCodeNoteDTO.java

@@ -14,6 +14,12 @@ public class FsOrderCodeNoteDTO {
     @Excel(name = "系统订单号(必填)",width = 20,sort = 1)
     private String orderNumber;
 
+    /**
+     * 商品名称
+     * **/
+    @Excel(name = "商品名称(必填)",width = 20,sort = 1)
+    private String productName;
+
     /**
      * 溯源码
      * **/

+ 4 - 0
fs-service/src/main/java/com/fs/hisStore/mapper/FsStoreOrderItemScrmMapper.java

@@ -266,4 +266,8 @@ public interface FsStoreOrderItemScrmMapper
 
     @Select("select product_id,json_info,num from fs_store_order_item_scrm where order_id=#{orderId}")
     List<FsStoreOrderItemListDVO> selectFsStoreOrderItemListDVOByOrderId(Long orderId);
+
+    List<FsStoreOrderItemScrm> selectFsStoreOrderItemByOrderCode(String orderCode);
+
+    void batchUpdateVerifyCodeByOrderCode(List<FsStoreOrderItemScrm> batchList);
 }

+ 26 - 2
fs-service/src/main/java/com/fs/hisStore/service/impl/FsStoreOrderScrmServiceImpl.java

@@ -378,6 +378,9 @@ public class FsStoreOrderScrmServiceImpl implements IFsStoreOrderScrmService {
     @Autowired
     private IFsStoreVerifyCodeScrmService verifyCodeScrmService;
 
+    @Autowired
+    private FsStoreOrderItemScrmMapper fsStoreOrderItemScrmMapper;
+
     @PostConstruct
     public void initErpServiceMap() {
         erpServiceMap = new HashMap<>();
@@ -5916,17 +5919,38 @@ public class FsStoreOrderScrmServiceImpl implements IFsStoreOrderScrmService {
     public R importDeliveryNoteExpress(List<FsOrderCodeNoteDTO> dtoList) {
         int row =0;
         Map<String,Integer> checkMap = new HashMap<>();
+        List<FsStoreOrderItemScrm> batchList = new ArrayList<>();
         for (FsOrderCodeNoteDTO d : dtoList){
+            FsStoreOrderItemScrm item = new FsStoreOrderItemScrm();
             row++;
             if(d.getOrderNumber() == null){
                 return R.error("操作失败,第"+row+"行,订单号为空!");
             }
-
+            if(d.getProductName() == null){
+                return R.error("操作失败,第"+row+"行,商品名称为空!");
+            }
             if(checkMap.containsKey(d.getOrderNumber())){
                 return R.error("操作失败,第"+row+"行,订单重复导入!");
             }
+
+            item.setOrderCode(d.getOrderNumber());
+
+            List<FsStoreOrderItemScrm> orderItems = fsStoreOrderItemScrmMapper.selectFsStoreOrderItemByOrderCode(d.getOrderNumber());
+            if(CollectionUtils.isNotEmpty(orderItems)){
+                for (FsStoreOrderItemScrm orderItem : orderItems) {
+                    com.fs.his.dto.FsStoreCartDTO cartDTO = JSONUtil.toBean(orderItem.getJsonInfo(), com.fs.his.dto.FsStoreCartDTO.class);
+                    if (d.getProductName() .equals(cartDTO.getProductName())){
+                        item.setProductId(orderItem.getProductId());
+                    }
+
+                }
+            }
+            item.setBatchNumber(d.getBatchNumber());
+            item.setVerifyCode(d.getVerifyCode());
+            batchList.add(item);
         }
-        fsStoreOrderMapper.batchUpdateVerifyCodeByOrderCode(dtoList);
+        fsStoreOrderItemScrmMapper.batchUpdateVerifyCodeByOrderCode(batchList);
+        //fsStoreOrderMapper.batchUpdateVerifyCodeByOrderCode(dtoList);
         return R.ok();
     }
 

+ 20 - 0
fs-service/src/main/resources/mapper/hisStore/FsStoreOrderItemScrmMapper.xml

@@ -95,4 +95,24 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         </foreach>
     </delete>
 
+    <select id="selectFsStoreOrderItemByOrderCode" resultType="com.fs.hisStore.domain.FsStoreOrderItemScrm">
+        select * from fs_store_order_item_scrm where order_code = #{orderCode}
+    </select>
+    <update id="batchUpdateVerifyCodeByOrderCode" parameterType="list">
+        UPDATE fs_store_order_item_scrm
+        SET verify_code =
+        <foreach collection="list" item="item" separator=" " open="CASE" close="END">
+            WHEN order_code = #{item.orderCode} AND product_id = #{item.productId}
+            THEN #{item.verifyCode}
+        </foreach>,
+        batch_number =
+        <foreach collection="list" item="item" separator=" " open="CASE" close="END">
+            WHEN order_code = #{item.orderCode} AND product_id = #{item.productId}
+            THEN #{item.batchNumber}
+        </foreach>
+        WHERE
+        <foreach collection="list" item="item" separator="OR" open="(" close=")">
+            (order_code = #{item.orderCode} AND product_id = #{item.productId})
+        </foreach>
+    </update>
 </mapper>