home 2 年 前
コミット
38650a4a53
16 ファイル変更388 行追加63 行削除
  1. 1 1
      hx-common/code-generator/src/main/java/com/fjhx/modular/StorageRestructure.java
  2. 15 0
      hx-service-api/storage-restructure-api/src/main/java/com/fjhx/base/StorageBaseService.java
  3. 10 7
      hx-service-api/storage-restructure-api/src/main/java/com/fjhx/entity/check/CheckDetail.java
  4. 77 0
      hx-service-api/storage-restructure-api/src/main/java/com/fjhx/entity/check/CheckTag.java
  5. 5 0
      hx-service-api/storage-restructure-api/src/main/java/com/fjhx/params/check/CheckDetailVo.java
  6. 17 0
      hx-service-api/storage-restructure-api/src/main/java/com/fjhx/params/check/CheckTagEx.java
  7. 17 0
      hx-service-api/storage-restructure-api/src/main/java/com/fjhx/params/check/CheckTagVo.java
  8. 4 16
      hx-service/storage-restructure/src/main/java/com/fjhx/controller/check/CheckController.java
  9. 56 0
      hx-service/storage-restructure/src/main/java/com/fjhx/controller/check/CheckTagController.java
  10. 3 1
      hx-service/storage-restructure/src/main/java/com/fjhx/mapper/check/CheckInfoMapper.xml
  11. 16 0
      hx-service/storage-restructure/src/main/java/com/fjhx/mapper/check/CheckTagMapper.java
  12. 5 0
      hx-service/storage-restructure/src/main/java/com/fjhx/mapper/check/CheckTagMapper.xml
  13. 11 9
      hx-service/storage-restructure/src/main/java/com/fjhx/service/check/CheckInfoService.java
  14. 28 0
      hx-service/storage-restructure/src/main/java/com/fjhx/service/check/CheckTagService.java
  15. 69 29
      hx-service/storage-restructure/src/main/java/com/fjhx/service/check/impl/CheckInfoServiceImpl.java
  16. 54 0
      hx-service/storage-restructure/src/main/java/com/fjhx/service/check/impl/CheckTagServiceImpl.java

+ 1 - 1
hx-common/code-generator/src/main/java/com/fjhx/modular/StorageRestructure.java

