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)); } } 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; } 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); } 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 é对表ãins_product_result2(æ£éªé¡¹ç®çç»æ)ãçæ°æ®åºæä½Mapper * @createDate 2024-03-28 10:29:37 * @Entity com.yuanchu.mom.pojo.InsProductResult2 */ public interface InsProductResult2Mapper extends BaseMapper<InsProductResult2> { } 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); } 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); 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; } 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; 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("å¤é®ï¼æ£éªé¡¹ç®id") 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; } 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); } 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> { } 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; } //妿æ¯å¤§æ ·åä¸ç项ç®ä¸ºç©º,é£ä¹æ¥è¯¢ç¬¬ä¸ä¸ªå 纤çé¡¹ç® 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)); /*æ ¡éªä¸ä¸result表*/ 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) { //卿¶é´å å°±æ¯æ£å¸¸ä¸ç 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());//æ£éªé¡¹ç®id 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æ¥æ¾æææ ·æ¬id List<Integer> sampleIds = insSampleMapper.selectList(Wrappers.<InsSample>lambdaQuery().eq(InsSample::getInsOrderId, orderId)).stream().map(InsSample::getId).collect(Collectors.toList()); // éè¿æ£æ¥æ¯ä¸ä¸ªæ ·æ¬idæ¥å°å±äºæ£éªé¡¹ç»è®º 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) { //卿¶é´å å°±æ¯æ£å¸¸ä¸ç 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());//æ£éªé¡¹ç®id 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) { //妿ææé¡¹ç®é½æç»è®º,é£ä¹è¯¥æ ·åç¶æå·²æ£ 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; } //è§£æè¦æ±å¼çæ ¼å¼ 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(); 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) { } } }*/ //éä¿¡:妿æ¯Cç±»è®¢åæ éå®¡æ ¸ç´æ¥éè¿ 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); } } } 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 { } inspect-server/src/main/java/com/yuanchu/mom/vo/InsOrderPlanVO.java
@@ -51,5 +51,6 @@ private Integer orderStateId; private Integer sort; private Integer version; } 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; } 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> 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> 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> 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"/> performance-server/src/main/java/com/yuanchu/mom/pojo/AuxiliaryOutputWorkingHours.java
@@ -127,4 +127,8 @@ @ApiModelProperty("å·¥æ¶åç»") @ExcelIgnore private String manHourGroup; @ApiModelProperty("æ£éªé¡¹ç®id") @ExcelIgnore private Integer insProductId; } 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) 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); } } }