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) <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