@@ -12,7 +12,7 @@ public class StorageRestructure {
         CodeGenerator.MODULAR_NAME = "storage-restructure";
 
         // 需要生成的表名称,多表用,隔开
-        CodeGenerator.INCLUDE = "check_detail";
+        CodeGenerator.INCLUDE = "check_tag";
 
         // mysql连接
         CodeGenerator.MYSQL_URL = "36.134.91.96:17330";

+ 15 - 0
hx-service-api/storage-restructure-api/src/main/java/com/fjhx/base/StorageBaseService.java

@@ -3,6 +3,7 @@ package com.fjhx.base;
 import cn.hutool.core.util.ObjectUtil;
 import com.baomidou.mybatisplus.core.conditions.Wrapper;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.core.toolkit.support.SFunction;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -103,6 +104,13 @@ public interface StorageBaseService<T> extends IService<T> {
     }
 
     /**
+     * 条件查询
+     */
+    default Long count(Consumer<LambdaQueryWrapper<T>> consumer) {
+        return count(Wrappers.<T>lambdaQuery().func(consumer));
+    }
+
+    /**
      * 按指定规则删除
      */
     default boolean remove(SFunction<T, ?> column, Long val) {
@@ -116,6 +124,13 @@ public interface StorageBaseService<T> extends IService<T> {
         return remove(Wrappers.<T>lambdaQuery().in(column, val));
     }
 
+    /**
+     * 条件查询
+     */
+    default void update(Consumer<LambdaUpdateWrapper<T>> consumer) {
+        update(Wrappers.<T>lambdaUpdate().func(consumer));
+    }
+
     @Override
     default boolean save(T entity) {
         setCreateInfo(entity);

+ 10 - 7
hx-service-api/storage-restructure-api/src/main/java/com/fjhx/entity/check/CheckDetail.java

@@ -1,17 +1,15 @@
 package com.fjhx.entity.check;
 
-import java.math.BigDecimal;
-import com.baomidou.mybatisplus.annotation.IdType;
-import java.util.Date;
-import com.baomidou.mybatisplus.annotation.Version;
-import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.FieldFill;
-import com.fjhx.base.StorageBaseEntity;
-import com.baomidou.mybatisplus.annotation.TableLogic;
 import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.fjhx.base.StorageBaseEntity;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 
+import java.math.BigDecimal;
+import java.util.Date;
+
 /**
  * <p>
  * 盘点明细
@@ -76,6 +74,11 @@ public class CheckDetail extends StorageBaseEntity {
     private Integer completeCheck;
 
     /**
+     * 盘点结果 1正常 0异常
+     */
+    private Integer checkResult;
+
+    /**
      * 审批状态(0待审批,1审批中,2已审批,3已驳回,4已撤回)
      */
     private Integer flowStatus;

+ 77 - 0
hx-service-api/storage-restructure-api/src/main/java/com/fjhx/entity/check/CheckTag.java

@@ -0,0 +1,77 @@
+package com.fjhx.entity.check;
+
+import java.math.BigDecimal;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.Version;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.fjhx.base.StorageBaseEntity;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.baomidou.mybatisplus.annotation.TableField;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * <p>
+ * 盘点标签表
+ * </p>
+ *
+ * @author ${author}
+ * @since 2022-11-04
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class CheckTag extends StorageBaseEntity {
+
+
+    /**
+     * 盘点明细id
+     */
+    private Long checkDetailId;
+
+    /**
+     * 标签id
+     */
+    private Long stockTagId;
+
+    /**
+     * 物料数量
+     */
+    private BigDecimal quantity;
+
+    /**
+     * rfid
+     */
+    private String rfidCode;
+
+    /**
+     * 新物料数量
+     */
+    private BigDecimal newQuantity;
+
+    /**
+     * 新rfid
+     */
+    private String newRfidCode;
+
+    /**
+     * 标签处理类型 (0不处理,10标签损坏,11盘盈,13补入库,21盘亏,23补出库,24绑定错误)
+     */
+    private Integer handleType;
+
+    /**
+     * 标签状态 (0正常,1不在库存,2未扫描到)
+     */
+    private Integer tagStatus;
+
+    /**
+     * 逻辑删除 0未删除 1已删除
+     */
+    @TableField(fill = FieldFill.INSERT)
+    @TableLogic
+    private Integer delFlag;
+
+    private String oldId;
+
+
+}

+ 5 - 0
hx-service-api/storage-restructure-api/src/main/java/com/fjhx/params/check/CheckDetailVo.java

@@ -1,9 +1,12 @@
 package com.fjhx.params.check;
 
 import com.fjhx.entity.check.CheckDetail;
+import com.fjhx.entity.check.CheckTag;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 
+import java.util.List;
+
 /**
  * 盘点明细
  *
@@ -14,4 +17,6 @@ import lombok.EqualsAndHashCode;
 @EqualsAndHashCode(callSuper = true)
 public class CheckDetailVo extends CheckDetail {
 
+    private List<CheckTag> checkTagList;
+
 }

+ 17 - 0
hx-service-api/storage-restructure-api/src/main/java/com/fjhx/params/check/CheckTagEx.java

@@ -0,0 +1,17 @@
+package com.fjhx.params.check;
+
+import com.fjhx.entity.check.CheckTag;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * 盘点标签表
+ *
+ * @author ${author}
+ * @since 2022-11-04
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class CheckTagEx extends CheckTag {
+
+}

+ 17 - 0
hx-service-api/storage-restructure-api/src/main/java/com/fjhx/params/check/CheckTagVo.java

@@ -0,0 +1,17 @@
+package com.fjhx.params.check;
+
+import com.fjhx.entity.check.CheckTag;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * 盘点标签表
+ *
+ * @author ${author}
+ * @since 2022-11-04
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class CheckTagVo extends CheckTag {
+
+}

+ 4 - 16
hx-service/storage-restructure/src/main/java/com/fjhx/controller/check/CheckController.java

@@ -2,9 +2,8 @@ package com.fjhx.controller.check;
 
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.fjhx.base.Condition;
-import com.fjhx.entity.water.Water;
 import com.fjhx.entity.water.WaterTag;
-import com.fjhx.params.check.CheckInfoVo;
+import com.fjhx.params.check.CheckDetailVo;
 import com.fjhx.service.check.CheckInfoService;
 import com.fjhx.service.water.WaterTagService;
 import org.springblade.core.tool.api.R;
@@ -47,21 +46,10 @@ public class CheckController {
         return R.success(result);
     }
 
-    @PostMapping("/add")
-    public R add(@RequestBody CheckInfoVo checkVo) {
-        checkInfoService.add(checkVo);
-        return R.success();
-    }
-
-    @PostMapping("/edit")
-    public R edit(@RequestBody CheckInfoVo checkVo) {
-        checkInfoService.edit(checkVo);
-        return R.success();
-    }
 
-    @PostMapping("/delete")
-    public R delete(@RequestBody CheckInfoVo checkVo) {
-        checkInfoService.delete(checkVo);
+    @PostMapping("/submit")
+    public R submit(@RequestBody CheckDetailVo checkDetailVo) {
+        checkInfoService.submit(checkDetailVo);
         return R.success();
     }
 

+ 56 - 0
hx-service/storage-restructure/src/main/java/com/fjhx/controller/check/CheckTagController.java

@@ -0,0 +1,56 @@
+package com.fjhx.controller.check;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.springblade.core.tool.api.R;
+import com.fjhx.entity.check.CheckTag;
+import com.fjhx.params.check.CheckTagVo;
+import com.fjhx.service.check.CheckTagService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.Map;
+
+/**
+ * <p>
+ * 盘点标签表 前端控制器
+ * </p>
+ *
+ * @author ${author}
+ * @since 2022-11-04
+ */
+@RestController
+@RequestMapping("/checkTag")
+public class CheckTagController {
+
+    @Autowired
+    private CheckTagService checkTagService;
+
+    @PostMapping("/page")
+    public R page(@RequestBody Map<String, String> condition){
+        Page<CheckTag> result = checkTagService.getPage(condition);
+        return R.success(result);
+    }
+
+    @PostMapping("/add")
+    public R add(@RequestBody CheckTagVo checkTagVo){
+        checkTagService.add(checkTagVo);
+        return R.success();
+    }
+
+    @PostMapping("/edit")
+    public R edit(@RequestBody CheckTagVo checkTagVo){
+        checkTagService.edit(checkTagVo);
+        return R.success();
+    }
+
+    @PostMapping("/delete")
+    public R delete(@RequestBody CheckTagVo checkTagVo){
+        checkTagService.delete(checkTagVo);
+        return R.success();
+    }
+
+}
+

+ 3 - 1
hx-service/storage-restructure/src/main/java/com/fjhx/mapper/check/CheckInfoMapper.xml

@@ -3,7 +3,9 @@
 <mapper namespace="com.fjhx.mapper.check.CheckInfoMapper">
 
     <select id="getPage" resultType="java.util.Map">
-        select m.technology_type,
+        select cd.id,
+               cd.check_id,
+               m.technology_type,
                m.code  materialCode,
                m.name  materialName,
                sh.name houseName,

+ 16 - 0
hx-service/storage-restructure/src/main/java/com/fjhx/mapper/check/CheckTagMapper.java

@@ -0,0 +1,16 @@
+package com.fjhx.mapper.check;
+
+import com.fjhx.entity.check.CheckTag;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ * 盘点标签表 Mapper 接口
+ * </p>
+ *
+ * @author ${author}
+ * @since 2022-11-04
+ */
+public interface CheckTagMapper extends BaseMapper<CheckTag> {
+
+}

+ 5 - 0
hx-service/storage-restructure/src/main/java/com/fjhx/mapper/check/CheckTagMapper.xml

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.fjhx.mapper.check.CheckTagMapper">
+
+</mapper>

+ 11 - 9
hx-service/storage-restructure/src/main/java/com/fjhx/service/check/CheckInfoService.java

@@ -4,7 +4,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.fjhx.base.Condition;
 import com.fjhx.base.StorageBaseService;
 import com.fjhx.entity.check.CheckInfo;
-import com.fjhx.params.check.CheckInfoVo;
+import com.fjhx.params.check.CheckDetailVo;
 
 import java.util.Map;
 
@@ -18,17 +18,19 @@ import java.util.Map;
  */
 public interface CheckInfoService extends StorageBaseService<CheckInfo> {
 
-    Page<Map<String, Object>> getPage(Condition condition);
-
-    void add(CheckInfoVo checkVo);
-
-    void edit(CheckInfoVo checkVo);
-
-    void delete(CheckInfoVo checkVo);
-
     /**
      * 自动盘点
      */
     void automaticCheck();
 
+    /**
+     * 盘点分页
+     */
+    Page<Map<String, Object>> getPage(Condition condition);
+
+    /**
+     * 提交盘点记录
+     */
+    void submit(CheckDetailVo checkDetailVo);
+
 }

+ 28 - 0
hx-service/storage-restructure/src/main/java/com/fjhx/service/check/CheckTagService.java

@@ -0,0 +1,28 @@
+package com.fjhx.service.check;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.entity.check.CheckTag;
+import com.fjhx.params.check.CheckTagVo;
+import com.fjhx.base.StorageBaseService;
+
+import java.util.Map;
+
+/**
+ * <p>
+ * 盘点标签表 服务类
+ * </p>
+ *
+ * @author ${author}
+ * @since 2022-11-04
+ */
+public interface CheckTagService extends StorageBaseService<CheckTag> {
+
+    Page<CheckTag> getPage(Map<String, String> condition);
+
+    void add(CheckTagVo checkTagVo);
+
+    void edit(CheckTagVo checkTagVo);
+
+    void delete(CheckTagVo checkTagVo);
+
+}

+ 69 - 29
hx-service/storage-restructure/src/main/java/com/fjhx/service/check/impl/CheckInfoServiceImpl.java

@@ -7,20 +7,24 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.fjhx.base.Condition;
+import com.fjhx.base.StorageBaseEntity;
 import com.fjhx.constants.HouseConstant;
 import com.fjhx.constants.StatusConstant;
 import com.fjhx.constants.WebSocketConstant;
 import com.fjhx.entity.check.CheckDetail;
 import com.fjhx.entity.check.CheckInfo;
+import com.fjhx.entity.check.CheckTag;
 import com.fjhx.entity.stock.Stock;
 import com.fjhx.entity.water.WaterTag;
 import com.fjhx.mapper.check.CheckInfoMapper;
-import com.fjhx.params.check.CheckInfoVo;
+import com.fjhx.params.check.CheckDetailVo;
 import com.fjhx.service.WebSocketServer;
 import com.fjhx.service.check.CheckDetailService;
 import com.fjhx.service.check.CheckInfoService;
+import com.fjhx.service.check.CheckTagService;
 import com.fjhx.service.stock.StockService;
 import com.fjhx.service.water.WaterTagService;
+import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.core.tool.utils.ThreadUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -55,33 +59,8 @@ public class CheckInfoServiceImpl extends ServiceImpl<CheckInfoMapper, CheckInfo
     @Autowired
     private CheckDetailService checkDetailService;
 
-    @Override
-    public Page<Map<String, Object>> getPage(Condition condition) {
-        String keyword = condition.getKeyword();
-        Integer status = condition.getStatus();
-
-        QueryWrapper<Object> wrapper = Wrappers.query();
-        wrapper.and(ObjectUtil.isNotEmpty(keyword),
-                        q -> q.like("m.name", keyword).or().like("m.code", keyword))
-                .eq(ObjectUtil.isNotEmpty(status), "cd.complete_check", status);
-
-        return baseMapper.getPage(condition.getPage(), wrapper);
-    }
-
-    @Override
-    public void add(CheckInfoVo checkVo) {
-        save(checkVo);
-    }
-
-    @Override
-    public void edit(CheckInfoVo checkVo) {
-        updateById(checkVo);
-    }
-
-    @Override
-    public void delete(CheckInfoVo checkVo) {
-        removeById(checkVo.getId());
-    }
+    @Autowired
+    private CheckTagService checkTagService;
 
     @Transactional(rollbackFor = Exception.class)
     @Override
@@ -119,11 +98,72 @@ public class CheckInfoServiceImpl extends ServiceImpl<CheckInfoMapper, CheckInfo
 
     }
 
+    @Override
+    public Page<Map<String, Object>> getPage(Condition condition) {
+        String keyword = condition.getKeyword();
+        Integer status = condition.getStatus();
+
+        QueryWrapper<Object> wrapper = Wrappers.query();
+        wrapper.and(ObjectUtil.isNotEmpty(keyword),
+                        q -> q.like("m.name", keyword).or().like("m.code", keyword))
+                .eq(ObjectUtil.isNotEmpty(status), "cd.complete_check", status);
+
+        return baseMapper.getPage(condition.getPage(), wrapper);
+    }
+
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public void submit(CheckDetailVo checkDetailVo) {
+
+        checkDetailVo.setCompleteCheck(StatusConstant.YES);
+        checkDetailVo.setCheckTime(new Date());
+        checkDetailService.updateById(checkDetailVo);
+
+        List<CheckTag> checkTagList = checkDetailVo.getCheckTagList();
+        checkTagService.saveBatch(checkTagList);
+
+        // 检测是否完成全部质检
+        synchronized (this) {
+            Long count = checkDetailService.count(q -> q
+                    .eq(CheckDetail::getCheckId, checkDetailVo.getCheckId())
+                    .eq(CheckDetail::getCompleteCheck, StatusConstant.NO));
+
+            // 盘点完成
+            if (count == 0) {
+
+                Long errorCount = checkDetailService.count(q -> q
+                        .eq(CheckDetail::getCheckId, checkDetailVo.getCheckId())
+                        .eq(CheckDetail::getCheckResult, StatusConstant.NO));
+
+                update(q -> q
+                        .eq(StorageBaseEntity::getId, checkDetailVo.getCheckId())
+                        .set(CheckInfo::getStatus, 2)
+                        .set(CheckInfo::getPeopleCheckResult, errorCount == 0 ? 1 : 0)
+                        .set(CheckInfo::getOperUserId, AuthUtil.getUserId())
+                        .set(CheckInfo::getEndTime, new Date())
+                        .set(StorageBaseEntity::getUpdateTime, new Date())
+                        .set(StorageBaseEntity::getUpdateUser, AuthUtil.getUserId())
+                );
+
+            } else {
+                update(q -> q
+                        .eq(StorageBaseEntity::getId, checkDetailVo.getCheckId())
+                        .set(CheckInfo::getStatus, 1)
+                        .set(StorageBaseEntity::getUpdateTime, new Date())
+                        .set(StorageBaseEntity::getUpdateUser, AuthUtil.getUserId())
+                );
+            }
+
+
+        }
+
+    }
+
     /**
      * 获取在库标签
      */
     private List<WaterTag> getInHouseWaterTag() {
-        return waterTagService.list(Wrappers.<WaterTag>lambdaQuery()
+        return waterTagService.list(q -> q
                 .eq(WaterTag::getStockHouseId, HouseConstant.GROUND_FLOOR_ID)
                 .eq(WaterTag::getInHouse, StatusConstant.YES)
                 .eq(WaterTag::getUseStatus, StatusConstant.YES)

+ 54 - 0
hx-service/storage-restructure/src/main/java/com/fjhx/service/check/impl/CheckTagServiceImpl.java

@@ -0,0 +1,54 @@
+package com.fjhx.service.check.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.utils.WrapperUtil;
+import com.fjhx.entity.check.CheckTag;
+import com.fjhx.params.check.CheckTagVo;
+import com.fjhx.mapper.check.CheckTagMapper;
+import com.fjhx.service.check.CheckTagService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+import java.util.Map;
+
+/**
+ * <p>
+ * 盘点标签表 服务实现类
+ * </p>
+ *
+ * @author ${author}
+ * @since 2022-11-04
+ */
+@Service
+public class CheckTagServiceImpl extends ServiceImpl<CheckTagMapper, CheckTag> implements CheckTagService {
+
+    @Override
+    public Page<CheckTag> getPage(Map<String, String> condition) {
+
+        QueryWrapper<CheckTag> wrapper = Wrappers.query();
+
+        WrapperUtil.init(condition, wrapper)
+                .createTimeDesc();
+
+        Page<CheckTag> page = page(condition, wrapper);
+        return page;
+    }
+
+    @Override
+    public void add(CheckTagVo checkTagVo) {
+        save(checkTagVo);
+    }
+
+    @Override
+    public void edit(CheckTagVo checkTagVo) {
+        updateById(checkTagVo);
+    }
+
+    @Override
+    public void delete(CheckTagVo checkTagVo) {
+        removeById(checkTagVo.getId());
+    }
+
+}