瀏覽代碼

杰生重构 质检记录

home 2 年之前
父節點
當前提交
49a70c0352
共有 15 個文件被更改,包括 282 次插入19 次删除
  1. 5 0
      hx-service-api/storage-restructure-api/src/main/java/com/fjhx/entity/quality/QualityTesting.java
  2. 5 0
      hx-service-api/storage-restructure-api/src/main/java/com/fjhx/entity/quality/QualityTestingDetails.java
  3. 15 1
      hx-service/storage-restructure/src/main/java/com/fjhx/controller/contract/ContractDetailsController.java
  4. 42 0
      hx-service/storage-restructure/src/main/java/com/fjhx/controller/quality/QualityTestingController.java
  5. 7 0
      hx-service/storage-restructure/src/main/java/com/fjhx/mapper/contract/ContractDetailsMapper.java
  6. 16 0
      hx-service/storage-restructure/src/main/java/com/fjhx/mapper/contract/ContractDetailsMapper.xml
  7. 4 0
      hx-service/storage-restructure/src/main/java/com/fjhx/mapper/quality/QualityTestingMapper.java
  8. 29 0
      hx-service/storage-restructure/src/main/java/com/fjhx/mapper/quality/QualityTestingMapper.xml
  9. 16 15
      hx-service/storage-restructure/src/main/java/com/fjhx/mapper/supplier/SupplierMapper.xml
  10. 8 0
      hx-service/storage-restructure/src/main/java/com/fjhx/service/contract/ContractDetailsService.java
  11. 19 0
      hx-service/storage-restructure/src/main/java/com/fjhx/service/contract/impl/ContractDetailsServiceImpl.java
  12. 7 0
      hx-service/storage-restructure/src/main/java/com/fjhx/service/quality/QualityTestingDetailsService.java
  13. 4 0
      hx-service/storage-restructure/src/main/java/com/fjhx/service/quality/QualityTestingService.java
  14. 44 0
      hx-service/storage-restructure/src/main/java/com/fjhx/service/quality/impl/QualityTestingDetailsServiceImpl.java
  15. 61 3
      hx-service/storage-restructure/src/main/java/com/fjhx/service/quality/impl/QualityTestingServiceImpl.java

+ 5 - 0
hx-service-api/storage-restructure-api/src/main/java/com/fjhx/entity/quality/QualityTesting.java

