From 1ebf951a1d9676647957e7a319ae281b4a52dd1f Mon Sep 17 00:00:00 2001
From: zss <zss@example.com>
Date: 星期五, 02 八月 2024 18:45:40 +0800
Subject: [PATCH] 数采公式优化+任务切换sql语法错误+检验下单页面展示的数量和里面的数量不一致

---
 cnas-server/src/main/java/com/yuanchu/mom/utils/DataAcquisition.java                          |   68 ++++++++++++----------
 inspect-server/src/main/java/com/yuanchu/mom/service/impl/StandardProductListServiceImpl.java |    2 
 inspect-server/src/main/java/com/yuanchu/mom/vo/InsOrderPlanTaskSwitchVo.java                 |    1 
 inspect-server/src/main/resources/mapper/InsOrderMapper.xml                                   |   36 +----------
 inspect-server/src/main/resources/mapper/InsSampleMapper.xml                                  |   16 ++---
 inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderTemplateServiceImpl.java    |    3 
 inspect-server/src/main/java/com/yuanchu/mom/controller/InsOrderController.java               |    1 
 inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderPlanServiceImpl.java        |    9 ++
 inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderServiceImpl.java            |    2 
 inspect-server/src/main/java/com/yuanchu/mom/dto/SampleOrderDto.java                          |    2 
 inspect-server/src/main/java/com/yuanchu/mom/mapper/InsOrderMapper.java                       |    2 
 11 files changed, 65 insertions(+), 77 deletions(-)

diff --git a/cnas-server/src/main/java/com/yuanchu/mom/utils/DataAcquisition.java b/cnas-server/src/main/java/com/yuanchu/mom/utils/DataAcquisition.java
index 4dab601..eddd73d 100644
--- a/cnas-server/src/main/java/com/yuanchu/mom/utils/DataAcquisition.java
+++ b/cnas-server/src/main/java/com/yuanchu/mom/utils/DataAcquisition.java
@@ -264,8 +264,8 @@
             //鐒跺悗鎻愬彇鍏紡
             String strs = formula.substring(0,formula.indexOf("("));
             String upperStr = strs.toUpperCase();
-            if (upperStr.equals("")) {
-                throw new ErrorException(formula + "閲岄潰鐨勫叕寮忔病鏈夊嚱鏁�");
+            if (upperStr.matches(".*\\d.*")){
+                upperStr="";
             }
             System.out.println(upperStr);
             //鐒跺悗鑾峰彇鏈�澶栭潰鎷彿閲岄潰鐨勫��,鍐嶆牴鎹�","鍒嗗壊
@@ -332,36 +332,40 @@
             }
             // 鏍规嵁鍑芥暟鍚嶇О杩涜鐩稿簲璁$畻
             BigDecimal finalResult;
