From 84002ef893ed575cd2c9e36b8c1c0ae6c3b28786 Mon Sep 17 00:00:00 2001
From: zouyu <2723363702@qq.com>
Date: 星期二, 07 四月 2026 15:29:09 +0800
Subject: [PATCH] 业务管理:内部订单报检后自动免检

---
 inspect-server/src/main/resources/mapper/InsUnqualifiedHandlerMapper.xml                              |   10 ++--
 inspect-server/src/main/java/com/ruoyi/inspect/mapper/InsSampleUserMapper.java                        |    2 +
 inspect-server/src/main/java/com/ruoyi/inspect/mapper/InsReportMapper.java                            |    2 +
 basic-server/src/main/java/com/ruoyi/basic/mapper/StandardProductListMapper.java                      |    2 +
 inspect-server/src/main/java/com/ruoyi/inspect/aspect/InternalOrderAutoInspectionExemptionAspect.java |   60 ++++++++++++++++++++++++++++++
 inspect-server/src/main/java/com/ruoyi/inspect/service/impl/RawMaterialOrderServiceImpl.java          |   11 +++++
 6 files changed, 82 insertions(+), 5 deletions(-)

diff --git a/basic-server/src/main/java/com/ruoyi/basic/mapper/StandardProductListMapper.java b/basic-server/src/main/java/com/ruoyi/basic/mapper/StandardProductListMapper.java
index 05c0fdf..52cfe55 100644
--- a/basic-server/src/main/java/com/ruoyi/basic/mapper/StandardProductListMapper.java
+++ b/basic-server/src/main/java/com/ruoyi/basic/mapper/StandardProductListMapper.java
@@ -3,6 +3,7 @@
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.ruoyi.basic.pojo.StandardProductList;
+import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
@@ -14,6 +15,7 @@
 * @createDate 2024-03-05 10:33:29
 * @Entity com.ruoyi.basic.pojo.StandardProductList
 */
