zss
2024-09-06 7bae2c55ff2d9c94d30df77ad2dfbc66bb703209
电路试验
已修改16个文件
已添加7个文件
1129 ■■■■■ 文件已修改
inspect-server/src/main/java/com/yuanchu/mom/controller/InsOrderPlanController.java 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/yuanchu/mom/dto/InsProductResultDto.java 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/yuanchu/mom/mapper/InsProductMapper.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/yuanchu/mom/mapper/InsProductResult2Mapper.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/yuanchu/mom/mapper/InsProductResultMapper.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/yuanchu/mom/mapper/InsSampleMapper.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/yuanchu/mom/pojo/InsOrderState.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/yuanchu/mom/pojo/InsProduct.java 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/yuanchu/mom/pojo/InsProductResult2.java 78 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/yuanchu/mom/service/InsOrderPlanService.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/yuanchu/mom/service/InsProductResult2Service.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderPlanServiceImpl.java 425 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderServiceImpl.java 71 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsProductResult2ServiceImpl.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/yuanchu/mom/vo/InsOrderPlanVO.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/yuanchu/mom/vo/InsProductResultVo.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/resources/mapper/InsProductMapper.xml 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/resources/mapper/InsProductResult2Mapper.xml 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/resources/mapper/InsProductResultMapper.xml 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/resources/mapper/InsSampleMapper.xml 318 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
performance-server/src/main/java/com/yuanchu/mom/pojo/AuxiliaryOutputWorkingHours.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
system-run/src/main/java/com/yuanchu/mom/CodeGenerator.java 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
system-run/src/test/java/com/yuanchu/mom/SystemRunApplicationTest.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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);
            }
        }
    }