-            switch (upperStr) {
-                case "MAX":
-                    finalResult = results.stream().max(BigDecimal::compareTo)
-                            .orElseThrow(() -> new IllegalArgumentException("鏃犳硶璁$畻MAX鍊�"));
-                    break;
-                case "MIN":
-                    finalResult = results.stream().min(BigDecimal::compareTo)
-                            .orElseThrow(() -> new IllegalArgumentException("鏃犳硶璁$畻MIN鍊�"));
-                    break;
-                case "SUM":
-                    finalResult = results.stream().reduce(BigDecimal.ZERO, BigDecimal::add);
-                    break;
-                case "ABS":
-                    finalResult = results.stream().map(BigDecimal::abs).reduce(BigDecimal.ZERO, BigDecimal::add);
-                    break;
-                case "AVERAGE":
-                    finalResult = results.stream().reduce(BigDecimal.ZERO, BigDecimal::divide)
-                            .divide(BigDecimal.valueOf(results.size()), 2, BigDecimal.ROUND_HALF_UP);
-                    break;
-                case "MEDIAN":
-                    int size = results.size();
-                    if (size % 2 == 1) {
-                        finalResult = results.get(size / 2);
-                    } else {
-                        BigDecimal sum = results.get(size / 2 - 1).add(results.get(size / 2));
-                        finalResult = sum.divide(BigDecimal.valueOf(2), 2, BigDecimal.ROUND_HALF_UP);
-                    }
-                    break;
-                default:
-                    throw new UnsupportedOperationException("鏆備笉鏀寔鍑芥暟: " + upperStr);
+            if (upperStr.equals("")||upperStr==null) {
+                finalResult=results.get(0);
+            }else {
+                switch (upperStr) {
+                    case "MAX":
+                        finalResult = results.stream().max(BigDecimal::compareTo)
+                                .orElseThrow(() -> new IllegalArgumentException("鏃犳硶璁$畻MAX鍊�"));
+                        break;
+                    case "MIN":
+                        finalResult = results.stream().min(BigDecimal::compareTo)
+                                .orElseThrow(() -> new IllegalArgumentException("鏃犳硶璁$畻MIN鍊�"));
+                        break;
+                    case "SUM":
+                        finalResult = results.stream().reduce(BigDecimal.ZERO, BigDecimal::add);
+                        break;
+                    case "ABS":
+                        finalResult = results.stream().map(BigDecimal::abs).reduce(BigDecimal.ZERO, BigDecimal::add);
+                        break;
+                    case "AVERAGE":
+                        finalResult = results.stream().reduce(BigDecimal.ZERO, BigDecimal::divide)
+                                .divide(BigDecimal.valueOf(results.size()), 2, BigDecimal.ROUND_HALF_UP);
+                        break;
+                    case "MEDIAN":
+                        int size = results.size();
+                        if (size % 2 == 1) {
+                            finalResult = results.get(size / 2);
+                        } else {
+                            BigDecimal sum = results.get(size / 2 - 1).add(results.get(size / 2));
+                            finalResult = sum.divide(BigDecimal.valueOf(2), 2, BigDecimal.ROUND_HALF_UP);
+                        }
+                        break;
+                    default:
+                        throw new UnsupportedOperationException("鏆備笉鏀寔鍑芥暟: " + upperStr);
+                }
             }
             System.out.println(results);
             System.out.println("璁$畻缁撴灉: " + finalResult);
diff --git a/inspect-server/src/main/java/com/yuanchu/mom/controller/InsOrderController.java b/inspect-server/src/main/java/com/yuanchu/mom/controller/InsOrderController.java
index 8681513..609834d 100644
--- a/inspect-server/src/main/java/com/yuanchu/mom/controller/InsOrderController.java
+++ b/inspect-server/src/main/java/com/yuanchu/mom/controller/InsOrderController.java
@@ -161,6 +161,7 @@
         return Result.success();
     }
 