+@Mapper
 public interface StandardProductListMapper extends BaseMapper<StandardProductList> {
 
     IPage<StandardProductList> standardProductListIPage(@Param("id") Integer id, @Param("tree") String tree, IPage<StandardProductList> page, @Param("laboratory") String laboratory, @Param("insItem") String insItem, @Param("insItems") String insItems);
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/aspect/InternalOrderAutoInspectionExemptionAspect.java b/inspect-server/src/main/java/com/ruoyi/inspect/aspect/InternalOrderAutoInspectionExemptionAspect.java
new file mode 100644
index 0000000..2d16331
--- /dev/null
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/aspect/InternalOrderAutoInspectionExemptionAspect.java
@@ -0,0 +1,60 @@
+package com.ruoyi.inspect.aspect;
+
+import cn.hutool.core.bean.BeanUtil;
+import com.ruoyi.basic.mapper.IfsInventoryQuantityMapper;
+import com.ruoyi.basic.pojo.IfsInventoryQuantity;
+import com.ruoyi.inspect.service.RawMaterialOrderService;
+import lombok.extern.slf4j.Slf4j;
+import org.aspectj.lang.JoinPoint;
+import org.aspectj.lang.annotation.AfterReturning;
+import org.aspectj.lang.annotation.Aspect;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Lazy;
+import org.springframework.stereotype.Component;
+import org.springframework.transaction.annotation.Isolation;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.Arrays;
+import java.util.List;
+import java.util.Objects;
+
+/**
+ * 鍐呴儴璁㈠崟鎶ユ鍚庤嚜鍔ㄦ墽琛屽厤妫�
+ */
+@Aspect
+@Slf4j
+@Component
+public class InternalOrderAutoInspectionExemptionAspect {
+
+    @Autowired
+    private IfsInventoryQuantityMapper ifsInventoryQuantityMapper;
+
+    @Lazy
+    @Autowired
+    private RawMaterialOrderService rawMaterialOrderService;
+
+    /**
+     * 鍐呴儴鍏徃鍒楄〃
+     */
+    private final static List<String> internalCompany = Arrays.asList("姹熻嫃涓ぉ绉戞妧鑲′唤鏈夐檺鍏徃(鑰愪笣宸ュ巶)","涓ぉ鑰愪笣鏈夐檺鍏徃");
+
+    @AfterReturning(value = "execution(* com.ruoyi.inspect.service.impl.RawMaterialOrderServiceImpl.inspectionReportOne(..))")
+    @Transactional(rollbackFor = Exception.class,isolation = Isolation.READ_COMMITTED)
+    public void doAfterReturning(JoinPoint joinPoint) {
+        try{
+            Object[] args = joinPoint.getArgs();
+            if(Objects.nonNull(args) && args.length>0) {
+                IfsInventoryQuantity ifsInventoryQuantity = BeanUtil.toBean(args[0], IfsInventoryQuantity.class);
+                //鏌ヨifs閲囪喘璁㈠崟淇℃伅
+                IfsInventoryQuantity record = ifsInventoryQuantityMapper.selectById(ifsInventoryQuantity.getId());
+                if(internalCompany.contains(record.getSupplierName())){
+                    log.info("鍐呴儴鍏徃鎶ユ锛岃嚜鍔ㄦ墽琛屽厤妫�锛岃鍗曞彿锛歿}, 渚涘簲鍟嗭細{},璁㈠崟id锛歿}", record.getOrderNo(), record.getSupplierName(), record.getId());
+                    rawMaterialOrderService.rawOrderRelease(record.getId(), record.getPartDesc());
+                }
+            }
+        }catch (Exception e){
+            log.error("鍐呴儴鍏徃鎶ユ鍚庡厤妫�鎵ц寮傚父->{}",e.getMessage());
+        }
+    }
+
+}
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/mapper/InsReportMapper.java b/inspect-server/src/main/java/com/ruoyi/inspect/mapper/InsReportMapper.java
index 99c120f..3e66633 100644
--- a/inspect-server/src/main/java/com/ruoyi/inspect/mapper/InsReportMapper.java
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/mapper/InsReportMapper.java
@@ -6,6 +6,7 @@
 import com.ruoyi.inspect.dto.InsReportExport;
 import com.ruoyi.inspect.dto.ReportPageDto;
 import com.ruoyi.inspect.pojo.InsReport;
+import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
@@ -16,6 +17,7 @@
 * @createDate 2024-03-17 22:10:02
 * @Entity com.yuanchu.mom.pojo.InsReport
 */
+@Mapper
 public interface InsReportMapper extends BaseMapper<InsReport> {
 
     /**
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/mapper/InsSampleUserMapper.java b/inspect-server/src/main/java/com/ruoyi/inspect/mapper/InsSampleUserMapper.java
index ae3a445..314535e 100644
--- a/inspect-server/src/main/java/com/ruoyi/inspect/mapper/InsSampleUserMapper.java
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/mapper/InsSampleUserMapper.java
@@ -3,6 +3,7 @@
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.ruoyi.inspect.pojo.InsSampleUser;
 import com.ruoyi.inspect.vo.InsSampleUserVO;
+import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 
 /**
@@ -11,6 +12,7 @@
 * @createDate 2024-03-14 17:12:02
 * @Entity com.yuanchu.mom.pojo.InsSampleUser
 */
+@Mapper
 public interface InsSampleUserMapper extends BaseMapper<InsSampleUser> {
 
     InsSampleUserVO selectUserNameByOrderId(@Param("orderId") Integer orderId);
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/RawMaterialOrderServiceImpl.java b/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/RawMaterialOrderServiceImpl.java
index 2bb2006..2a87049 100644
--- a/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/RawMaterialOrderServiceImpl.java
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/RawMaterialOrderServiceImpl.java
@@ -85,16 +85,27 @@
 public class RawMaterialOrderServiceImpl implements RawMaterialOrderService {
 
     private StandardTreeMapper standardTreeMapper;
+
     private IfsInventoryQuantityMapper ifsInventoryQuantityMapper;
+
     private UserMapper userMapper;
+
     private InsOrderService insOrderService;
+
     private InsOrderMapper insOrderMapper;
+
     private InsSampleMapper insSampleMapper;
+
     private final NumberGenerator<InsOrder> numberGenerator;
+
     private InsReportService insReportService;
+
     private WechatProperty wechatProperty;
+
     private ThreadPoolTaskExecutor threadPoolTaskExecutor;
+
     private InsProductMapper insProductMapper;
+
     private AuxiliaryOutputWorkingHoursMapper auxiliaryOutputWorkingHoursMapper;
 
     private IfsApiUtils ifsApiUtils;
diff --git a/inspect-server/src/main/resources/mapper/InsUnqualifiedHandlerMapper.xml b/inspect-server/src/main/resources/mapper/InsUnqualifiedHandlerMapper.xml
index 88664e1..08eb596 100644
--- a/inspect-server/src/main/resources/mapper/InsUnqualifiedHandlerMapper.xml
+++ b/inspect-server/src/main/resources/mapper/InsUnqualifiedHandlerMapper.xml
@@ -107,12 +107,12 @@
             FROM
             common_oa
             ) AS coa ON iuh.request_id = coa.workflow_id AND coa.rn = 1
+            <where>
+                <if test="feedbackStartDate!=null and feedbackEndDate !=null">
+                    AND iuh.feedback_time between #{feedbackStartDate} AND #{feedbackEndDate}
+                </if>
+            </where>
         )tempA
-        <where>
-            <if test="feedbackStartDate!=null and feedbackEndDate !=null">
-                AND feedback_time between #{feedbackStartDate} AND #{feedbackEndDate}
-            </if>
-        </where>
         <if test="ew.customSqlSegment != null and ew.customSqlSegment != ''">
             ${ew.customSqlSegment}
         </if>

--
Gitblit v1.9.3