@@ -79,6 +79,11 @@ public class QualityTesting extends StorageBaseEntity {
     private Integer checkJudgment;
 
     /**
+     * 质检人员id
+     */
+    private Long checkUserId;
+
+    /**
      * 质检完成时间
      */
     private Date checkTime;

+ 5 - 0
hx-service-api/storage-restructure-api/src/main/java/com/fjhx/entity/quality/QualityTestingDetails.java

@@ -33,6 +33,11 @@ public class QualityTestingDetails extends StorageBaseEntity {
     private Long waterTagId;
 
     /**
+     * rfid
+     */
+    private String rfidCode;
+
+    /**
      * 物料id
      */
     private Long materialId;

+ 15 - 1
hx-service/storage-restructure/src/main/java/com/fjhx/controller/contract/ContractDetailsController.java

@@ -1,10 +1,17 @@
 package com.fjhx.controller.contract;
 
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.base.Condition;
 import com.fjhx.service.contract.ContractDetailsService;
+import org.springblade.core.tool.api.R;
 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>
  * 采购合同明细 前端控制器
@@ -20,6 +27,13 @@ public class ContractDetailsController {
     @Autowired
     private ContractDetailsService contractDetailsService;
 
-
+    /**
+     * 入库分页记录
+     */
+    @PostMapping("/inPage")
+    public R inPage(@RequestBody Condition condition) {
+        Page<Map<String, Object>> result = contractDetailsService.getInPage(condition);
+        return R.success(result);
+    }
 
 }

+ 42 - 0
hx-service/storage-restructure/src/main/java/com/fjhx/controller/quality/QualityTestingController.java

@@ -2,6 +2,8 @@ package com.fjhx.controller.quality;
 
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.fjhx.base.Condition;
+import com.fjhx.entity.quality.QualityTestingDetails;
+import com.fjhx.service.quality.QualityTestingDetailsService;
 import com.fjhx.service.quality.QualityTestingService;
 import org.springblade.core.tool.api.R;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -27,6 +29,9 @@ public class QualityTestingController {
     @Autowired
     private QualityTestingService qualityTestingService;
 
+    @Autowired
+    private QualityTestingDetailsService qualityTestingDetailsService;
+
     @PostMapping("/page")
     public R page(@RequestBody Condition condition) {
         Page<Map<String, Object>> result = qualityTestingService.getPage(condition);
@@ -48,5 +53,42 @@ public class QualityTestingController {
         return R.success();
     }
 
+    /**
+     * 质检记录统计
+     */
+    @PostMapping("/recordStatistics")
+    public R recordStatistics(@RequestBody Condition condition) {
+        Map<String, Object> result = qualityTestingService.recordStatistics(condition);
+        return R.success(result);
+    }
+
+    /**
+     * 质检记录分页
+     */
+    @PostMapping("/recordPage")
+    public R recordPage(@RequestBody Condition condition) {
+        Page<Map<String, Object>> result = qualityTestingService.recordPage(condition);
+        return R.success(result);
+    }
+
+    /**
+     * 质检记录明细统计
+     */
+    @PostMapping("/recordDetailStatistics")
+    public R recordDetailStatistics(@RequestBody Condition condition) {
+        Map<String, Object> result = qualityTestingDetailsService.recordDetailStatistics(condition);
+        return R.success(result);
+    }
+
+    /**
+     * 质检记录明细分页
+     */
+    @PostMapping("/recordDetailPage")
+    public R recordDetailPage(@RequestBody Condition condition) {
+        Page<QualityTestingDetails> result = qualityTestingDetailsService.recordDetailPage(condition);
+        return R.success(result);
+    }
+
+
 }
 

+ 7 - 0
hx-service/storage-restructure/src/main/java/com/fjhx/mapper/contract/ContractDetailsMapper.java

@@ -1,7 +1,12 @@
 package com.fjhx.mapper.contract;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.fjhx.entity.contract.ContractDetails;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.Map;
 
 /**
  * <p>
@@ -13,4 +18,6 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  */
 public interface ContractDetailsMapper extends BaseMapper<ContractDetails> {
 
+    Page<Map<String, Object>> getInPage(@Param("page") Page<Object> page, @Param("ew") QueryWrapper<Object> wrapper);
+
 }

+ 16 - 0
hx-service/storage-restructure/src/main/java/com/fjhx/mapper/contract/ContractDetailsMapper.xml

@@ -2,4 +2,20 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.fjhx.mapper.contract.ContractDetailsMapper">
 
+    <select id="getInPage" resultType="java.util.LinkedHashMap">
+        select cd.apply_purchase_id,
+               cd.apply_purchase_code,
+               cd.id   contract_details_id,
+               cd.code contract_details_code,
+               m.code  material_code,
+               m.name  material_name,
+               cd.quantity,
+               cd.arrival_quantity,
+               cd.afloat_quantity,
+               cd.complete_status
+        from contract_details cd
+                 left join material m on cd.material_id = m.id
+            ${ew.customSqlSegment}
+    </select>
+
 </mapper>

+ 4 - 0
hx-service/storage-restructure/src/main/java/com/fjhx/mapper/quality/QualityTestingMapper.java

@@ -20,4 +20,8 @@ public interface QualityTestingMapper extends BaseMapper<QualityTesting> {
 
     Page<Map<String, Object>> getPage(@Param("page") Page<Object> page, @Param("ew") QueryWrapper<Object> wrapper);
 
+    Map<String, Object> recordStatistics(@Param("ew") QueryWrapper<Object> wrapper);
+
+    Page<Map<String, Object>> recordPage(@Param("page") Page<Object> page, @Param("ew") QueryWrapper<Object> wrapper);
+
 }

+ 29 - 0
hx-service/storage-restructure/src/main/java/com/fjhx/mapper/quality/QualityTestingMapper.xml

@@ -19,4 +19,33 @@
             ${ew.customSqlSegment}
     </select>
 
+    <select id="recordStatistics" resultType="java.util.Map">
+        select count(0)                                                    count,
+               ifnull(sum(qt.check_area), 0)                               sumArea,
+               ifnull(round(sum(qt.check_invalid_ratio) / count(0), 2), 0) invalidRatio,
+               ifnull(sum(if(qt.check_judgment = 1, 1, 0)), 0)             qualifiedCount,
+               ifnull(sum(if(qt.check_judgment = 2, 1, 0)), 0)             unqualifiedCount
+        from quality_testing qt
+            ${ew.customSqlSegment}
+    </select>
+
+    <select id="recordPage" resultType="java.util.LinkedHashMap">
+        select qt.id,
+               wb.contract_code,
+               wb.code        batchCode,
+               m.code         materialCode,
+               m.name         materialName,
+               wb.tag_quantity_sum,
+               wb.create_time arrivalTime,
+               qt.check_user_id,
+               qt.check_time,
+               qt.check_area,
+               qt.check_judgment,
+               qt.check_invalid_ratio
+        from quality_testing qt
+                 left join water_batch wb on qt.water_batch_id = wb.id
+                 left join material m on qt.material_id = m.id
+            ${ew.customSqlSegment}
+    </select>
+
 </mapper>

+ 16 - 15
hx-service/storage-restructure/src/main/java/com/fjhx/mapper/supplier/SupplierMapper.xml

@@ -3,18 +3,19 @@
 <mapper namespace="com.fjhx.mapper.supplier.SupplierMapper">
 
     <select id="getPage" resultType="java.util.LinkedHashMap">
-        select distinct s.id,
-                        s.code supplierCoded,
-                        s.name supplierName,
-                        mc.name malssifyName,
-                        s.account_date accountDate,
-                        s.account_date_remark accountDateRemark,
-                        sc.link_men linkMen,
-                        s.telephone
+        select distinct
+            s.id,
+            s.code supplierCoded,
+            s.name supplierName,
+            mc.name malssifyName,
+            s.account_date accountDate,
+            s.account_date_remark accountDateRemark,
+            sc.link_men linkMen,
+            sc.telephone
         from supplier s
         left join supplier_price sp on s.id = sp.supplier_id
         left join material m on m.id = sp.material_id
-        left join material_classify mc on m.classify_id = mc.id
+        left join material_classify mc on m.material_classify_id = mc.id
         left join supplier_contacts sc on sc.supplier_id = s.id
         where s.del_flag = 0
         <include refid="condition"/>
@@ -54,12 +55,12 @@
     <select id="getStatistics" resultType="java.util.Map">
         select t.technology_type type, count(0) count
         from (
-            select distinct s.id, m.technology_type
-            from supplier_price sp
-            inner join supplier s on s.id = sp.supplier_id
-            inner join material m on m.id = sp.material_id
-            where s.del_flag = 0
-            <include refid="condition"/>
+        select distinct s.id, m.technology_type
+        from supplier_price sp
+        inner join supplier s on s.id = sp.supplier_id
+        inner join material m on m.id = sp.material_id
+        where s.del_flag = 0
+        <include refid="condition"/>
         ) t
         group by t.technology_type
         order by t.technology_type

+ 8 - 0
hx-service/storage-restructure/src/main/java/com/fjhx/service/contract/ContractDetailsService.java

@@ -1,10 +1,13 @@
 package com.fjhx.service.contract;
 
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.base.Condition;
 import com.fjhx.base.StorageBaseService;
 import com.fjhx.entity.contract.ContractDetails;
 import com.fjhx.entity.water.WaterTag;
 
 import java.util.List;
+import java.util.Map;
 
 /**
  * <p>
@@ -37,4 +40,9 @@ public interface ContractDetailsService extends StorageBaseService<ContractDetai
      */
     void updateBackQuantity(List<WaterTag> waterTagList);
 
+    /**
+     * 入库分页记录
+     */
+    Page<Map<String, Object>> getInPage(Condition condition);
+
 }

+ 19 - 0
hx-service/storage-restructure/src/main/java/com/fjhx/service/contract/impl/ContractDetailsServiceImpl.java

@@ -1,7 +1,11 @@
 package com.fjhx.service.contract.impl;
 
+import cn.hutool.core.util.ObjectUtil;
+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.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.fjhx.base.Condition;
 import com.fjhx.base.StorageBaseEntity;
 import com.fjhx.constants.StatusConstant;
 import com.fjhx.entity.contract.Contract;
@@ -158,4 +162,19 @@ public class ContractDetailsServiceImpl extends ServiceImpl<ContractDetailsMappe
         updateBatchById(contractDetailsList);
     }
 
+    @Override
+    public Page<Map<String, Object>> getInPage(Condition condition) {
+        String keyword = condition.getKeyword();
+        Integer completeStatus = condition.getStatus();
+
+        QueryWrapper<Object> wrapper = Wrappers.query();
+
+        wrapper.and(ObjectUtil.isNotEmpty(keyword),
+                        q -> q.like("m.code", keyword).or().like("m.name", keyword))
+                .eq(ObjectUtil.isNotEmpty(completeStatus), "cd.complete_status", completeStatus)
+                .orderByDesc("cd.id");
+
+        return baseMapper.getInPage(condition.getPage(), wrapper);
+    }
+
 }