+    //寰呮鐨勬挙閿�
     @PutMapping("/updateInspected")
     @ValueAuth
     public Result<?> updateInspected(Integer id){
diff --git a/inspect-server/src/main/java/com/yuanchu/mom/dto/SampleOrderDto.java b/inspect-server/src/main/java/com/yuanchu/mom/dto/SampleOrderDto.java
index cb779c8..b7ec04d 100644
--- a/inspect-server/src/main/java/com/yuanchu/mom/dto/SampleOrderDto.java
+++ b/inspect-server/src/main/java/com/yuanchu/mom/dto/SampleOrderDto.java
@@ -25,6 +25,8 @@
     @ApiModelProperty("鏍峰搧鍨嬪彿")
     private String sampleModel;
 
+    private String assign;
+
     @ValueTableShow(5)
     @ApiModelProperty("鏍峰搧鏁伴噺")
     private Integer sampleNum;
diff --git a/inspect-server/src/main/java/com/yuanchu/mom/mapper/InsOrderMapper.java b/inspect-server/src/main/java/com/yuanchu/mom/mapper/InsOrderMapper.java
index 5144caa..8a5a003 100644
--- a/inspect-server/src/main/java/com/yuanchu/mom/mapper/InsOrderMapper.java
+++ b/inspect-server/src/main/java/com/yuanchu/mom/mapper/InsOrderMapper.java
@@ -24,7 +24,7 @@
 public interface InsOrderMapper extends BaseMapper<InsOrder> {
 
     //鑾峰彇妫�楠屼笅鍗曟暟鎹�
-    IPage<SampleOrderDto> selectInsOrderPage(IPage<InsOrder> page, @Param("ew") QueryWrapper<SampleOrderDto> ew, @Param("laboratory") String laboratory);
+    IPage<SampleOrderDto> selectInsOrderPage(IPage<InsOrder> page,  QueryWrapper<SampleOrderDto> ew,  String laboratory);
 
     //淇敼妫�楠屼笅鍗曟暟鎹�
     int upInsOrderParameter(InsOrder itemParameter);
diff --git a/inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderPlanServiceImpl.java b/inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderPlanServiceImpl.java
index a01ae4a..0c9bc4f 100644
--- a/inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderPlanServiceImpl.java
+++ b/inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderPlanServiceImpl.java
@@ -624,7 +624,14 @@
                         LocalTime startTime = LocalTime.parse(shiftTime.getStartTime(), forma);
                         LocalTime endTime = LocalTime.parse(shiftTime.getEndTime(), forma);
                         // 妫�鏌ュ綋鍓嶆椂闂存槸鍚﹀湪鑼冨洿鍐咃紙鍖呮嫭杈圭晫锛�
-                        boolean isWithinRange = !now.isBefore(startTime) && !now.isAfter(endTime);
+                        boolean isWithinRange;
+                        if (endTime.isAfter(startTime)) {
+                            // 涓嶈法澶╃殑鎯呭喌
+                            isWithinRange = !now.isBefore(startTime) && !now.isAfter(endTime);
+                        } else {
+                            // 璺ㄥぉ鐨勬儏鍐�
+                            isWithinRange = !now.isBefore(startTime) || !now.isAfter(endTime);
+                        }
                         //鍔犵彮
                         AuxiliaryOutputWorkingHours count1 = auxiliaryOutputWorkingHoursMapper.selectOne(Wrappers.<AuxiliaryOutputWorkingHours>lambdaQuery()
                                 .eq(AuxiliaryOutputWorkingHours::getCheck, userId)
diff --git a/inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderServiceImpl.java b/inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderServiceImpl.java
index 18e437b..6682332 100644
--- a/inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderServiceImpl.java
+++ b/inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderServiceImpl.java
@@ -101,7 +101,7 @@
             }
         }
         //鍒ゆ柇鏄惁鏄叏閮ㄦ潈闄�
-        Power power = powerMapper.selectOne(Wrappers.<Power>lambdaQuery().eq(Power::getRoleId, roleId).eq(Power::getMenuMethod, "selectAllInsOrder"));
+        Power power = powerMapper.selectOne(Wrappers.<Power>lambdaQuery().eq(Power::getRoleId, roleId).eq(Power::getMenuMethod, "selectInsOrderParameter"));
         if (ObjectUtils.isEmpty(power)) {
             if (map1.get("look") == 1) {
                 //涓汉
diff --git a/inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderTemplateServiceImpl.java b/inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderTemplateServiceImpl.java
index 0f1fc4a..d56ce61 100644
--- a/inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderTemplateServiceImpl.java
+++ b/inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderTemplateServiceImpl.java
@@ -1,5 +1,6 @@
 package com.yuanchu.mom.service.impl;
 
+import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.yuanchu.mom.common.GetLook;
@@ -32,7 +33,7 @@
 
     @Override
     public List<InsOrderTemplate> selectInsOrderTemplate(String company) {
-        if (company == null) {
+        if (ObjectUtils.isEmpty(company) || company.equals("")) {
             return insOrderTemplateMapper.selectList(Wrappers.<InsOrderTemplate>lambdaQuery()
                     .select(InsOrderTemplate.class, info -> !info.getColumn().equals("thing")));
         } else {
diff --git a/inspect-server/src/main/java/com/yuanchu/mom/service/impl/StandardProductListServiceImpl.java b/inspect-server/src/main/java/com/yuanchu/mom/service/impl/StandardProductListServiceImpl.java
index ced1edd..e727387 100644
--- a/inspect-server/src/main/java/com/yuanchu/mom/service/impl/StandardProductListServiceImpl.java
+++ b/inspect-server/src/main/java/com/yuanchu/mom/service/impl/StandardProductListServiceImpl.java
@@ -76,7 +76,7 @@
         }
         String[] split1 = insSample.getFactory().split(" - ");
         //鍒ゆ柇闀垮害
-        if (split1.length > 3) {
+        if (split1.length > 4) {
             if (ObjectUtils.isNotEmpty(split1[3])) {
                 list = list.stream().filter(list1 -> list1.getSample().equals(split1[3])).collect(Collectors.toList());
             }else if (split1[3].equals("")) {
diff --git a/inspect-server/src/main/java/com/yuanchu/mom/vo/InsOrderPlanTaskSwitchVo.java b/inspect-server/src/main/java/com/yuanchu/mom/vo/InsOrderPlanTaskSwitchVo.java
index d317a85..1812e17 100644
--- a/inspect-server/src/main/java/com/yuanchu/mom/vo/InsOrderPlanTaskSwitchVo.java
+++ b/inspect-server/src/main/java/com/yuanchu/mom/vo/InsOrderPlanTaskSwitchVo.java
@@ -29,6 +29,7 @@
     private Integer userId;
 
     private String sonLaboratory;
+    private String laboratory;
 
     private Integer orderUserId;
 
diff --git a/inspect-server/src/main/resources/mapper/InsOrderMapper.xml b/inspect-server/src/main/resources/mapper/InsOrderMapper.xml
index 6c549ad..4e1996c 100644
--- a/inspect-server/src/main/resources/mapper/InsOrderMapper.xml
+++ b/inspect-server/src/main/resources/mapper/InsOrderMapper.xml
@@ -60,37 +60,9 @@
     <select id="selectInsOrderPage" resultType="com.yuanchu.mom.dto.SampleOrderDto">
         select *
         from (
-        <!--SELECT
-        io.*,
-        ir.id report_id,
-        ir.url,
-        ir.url_s,
-        (select count(*) from ins_sample isa2
-        where isa2.ins_order_id = io.id and  CHAR_LENGTH(isa2.sample_code) &lt;32 ) sample_num,
-        concat(ROUND((select count(*) from ins_product ip
-        where state = 1 and ins_result is not null and ip.ins_sample_id in (select id from ins_sample where
-        ins_sample.ins_order_id= io.id )) / (select count(*) from ins_product ip2
-        where state = 1 and ip2.ins_sample_id in (select id from ins_sample where ins_sample.ins_order_id= io.id )) *
-        100, 2), '%') insProgress,
-        group_concat(distinct isa.sample_code,' ') sample_code,
-        group_concat(distinct isa.sample,' ') sample_name,
-        group_concat(distinct isa.model,' ') sample_model,
-        u.name
-        FROM
-        ins_order io
-        LEFT JOIN ins_sample isa ON io.id = isa.ins_order_id
-        LEFT JOIN ( SELECT id, ins_order_id, is_ratify, url,url_s FROM ins_report WHERE is_ratify = 1 ) ir ON io.id =
-        ir.ins_order_id
-        left join user u on io.create_user = u.id
-        where 1=1
-        <if test="laboratory!=null and laboratory!=''">
-            and io.laboratory=#{laboratory}
-        </if>
-        GROUP BY
-        io.id-->
-
         SELECT
         io.*,
+        isau.user_id assign,
         ir.id report_id,
         ir.url,
         ir.url_s,
@@ -104,6 +76,8 @@
         ins_order io
         LEFT JOIN
         ins_sample isa ON io.id = isa.ins_order_id
+        LEFT JOIN
+        ins_sample_user isau ON isau.ins_sample_id = io.id
         LEFT JOIN
         (SELECT id, ins_order_id, is_ratify, url, url_s FROM ins_report WHERE is_ratify = 1) ir ON io.id = ir.ins_order_id
         LEFT JOIN
@@ -130,8 +104,8 @@
         <if test="laboratory!=null and laboratory!=''">
             AND io.laboratory=#{laboratory}
         </if>
-        GROUP BY
-        io.id
+        GROUP BY io.id,type
+        order by type desc,io.id desc
         ) a
         <if test="ew.customSqlSegment != null and ew.customSqlSegment != ''">
             ${ew.customSqlSegment}
diff --git a/inspect-server/src/main/resources/mapper/InsSampleMapper.xml b/inspect-server/src/main/resources/mapper/InsSampleMapper.xml
index f16e99f..0e895b1 100644
--- a/inspect-server/src/main/resources/mapper/InsSampleMapper.xml
+++ b/inspect-server/src/main/resources/mapper/InsSampleMapper.xml
@@ -107,7 +107,7 @@
         io.type,
         io.appointed,
         io.send_time,
-        group_concat(distinct isa.sample,' ') sample,
+        group_concat(distinct isa.sample,' ') sampleType,
         isu.user_id,
         user.name userName,
         ip.son_laboratory,
@@ -137,7 +137,6 @@
             and (isu.user_id = #{userId} OR isu.user_id is NULL )
         </if>
         OR isu.user_id is NULL
-
         GROUP BY
         ip.son_laboratory,
         io.id
@@ -151,16 +150,15 @@
         OR user_id is NULL
         ) isu2 on
         isu2.ins_sample_id = a.id
+        where ins_state is not null
+        <if test="laboratory != null and laboratory!=''">
+            and laboratory=#{laboratory}
+        </if>
         ORDER BY
         <!--a.user_id DESC,-->
         a.type DESC,
         a.id
         ) b
-        where ins_state is not null
-        <if test="laboratory!=null and laboratory!=''">
-            and laboratory=#{laboratory}
-        </if>
-        )A
         <if test="ew.customSqlSegment != null and ew.customSqlSegment != ''">
             ${ew.customSqlSegment}
         </if>
@@ -308,8 +306,8 @@
                method,
                man_day,
                bsm,
-                ask,
-               tell ,
+               ask,
+               tell,
                `last_value`,
                ip.ins_result  ip_ins_result,
                state,

--
Gitblit v1.9.3