From 7bae2c55ff2d9c94d30df77ad2dfbc66bb703209 Mon Sep 17 00:00:00 2001 From: zss <zss@example.com> Date: 星期五, 06 九月 2024 17:40:33 +0800 Subject: [PATCH] 电路试验 --- system-run/src/test/java/com/yuanchu/mom/SystemRunApplicationTest.java | 13 inspect-server/src/main/java/com/yuanchu/mom/pojo/InsProductResult2.java | 78 ++++ inspect-server/src/main/java/com/yuanchu/mom/pojo/InsOrderState.java | 5 inspect-server/src/main/resources/mapper/InsSampleMapper.xml | 318 +++++----------- inspect-server/src/main/java/com/yuanchu/mom/dto/InsProductResultDto.java | 28 + inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderPlanServiceImpl.java | 425 ++++++++++++++++------ inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderServiceImpl.java | 71 +- inspect-server/src/main/java/com/yuanchu/mom/mapper/InsProductResult2Mapper.java | 18 inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsProductResult2ServiceImpl.java | 20 + inspect-server/src/main/resources/mapper/InsProductMapper.xml | 10 inspect-server/src/main/java/com/yuanchu/mom/vo/InsProductResultVo.java | 16 inspect-server/src/main/java/com/yuanchu/mom/mapper/InsProductResultMapper.java | 2 inspect-server/src/main/java/com/yuanchu/mom/vo/InsOrderPlanVO.java | 1 inspect-server/src/main/java/com/yuanchu/mom/mapper/InsSampleMapper.java | 6 performance-server/src/main/java/com/yuanchu/mom/pojo/AuxiliaryOutputWorkingHours.java | 4 inspect-server/src/main/resources/mapper/InsProductResult2Mapper.xml | 23 + system-run/src/main/java/com/yuanchu/mom/CodeGenerator.java | 10 inspect-server/src/main/java/com/yuanchu/mom/controller/InsOrderPlanController.java | 34 + inspect-server/src/main/java/com/yuanchu/mom/pojo/InsProduct.java | 5 inspect-server/src/main/resources/mapper/InsProductResultMapper.xml | 14 inspect-server/src/main/java/com/yuanchu/mom/mapper/InsProductMapper.java | 2 inspect-server/src/main/java/com/yuanchu/mom/service/InsProductResult2Service.java | 16 inspect-server/src/main/java/com/yuanchu/mom/service/InsOrderPlanService.java | 10 23 files changed, 738 insertions(+), 391 deletions(-) diff --git a/inspect-server/src/main/java/com/yuanchu/mom/controller/InsOrderPlanController.java b/inspect-server/src/main/java/com/yuanchu/mom/controller/InsOrderPlanController.java index 52b3e9c..163e9c3 100644 --- a/inspect-server/src/main/java/com/yuanchu/mom/controller/InsOrderPlanController.java +++ b/inspect-server/src/main/java/com/yuanchu/mom/controller/InsOrderPlanController.java @@ -1,11 +1,13 @@ package com.yuanchu.mom.controller; import com.alibaba.fastjson.JSON; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.yuanchu.mom.annotation.ValueAuth; import com.yuanchu.mom.annotation.ValueClassify; import com.yuanchu.mom.dto.InsOrderPlanDTO; import com.yuanchu.mom.dto.InsProductDto; +import com.yuanchu.mom.dto.InsProductResultDto; import com.yuanchu.mom.pojo.InsOrderFile; import com.yuanchu.mom.pojo.InsOrderState; import com.yuanchu.mom.service.InsOrderFileService; @@ -13,6 +15,7 @@ import com.yuanchu.mom.service.InsOrderStateService; import com.yuanchu.mom.service.InsProductService; import com.yuanchu.mom.utils.JackSonUtil; +import com.yuanchu.mom.vo.InsProductResultVo; import com.yuanchu.mom.vo.Result; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -197,4 +200,35 @@ public Result<?> jumpTeam(@RequestBody InsOrderState insOrderState) { return Result.success(insOrderStateService.jumpTeam(insOrderState)); } + + @ApiOperation(value = "鐢佃矾璇曢獙鐨勪繚瀛樻楠屽唴瀹�") + @PostMapping("/saveInsContext2") + @ValueAuth + public Result<?> saveInsContext2(@RequestBody InsProductResultDto insProductResultDtos) { + return Result.success(insOrderPlanService.saveInsContext2(insProductResultDtos)); + } + + @ApiOperation(value = "鐢佃矾璇曢獙鐨勫垹闄ら娈�") + @PostMapping("/deleteInsContext") + @ValueAuth + public Result<?> deleteInsContext(@RequestBody InsProductResultVo insProductResultVo) { + return Result.success(insOrderPlanService.deleteInsContext(insProductResultVo)); + } + + @ApiOperation(value = "鐢佃矾璇曢獙鐨勫垹闄や簰璋�") + @PostMapping("/deleteInsContext2") + @ValueAuth + public Result<?> deleteInsContext2(String frequency,Integer productId,String often) { + return Result.success(insOrderPlanService.deleteInsContext2(frequency,productId,often)); + } + + @ApiOperation(value = "鐢佃矾璇曢獙鐐瑰嚮妫�楠岄�夋嫨鐗堟湰") + @PostMapping("/chooseVersion") + @ValueAuth + public Result<?> chooseVersion(Integer orderStateId,Integer version) { + InsOrderState orderState = new InsOrderState(); + orderState.setId(orderStateId); + orderState.setVersion(version); + return Result.success(insOrderStateService.updateById(orderState)); + } } diff --git a/inspect-server/src/main/java/com/yuanchu/mom/dto/InsProductResultDto.java b/inspect-server/src/main/java/com/yuanchu/mom/dto/InsProductResultDto.java new file mode 100644 index 0000000..a531e4a --- /dev/null +++ b/inspect-server/src/main/java/com/yuanchu/mom/dto/InsProductResultDto.java @@ -0,0 +1,28 @@ +package com.yuanchu.mom.dto; + +import com.yuanchu.mom.pojo.InsProductResult2; +import lombok.Data; + +import javax.validation.constraints.NotNull; +import java.util.List; + +//鐢佃矾璇曢獙鐨勪繚瀛樻楠屽唴瀹� +@Data +public class InsProductResultDto { + + //璁㈠崟id + private Integer orderId; + + //鏍峰搧id + private Integer sampleId; + + //璇曢獙瀹� + private String sonLaboratory; + + //棰戠巼闆嗗悎 + private String frequency; + + //妫�楠岀粨鏋� + private List<InsProductResult2> insProductResult2s; + +} diff --git a/inspect-server/src/main/java/com/yuanchu/mom/mapper/InsProductMapper.java b/inspect-server/src/main/java/com/yuanchu/mom/mapper/InsProductMapper.java index 6524a52..f014909 100644 --- a/inspect-server/src/main/java/com/yuanchu/mom/mapper/InsProductMapper.java +++ b/inspect-server/src/main/java/com/yuanchu/mom/mapper/InsProductMapper.java @@ -30,6 +30,8 @@ List<InsProduct> selectFiberInsProduct(List<Integer> ids, String laboratory); IPage<InsProduct> selectNoProducts(Page page, Integer orderId); + + int selectInsProductCountByOrderId(int orderId); } diff --git a/inspect-server/src/main/java/com/yuanchu/mom/mapper/InsProductResult2Mapper.java b/inspect-server/src/main/java/com/yuanchu/mom/mapper/InsProductResult2Mapper.java new file mode 100644 index 0000000..5dda5c7 --- /dev/null +++ b/inspect-server/src/main/java/com/yuanchu/mom/mapper/InsProductResult2Mapper.java @@ -0,0 +1,18 @@ +package com.yuanchu.mom.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.yuanchu.mom.pojo.InsProductResult; +import com.yuanchu.mom.pojo.InsProductResult2; + +/** +* @author Administrator +* @description 閽堝琛ㄣ�恑ns_product_result2(妫�楠岄」鐩殑缁撴灉)銆戠殑鏁版嵁搴撴搷浣淢apper +* @createDate 2024-03-28 10:29:37 +* @Entity com.yuanchu.mom.pojo.InsProductResult2 +*/ +public interface InsProductResult2Mapper extends BaseMapper<InsProductResult2> { +} + + + + diff --git a/inspect-server/src/main/java/com/yuanchu/mom/mapper/InsProductResultMapper.java b/inspect-server/src/main/java/com/yuanchu/mom/mapper/InsProductResultMapper.java index fac0f94..a8e8d98 100644 --- a/inspect-server/src/main/java/com/yuanchu/mom/mapper/InsProductResultMapper.java +++ b/inspect-server/src/main/java/com/yuanchu/mom/mapper/InsProductResultMapper.java @@ -13,8 +13,6 @@ * @Entity com.yuanchu.mom.pojo.InsProductResult */ public interface InsProductResultMapper extends BaseMapper<InsProductResult> { - - List<InsProductResult> selDetail(@Param("ips") List<Integer> ips); } diff --git a/inspect-server/src/main/java/com/yuanchu/mom/mapper/InsSampleMapper.java b/inspect-server/src/main/java/com/yuanchu/mom/mapper/InsSampleMapper.java index ee1cdc3..55f7297 100644 --- a/inspect-server/src/main/java/com/yuanchu/mom/mapper/InsSampleMapper.java +++ b/inspect-server/src/main/java/com/yuanchu/mom/mapper/InsSampleMapper.java @@ -41,12 +41,6 @@ List<InsProduct> getInsProduct1(Integer id, String laboratory); - List<InsProduct> getInsProduct2(Integer id); - - List<InsProduct> getInsProduct3(Integer id); - - List<InsProduct> getInsProduct4(Integer id); - List<Map<String, Object>> getReportModel(@Param("orderId") Integer orderId, @Param("id") Integer id, @Param("laboratory") String laboratory); SampleVo getDetailById(Integer sampleId); diff --git a/inspect-server/src/main/java/com/yuanchu/mom/pojo/InsOrderState.java b/inspect-server/src/main/java/com/yuanchu/mom/pojo/InsOrderState.java index af2713f..0b435c1 100644 --- a/inspect-server/src/main/java/com/yuanchu/mom/pojo/InsOrderState.java +++ b/inspect-server/src/main/java/com/yuanchu/mom/pojo/InsOrderState.java @@ -82,4 +82,9 @@ //椤垫暟 @TableField(exist = false,select = false) private Integer size; + + /** + * 閽堝鐢佃矾璇曢獙閫夋嫨鐨勭増鏈� + */ + private Integer version; } \ No newline at end of file diff --git a/inspect-server/src/main/java/com/yuanchu/mom/pojo/InsProduct.java b/inspect-server/src/main/java/com/yuanchu/mom/pojo/InsProduct.java index 8df3108..0394900 100644 --- a/inspect-server/src/main/java/com/yuanchu/mom/pojo/InsProduct.java +++ b/inspect-server/src/main/java/com/yuanchu/mom/pojo/InsProduct.java @@ -176,7 +176,7 @@ private String lastValue; /** - * 1锛氬悎鏍� 0锛氫笉鍚堟牸 + * 1锛氬悎鏍� 0锛氫笉鍚堟牸 3:涓嶅垽瀹� */ private Integer insResult; @@ -221,6 +221,9 @@ private InsProductResult insProductResult; @TableField(exist = false) + private List<InsProductResult2> insProductResult2; + + @TableField(exist = false) private String templateName; private String dic; diff --git a/inspect-server/src/main/java/com/yuanchu/mom/pojo/InsProductResult2.java b/inspect-server/src/main/java/com/yuanchu/mom/pojo/InsProductResult2.java new file mode 100644 index 0000000..faac854 --- /dev/null +++ b/inspect-server/src/main/java/com/yuanchu/mom/pojo/InsProductResult2.java @@ -0,0 +1,78 @@ +package com.yuanchu.mom.pojo; + +import com.baomidou.mybatisplus.annotation.FieldFill; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import java.io.Serializable; +import java.time.LocalDateTime; + +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.Getter; +import lombok.Setter; + +/** + * <p> + * 妫�楠岄」鐩殑缁撴灉(鍙拡瀵圭數璺瘯楠�,涓庨」鐩殑鍏崇郴鏄竴瀵瑰) + * </p> + * + * @author 姹熻嫃榈烽洀缃戠粶绉戞妧鏈夐檺鍏徃 + * @since 2024-09-04 03:58:50 + */ +@Data +@TableName("ins_product_result_2") +@ApiModel(value = "InsProductResult2瀵硅薄", description = "妫�楠岄」鐩殑缁撴灉(鍙拡瀵圭數璺瘯楠�,涓庨」鐩殑鍏崇郴鏄竴瀵瑰)") +public class InsProductResult2 implements Serializable { + + /** + * + */ + @TableId(type = IdType.AUTO) + private Integer id; + + @ApiModelProperty("澶栭敭锛氭楠岄」鐩甶d") + private Integer insProductId; + + @ApiModelProperty("璁惧缂栫爜") + private String equipValue; + + @ApiModelProperty("璁惧鍚嶇О") + private String equipName; + + @TableField(fill = FieldFill.INSERT) + private Integer createUser; + + @TableField(fill = FieldFill.INSERT_UPDATE) + private Integer updateUser; + + @ApiModelProperty("鍒涘缓鏃堕棿") + @TableField(fill = FieldFill.INSERT) + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime createTime; + + @ApiModelProperty("淇敼鏃堕棿") + @TableField(fill = FieldFill.INSERT_UPDATE) + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime updateTime; + + @ApiModelProperty("棰戠巼") + private String frequency; + @ApiModelProperty("棰戠巼") + private String often; + + @ApiModelProperty("绔彛") + private String port; + + @ApiModelProperty("瑙掑害") + private String angle; + + @ApiModelProperty("鍊�") + private String value; + + @ApiModelProperty("缁撹 0涓嶅悎鏍� 1鍚堟牸") + private Integer result; +} diff --git a/inspect-server/src/main/java/com/yuanchu/mom/service/InsOrderPlanService.java b/inspect-server/src/main/java/com/yuanchu/mom/service/InsOrderPlanService.java index 88c2c4a..600e748 100644 --- a/inspect-server/src/main/java/com/yuanchu/mom/service/InsOrderPlanService.java +++ b/inspect-server/src/main/java/com/yuanchu/mom/service/InsOrderPlanService.java @@ -2,8 +2,10 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.yuanchu.mom.dto.InsOrderPlanDTO; +import com.yuanchu.mom.dto.InsProductResultDto; import com.yuanchu.mom.pojo.InsOrderFile; import com.yuanchu.mom.pojo.InsProduct; +import com.yuanchu.mom.vo.InsProductResultVo; import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletRequest; @@ -20,7 +22,11 @@ boolean claimInsOrderPlan(InsOrderPlanDTO entity); + //鏅�氱殑淇濆瓨妫�楠屽唴瀹� void saveInsContext(Map<String, Object> insContext); + + //鐢佃矾璇曢獙鐨勪繚瀛樻楠屽唴瀹� + List<Integer> saveInsContext2(InsProductResultDto insProductResultDtos); Map<String, Object> doInsOrder(Integer id, String laboratory); @@ -43,4 +49,8 @@ Map<String,Object> temCycle(Integer sampleId, String inspectionItem, String inspectionItemSubclass); List<String> upPlanUser2(Integer orderId); + + int deleteInsContext(InsProductResultVo insProductResultVo); + + int deleteInsContext2(String frequency, Integer productId, String often); } diff --git a/inspect-server/src/main/java/com/yuanchu/mom/service/InsProductResult2Service.java b/inspect-server/src/main/java/com/yuanchu/mom/service/InsProductResult2Service.java new file mode 100644 index 0000000..3b0eb8d --- /dev/null +++ b/inspect-server/src/main/java/com/yuanchu/mom/service/InsProductResult2Service.java @@ -0,0 +1,16 @@ +package com.yuanchu.mom.service; + +import com.yuanchu.mom.pojo.InsProductResult2; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + * <p> + * 妫�楠岄」鐩殑缁撴灉(鍙拡瀵圭數璺瘯楠�,涓庨」鐩殑鍏崇郴鏄竴瀵瑰) 鏈嶅姟绫� + * </p> + * + * @author 姹熻嫃榈烽洀缃戠粶绉戞妧鏈夐檺鍏徃 + * @since 2024-09-04 03:58:50 + */ +public interface InsProductResult2Service extends IService<InsProductResult2> { + +} 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 1a6804c..58ded93 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 @@ -23,8 +23,8 @@ import com.deepoove.poi.util.TableTools; import com.yuanchu.mom.common.GetLook; import com.yuanchu.mom.common.PrintChina; -import com.yuanchu.mom.dto.ExcelDto; import com.yuanchu.mom.dto.InsOrderPlanDTO; +import com.yuanchu.mom.dto.InsProductResultDto; import com.yuanchu.mom.dto.SampleProductDto; import com.yuanchu.mom.exception.ErrorException; import com.yuanchu.mom.mapper.*; @@ -33,7 +33,6 @@ import com.yuanchu.mom.utils.*; import com.yuanchu.mom.vo.*; import org.apache.commons.io.IOUtils; -import org.apache.commons.lang3.StringUtils; import org.apache.poi.xwpf.usermodel.*; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; @@ -43,7 +42,6 @@ import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import java.io.*; -import java.math.BigDecimal; import java.nio.file.Files; import java.nio.file.Paths; import java.text.SimpleDateFormat; @@ -55,6 +53,8 @@ import java.util.concurrent.CompletableFuture; import java.util.concurrent.atomic.AtomicInteger; import java.util.concurrent.atomic.AtomicReference; +import java.util.regex.Matcher; +import java.util.regex.Pattern; import java.util.stream.Collectors; /** @@ -98,6 +98,9 @@ @Resource private InsProductResultMapper insProductResultMapper; + + @Resource + private InsProductResult2Mapper insProductResult2Mapper; @Resource private InsProductUserMapper insProductUserMapper; @@ -167,18 +170,7 @@ Map<String, Integer> map1 = getLook.selectPowerByMethodAndUserId(null); Integer userId = map1.get("userId"); User user = userMapper.selectById(map1.get("userId"));//褰撳墠鐧诲綍鐨勪汉 - String laboratory = null; - //鑾峰彇褰撳墠浜烘墍灞炲疄楠屽id - /* String departLimsId = user.getDepartLimsId(); - if (ObjectUtils.isNotEmpty(departLimsId) && !departLimsId.equals("")) { - String[] split = departLimsId.split(","); - //鏌ヨ瀵瑰簲鏋舵瀯鍚嶇О(閫氫俊瀹為獙瀹�,鐢靛姏瀹為獙瀹�,妫�娴嬪姙) - String departLims = baseMapper.seldepLimsId(Integer.parseInt(split[split.length - 1])); - if (departLims.contains("瀹為獙瀹�")) { - laboratory = departLims; - } - }*/ if (ObjectUtil.isNotEmpty(insOrderPlanDTO.getUserId())) { insOrderPlanDTO.setUserId(userId.longValue()); } @@ -201,8 +193,8 @@ for (Integer samId : sampleIds) { //杩囨护娌℃湁妫�楠岄」鐩殑鏍峰搧id if (ObjectUtils.isEmpty(insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery() - .eq(InsProduct::getInsSampleId,samId) - .eq(InsProduct::getState,1)))){ + .eq(InsProduct::getInsSampleId, samId) + .eq(InsProduct::getState, 1)))) { continue; } //鍏ュ簱娆℃暟 @@ -255,23 +247,13 @@ break; case 1: //鍏夌氦甯� - insProducts = insSampleMapper.getInsProduct2(id); break; case 2: //鍏夌氦 - insProducts = insSampleMapper.getInsProduct3(id); break; case 3: //濂楃 - insProducts = insSampleMapper.getInsProduct4(id); break; - } - - //濡傛灉鏄ぇ鏍峰搧涓嬬殑椤圭洰涓虹┖,閭d箞鏌ヨ绗竴涓厜绾ょ殑椤圭洰 - if (ObjectUtils.isEmpty(insProducts) && type == 0) { - //鏌ヨ绗竴涓厜绾ょ殑id - List<InsFiber> insFibers = insFiberMapper.selectList(Wrappers.<InsFiber>lambdaQuery().eq(InsFiber::getInsBushingId, insBushingMapper.selectList(Wrappers.<InsBushing>lambdaQuery().eq(InsBushing::getInsSampleId, id)).get(0).getId())); - insProducts = insSampleMapper.getInsProduct3(insFibers.get(0).getId()); } Set<Integer> set = new HashSet<>(); Map<Integer, String> map2 = new HashMap<>(); @@ -529,6 +511,21 @@ return sonLaboratory; } + @Override + public int deleteInsContext(InsProductResultVo insProductResultVo) { + return insProductResult2Mapper.delete(Wrappers.<InsProductResult2>lambdaQuery() + .eq(InsProductResult2::getFrequency, insProductResultVo.getFrequency()) + .in(InsProductResult2::getInsProductId, insProductResultVo.getProductIds())); + } + + @Override + public int deleteInsContext2(String frequency, Integer productId, String often) { + return insProductResult2Mapper.delete(Wrappers.<InsProductResult2>lambdaQuery() + .eq(InsProductResult2::getFrequency, frequency) + .eq(InsProductResult2::getInsProductId, productId) + .eq(InsProductResult2::getOften, often)); + } + @Override public void saveInsContext(Map<String, Object> insContext) { @@ -540,7 +537,6 @@ insProduct.setId(Integer.parseInt(k)); List<InsProductResult> results = insProductResultMapper.selectList(Wrappers.<InsProductResult>lambdaQuery() .eq(InsProductResult::getInsProductId, insProduct.getId())); - InsProduct product = insProductMapper.selectById(insProduct.getId()); InsProductResult result; if (CollectionUtils.isEmpty(results)) { result = new InsProductResult(); @@ -548,14 +544,6 @@ result = results.get(0); } result.setInsProductId(Integer.parseInt(k)); - /*鏍¢獙涓�涓媟esult琛�*/ - List<InsProductResult> insProductResultss = insProductResultMapper.selectList(Wrappers.<InsProductResult>lambdaQuery() - .eq(InsProductResult::getInsProductId, insProduct.getId())); - if (insProductResultss.size() > 1) { - for (int i = 1; i < insProductResultss.size(); i++) { - insProductResultMapper.deleteById(insProductResultss.get(i)); - } - } //妫�楠屽�� if (jo.get("insValue") != null) { JSONArray jsonArray = JSON.parseArray(JSON.toJSONString(jo.get("insValue"))); @@ -671,88 +659,42 @@ // 璺ㄥぉ鐨勬儏鍐� isWithinRange = !now.isBefore(startTime) || !now.isAfter(endTime); } - //鍔犵彮 - List<AuxiliaryOutputWorkingHours> count1s = auxiliaryOutputWorkingHoursMapper.selectList(Wrappers.<AuxiliaryOutputWorkingHours>lambdaQuery() - .eq(AuxiliaryOutputWorkingHours::getCheck, userId) - .eq(AuxiliaryOutputWorkingHours::getInspectionItem, insProduct.getInspectionItem()) - .eq(AuxiliaryOutputWorkingHours::getInspectionItemSubclass, insProduct.getInspectionItemSubclass()) - .eq(AuxiliaryOutputWorkingHours::getOvertimeOrderNo, insOrder.getEntrustCode()) - .eq(AuxiliaryOutputWorkingHours::getSample, insSampleMapper.selectById(insProduct.getInsSampleId()).getSampleCode())); - if (count1s.size() > 1) { - for (int i = 1; i < count1s.size(); i++) { - auxiliaryOutputWorkingHoursMapper.deleteById(count1s.get(i)); - } - } - //闈炲姞鐝� - List<AuxiliaryOutputWorkingHours> count2s = auxiliaryOutputWorkingHoursMapper.selectList(Wrappers.<AuxiliaryOutputWorkingHours>lambdaQuery() - .eq(AuxiliaryOutputWorkingHours::getCheck, userId) - .eq(AuxiliaryOutputWorkingHours::getInspectionItem, insProduct.getInspectionItem()) - .eq(AuxiliaryOutputWorkingHours::getInspectionItemSubclass, insProduct.getInspectionItemSubclass()) - .eq(AuxiliaryOutputWorkingHours::getOrderNo, insOrder.getEntrustCode()) - .eq(AuxiliaryOutputWorkingHours::getSample, insSampleMapper.selectById(insProduct.getInsSampleId()).getSampleCode())); - if (count2s.size() > 1) { - for (int i = 1; i < count2s.size(); i++) { - auxiliaryOutputWorkingHoursMapper.deleteById(count2s.get(i)); - } - } - if (ObjectUtils.isNotEmpty(insProduct.getManHour()) && CollectionUtils.isEmpty(count2s) && CollectionUtils.isEmpty(count1s)) { + if (ObjectUtils.isNotEmpty(insProduct.getManHour())) { + //鍏堝垹鍚庡姞(宸ユ椂璁板綍鏈�鍚庝竴娆′繚瀛樼殑鏃堕棿) + auxiliaryOutputWorkingHoursMapper.delete(Wrappers.<AuxiliaryOutputWorkingHours>lambdaQuery() + .eq(AuxiliaryOutputWorkingHours::getInsProductId, insProduct.getId())); AuxiliaryOutputWorkingHours auxiliaryOutputWorkingHours = new AuxiliaryOutputWorkingHours(); if (isWithinRange) { //鍦ㄦ椂闂村唴灏辨槸姝e父涓婄彮 - auxiliaryOutputWorkingHours.setInspectionItem(insProduct.getInspectionItem());//妫�娴嬬埗椤� - auxiliaryOutputWorkingHours.setInspectionItemSubclass(insProduct.getInspectionItemSubclass());//妫�娴嬪瓙椤� - auxiliaryOutputWorkingHours.setSample(insSampleMapper.selectById(insProduct.getInsSampleId()).getSampleCode());//鏍峰搧缂栧彿 auxiliaryOutputWorkingHours.setOrderNo(insOrder.getEntrustCode());//闈炲姞鐝鎵樺崟鍙� auxiliaryOutputWorkingHours.setWorkTime(insProduct.getManHour());//闈炲姞鐝伐鏃� auxiliaryOutputWorkingHours.setAmount(1);//闈炲姞鐝暟閲� auxiliaryOutputWorkingHours.setOutputWorkTime((ObjectUtils.isNotEmpty(auxiliaryOutputWorkingHours.getOvertimeWorkTime()) ? auxiliaryOutputWorkingHours.getOvertimeWorkTime() : 0) + (ObjectUtils.isNotEmpty(auxiliaryOutputWorkingHours.getWorkTime()) ? auxiliaryOutputWorkingHours.getWorkTime() : 0));//浜ч噺宸ユ椂 - auxiliaryOutputWorkingHours.setManHourGroup(insProduct.getManHourGroup());//宸ユ椂鍒嗙粍 - DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); - DateTimeFormatter formatters = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); - auxiliaryOutputWorkingHours.setDateTime(LocalDateTime.now().toLocalDate().atStartOfDay().format(formatters));//鏃ユ湡 - LocalDateTime localDateTime = LocalDateTime.now(); - DateTime parse = DateUtil.parse(localDateTime.format(formatter)); - auxiliaryOutputWorkingHours.setWeekDay(getWeek(localDateTime.format(formatters)));//鏄熸湡 - auxiliaryOutputWorkingHours.setWeek(String.valueOf(DateUtil.weekOfYear(DateUtil.offsetDay(parse, 1))));//鍛ㄦ - auxiliaryOutputWorkingHours.setCheck(userId);//妫�娴嬩汉 - } - else { + + } else { //鍔犵彮 - auxiliaryOutputWorkingHours.setInspectionItem(insProduct.getInspectionItem());//妫�娴嬬埗椤� - auxiliaryOutputWorkingHours.setInspectionItemSubclass(insProduct.getInspectionItemSubclass());//妫�娴嬪瓙椤� - auxiliaryOutputWorkingHours.setSample(insSampleMapper.selectById(insProduct.getInsSampleId()).getSampleCode());//鏍峰搧缂栧彿 auxiliaryOutputWorkingHours.setOvertimeOrderNo(insOrder.getEntrustCode());//鍔犵彮濮旀墭鍗曞彿 auxiliaryOutputWorkingHours.setOvertimeWorkTime(insProduct.getManHour());//鍔犵彮宸ユ椂 auxiliaryOutputWorkingHours.setOvertimeAmount(1);//鍔犵彮鏁伴噺 auxiliaryOutputWorkingHours.setOutputWorkTime((ObjectUtils.isNotEmpty(auxiliaryOutputWorkingHours.getOvertimeWorkTime()) ? auxiliaryOutputWorkingHours.getOvertimeWorkTime() : 0) + (ObjectUtils.isNotEmpty(auxiliaryOutputWorkingHours.getWorkTime()) ? auxiliaryOutputWorkingHours.getWorkTime() : 0));//浜ч噺宸ユ椂 - auxiliaryOutputWorkingHours.setManHourGroup(insProduct.getManHourGroup());//宸ユ椂鍒嗙粍 - DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); - DateTimeFormatter formatters = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); - auxiliaryOutputWorkingHours.setDateTime(LocalDateTime.now().toLocalDate().atStartOfDay().format(formatters));//鏃ユ湡 - LocalDateTime localDateTime = LocalDateTime.now(); - DateTime parse = DateUtil.parse(localDateTime.format(formatter)); - auxiliaryOutputWorkingHours.setWeekDay(getWeek(localDateTime.format(formatters)));//鏄熸湡 - auxiliaryOutputWorkingHours.setWeek(String.valueOf(DateUtil.weekOfYear(DateUtil.offsetDay(parse, 1))));//鍛ㄦ - auxiliaryOutputWorkingHours.setCheck(userId);//妫�娴嬩汉 } - try { - //杩欎釜妫�楠岄」鐩繕娌℃湁濉啓杩囨楠屽�间笖杩欐杩欎釜妫�楠岄」鐩~鍐欑殑妫�楠屽�间笉涓虹┖ - if (CollectionUtils.isEmpty(insProductResultss) && jo.get("insValue") != null - //杩欎釜妫�楠岄」鐩繕娌℃湁濉啓杩囨楠屽�间笖杩欐杩欎釜妫�楠岄」鐩~鍐欑殑璁$畻鍊间笉涓虹┖浣嗘槸妫�楠屽�间负绌� - || CollectionUtils.isEmpty(insProductResultss) && jo.get("insValue") == null && jo.get("comValue") != null - //杩欎釜妫�楠岄」鐩湁濉啓杩囨楠屽�间笖杩欐濉啓鐨勬楠屽�煎拰鍘熸潵鐨勬楠屽�间笉鐩哥瓑,涓旇繖娆$殑妫�楠屽�间笉绛変簬绌� - || (CollectionUtils.isNotEmpty(insProductResultss) && !insProductResultss.get(0).getInsValue().equals(result.getInsValue()) && jo.get("insValue") != null) - //杩欎釜妫�楠岄」鐩湁濉啓杩囨楠屽�间笖杩欐濉啓鐨勮绠楀�煎拰鍘熸潵鐨勮绠楀�间笉鐩哥瓑,涓旇繖娆$殑璁$畻鍊间笉绛変簬绌�,涓旇繖娆$殑妫�楠屽�肩瓑浜庣┖ - || (CollectionUtils.isNotEmpty(insProductResultss) && !insProductResultss.get(0).getComValue().equals(result.getComValue()) && jo.get("insValue") == null && jo.get("comValue") != null)) { - auxiliaryOutputWorkingHoursMapper.insert(auxiliaryOutputWorkingHours); - } - } catch (Exception e) { - System.out.println("宸ユ椂鏂板涓嶆垚鍔�!!!"); - } + auxiliaryOutputWorkingHours.setInspectionItem(insProduct.getInspectionItem());//妫�娴嬬埗椤� + auxiliaryOutputWorkingHours.setInspectionItemSubclass(insProduct.getInspectionItemSubclass());//妫�娴嬪瓙椤� + auxiliaryOutputWorkingHours.setSample(insSampleMapper.selectById(insProduct.getInsSampleId()).getSampleCode());//鏍峰搧缂栧彿 + auxiliaryOutputWorkingHours.setManHourGroup(insProduct.getManHourGroup());//宸ユ椂鍒嗙粍 + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); + DateTimeFormatter formatters = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); + auxiliaryOutputWorkingHours.setDateTime(LocalDateTime.now().toLocalDate().atStartOfDay().format(formatters));//鏃ユ湡 + LocalDateTime localDateTime = LocalDateTime.now(); + DateTime parse = DateUtil.parse(localDateTime.format(formatter)); + auxiliaryOutputWorkingHours.setWeekDay(getWeek(localDateTime.format(formatters)));//鏄熸湡 + auxiliaryOutputWorkingHours.setWeek(String.valueOf(DateUtil.weekOfYear(DateUtil.offsetDay(parse, 1))));//鍛ㄦ + auxiliaryOutputWorkingHours.setCheck(userId);//妫�娴嬩汉 + auxiliaryOutputWorkingHours.setInsProductId(insProduct.getId());//妫�楠岄」鐩甶d + auxiliaryOutputWorkingHoursMapper.insert(auxiliaryOutputWorkingHours); } } } - InsSample insSample = insSampleMapper.selectById(insProductMapper.selectById(insProduct.getId()).getInsSampleId()); insSample.setInsState(1); Long l = insProductMapper.selectCount(Wrappers.<InsProduct>lambdaQuery() @@ -783,22 +725,9 @@ if (res != null) { int pId = Integer.parseInt(res.replaceAll("\\D+", "")); InsProduct insProduct = insProductMapper.selectById(pId); - // 閫氳繃pId 鑾峰彇褰撳墠鏍锋湰id - int sampleId = insProductMapper.selectById(pId).getInsSampleId(); // 閫氳繃鏍锋湰id鑾峰彇璁㈠崟id - int orderId = insSampleMapper.selectById(sampleId).getInsOrderId(); - // 閫氳繃璁㈠崟id鏌ユ壘鎵�鏈夋牱鏈琲d - List<Integer> sampleIds = insSampleMapper.selectList(Wrappers.<InsSample>lambdaQuery().eq(InsSample::getInsOrderId, orderId)).stream().map(InsSample::getId).collect(Collectors.toList()); - // 閫氳繃妫�鏌ユ瘡涓�涓牱鏈琲d鏌ュ埌灞炰簬妫�楠岄」缁撹 is null 鎴栬�� =2 鐨勬暟閲� - Long count = insProductMapper.selectCount(Wrappers.<InsProduct>lambdaQuery() - .in(InsProduct::getInsSampleId, sampleIds) - .and(wrapper -> wrapper - .isNull(InsProduct::getInsResult) - .or() - .eq(InsProduct::getInsResult, 2) - ) - .eq(InsProduct::getSonLaboratory, insProduct.getSonLaboratory()) - .eq(InsProduct::getState, 1)); + int orderId = insSampleMapper.selectById(insProduct.getInsSampleId()).getInsOrderId(); + int count = insProductMapper.selectInsProductCountByOrderId(orderId); if (count == 0) { insOrderStateMapper.update(new InsOrderState(), Wrappers.<InsOrderState>lambdaUpdate() .eq(InsOrderState::getInsOrderId, orderId) @@ -810,6 +739,247 @@ e.printStackTrace(); return null; }); + } + + //鐢佃矾璇曢獙鐨勪繚瀛樻楠屽唴瀹� + @Override + public List<Integer> saveInsContext2(InsProductResultDto insProductResultDtos) { + if (ObjectUtils.isEmpty(insProductResultDtos.getFrequency())){ + throw new ErrorException("棰戠巼涓嶈兘涓虹┖"); + } + Integer userId = getLook.selectPowerByMethodAndUserId(null).get("userId"); + //鏌ヨ妫�楠屽崟淇℃伅 + InsOrder insOrder = insOrderMapper.selectById(insProductResultDtos.getOrderId()); + //鏌ヨ鏍峰搧淇℃伅 + InsSample insSample = insSampleMapper.selectById(insProductResultDtos.getSampleId()); + List<Integer> list = new ArrayList<>(); + /*鏂板妫�楠岄」鐩楠屽�艰褰曡〃(閲囧彇鍏堝垹鍚庡)*/ + insProductResult2Mapper.delete(Wrappers.<InsProductResult2>lambdaQuery() + .in(InsProductResult2::getInsProductId, insProductResultDtos.getInsProductResult2s().stream().map(InsProductResult2::getInsProductId).distinct().collect(Collectors.toList())) + .eq(InsProductResult2::getFrequency, insProductResultDtos.getFrequency())); + for (InsProductResult2 insProductResult2 : insProductResultDtos.getInsProductResult2s()) { + InsProduct insProduct = new InsProduct(); + insProduct.setId(insProductResult2.getInsProductId());//椤圭洰id + InsProductResult2 result2 = new InsProductResult2(); + result2.setInsProductId(insProductResult2.getInsProductId()); + //棰戠巼 + result2.setFrequency(insProductResultDtos.getFrequency()); + //棰戠偣 + if (insProductResult2.getOften() != null) { + result2.setOften(insProductResult2.getOften()); + } + //绔彛 + if (insProductResult2.getPort() != null) { + result2.setPort(insProductResult2.getPort()); + } + //瑙掑害 + if (insProductResult2.getAngle() != null) { + result2.setAngle(insProductResult2.getAngle()); + } + //璁惧缂栧彿 + if (insProductResult2.getEquipValue() != null) { + result2.setEquipValue(insProductResult2.getEquipValue()); + } + //璁惧鍚嶇О + if (insProductResult2.getEquipName() != null) { + result2.setEquipName(insProductResult2.getEquipName()); + } + insProduct = insProductMapper.selectById(insProduct.getId()); + //鍊� + if (insProductResult2.getValue() != null) { + result2.setValue(insProductResult2.getValue()); + //缁撹 + int ressult = 1; + String valueStr = insProductResult2.getValue(); + if (!insProduct.getAsk().contains(",")) { + if (!isValueValid(valueStr, new String[]{insProduct.getAsk()})) { + ressult = 0; //涓嶅悎鏍� + } + } else { + // 濡傛灉瑕佹眰鍊兼槸(2掳鈮�20,7掳鈮�25,12掳鈮�25)杩欑鎯呭喌 + String[] askParts = insProduct.getAsk().split(","); + String[] angles = insProductResult2.getAngle().split(","); + for (String s : askParts) { + String[] askSplit = s.split("掳"); + String angleKey = askSplit[0]; + String angleValue = askSplit[1]; + + for (int i = 0; i < angles.length; i++) { + if (angles[i].split("掳")[0].equals(angleKey)) { + try { + String s1 = valueStr.substring(1, valueStr.length() - 1).split("\\],\\[")[i]; + if (!s1.startsWith("[")) { + s1 = "[" + s1; + } + if (!s1.endsWith("]")) { + s1 = s1 + "]"; + } + if (!isValueValid("[" + s1 + "]", new String[]{angleValue})) { + ressult = 0; // 涓嶅悎鏍� + break; + } + }catch (Exception e) { + }finally { + continue; + } + + } + } + } + } + result2.setResult(ressult); + list.add(ressult); + } + result2.setCreateUser(userId); + result2.setUpdateUser(userId); + insProductResult2Mapper.insert(result2); + insProduct.setUpdateUser(userId); + insProductMapper.updateById(insProduct); + insProductUserMapper.insert(new InsProductUser(null, userId, LocalDateTime.now(), insProduct.getId())); + /*鐢熸垚浜ч噺宸ユ椂*/ + //鏍¢獙濡傛灉杩欎釜浜鸿繖涓娴嬮」鐩凡缁忔坊鍔犺繃浜嗗垯涓嶉渶瑕佸啀鏂板 + //棣栧厛鍒ゆ柇褰撳墠浜虹殑褰撳墠鏃堕棿鏄惁鏄帓鐝椂闂村唴,濡傛灉涓嶆槸灏辨槸鍔犵彮 + LocalDateTime today = LocalDateTime.of(LocalDate.now(), LocalTime.MIDNIGHT); + PerformanceShift performanceShift = performanceShiftMapper.selectOne(Wrappers.<PerformanceShift>lambdaQuery() + .eq(PerformanceShift::getUserId, userId) + .eq(PerformanceShift::getWorkTime, today)); + if (ObjectUtils.isNotEmpty(performanceShift)) { + ShiftTime shiftTime = shiftTimeMapper.selectOne(Wrappers.<ShiftTime>lambdaQuery().eq(ShiftTime::getShift, performanceShift.getShift())); + if (ObjectUtils.isNotEmpty(shiftTime)) { + DateTimeFormatter forma = DateTimeFormatter.ofPattern("HH:mm"); + LocalTime now = LocalTime.now(); + LocalTime startTime = LocalTime.parse(shiftTime.getStartTime(), forma); + LocalTime endTime = LocalTime.parse(shiftTime.getEndTime(), forma); + // 妫�鏌ュ綋鍓嶆椂闂存槸鍚﹀湪鑼冨洿鍐咃紙鍖呮嫭杈圭晫锛� + boolean isWithinRange; + if (endTime.isAfter(startTime)) { + // 涓嶈法澶╃殑鎯呭喌 + isWithinRange = !now.isBefore(startTime) && !now.isAfter(endTime); + } else { + // 璺ㄥぉ鐨勬儏鍐� + isWithinRange = !now.isBefore(startTime) || !now.isAfter(endTime); + } + if (ObjectUtils.isNotEmpty(insProduct.getManHour())) { + //鍏堝垹鍚庡姞(宸ユ椂璁板綍鏈�鍚庝竴娆′繚瀛樼殑鏃堕棿) + auxiliaryOutputWorkingHoursMapper.delete(Wrappers.<AuxiliaryOutputWorkingHours>lambdaQuery() + .eq(AuxiliaryOutputWorkingHours::getInsProductId, insProduct.getId())); + AuxiliaryOutputWorkingHours auxiliaryOutputWorkingHours = new AuxiliaryOutputWorkingHours(); + if (isWithinRange) { + //鍦ㄦ椂闂村唴灏辨槸姝e父涓婄彮 + auxiliaryOutputWorkingHours.setOrderNo(insOrder.getEntrustCode());//闈炲姞鐝鎵樺崟鍙� + auxiliaryOutputWorkingHours.setWorkTime(insProduct.getManHour());//闈炲姞鐝伐鏃� + auxiliaryOutputWorkingHours.setAmount(1);//闈炲姞鐝暟閲� + auxiliaryOutputWorkingHours.setOutputWorkTime((ObjectUtils.isNotEmpty(auxiliaryOutputWorkingHours.getOvertimeWorkTime()) ? auxiliaryOutputWorkingHours.getOvertimeWorkTime() : 0) + (ObjectUtils.isNotEmpty(auxiliaryOutputWorkingHours.getWorkTime()) ? auxiliaryOutputWorkingHours.getWorkTime() : 0));//浜ч噺宸ユ椂 + + } else { + //鍔犵彮 + auxiliaryOutputWorkingHours.setOvertimeOrderNo(insOrder.getEntrustCode());//鍔犵彮濮旀墭鍗曞彿 + auxiliaryOutputWorkingHours.setOvertimeWorkTime(insProduct.getManHour());//鍔犵彮宸ユ椂 + auxiliaryOutputWorkingHours.setOvertimeAmount(1);//鍔犵彮鏁伴噺 + auxiliaryOutputWorkingHours.setOutputWorkTime((ObjectUtils.isNotEmpty(auxiliaryOutputWorkingHours.getOvertimeWorkTime()) ? auxiliaryOutputWorkingHours.getOvertimeWorkTime() : 0) + (ObjectUtils.isNotEmpty(auxiliaryOutputWorkingHours.getWorkTime()) ? auxiliaryOutputWorkingHours.getWorkTime() : 0));//浜ч噺宸ユ椂 + } + auxiliaryOutputWorkingHours.setInspectionItem(insProduct.getInspectionItem());//妫�娴嬬埗椤� + auxiliaryOutputWorkingHours.setInspectionItemSubclass(insProduct.getInspectionItemSubclass());//妫�娴嬪瓙椤� + auxiliaryOutputWorkingHours.setSample(insSampleMapper.selectById(insProduct.getInsSampleId()).getSampleCode());//鏍峰搧缂栧彿 + auxiliaryOutputWorkingHours.setManHourGroup(insProduct.getManHourGroup());//宸ユ椂鍒嗙粍 + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); + DateTimeFormatter formatters = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); + auxiliaryOutputWorkingHours.setDateTime(LocalDateTime.now().toLocalDate().atStartOfDay().format(formatters));//鏃ユ湡 + LocalDateTime localDateTime = LocalDateTime.now(); + DateTime parse = DateUtil.parse(localDateTime.format(formatter)); + auxiliaryOutputWorkingHours.setWeekDay(getWeek(localDateTime.format(formatters)));//鏄熸湡 + auxiliaryOutputWorkingHours.setWeek(String.valueOf(DateUtil.weekOfYear(DateUtil.offsetDay(parse, 1))));//鍛ㄦ + auxiliaryOutputWorkingHours.setCheck(userId);//妫�娴嬩汉 + auxiliaryOutputWorkingHours.setInsProductId(insProduct.getId());//妫�楠岄」鐩甶d + auxiliaryOutputWorkingHoursMapper.insert(auxiliaryOutputWorkingHours); + } + } + } + /*鏇存柊鏍峰搧鐨勬楠岀姸鎬�*/ + insSample.setInsState(1); + Long l = insProductMapper.selectCount(Wrappers.<InsProduct>lambdaQuery() + .eq(InsProduct::getInsSampleId, insSample.getId())); + Long l1 = insProductMapper.selectCount(Wrappers.<InsProduct>lambdaQuery() + .eq(InsProduct::getInsSampleId, insSample.getId()) + .and(wrapper -> wrapper + .isNotNull(InsProduct::getInsResult) + .or() + .ne(InsProduct::getInsResult, 2) + )); + if (l == l1) { + //濡傛灉鎵�鏈夐」鐩兘鏈夌粨璁�,閭d箞璇ユ牱鍝佺姸鎬佸凡妫� + insSample.setInsState(2); + } + insSampleMapper.updateById(insSample); + } + /*鍒ゆ柇璇ョ珯鐐圭殑妫�楠岄」鐩槸鍚﹀叏閮ㄥ凡妫�*/ + int count = insProductMapper.selectInsProductCountByOrderId(insProductResultDtos.getOrderId()); + if (count == 0) { + insOrderStateMapper.update(new InsOrderState(), Wrappers.<InsOrderState>lambdaUpdate() + .eq(InsOrderState::getInsOrderId, insProductResultDtos.getOrderId()) + .eq(InsOrderState::getLaboratory, insProductResultDtos.getSonLaboratory()) + .set(InsOrderState::getInsState, 2)); + } + return list; + } + + //瑙f瀽瑕佹眰鍊肩殑鏍煎紡 + private boolean getResult(double s, String ask) { + // 澶勭悊卤鑼冨洿鐨勬潯浠� + if (ask.contains("卤")) { + Pattern pattern = Pattern.compile("(\\d+)卤(\\d+)"); + Matcher matcher = pattern.matcher(ask); + if (matcher.matches()) { + double center = Double.parseDouble(matcher.group(1)); + double tolerance = Double.parseDouble(matcher.group(2)); + return Math.abs(s - center) <= tolerance; + } + } + // 澶勭悊鍏朵粬姣旇緝鏉′欢 + if (ask.startsWith(">")) { + double threshold = Double.parseDouble(ask.substring(1)); + return s > threshold; + } else if (ask.startsWith("鈮�")) { + double threshold = Double.parseDouble(ask.substring(1)); + return s >= threshold; + } else if (ask.startsWith("<")) { + double threshold = Double.parseDouble(ask.substring(1)); + return s < threshold; + } else if (ask.startsWith("鈮�")) { + double threshold = Double.parseDouble(ask.substring(1)); + return s <= threshold; + } else if (ask.equals("=")) { + double exactValue = Double.parseDouble(ask.substring(1)); + return s == exactValue; + } + // 澶勭悊涓嶆敮鎸佺殑鏉′欢 + throw new IllegalArgumentException("鏈煡鏍煎紡瑕佹眰鍊艰妫�鏌�" + ask); + } + + //灏嗗墠绔紶杩囨潵鐨勫�艰浆鎹㈡垚鏁扮粍鐨勫舰寮� + private String[] parseValues(String valueStr) { + String trimmedStr = valueStr.substring(1, valueStr.length() - 1); + return Arrays.stream(trimmedStr.split("\\],\\[")) + .map(s -> s.substring(1, s.length() - 1).split(",")) + .flatMap(Arrays::stream) + .map(s -> s.replace("\"", "")) + .toArray(String[]::new); + } + + //鍒よ鍚堟牸涓庝笉鍚堟牸 + private boolean isValueValid(String valueStr, String[] valuesToCheck) { + for (String s : parseValues(valueStr)) { + if (ObjectUtils.isEmpty(s)) { + continue; + } + double numericValue = Double.parseDouble(s); + boolean valid = Arrays.stream(valuesToCheck) + .allMatch(v -> getResult(numericValue, v)); + if (!valid) { + return false; + } + } + return true; } //浜ゆ帴 @@ -941,8 +1111,7 @@ insOrderState.setLaboratory(minElement); insOrderState.setInsState(0); insOrderStateMapper.insert(insOrderState); - } - else { + } else { //濡傛灉缁х画璇曢獙娌℃湁鍏朵粬绔欑偣鐨勬楠屼换鍔¢偅灏辩粨鏉熻瘯楠� verifyPlan(orderId, laboratory, 2, tell); } @@ -1626,6 +1795,24 @@ String str = ""; int count = 0; for (InsProduct product : insProducts) { + //杈愬皠璇曢獙妫�娴嬬殑妫�楠岄」鐩�,涓嶉渶瑕佸幓鎵嬪姩濉啓妫�楠屽��,鍙渶瑕佷笂浼犺〃鏍兼枃浠跺氨鍙互浜�,鍚庡彴鎻愪氦鐨勬椂鍊欐牎楠岃烦杩囪繖涓楠岄」鐩� + if (product.getInspectionItem().equals("杈愬皠璇曢獙妫�娴�")) { + product.setInsResult(3);//涓嶅垽瀹� + insProductMapper.updateById(product); + continue; + } + //鐢佃矾璇曢獙鐨勬楠岄」鐩�,闇�瑕佸湪鎻愪氦鐨勬椂鍊欏啀鍘昏祴鍊煎悎鏍间笌涓嶅悎鏍� + if (product.getInspectionItem().equals("鐢佃矾璇曢獙")) { + List<Integer> collect = insProductResult2Mapper.selectList(Wrappers.<InsProductResult2>lambdaQuery() + .eq(InsProductResult2::getInsProductId, product.getId())).stream().map(InsProductResult2::getResult).distinct().collect(Collectors.toList()); + if (collect.contains(0)) { + product.setInsResult(0);//涓嶅悎鏍� + } else { + product.setInsResult(1);//鍚堟牸 + } + insProductMapper.updateById(product); + continue; + } count++; str += "<br/>" + count + "锛�" + product.getInspectionItem() + " " + product.getInspectionItemSubclass() + "<br/>"; } @@ -1643,7 +1830,7 @@ InsOrder insOrder = insOrderMapper.selectById(orderId); if (insOrder.getOrderType().equals("C") && insOrder.getDepartmentLims().equals("璐ㄩ噺閮�")) { verifyPlan(orderId, laboratory, 2, null); - }else { + } else { Integer userId = getLook.selectPowerByMethodAndUserId(null).get("userId"); //LIMS绯荤粺娑堟伅鎺ㄩ�� InformationNotification info = new InformationNotification(); 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 004cbf1..bafa574 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 @@ -195,13 +195,16 @@ count.getAndIncrement(); a.setId(null); a.setInsOrderId(insOrder.getId()); + //鏍峰搧缂栧彿 if (StrUtil.isEmpty(a.getSampleCode())) { a.setSampleCode("TX(WYQJ)-" + giveCode.split("-")[2] + "-" + count.get()); } insSampleMapper.insert(a); + //鏍峰搧鐨勬楠岄」鐩� if (ObjectUtil.isNotEmpty(a.getInsProduct())) { - addInsProductMethod(a.getId(), a.getInsProduct(), null, 0, false); + addInsProductMethod(a.getId(), a.getInsProduct(), null, 0); } + //鏍峰搧鐨勬楠屾爣鍑� if (ObjectUtil.isNotEmpty(a.getInsulating())) { List<InsProduct> ip2 = new ArrayList<>(); for (Integer i = 0; i < a.getInsulating().getNum(); i++) { @@ -210,14 +213,16 @@ for (InsProduct product : ip2) { product.setStandardMethodListId(a.getInsulating().getStandardMethodListId()); } - addInsProductMethod(a.getId(), ip2, null, 0, false); + addInsProductMethod(a.getId(), ip2, null, 0); } + //鏍峰搧鐨勬楠屾爣鍑� if (ObjectUtil.isNotEmpty(a.getSheath())) { for (InsProduct product : a.getSheath().getInsProduct()) { product.setStandardMethodListId(a.getSheath().getStandardMethodListId()); } - addInsProductMethod(a.getId(), a.getSheath().getInsProduct(), null, 0, false); + addInsProductMethod(a.getId(), a.getSheath().getInsProduct(), null, 0); } + //瀛愭牱鍝侀厤缃� if (ObjectUtil.isNotEmpty(a.getChildSampleList())) { for (SampleProductDto b : a.getChildSampleList()) { for (int i = 0; i < b.getNum(); i++) { @@ -229,12 +234,13 @@ } insSampleMapper.insert(b); if (ObjectUtil.isNotEmpty(b.getInsProduct())) { - addInsProductMethod(b.getId(), b.getInsProduct(), null, 0, false); + addInsProductMethod(b.getId(), b.getInsProduct(), null, 0); } } } } - if (ObjectUtil.isEmpty(a.getInsProduct()) && ObjectUtil.isNotEmpty(a.getBushing())) { + //鍏夌氦閰嶇疆 + /*if (ObjectUtil.isEmpty(a.getInsProduct()) && ObjectUtil.isNotEmpty(a.getBushing())) { for (BushingDto bushingDto : a.getBushing()) { bushingDto.setInsSampleId(a.getId()); insBushingMapper.insert(bushingDto); @@ -242,7 +248,7 @@ for (FiberDto fiberDto : bushingDto.getFiber()) { fiberDto.setInsBushingId(bushingDto.getId()); insFiberMapper.insert(fiberDto); - addInsProductMethod(a.getId(), fiberDto.getProductList(), fiberDto.getId(), 2, false); + addInsProductMethod(a.getId(), fiberDto.getProductList(), fiberDto.getId(), 2); } } else { for (FibersDto fibersDto : bushingDto.getFibers()) { @@ -252,15 +258,16 @@ for (FiberDto fiberDto : fibersDto.getFiber()) { fiberDto.setInsFibersId(fibersDto.getId()); insFiberMapper.insert(fiberDto); - addInsProductMethod(a.getId(), fiberDto.getProductList(), fiberDto.getId(), 2, false); + addInsProductMethod(a.getId(), fiberDto.getProductList(), fiberDto.getId(), 2); } - addInsProductMethod(a.getId(), fibersDto.getProductList(), fibersDto.getId(), 1, false); + addInsProductMethod(a.getId(), fibersDto.getProductList(), fibersDto.getId(), 1); } } } - } + }*/ }); - for (List<Integer> i : pairing) { + //澶氫釜鏍峰搧灏辨嫾鎺� + /*for (List<Integer> i : pairing) { SampleProductDto sample = JSON.parseObject(JSON.toJSONString(list.get(i.get(0) - 1)), SampleProductDto.class); sample.setSampleCode(list.get(i.get(0) - 1).getSampleCode() + "/" + list.get(i.get(1) - 1).getSampleCode()); sample.setId(null); @@ -274,7 +281,7 @@ } } catch (Exception e) { } - } + }*/ //閫氫俊:濡傛灉鏄疌绫昏鍗曟棤闇�瀹℃牳鐩存帴閫氳繃 if (insOrder.getOrderType().equals("C")) { insOrder.setState(1); @@ -283,31 +290,27 @@ return insOrder.getId(); } - private void addInsProductMethod(Integer sampleId, List<InsProduct> productList, Integer id, Integer type, Boolean is) { - InsOrder insOrder = insOrderMapper.selectById(insSampleMapper.selectById(sampleId).getInsOrderId()); - String name = insSampleMapper.selMethodById(sampleId); + private void addInsProductMethod(Integer sampleId, List<InsProduct> productList, Integer id, Integer type) { for (InsProduct product : productList) { - if (product.getState() == 1 && !product.getInspectionItem().equals("鍏夌氦鎺ュご鎹熻��")) { - if (!is) { - switch (type) { - case 1: - product.setInsFibersId(id); - break; - case 2: - product.setInsFiberId(id); - break; - } - product.setId(null); - product.setCreateTime(null); - product.setCreateUser(null); - product.setUpdateTime(null); - product.setUpdateUser(null); - product.setInsSampleId(sampleId); - if (product.getInspectionItemSubclass() == null) { - product.setInspectionItemSubclass(""); - } - insProductMapper.insert(product); + if (product.getState() == 1 ) { + switch (type) { + case 1: + product.setInsFibersId(id); + break; + case 2: + product.setInsFiberId(id); + break; } + product.setId(null); + product.setCreateTime(null); + product.setCreateUser(null); + product.setUpdateTime(null); + product.setUpdateUser(null); + product.setInsSampleId(sampleId); + if (product.getInspectionItemSubclass() == null) { + product.setInspectionItemSubclass(""); + } + insProductMapper.insert(product); } } } diff --git a/inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsProductResult2ServiceImpl.java b/inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsProductResult2ServiceImpl.java new file mode 100644 index 0000000..6785f2b --- /dev/null +++ b/inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsProductResult2ServiceImpl.java @@ -0,0 +1,20 @@ +package com.yuanchu.mom.service.impl; + +import com.yuanchu.mom.mapper.InsProductResult2Mapper; +import com.yuanchu.mom.pojo.InsProductResult2; +import com.yuanchu.mom.service.InsProductResult2Service; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + * <p> + * 妫�楠岄」鐩殑缁撴灉(鍙拡瀵圭數璺瘯楠�,涓庨」鐩殑鍏崇郴鏄竴瀵瑰) 鏈嶅姟瀹炵幇绫� + * </p> + * + * @author 姹熻嫃榈烽洀缃戠粶绉戞妧鏈夐檺鍏徃 + * @since 2024-09-04 03:58:50 + */ +@Service +public class InsProductResult2ServiceImpl extends ServiceImpl<InsProductResult2Mapper, InsProductResult2> implements InsProductResult2Service { + +} diff --git a/inspect-server/src/main/java/com/yuanchu/mom/vo/InsOrderPlanVO.java b/inspect-server/src/main/java/com/yuanchu/mom/vo/InsOrderPlanVO.java index 2ed3016..a7bbee6 100644 --- a/inspect-server/src/main/java/com/yuanchu/mom/vo/InsOrderPlanVO.java +++ b/inspect-server/src/main/java/com/yuanchu/mom/vo/InsOrderPlanVO.java @@ -51,5 +51,6 @@ private Integer orderStateId; private Integer sort; + private Integer version; } diff --git a/inspect-server/src/main/java/com/yuanchu/mom/vo/InsProductResultVo.java b/inspect-server/src/main/java/com/yuanchu/mom/vo/InsProductResultVo.java new file mode 100644 index 0000000..68711b1 --- /dev/null +++ b/inspect-server/src/main/java/com/yuanchu/mom/vo/InsProductResultVo.java @@ -0,0 +1,16 @@ +package com.yuanchu.mom.vo; + +import lombok.Data; + +import java.util.List; + +@Data +//鍒犻櫎棰戞 +public class InsProductResultVo { + + //棰戞 + private String frequency; + + //椤圭洰id + private List<Integer> productIds; +} diff --git a/inspect-server/src/main/resources/mapper/InsProductMapper.xml b/inspect-server/src/main/resources/mapper/InsProductMapper.xml index dc00e69..4394f11 100644 --- a/inspect-server/src/main/resources/mapper/InsProductMapper.xml +++ b/inspect-server/src/main/resources/mapper/InsProductMapper.xml @@ -108,4 +108,14 @@ and state = 1 and is2.ins_order_id = #{orderId}) A </select> + + <select id="selectInsProductCountByOrderId" resultType="int"> + select COUNT(1) + from ins_product ip + left join ins_sample isa on ip.ins_sample_id = isa.id + left join ins_order io on isa.ins_order_id = io.id + where io.id = #{orderId} + and (ip.ins_result is null or ip.ins_result = 2) + and ip.state = 1 + </select> </mapper> diff --git a/inspect-server/src/main/resources/mapper/InsProductResult2Mapper.xml b/inspect-server/src/main/resources/mapper/InsProductResult2Mapper.xml new file mode 100644 index 0000000..de575c0 --- /dev/null +++ b/inspect-server/src/main/resources/mapper/InsProductResult2Mapper.xml @@ -0,0 +1,23 @@ +锘�<?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.yuanchu.mom.mapper.InsProductResult2Mapper"> + + <!-- 閫氱敤鏌ヨ鏄犲皠缁撴灉 --> + <resultMap id="BaseResultMap" type="com.yuanchu.mom.pojo.InsProductResult2"> + <id column="id" property="id" /> + <result column="ins_product_id" property="insProductId" /> + <result column="equip_value" property="equipValue" /> + <result column="equip_name" property="equipName" /> + <result column="create_user" property="createUser" /> + <result column="update_user" property="updateUser" /> + <result column="create_time" property="createTime" /> + <result column="update_time" property="updateTime" /> + <result column="frequency" property="frequency" /> + <result column="often" property="often" /> + <result column="port" property="port" /> + <result column="angle" property="angle" /> + <result column="value" property="value" /> + <result column="result" property="result" /> + </resultMap> + +</mapper> diff --git a/inspect-server/src/main/resources/mapper/InsProductResultMapper.xml b/inspect-server/src/main/resources/mapper/InsProductResultMapper.xml index 74c6e90..fafc88a 100644 --- a/inspect-server/src/main/resources/mapper/InsProductResultMapper.xml +++ b/inspect-server/src/main/resources/mapper/InsProductResultMapper.xml @@ -15,17 +15,5 @@ <result property="updateTime" column="update_time" jdbcType="TIMESTAMP"/> </resultMap> - <select id="selDetail" resultMap="BaseResultMap"> - select * - from ins_product_result - where 1=1 - <!--and ins_product_id in (#{ips})--> - <if test="ips != null and ips.size() > 0"> - <!-- 浣跨敤foreach鍏冪礌鏋勫缓IN瀛愬彞 --> - and ins_product_id in - <foreach item="item" collection="ips" open="(" separator="," close=")"> - #{item} - </foreach> - </if> - </select> + </mapper> diff --git a/inspect-server/src/main/resources/mapper/InsSampleMapper.xml b/inspect-server/src/main/resources/mapper/InsSampleMapper.xml index f139200..6c68844 100644 --- a/inspect-server/src/main/resources/mapper/InsSampleMapper.xml +++ b/inspect-server/src/main/resources/mapper/InsSampleMapper.xml @@ -27,7 +27,7 @@ <select id="findInsSampleAndOrder" resultType="com.yuanchu.mom.vo.InsOrderPlanVO"> select * from(select * from( SELECT - a.*,ios.ins_state,ios.verify_tell,verify_user,ios.id orderStateId,ios.create_time,ios.sort,sort_time + a.*,ios.ins_state,ios.verify_tell,verify_user,ios.id orderStateId,ios.create_time,ios.sort,sort_time,version FROM ( SELECT @@ -126,7 +126,7 @@ LEFT JOIN user ON isu.user_id = user.id WHERE io.state = 1 --- # AND io.ins_state != 5 + -- # AND io.ins_state != 5 and send_time is not null <if test="userId !=null and userId!=''"> and (isu.user_id = #{userId} OR isu.user_id is NULL ) @@ -161,58 +161,68 @@ <select id="selectSampleProductListByOrderId" resultMap="sampleDto"> select isa.*, - ip.id ip_id, - inspection_item, - inspection_item_en, - inspection_item_class, - inspection_item_class_en, - inspection_item_subclass, - inspection_item_subclass_en, - ip.factory ip_factory, - ip.laboratory ip_laboratory, - ip.sample_type ip_sample_type, - ip.sample ip_sample, - ip.model ip_model, - son_laboratory, - ip.unit ip_unit, - price, - man_hour, - man_hour_group, - inspection_item_type, - inspection_value_type, - device_group, - checkout_number, - section, - value_type, - method, - man_day, - bsm, - ask, - tell, - `last_value`, - ip.ins_result ip_ins_result, - state, - ins_sample_id, - ip.create_user ip_create_user, - ip.update_user ip_update_user, - ip.create_time ip_create_time, - ip.update_time ip_update_time, - template_id, - ipr.ins_value, - ipr.com_value, - ipr.equip_value, - ip.method_s + ip.id ip_id, + inspection_item, + inspection_item_en, + inspection_item_class, + inspection_item_class_en, + inspection_item_subclass, + inspection_item_subclass_en, + ip.factory ip_factory, + ip.laboratory ip_laboratory, + ip.sample_type ip_sample_type, + ip.sample ip_sample, + ip.model ip_model, + son_laboratory, + ip.unit ip_unit, + price, + man_hour, + man_hour_group, + inspection_item_type, + inspection_value_type, + device_group, + checkout_number, + section, + value_type, + method, + man_day, + bsm, + ask, + tell, + `last_value`, + ip.ins_result ip_ins_result, + state, + ins_sample_id, + ip.create_user ip_create_user, + ip.update_user ip_update_user, + ip.create_time ip_create_time, + ip.update_time ip_update_time, + template_id, + ipr.ins_value, + ipr.com_value, + ipr.equip_value, + ipr2.frequency, + ipr2.often, + ipr2.port, + ipr2.angle, + ipr2.value, + ipr2.result, + ipr2.equip_value equipValue2, + ipr2.equip_name equipName2, + ip.method_s from ins_sample isa - left join ins_product ip on isa.id = ip.ins_sample_id - left join ins_product_result ipr on ip.id = ipr.ins_product_id + left join ins_product ip on isa.id = ip.ins_sample_id + left join ins_product_result ipr on ip.id = ipr.ins_product_id + left join ins_product_result_2 ipr2 on ip.id = ipr2.ins_product_id where ins_order_id = #{id} - and state = 1 --- and ins_fiber_id is null --- and ins_fibers_id is null - and <!--isa.sample_code NOT REGEXP '/'--> - isa.id in(select id1 from (select is2.id id1 ,ip.id from ins_sample is2 left join ins_product ip on is2.id = ip.ins_sample_id where ip.id is not null)s ) + and state = 1 + -- and ins_fiber_id is null + -- and ins_fibers_id is null + and <!--isa.sample_code NOT REGEXP '/'--> + isa.id in(select id1 from (select is2.id id1 ,ip.id from ins_sample is2 left join ins_product ip on is2.id = + ip.ins_sample_id where ip.id is not null)s ) order by case when man_hour_group is NULL then 1 - when man_hour_group ='' then 1 else 0 end, + when man_hour_group ='' then 1 else 0 end, CASE WHEN man_hour_group REGEXP '^[0-9]' THEN CAST(man_hour_group AS UNSIGNED) -- 濡傛灉浠ユ暟瀛楀紑澶达紝鍒欐寜鐓ф暟瀛楀ぇ灏忔帓搴� WHEN man_hour_group REGEXP '[0-9]+' THEN CAST(SUBSTRING(man_hour_group, 2)AS UNSIGNED) END -- 鎻愬彇瀛楁瘝鍚庨潰鐨勬暟瀛楅儴鍒� @@ -260,6 +270,14 @@ ipr.com_value, ipr.equip_value, ipr.equip_name, + ipr2.frequency, + ipr2.often, + ipr2.port, + ipr2.angle, + ipr2.value, + ipr2.result, + ipr2.equip_value equipValue2, + ipr2.equip_name equipName2, ip.method_s, ip.tell, ip.dic, @@ -268,6 +286,7 @@ from ins_sample isa left join ins_product ip on isa.id = ip.ins_sample_id left join ins_product_result ipr on ip.id = ipr.ins_product_id + left join ins_product_result_2 ipr2 on ip.id = ipr2.ins_product_id where ins_order_id = #{id} and state = 1 and ip.son_laboratory = #{laboratory} @@ -320,19 +339,31 @@ ipr.ins_value, ipr.com_value, ipr.equip_value, + ipr2.frequency, + ipr2.often, + ipr2.port, + ipr2.angle, + ipr2.value, + ipr2.result, + ipr2.equip_value equipValue2, + ipr2.equip_name equipName2, ip.method_s from ins_sample isa left join ins_product ip on isa.id = ip.ins_sample_id left join ins_product_result ipr on ip.id = ipr.ins_product_id + left join ins_product_result_2 ipr2 on ip.id = ipr2.ins_product_id where ins_order_id = #{id} and ip.standard_method_list_id is not null and state = 1 - order by case when man_hour_group is NULL then 1 - when man_hour_group ='' then 1 else 0 end, + order by case + when man_hour_group is NULL then 1 + when man_hour_group = '' then 1 + else 0 end, CASE WHEN man_hour_group REGEXP '^[0-9]' THEN CAST(man_hour_group AS UNSIGNED) -- 濡傛灉浠ユ暟瀛楀紑澶达紝鍒欐寜鐓ф暟瀛楀ぇ灏忔帓搴� - WHEN man_hour_group REGEXP '[0-9]+' THEN CAST(SUBSTRING(man_hour_group, 2)AS UNSIGNED) END -- 鎻愬彇瀛楁瘝鍚庨潰鐨勬暟瀛楅儴鍒� - ,id asc + WHEN man_hour_group REGEXP '[0-9]+' + THEN CAST(SUBSTRING(man_hour_group, 2) AS UNSIGNED) END -- 鎻愬彇瀛楁瘝鍚庨潰鐨勬暟瀛楅儴鍒� + , id asc </select> <select id="selectSampleProductListByOrderId3" resultMap="sampleDto3"> @@ -353,7 +384,6 @@ ins_sample_id from ins_sample isa left join ins_product ip on isa.id = ip.ins_sample_id - left join ins_product_result ipr on ip.id = ipr.ins_product_id left join ins_order io on io.id = ins_order_id where ip.state = 1 and ins_order_id in @@ -361,7 +391,7 @@ #{id} </foreach> order by case when man_hour_group is NULL then 1 - when man_hour_group ='' then 1 else 0 end, + when man_hour_group ='' then 1 else 0 end, CASE WHEN man_hour_group REGEXP '^[0-9]' THEN CAST(man_hour_group AS UNSIGNED) -- 濡傛灉浠ユ暟瀛楀紑澶达紝鍒欐寜鐓ф暟瀛楀ぇ灏忔帓搴� WHEN man_hour_group REGEXP '[0-9]+' THEN CAST(SUBSTRING(man_hour_group, 2)AS UNSIGNED) END -- 鎻愬彇瀛楁瘝鍚庨潰鐨勬暟瀛楅儴鍒� @@ -409,11 +439,20 @@ ipr.com_value, ipr.equip_value, ipr.equip_name, + ipr2.frequency, + ipr2.often, + ipr2.port, + ipr2.angle, + ipr2.value, + ipr2.result, + ipr2.equip_value equipValue2, + ipr2.equip_name equipName2, ip.method_s, ip.tell, ip.dic from ins_product ip left join ins_product_result ipr on ip.id = ipr.ins_product_id + left join ins_product_result_2 ipr2 on ip.id = ipr2.ins_product_id where ins_sample_id = #{id} and state = 1 and ip.son_laboratory = #{laboratory} @@ -421,161 +460,7 @@ and ins_fibers_id is null and standard_method_list_id is not null </select> - <select id="getInsProduct2" resultMap="product"> - select ip.id ip_id, - inspection_item, - inspection_item_en, - inspection_item_class, - inspection_item_class_en, - inspection_item_subclass, - inspection_item_subclass_en, - ip.factory ip_factory, - ip.laboratory ip_laboratory, - ip.sample_type ip_sample_type, - ip.sample ip_sample, - ip.model ip_model, - son_laboratory, - ip.unit ip_unit, - price, - man_hour, - man_hour_group, - inspection_item_type, - inspection_value_type, - device_group, - checkout_number, - section, - value_type, - method, - man_day, - bsm, - ask, - `last_value`, - ip.ins_result ip_ins_result, - state, - ins_sample_id, - ip.create_user ip_create_user, - ip.update_user ip_update_user, - ip.create_time ip_create_time, - ip.update_time ip_update_time, - template_id, - ipr.ins_value, - ipr.com_value, - ipr.equip_value, - ipr.equip_name, - ip.method_s, - ip.tell, - ip.dic - from ins_product ip - left join ins_product_result ipr on ip.id = ipr.ins_product_id - where ins_fibers_id = #{id} - and state = 1 - and ins_fiber_id is null - and standard_method_list_id is not null - </select> - <select id="getInsProduct3" resultMap="product"> - select ip.id ip_id, - inspection_item, - inspection_item_en, - inspection_item_class, - inspection_item_class_en, - inspection_item_subclass, - inspection_item_subclass_en, - ip.factory ip_factory, - ip.laboratory ip_laboratory, - ip.sample_type ip_sample_type, - ip.sample ip_sample, - ip.model ip_model, - son_laboratory, - ip.unit ip_unit, - price, - man_hour, - man_hour_group, - inspection_item_type, - inspection_value_type, - device_group, - checkout_number, - section, - value_type, - method, - man_day, - bsm, - ask, - `last_value`, - ip.ins_result ip_ins_result, - state, - ins_sample_id, - ip.create_user ip_create_user, - ip.update_user ip_update_user, - ip.create_time ip_create_time, - ip.update_time ip_update_time, - template_id, - ipr.ins_value, - ipr.com_value, - ipr.equip_value, - ipr.equip_name, - ip.method_s, - ip.tell, - ip.dic - from ins_product ip - left join ins_product_result ipr on ip.id = ipr.ins_product_id - where ins_fiber_id = #{id} - and state = 1 - and ins_fibers_id is null - and standard_method_list_id is not null - </select> - <select id="getInsProduct4" resultMap="product"> - select ip.id ip_id, - inspection_item, - inspection_item_en, - inspection_item_class, - inspection_item_class_en, - inspection_item_subclass, - inspection_item_subclass_en, - ip.factory ip_factory, - ip.laboratory ip_laboratory, - ip.sample_type ip_sample_type, - ip.sample ip_sample, - ip.model ip_model, - ip.ins_bush_id, - son_laboratory, - ip.unit ip_unit, - price, - man_hour, - man_hour_group, - inspection_item_type, - inspection_value_type, - device_group, - checkout_number, - section, - value_type, - method, - man_day, - bsm, - ask, - `last_value`, - ip.ins_result ip_ins_result, - state, - ins_sample_id, - ip.create_user ip_create_user, - ip.update_user ip_update_user, - ip.create_time ip_create_time, - ip.update_time ip_update_time, - template_id, - ipr.ins_value, - ipr.com_value, - ipr.equip_value, - ipr.equip_name, - ip.method_s, - ip.tell, - ip.dic - from ins_product ip - left join ins_product_result ipr on ip.id = ipr.ins_product_id - where ins_bush_id = #{id} - and state = 1 - and ins_fibers_id is null - and standard_method_list_id is not null - </select> <select id="getReportModel" resultType="java.util.Map"> </select> @@ -649,6 +534,7 @@ <result property="temperature" column="temperature"/> <result property="humidity" column="humidity"/> <collection property="insProductResult" resultMap="insProductResult"/> + <collection property="insProductResult2" resultMap="insProductResult2"/> </resultMap> <resultMap id="sampleDto3" type="com.yuanchu.mom.dto.SampleProductDto3"> @@ -684,6 +570,16 @@ <result property="equipValue" column="equip_value" jdbcType="VARCHAR"/> <result property="equipName" column="equip_name" jdbcType="VARBINARY"/> </resultMap> + <resultMap id="insProductResult2" type="com.yuanchu.mom.pojo.InsProductResult2"> + <result column="frequency" property="frequency" jdbcType="VARCHAR"/> + <result column="often" property="often" jdbcType="VARCHAR"/> + <result column="port" property="port" jdbcType="VARCHAR"/> + <result column="angle" property="angle" jdbcType="VARCHAR"/> + <result column="value" property="value" jdbcType="VARCHAR"/> + <result column="result" property="result" jdbcType="INTEGER"/> + <result property="equipValue" column="equipValue2" jdbcType="VARCHAR"/> + <result property="equipName" column="equipName2" jdbcType="VARBINARY"/> + </resultMap> <resultMap id="sampleVo" type="com.yuanchu.mom.vo.SampleVo"> <id property="id" column="id" jdbcType="INTEGER"/> diff --git a/performance-server/src/main/java/com/yuanchu/mom/pojo/AuxiliaryOutputWorkingHours.java b/performance-server/src/main/java/com/yuanchu/mom/pojo/AuxiliaryOutputWorkingHours.java index 745d38b..7e8cf42 100644 --- a/performance-server/src/main/java/com/yuanchu/mom/pojo/AuxiliaryOutputWorkingHours.java +++ b/performance-server/src/main/java/com/yuanchu/mom/pojo/AuxiliaryOutputWorkingHours.java @@ -127,4 +127,8 @@ @ApiModelProperty("宸ユ椂鍒嗙粍") @ExcelIgnore private String manHourGroup; + + @ApiModelProperty("妫�楠岄」鐩甶d") + @ExcelIgnore + private Integer insProductId; } diff --git a/system-run/src/main/java/com/yuanchu/mom/CodeGenerator.java b/system-run/src/main/java/com/yuanchu/mom/CodeGenerator.java index 4db8694..16dffd5 100644 --- a/system-run/src/main/java/com/yuanchu/mom/CodeGenerator.java +++ b/system-run/src/main/java/com/yuanchu/mom/CodeGenerator.java @@ -16,13 +16,13 @@ // 婕旂ず渚嬪瓙锛屾墽琛� main 鏂规硶鎺у埗鍙拌緭鍏ユā鍧楄〃鍚嶅洖杞﹁嚜鍔ㄧ敓鎴愬搴旈」鐩洰褰曚腑 public class CodeGenerator { - public static String database_url = "jdbc:mysql://localhost:3306/aaa?useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT%2B8"; - public static String database_username = "root"; - public static String database_password= "123456"; + public static String database_url = "jdbc:mysql://10.1.13.77:3306/center-lims?useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT%2B8"; + public static String database_username = "remote_user"; + public static String database_password= "zttZTT123!"; public static String author = "姹熻嫃榈烽洀缃戠粶绉戞妧鏈夐檺鍏徃"; - public static String model_name = "/cnas-server"; // 濡傛灉涓哄垎甯冨紡濉瓙妯″潡鍚嶇О锛屽鏋滀笉鏄垎甯冨紡涓虹┖鍗冲彲 + public static String model_name = "/inspect-server"; // 濡傛灉涓哄垎甯冨紡濉瓙妯″潡鍚嶇О锛屽鏋滀笉鏄垎甯冨紡涓虹┖鍗冲彲 public static String setParent = "com.yuanchu.mom"; // 鍖呰矾寰� - public static String tablePrefix = "device_"; // 璁剧疆杩囨护琛ㄥ墠缂� + public static String tablePrefix = ""; // 璁剧疆杩囨护琛ㄥ墠缂� public static void main(String[] args) { String projectPath = System.getProperty("user.dir"); FastAutoGenerator.create(database_url, database_username, database_password) diff --git a/system-run/src/test/java/com/yuanchu/mom/SystemRunApplicationTest.java b/system-run/src/test/java/com/yuanchu/mom/SystemRunApplicationTest.java index 16d332d..855000f 100644 --- a/system-run/src/test/java/com/yuanchu/mom/SystemRunApplicationTest.java +++ b/system-run/src/test/java/com/yuanchu/mom/SystemRunApplicationTest.java @@ -1,7 +1,9 @@ package com.yuanchu.mom; +import com.alibaba.fastjson.JSONArray; import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; import com.yuanchu.mom.exception.ErrorException; +import org.apache.commons.lang3.ArrayUtils; import org.apache.el.lang.ExpressionBuilder; import org.junit.jupiter.api.Test; import org.springframework.boot.test.context.SpringBootTest; @@ -16,6 +18,7 @@ import java.time.temporal.TemporalAdjusters; import java.time.temporal.WeekFields; import java.util.ArrayList; +import java.util.Arrays; import java.util.List; import java.util.Locale; import java.util.regex.Matcher; @@ -28,6 +31,16 @@ @Test void contextLoads() { + String str = "[[\"5\",\"5\",\"5\",\"5\"]]"; + str = str.substring(1, str.length() - 1); + for (String s1 :str.split("\\],\\[")) { + String[] strings = Arrays.stream(s1.substring(1, str.length() - 1).split(",")) + .map(s -> s.replace("\"", "")) + .toArray(String[]::new); + for (String string : strings) { + System.out.println(string); + } + } } -- Gitblit v1.9.3