+ 7 - 0
hx-service/storage-restructure/src/main/java/com/fjhx/service/quality/QualityTestingDetailsService.java

@@ -1,9 +1,13 @@
 package com.fjhx.service.quality;
 
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.base.Condition;
 import com.fjhx.base.StorageBaseService;
 import com.fjhx.entity.quality.QualityTestingDetails;
 import com.fjhx.params.quality.QualityTestingDetailsVo;
 
+import java.util.Map;
+
 /**
  * <p>
  * 质检明细 服务类
@@ -20,5 +24,8 @@ public interface QualityTestingDetailsService extends StorageBaseService<Quality
 
     void delete(QualityTestingDetailsVo qualityTestingDetailsVo);
 
+    Map<String, Object> recordDetailStatistics(Condition condition);
+
+    Page<QualityTestingDetails> recordDetailPage(Condition condition);
 
 }

+ 4 - 0
hx-service/storage-restructure/src/main/java/com/fjhx/service/quality/QualityTestingService.java

@@ -29,4 +29,8 @@ public interface QualityTestingService extends StorageBaseService<QualityTesting
 
     void submit(Condition condition);
 
+    Map<String, Object> recordStatistics(Condition condition);
+
+    Page<Map<String, Object>> recordPage(Condition condition);
+
 }

+ 44 - 0
hx-service/storage-restructure/src/main/java/com/fjhx/service/quality/impl/QualityTestingDetailsServiceImpl.java

@@ -1,15 +1,22 @@
 package com.fjhx.service.quality.impl;
 
+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.entity.quality.QualityTestingDetails;
 import com.fjhx.mapper.quality.QualityTestingDetailsMapper;
 import com.fjhx.params.quality.QualityTestingDetailsVo;
 import com.fjhx.service.quality.QualityTestingDetailsService;
 import com.fjhx.service.quality.QualityTestingService;
+import com.fjhx.utils.Assert;
+import org.springblade.core.tool.utils.ObjectUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.util.Map;
+
 /**
  * <p>
  * 质检明细 服务实现类
@@ -45,4 +52,41 @@ public class QualityTestingDetailsServiceImpl extends ServiceImpl<QualityTesting
         qualityTestingService.edit(-1, qualityTestingDetailsVo.getQualityTestingId());
     }
 
+    @Override
+    public Map<String, Object> recordDetailStatistics(Condition condition) {
+
+        Long qualityTestingId = condition.getLong("qualityTestingId");
+        Assert.notEmpty(qualityTestingId, "质检id不能为空");
+
+        return getMap(Wrappers.<QualityTestingDetails>query()
+                .select(
+                        "count(0) count",
+                        "ifnull(sum(if(check_judgment=0 or check_judgment=1,1,0)),0) qualifiedCount",
+                        "ifnull(sum(if(check_judgment=2,1,0)),0) unqualifiedCount")
+                .lambda()
+                .eq(QualityTestingDetails::getQualityTestingId, qualityTestingId)
+        );
+
+    }
+
+    @Override
+    public Page<QualityTestingDetails> recordDetailPage(Condition condition) {
+
+        Long qualityTestingId = condition.getLong("qualityTestingId");
+        Assert.notEmpty(qualityTestingId, "质检id不能为空");
+
+        Integer status = condition.getStatus();
+
+        return lambdaQuery()
+                .eq(QualityTestingDetails::getQualityTestingId, qualityTestingId)
+                .func(ObjectUtil.isNotEmpty(status), q -> {
+                    if (status.equals(1)) {
+                        q.in(QualityTestingDetails::getCheckJudgment, 0, 1);
+                    } else {
+                        q.eq(QualityTestingDetails::getCheckJudgment, 2);
+                    }
+                })
+                .page(condition.getPage());
+    }
+
 }

+ 61 - 3
hx-service/storage-restructure/src/main/java/com/fjhx/service/quality/impl/QualityTestingServiceImpl.java

@@ -2,6 +2,7 @@ package com.fjhx.service.quality.impl;
 
 import cn.hutool.core.convert.Convert;
 import cn.hutool.core.date.DateUtil;
+import cn.hutool.core.util.ObjectUtil;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -28,6 +29,7 @@ import com.fjhx.service.water.WaterBatchService;
 import com.fjhx.service.water.WaterTagService;
 import com.fjhx.utils.Assert;
 import com.fjhx.utils.BigDecimalUtil;
+import com.fjhx.utils.UserClientUtil;
 import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.core.tool.utils.ThreadUtil;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -278,12 +280,13 @@ public class QualityTestingServiceImpl extends ServiceImpl<QualityTestingMapper,
         }
 
         qualityTesting.setCompleteStatus(StatusConstant.YES);
+        qualityTesting.setCheckUserId(AuthUtil.getUserId());
         qualityTesting.setCheckTime(date);
         qualityTesting.setCheckQuantity(checkQuantity);
         qualityTesting.setCheckArea(checkQuantity.multiply(width).divide(new BigDecimal(100), RoundingMode.HALF_UP));
         qualityTesting.setCheckJudgment(checkJudgment);
         qualityTesting.setAdjustRate(lakeNumSum.divide(checkQuantity, RoundingMode.HALF_UP));
-        qualityTesting.setCheckInvalidRatio(getCheckInvalidRatio(qualityTesting.getCreateTime()));
+        qualityTesting.setCheckInvalidRatio(getCheckInvalidRatio(date, qualityTesting.getCreateTime()));
         updateById(qualityTesting);
 
         // 同批次其他标签改为无需质检
@@ -303,6 +306,51 @@ public class QualityTestingServiceImpl extends ServiceImpl<QualityTestingMapper,
 
     }
 
+    @Override
+    public Map<String, Object> recordStatistics(Condition condition) {
+        QueryWrapper<Object> wrapper = Wrappers.query();
+        creationTimeCondition(wrapper, condition);
+        wrapper.eq("qt.complete_status", StatusConstant.YES)
+                .eq("qt.del_flag", StatusConstant.NOT_DELETED);
+
+        return baseMapper.recordStatistics(wrapper);
+    }
+
+    @Override
+    public Page<Map<String, Object>> recordPage(Condition condition) {
+        Integer completeStatus = condition.getInt("completeStatus");
+        Long checkUserId = condition.getLong("checkUserId");
+        String keyword = condition.getKeyword();
+
+        QueryWrapper<Object> wrapper = Wrappers.query();
+
+        creationTimeCondition(wrapper, condition);
+
+        wrapper.eq("qt.del_flag", StatusConstant.NOT_DELETED)
+                .eq(ObjectUtil.isNotEmpty(completeStatus), "qt.complete_status", completeStatus)
+                .eq(ObjectUtil.isNotEmpty(checkUserId), "qt.check_user_id", checkUserId)
+                .and(ObjectUtil.isNotEmpty(keyword), q -> q
+                        .like("wb.contract_code", keyword).or()
+                        .like("m.code", keyword).or()
+                        .like("m.name", keyword));
+
+        Page<Map<String, Object>> page = baseMapper.recordPage(condition.getPage(), wrapper);
+        List<Map<String, Object>> records = page.getRecords();
+        if (records.size() == 0) {
+            return page;
+        }
+
+        Map<Long, String> userMap = UserClientUtil.getUserNameMapFunctionLong(records,
+                item -> Convert.toLong(item.get("checkUserId")));
+
+
+        for (Map<String, Object> record : records) {
+            record.put("checkUserName", userMap.get(Convert.toLong(record.get("checkUserId"))));
+        }
+
+        return page;
+    }
+
     private static String getCode() {
         ThreadUtil.sleep(1);
         return "TP-" + DateUtil.format(new Date(), "yyMMdd-HHmmss-SSS");
@@ -311,8 +359,8 @@ public class QualityTestingServiceImpl extends ServiceImpl<QualityTestingMapper,
     /**
      * 计算质检及时率
      */
-    private Integer getCheckInvalidRatio(Date createTime) {
-        long day = DateUtil.betweenDay(createTime, new Date(), false);
+    private Integer getCheckInvalidRatio(Date date, Date createTime) {
+        long day = DateUtil.betweenDay(createTime, date, false);
 
         if (day <= 3) {
             return 100;
@@ -321,4 +369,14 @@ public class QualityTestingServiceImpl extends ServiceImpl<QualityTestingMapper,
         return Math.max(Convert.toInt(100 - (day - 3) * 5), 0);
     }
 
+    /**
+     * 创建时间条件
+     */
+    private void creationTimeCondition(QueryWrapper<Object> wrapper, Condition condition) {
+        Date beginTime = condition.getBeginTime();
+        Date endTime = condition.getEndTime();
+
+        wrapper.between(ObjectUtil.isAllNotEmpty(beginTime, endTime), "qt.create_time", beginTime, endTime);
+    }
+
 }