Browse Source

机具回收修复

mac 2 years ago
parent
commit
ff76305a31

+ 43 - 0
kxs-store/kxs-store-api/src/main/java/com/kxs/store/api/vo/kxsapp/storeRecycle/NeedConfirmPosListVO.java

@@ -0,0 +1,43 @@
+package com.kxs.store.api.vo.kxsapp.storeRecycle;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * 机具回收-待确认列表
+ *
+ * @author 没秃顶的码农
+ * @date 2024-07-16
+ */
+@Data
+@Schema(description = "机具回收-待确认列表")
+public class NeedConfirmPosListVO implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+
+    /**
+     * 循环结束时间
+     */
+    @Schema(description = "循环结束时间")
+    private LocalDateTime recycleEndTime;
+
+    /**
+     * sn
+     */
+    @Schema(description = "sn")
+    private String posSn;
+
+    /**
+     * 品牌标识
+     */
+    @Schema(description = "品牌标识")
+    private Integer brandId;
+
+
+}

+ 12 - 9
kxs-store/kxs-store-api/src/main/java/com/kxs/store/api/vo/kxsapp/storeRecycle/NeedConfirmRecycleVO.java

@@ -2,35 +2,38 @@ package com.kxs.store.api.vo.kxsapp.storeRecycle;
 
 
 import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Builder;
 import lombok.Data;
 
 import java.io.Serial;
 import java.io.Serializable;
-import java.time.LocalDateTime;
+import java.util.List;
 
 /**
- * 仓库数据vo
+ * 机具回收-待确认列表
  *
  * @author 系统
  * @date 2024-01-08 10:33:17
  */
 @Data
-@Schema(description = "仓库数据返回实体")
+@Schema(description = "机具回收-待确认列表")
+@Builder
 public class NeedConfirmRecycleVO implements Serializable {
 
 	@Serial
 	private static final long serialVersionUID = 1L;
 
     /**
-     * 循环结束时间
+     * 品牌标识
      */
-    @Schema(description = "循环结束时间")
-    private LocalDateTime recycleEndTime;
+    private  Integer brandId;
 
     /**
-     * sn
+     * 品牌
      */
-    @Schema(description = "sn")
-    private String posSn;
+    private  String brandName;
+
+    private List<NeedConfirmPosListVO> posList;
+
 
 }

+ 2 - 2
kxs-store/kxs-store-biz/src/main/java/com/kxs/store/biz/controller/kxsapp/StoreRecycleController.java

@@ -138,9 +138,9 @@ public class StoreRecycleController {
      * @return 机具回收-待确认列表
      */
     @GetMapping("/needConfirmList")
-    public R needConfirmList(@ParameterObject Page<NeedConfirmRecycleVO> page, @RequestParam("brandId") Integer brandId) {
+    public R needConfirmList(@ParameterObject Page<NeedConfirmRecycleVO> page) {
 
-        return R.ok(kxsMachineRecycleService.needConfirmList(page, brandId));
+        return R.ok(kxsMachineRecycleService.needConfirmList(page));
     }
 
     /**

+ 2 - 3
kxs-store/kxs-store-biz/src/main/java/com/kxs/store/biz/mapper/KxsMachineRecycleMapper.java

@@ -5,7 +5,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.kxs.store.api.dto.kxsapp.storeRecycle.StoreRecycleMachineListDTO;
 import com.kxs.store.api.model.KxsMachineRecycle;
-import com.kxs.store.api.model.KxsMachineRecycleInfo;
+import com.kxs.store.api.vo.kxsapp.storeRecycle.NeedConfirmPosListVO;
 import com.kxs.store.api.vo.kxsapp.storeRecycle.NeedConfirmRecycleVO;
 import com.kxs.store.api.vo.kxsapp.storeRecycle.RecycleUserListVO;
 import com.kxs.store.api.vo.kxsapp.storeRecycle.StoreRecycleMachineListVO;
@@ -50,10 +50,9 @@ public interface KxsMachineRecycleMapper extends BaseMapper<KxsMachineRecycle> {
      *
      * @param page    页
      * @param userId  用户 ID
-     * @param brandId 品牌 ID
      * @return {@link IPage}<{@link NeedConfirmRecycleVO}>
      */
-    IPage<NeedConfirmRecycleVO> needConfirmList(Page<NeedConfirmRecycleVO> page, @Param("userId") Long userId, @Param("brandId") Integer brandId);
+    List<NeedConfirmPosListVO> needConfirmList(Page<NeedConfirmRecycleVO> page, @Param("userId") Long userId);
 
     /**
      * 可回收数量接口

+ 1 - 2
kxs-store/kxs-store-biz/src/main/java/com/kxs/store/biz/service/KxsMachineRecycleService.java

@@ -74,10 +74,9 @@ public interface KxsMachineRecycleService extends IService<KxsMachineRecycle> {
      * 机具回收-待确认列表
      *
      * @param page    页
-     * @param brandId 品牌 ID
      * @return {@link IPage}<{@link NeedConfirmRecycleVO}>
      */
-    IPage<NeedConfirmRecycleVO> needConfirmList(Page<NeedConfirmRecycleVO> page, Integer brandId);
+    List<NeedConfirmRecycleVO> needConfirmList(Page<NeedConfirmRecycleVO> page);
 
     /**
      * 可回收数量接口

+ 29 - 8
kxs-store/kxs-store-biz/src/main/java/com/kxs/store/biz/service/impl/KxsMachineRecycleServiceImpl.java

@@ -1,8 +1,6 @@
 package com.kxs.store.biz.service.impl;
 
-import cn.hutool.core.lang.Snowflake;
 import cn.hutool.core.util.IdUtil;
-import cn.hutool.core.util.StrUtil;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -25,10 +23,8 @@ import com.kxs.store.api.dto.kxsapp.storeRecycle.UserReturnRecycleDTO;
 import com.kxs.store.api.model.KxsMachineRecycleInfo;
 import com.kxs.store.api.model.KxsWarehouse;
 import com.kxs.store.api.vo.kxsapp.storeRecycle.*;
-import com.kxs.store.biz.constant.enums.MachineRecycleStatusEnum;
 import com.kxs.store.biz.constant.enums.RecycleOrderEnum;
 import com.kxs.store.biz.constant.enums.StoreErrorTypeEnum;
-import com.kxs.store.biz.constant.enums.StoreStatusEnum;
 import com.kxs.store.biz.mapper.KxsMachineRecycleInfoMapper;
 import com.kxs.store.biz.mapper.KxsMachineRecycleMapper;
 import com.kxs.store.api.model.KxsMachineRecycle;
@@ -46,8 +42,11 @@ import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import java.time.LocalDateTime;
+import java.util.ArrayList;
 import java.util.List;
+import java.util.Map;
 import java.util.Objects;
+import java.util.stream.Collectors;
 
 /**
  * 客小爽仓库机具回收申请表(KxsMachineRecycle)表服务实现类
@@ -277,11 +276,25 @@ public class KxsMachineRecycleServiceImpl extends ServiceImpl<KxsMachineRecycleM
     }
 
     @Override
-    public IPage<NeedConfirmRecycleVO> needConfirmList(Page<NeedConfirmRecycleVO> page, Integer brandId) {
+    public List<NeedConfirmRecycleVO> needConfirmList(Page<NeedConfirmRecycleVO> page) {
 
         Long userId = SecurityUtils.getUser().getId();
+        List<NeedConfirmPosListVO> list = baseMapper.needConfirmList(page, userId);
+        //按照品牌ID分组
+        Map<Integer, List<NeedConfirmPosListVO>> listMap = list.stream().collect(Collectors.groupingBy(NeedConfirmPosListVO::getBrandId));
+        List<NeedConfirmRecycleVO> needList = new ArrayList<>();
+        for (Integer brandId : listMap.keySet()) {
+            R<KxsBrand> kxsBrandR = remoteKxsProductService.loadByBrand(brandId, SecurityConstants.FROM_IN);
+            KxsBrand brand = RetOps.of(kxsBrandR)
+                    .getData()
+                    .orElseThrow(() -> new GlobalCustomerException(StoreErrorTypeEnum.DATA_ERROR.getDescription()));
+            needList.add(NeedConfirmRecycleVO.builder()
+                    .brandId(brandId)
+                    .brandName(brand.getName())
+                    .posList(listMap.get(brandId)).build());
+        }
 
-        return baseMapper.needConfirmList(page, userId, brandId);
+        return needList;
 
     }
 
@@ -317,10 +330,18 @@ public class KxsMachineRecycleServiceImpl extends ServiceImpl<KxsMachineRecycleM
                 throw new GlobalCustomerException(sn + "机具已处理");
             }
             //回收机具
-            recycleInfo.setStatus(RecycleOrderEnum.INFO_RETURN.getType());
-            kxsMachineRecycleInfoMapper.updateById(recycleInfo);
+//            recycleInfo.setStatus(RecycleOrderEnum.INFO_RETURN.getType());
+//            kxsMachineRecycleInfoMapper.updateById(recycleInfo);
 
 
+            kxsMachineRecycleInfoMapper.deleteById(recycleInfo.getId());
+            //都处理完成后主订单状态字段修改为完成
+            Long count = kxsMachineRecycleInfoMapper.selectCount(Wrappers.lambdaQuery(KxsMachineRecycleInfo.class)
+                    .eq(KxsMachineRecycleInfo::getOrderId, recycleInfo.getOrderId()));
+            if (count == 0) {
+                baseMapper.deleteById(recycleInfo.getOrderId());
+            }
+
         });
 
         return R.ok();

+ 2 - 3
kxs-store/kxs-store-biz/src/main/resources/mapper/KxsMachineRecycleMapper.xml

@@ -101,13 +101,12 @@
         </where>
         order by a.create_time desc
     </select>
-    <select id="needConfirmList" resultType="com.kxs.store.api.vo.kxsapp.storeRecycle.NeedConfirmRecycleVO">
-        select a.pos_sn, a.recycle_end_time
+    <select id="needConfirmList" resultType="com.kxs.store.api.vo.kxsapp.storeRecycle.NeedConfirmPosListVO">
+        select a.pos_sn, a.recycle_end_time, a.brand_id
         from kxs_machine_recycle_info a
                  left join kxs_machine_recycle b on a.order_id = b.id
         where b.user_id = #{userId}
           and a.status = 0
-          and a.brand_id = #{brandId}
     </select>
     <select id="recoverableData" resultType="java.lang.Integer">
         select count(*)

+ 12 - 1
kxs-transfer/src/main/java/com/kxs/transfer/api/service/store/impl/KxsMachineRecycleServiceImpl.java

@@ -5,6 +5,7 @@ import cn.hutool.core.date.LocalDateTimeUtil;
 import com.aliyun.dts.subscribe.clients.record.OperationType;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.kxs.common.core.constant.CommonConstants;
 import com.kxs.product.api.model.KxsBrand;
 import com.kxs.product.api.model.KxsMachine;
 import com.kxs.store.api.model.KxsMachineRecycle;
@@ -185,8 +186,18 @@ public class KxsMachineRecycleServiceImpl extends ServiceImpl<KxsMachineRecycleM
         }
 
         if(operation.equals(OperationType.UPDATE)){
-
             kxsMachineRecycleInfoMapper.updateById(machineRecycle);
+            //都处理完成后主订单状态字段修改为完成
+            Long count = kxsMachineRecycleInfoMapper.selectCount(Wrappers.lambdaQuery(KxsMachineRecycleInfo.class)
+                    .eq(KxsMachineRecycleInfo::getStatus, 0)
+                    .eq(KxsMachineRecycleInfo::getOrderId, machineRecycle.getOrderId()));
+            if (count == 0) {
+                machineRecycle.setStatus(CommonConstants.SUCCESS);
+                this.update(Wrappers.<KxsMachineRecycle>lambdaUpdate().
+                        eq(KxsMachineRecycle::getId, machineRecycle.getOrderId())
+                        .set(KxsMachineRecycle::getStatus, 1)
+                );
+            }
         }
 
     }