第一次改动(检验任务与样品关联,附件与样品关联,报告与样品关联)
已修改32个文件
已添加2个文件
645 ■■■■ 文件已修改
inspect-server/src/main/java/com/yuanchu/mom/controller/InsOrderController.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/yuanchu/mom/controller/InsOrderPlanController.java 26 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/yuanchu/mom/controller/InsReportController.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/yuanchu/mom/dto/InsOrderPlanDTO.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/yuanchu/mom/dto/InsOrderStateDto.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/yuanchu/mom/dto/InsReportDto.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/yuanchu/mom/dto/InsReportDto1.java 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/yuanchu/mom/dto/InsReportDto2.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/yuanchu/mom/dto/ReportPageDto.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/yuanchu/mom/dto/SubmitPlanDto.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/yuanchu/mom/mapper/InsOrderFileMapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/yuanchu/mom/mapper/InsOrderStateMapper.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/yuanchu/mom/mapper/InsProductMapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/yuanchu/mom/mapper/InsReportMapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/yuanchu/mom/mapper/InsSampleMapper.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/yuanchu/mom/pojo/InsOrderFile.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/yuanchu/mom/pojo/InsOrderState.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/yuanchu/mom/pojo/InsReport.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/yuanchu/mom/pojo/InsSampleUser.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/yuanchu/mom/service/InsOrderPlanService.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/yuanchu/mom/service/InsOrderService.java 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/yuanchu/mom/service/InsReportService.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderPlanServiceImpl.java 168 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderServiceImpl.java 66 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsReportServiceImpl.java 53 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/yuanchu/mom/utils/FuSheUtils.java 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/yuanchu/mom/utils/WordUtils.java 87 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/yuanchu/mom/vo/InsOrderPlanTaskSwitchVo.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/yuanchu/mom/vo/InsOrderPlanVO.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/resources/mapper/InsOrderFileMapper.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/resources/mapper/InsOrderStateMapper.xml 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/resources/mapper/InsProductMapper.xml 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/resources/mapper/InsReportMapper.xml 13 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/resources/mapper/InsSampleMapper.xml 74 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/yuanchu/mom/controller/InsOrderController.java
@@ -59,15 +59,6 @@
        return Result.success();
    }
    @ValueClassify("检验下单")
    @ApiOperation(value = "检验分配")
    @PostMapping("/upInsOrder")
    //暂时停用
    public Result<?> upInsOrder(Integer orderId, Integer sampleId, String appointed, Integer userId,String sonLaboratory) {
        return Result.success(insOrderService.upInsOrder(orderId, sampleId, appointed, userId,sonLaboratory));
    }
    @ValueClassify("检验下单")
    @ApiOperation(value = "添加检验下单数据")
    @PostMapping("/addInsOrder")
inspect-server/src/main/java/com/yuanchu/mom/controller/InsOrderPlanController.java
@@ -75,13 +75,14 @@
    @ValueClassify("检验任务")
    @ApiOperation(value = "执行检验操作")
    @PostMapping("/doInsOrder")
    public Result<?> doInsOrder(Integer id, String laboratory) {
        return Result.success(insOrderPlanService.doInsOrder(id, laboratory));
    public Result<?> doInsOrder(Integer sampleId, String laboratory) {
        return Result.success(insOrderPlanService.doInsOrder(sampleId, laboratory));
    }
    @ValueAuth
    @PostMapping("/getInsProduct")
    @ApiOperation("获取检验项目和模板内容")
    //这里的id就是样品id
    public Result<?> getInsProduct(Integer id, Integer type, String laboratory, HttpServletRequest request) {
        return Result.success(insOrderPlanService.getInsProduct(id, type, laboratory, request));
    }
@@ -89,29 +90,29 @@
    @ValueClassify("检验任务")
    @ApiOperation(value = "任务交接")
    @PostMapping("/upPlanUser")
    public Result<?> upPlanUser(Integer userId, Integer orderId, String sonLaboratory) {
        return Result.success(insOrderPlanService.upPlanUser(userId, orderId, sonLaboratory));
    public Result<?> upPlanUser(Integer userId, Integer sampleId, String sonLaboratory) {
        return Result.success(insOrderPlanService.upPlanUser(userId, sampleId, sonLaboratory));
    }
    @ValueAuth
    @ApiOperation(value = "判断交接的试验室")
    @PostMapping("/upPlanUser2")
    public Result<?> upPlanUser2(Integer orderId) {
        return Result.success(insOrderPlanService.upPlanUser2(orderId));
    public Result<?> upPlanUser2(Integer sampleId) {
        return Result.success(insOrderPlanService.upPlanUser2(sampleId));
    }
    @ValueClassify("检验任务")
    @ApiOperation(value = "复核检验任务")
    @PostMapping("/verifyPlan")
    public Result<?> verifyPlan(Integer orderId, String laboratory, Integer type, String tell) throws IOException {
        return Result.success(insOrderPlanService.verifyPlan(orderId, laboratory, type, tell));
    public Result<?> verifyPlan(Integer sampleId, String laboratory, Integer type, String tell) throws IOException {
        return Result.success(insOrderPlanService.verifyPlan(sampleId, laboratory, type, tell));
    }
    @ValueAuth
    @ApiOperation(value = "校验检验任务提交")
    @PostMapping("/checkSubmitPlan")
    public Result<?> checkSubmitPlan(Integer orderId, String laboratory) {
        return Result.success(insOrderPlanService.checkSubmitPlan(orderId, laboratory));
    public Result<?> checkSubmitPlan(Integer sampleId, String laboratory) {
        return Result.success(insOrderPlanService.checkSubmitPlan(sampleId, laboratory));
    }
    @ValueClassify("检验任务")
@@ -165,8 +166,8 @@
    @ValueClassify("检验任务")
    @ApiOperation(value = "上传附件")
    @PostMapping("/uploadFile")
    public Result<?> uploadFile(Integer orderId, MultipartFile file, String sonLaboratory) {
        return Result.success(insOrderPlanService.uploadFile(orderId, file, sonLaboratory));
    public Result<?> uploadFile(Integer orderId, MultipartFile file, String sonLaboratory,Integer sampleId) {
        return Result.success(insOrderPlanService.uploadFile(orderId, file, sonLaboratory,sampleId));
    }
    @ValueClassify("检验任务")
@@ -229,6 +230,7 @@
    @ValueAuth
    @PostMapping("/getInsProduct2")
    @ApiOperation("查看检验历史")
    //这里的id是样品id
    public Result<?> getInsProduct2(Integer id, Integer type, String laboratory, HttpServletRequest request, Integer num) {
        return Result.success(insOrderPlanService.getInsProduct2(id, type, laboratory, request, num));
    }
inspect-server/src/main/java/com/yuanchu/mom/controller/InsReportController.java
@@ -78,12 +78,12 @@
        return Result.success(insReportService.upReportUrl(id));
    }
    @ValueClassify("报告编制")
    /*@ValueClassify("报告编制")
    @ApiOperation(value = "报告在线编制")
    @GetMapping("/upReportFile")
    public Result upReportFile() {
        return Result.success();
    }
    }*/
    @ValueClassify("报告编制")
    @ApiOperation(value = "提交")
@@ -151,7 +151,7 @@
    }
    @ValueAuth
    @ApiOperation(value = "查出该订单下每个站点下的检验次数")
    @ApiOperation(value = "查出该订单下每个样品下每个站点的检验次数")
    @GetMapping("/getInsOrderStateCount")
    public Result getInsOrderStateCount(Integer id){
        return Result.success(insReportService.getInsOrderStateCount(id));
inspect-server/src/main/java/com/yuanchu/mom/dto/InsOrderPlanDTO.java
@@ -11,7 +11,7 @@
@Data
public class InsOrderPlanDTO extends OrderBy implements Serializable {
    @ApiModelProperty("检验任务主键id")
    @ApiModelProperty("样品id")
    private Long insSampleId;
    @ApiModelProperty("用户id")
inspect-server/src/main/java/com/yuanchu/mom/dto/InsOrderStateDto.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,16 @@
package com.yuanchu.mom.dto;
import com.yuanchu.mom.pojo.InsOrderState;
import com.yuanchu.mom.pojo.InsSample;
import lombok.Data;
import java.util.List;
@Data
//查询一个订单下所有样品的所有检验任务
public class InsOrderStateDto {
    private InsSample insSample;
    private List<InsOrderState> insOrderStates;
}
inspect-server/src/main/java/com/yuanchu/mom/dto/InsReportDto.java
@@ -15,6 +15,5 @@
    private Integer state;
    //选择的每个站点的第几次数据
    @NotNull
    private List<InsReportDto1> insReportDto1s;
}
inspect-server/src/main/java/com/yuanchu/mom/dto/InsReportDto1.java
@@ -2,12 +2,16 @@
import lombok.Data;
import java.util.List;
@Data
public class InsReportDto1 {
    private String laboratory;
    private Integer num;
    private Integer insOrderUsersId;
    private Integer sampleId;
    private List<InsReportDto2> insReportDto2s;
}
inspect-server/src/main/java/com/yuanchu/mom/dto/InsReportDto2.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,13 @@
package com.yuanchu.mom.dto;
import lombok.Data;
@Data
public class InsReportDto2 {
    private String laboratory;
    private Integer num;
    private Integer insOrderUsersId;
}
inspect-server/src/main/java/com/yuanchu/mom/dto/ReportPageDto.java
@@ -13,6 +13,9 @@
    @ApiModelProperty(value = "委托编号")
    private String entrustCode;
    @ApiModelProperty(value = "样品编号")
    private String sampleCode;
    @ValueTableShow(value = 3,name = "提交人")
    private String writeUserName;
inspect-server/src/main/java/com/yuanchu/mom/dto/SubmitPlanDto.java
@@ -10,7 +10,7 @@
@Data
public class SubmitPlanDto {
    private Integer orderId;
    private Integer sampleId;
    private String  laboratory;
inspect-server/src/main/java/com/yuanchu/mom/mapper/InsOrderFileMapper.java
@@ -17,5 +17,5 @@
 */
public interface InsOrderFileMapper extends BaseMapper<InsOrderFile> {
    IPage<InsOrderFile> getFileList(@Param("page") Page page, @Param("ew") QueryWrapper<InsOrderFile> ew , @Param("insOrderId") Integer insOrderId, @Param("sonLaboratory") String sonLaboratory);
    IPage<InsOrderFile> getFileList(@Param("page") Page page, @Param("ew") QueryWrapper<InsOrderFile> ew , @Param("insOrderId") Integer insOrderId, @Param("sonLaboratory") String sonLaboratory, @Param("sampleId") Integer sampleId);
}
inspect-server/src/main/java/com/yuanchu/mom/mapper/InsOrderStateMapper.java
@@ -2,6 +2,7 @@
import com.yuanchu.mom.pojo.InsOrderState;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
@@ -14,7 +15,7 @@
public interface InsOrderStateMapper extends BaseMapper<InsOrderState> {
    List<InsOrderState> getInsOrderStateCount(Integer id);
    List<InsOrderState> getInsOrderStateCount(@Param("id") Integer id, @Param("sampleId") Integer sampleId);
}
inspect-server/src/main/java/com/yuanchu/mom/mapper/InsProductMapper.java
@@ -29,7 +29,7 @@
    IPage<InsProduct> selectNoProducts(Page page, Integer orderId);
    int selectInsProductCountByOrderId(int orderId);
    int selectInsProductCountByOrderId(int sampleId);
}
inspect-server/src/main/java/com/yuanchu/mom/mapper/InsReportMapper.java
@@ -15,7 +15,7 @@
*/
public interface InsReportMapper extends BaseMapper<InsReport> {
    IPage<ReportPageDto> pageInsReport(IPage<ReportPageDto> page, @Param("ew") QueryWrapper<ReportPageDto> ew, @Param("laboratory") String laboratory);
    IPage<ReportPageDto> pageInsReport(IPage<ReportPageDto> page, @Param("ew") QueryWrapper<ReportPageDto> ew);
    String getLaboratoryByName(String name);
inspect-server/src/main/java/com/yuanchu/mom/mapper/InsSampleMapper.java
@@ -29,15 +29,15 @@
    IPage<InsOrderPlanTaskSwitchVo> inspectionOrderDetailsTaskSwitching(Page page, @Param("ew") QueryWrapper<InsOrderPlanDTO> ew, @Param("userId") Integer userId, @Param("sonLaboratory") String sonLaboratory, @Param("laboratory") String laboratory);
    List<SampleProductDto> selectSampleProductListByOrderId(Integer id);
    SampleProductDto selectSampleProductListByOrderId(Integer id);
    List<SampleProductDto> selectSampleProductListByOrderId2(Integer id);
    List<SampleProductDto> selectSampleProductListByOrder2Id2(Integer id);
    List<SampleProductDto3> selectSampleProductListByOrderId3(List<Integer> ids);
    List<SampleProductDto> getInsOrderAndSample(Integer id, String laboratory);
    List<SampleProductDto> getInsOrderAndSample2(Integer id, String laboratory);
    SampleProductDto getInsOrderAndSample(Integer sampleId, String laboratory);
    SampleProductDto getInsOrderAndSample2(Integer sampleId, String laboratory);
    String getSampleEn(String sample);
@@ -60,8 +60,6 @@
    //查询且过滤出有电路试验的样品
    List<InsSample> selectSample(Integer insOrderId);
    List<SampleProductDto> selectList1(Integer id);
}
inspect-server/src/main/java/com/yuanchu/mom/pojo/InsOrderFile.java
@@ -69,4 +69,7 @@
    @ApiModelProperty("所属站点")
    @ValueTableShow(6)
    private String sonLaboratory;
    @ApiModelProperty("关联 æ ·å“å¤–é”®id")
    private Integer insSampleId;
}
inspect-server/src/main/java/com/yuanchu/mom/pojo/InsOrderState.java
@@ -101,4 +101,7 @@
    @TableField(select = false,exist = false)
    private List<InsOrderUser> insOrderUserList;
    @ApiModelProperty("关联 æ ·å“å¤–é”®id")
    private Integer insSampleId;
}
inspect-server/src/main/java/com/yuanchu/mom/pojo/InsReport.java
@@ -35,6 +35,11 @@
    private Integer insOrderId;
    /**
     * å¤–键:样品idid
     */
    private Integer insSampleId;
    /**
     * ç³»ç»Ÿç”ŸæˆæŠ¥å‘Šåœ°å€
     */
    private String url;
inspect-server/src/main/java/com/yuanchu/mom/pojo/InsSampleUser.java
@@ -27,7 +27,7 @@
    private Integer id;
    /**
     * å¤–键:检验样品ins_sample表id(实际关联ins_order表id)
     * å¤–键:检验样品ins_sample表id
     */
    private Integer insSampleId;
inspect-server/src/main/java/com/yuanchu/mom/service/InsOrderPlanService.java
@@ -32,24 +32,24 @@
    //电路试验的保存检验内容
    List<Integer> saveInsContext2(InsProductResultDto insProductResultDtos);
    Map<String, Object> doInsOrder(Integer id, String laboratory);
    Map<String, Object> doInsOrder(Integer sampleId, String laboratory);
    int upPlanUser(Integer userId, Integer orderId,String sonLaboratory);
    int upPlanUser(Integer userId, Integer sampleId,String sonLaboratory);
    int verifyPlan(Integer orderId, String laboratory, Integer type, String tell) throws IOException;
    int verifyPlan(Integer sampleId, String laboratory, Integer type, String tell) throws IOException;
    int submitPlan(SubmitPlanDto submitPlanDto);
    List<InsProduct> getInsProduct(Integer id, Integer type, String laboratory, HttpServletRequest request);
    List<InsProduct> getInsProduct2(Integer id, Integer type, String laboratory, HttpServletRequest request,Integer num);
    List<String> checkSubmitPlan(Integer orderId, String laboratory);
    List<String> checkSubmitPlan(Integer sampleId, String laboratory);
    Map<String,Object> getFileList(Page page, InsOrderFile insOrderFile);
    int uploadFile(Integer orderId, MultipartFile file,String sonLaboratory);
    int uploadFile(Integer orderId, MultipartFile file,String sonLaboratory,Integer sampleId);
    List<String> upPlanUser2(Integer orderId);
    List<String> upPlanUser2(Integer sampleId);
    int deleteInsContext(InsProductResultVo insProductResultVo);
inspect-server/src/main/java/com/yuanchu/mom/service/InsOrderService.java
@@ -24,9 +24,6 @@
    //获取单位检验下单数据
    Map<String, Object> selectInsOrderParameter(IPage<InsOrder> page, SampleOrderDto sampleOrderDto);
    //分配站点
    int upInsOrder(Integer orderId,Integer sampleId, String appointed, Integer userId,String sonLaboratory);
    int addInsOrder(List<SampleProductDto> list, InsOrder insOrder, List<List<Integer>> pairing, List<MultipartFile> files);
    Map<String, Object> getInsOrder(Integer id);
@@ -35,7 +32,7 @@
    int upInsOrderOfState2(InsOrder insOrder);
    Map<String, Object> getInsOrderAndSample(Integer id, String laboratory);
    Map<String, Object> getInsOrderAndSample(Integer sampleId, String laboratory);
    Map<String, Object> selectSampleAndProductByOrderId(IPage<SampleProductDto2> page, SampleProductDto2 sampleProductDto);
inspect-server/src/main/java/com/yuanchu/mom/service/InsReportService.java
@@ -2,6 +2,7 @@
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yuanchu.mom.dto.InsOrderStateDto;
import com.yuanchu.mom.dto.InsReportDto;
import com.yuanchu.mom.dto.ReportPageDto;
import com.yuanchu.mom.pojo.InsOrderState;
@@ -45,6 +46,6 @@
    //是否生成总报告
    int isReport(InsReportDto insReportDto);
    //查出该订单下每个站点下的检验次数
   List<InsOrderState> getInsOrderStateCount(Integer id);
    //查出该订单下每个样品下每个站点下的检验次数
    List<InsOrderStateDto> getInsOrderStateCount(Integer id);
}
inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderPlanServiceImpl.java
@@ -78,8 +78,6 @@
    private ShiftTimeMapper shiftTimeMapper;
    @Resource
    private PerformanceShiftMapper performanceShiftMapper;
    @Resource
    private WarehouseHistoryMapper warehouseHistoryMapper;
    @Resource
    private WarehouseService warehouseService;
@@ -87,14 +85,8 @@
    @Value("${wordUrl}")
    private String wordUrl;
    @Value("${twoCode}")
    private String twoCode;
    @Resource
    WordUtils wordUtils;
    @Resource
    private InsReportMapper insReportMapper;
    @Resource
    private InsProductResultMapper insProductResultMapper;
@@ -119,9 +111,6 @@
    @Resource
    private UserMapper userMapper;
    @Resource
    private CustomMapper customMapper;
    @Value("${file.path}")
    private String imgUrl;
@@ -180,20 +169,23 @@
    }
    @Override
    public Map<String, Object> doInsOrder(Integer id, String laboratory) {
    public Map<String, Object> doInsOrder(Integer sampleId, String laboratory) {
        InsSample insSample = insSampleMapper.selectById(sampleId);
        InsOrder insOrder = new InsOrder();
        insOrder.setId(id);
        InsOrder order = insOrderMapper.selectById(id);
        insOrder.setId(insSample.getInsOrderId());
        InsOrder order = insOrderMapper.selectById(insSample.getInsOrderId());
        if (BeanUtil.isEmpty(order.getInsTime())) {
            insOrder.setInsTime(LocalDateTime.now());
            insOrder.setInsTime(LocalDateTime.now());//订单的检验时间
            insOrderMapper.updateById(insOrder);
            //更新检验任务表的检验时间
            insOrderStateMapper.update(null, Wrappers.<InsOrderState>lambdaUpdate()
                    .eq(InsOrderState::getInsOrderId, id)
                    .eq(InsOrderState::getInsOrderId, insSample.getInsOrderId())
                    .eq(InsOrderState::getInsSampleId, sampleId)
                    .eq(InsOrderState::getLaboratory, laboratory)
                    .set(InsOrderState::getInsTime, LocalDateTime.now())
                    .set(InsOrderState::getInsState, 1));
        }
        Map<String, Object> map = insOrderService.getInsOrderAndSample(id, laboratory);
        Map<String, Object> map = insOrderService.getInsOrderAndSample(sampleId, laboratory);
        List<SampleProductDto> list = JSON.parseArray(JSON.toJSONString(map.get("sampleProduct")), SampleProductDto.class);
        map.put("sampleProduct", list);
        return map;
@@ -220,9 +212,6 @@
                        insProduct.setInsProductResult(insProductResult);
                    }
                }
                /*if (insProducts.size() == 0) {
                    insProducts = insSampleMapper.getIns2Product1(id, laboratory);
                }*/
                break;
            case 1:
                //光纤带
@@ -270,12 +259,10 @@
    }
    @Override
    public List<String> checkSubmitPlan(Integer orderId, String laboratory) {
    public List<String> checkSubmitPlan(Integer sampleId, String laboratory) {
        List<String> collect = new ArrayList<>();
        List<InsSample> insSamples = insSampleMapper.selectList(Wrappers.<InsSample>lambdaQuery().eq(InsSample::getInsOrderId, orderId).select(InsSample::getId));
        List<Integer> ids = insSamples.stream().map(a -> a.getId()).collect(Collectors.toList());
        List<InsProduct> insProducts = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery()
                .in(InsProduct::getInsSampleId, ids)
                .eq(InsProduct::getInsSampleId, sampleId)
                .eq(InsProduct::getSonLaboratory, laboratory)
                .eq(InsProduct::getState, 1)
                .eq(InsProduct::getInsResult, 0));
@@ -294,17 +281,22 @@
        Integer insOrderId = insOrderFile.getInsOrderId();
        insOrderFile.setInsOrderId(null);
        String sonLaboratory = null;
        Integer sampleId = null;
        if (ObjectUtils.isNotEmpty(insOrderFile.getSonLaboratory())) {
            sonLaboratory = insOrderFile.getSonLaboratory();
            insOrderFile.setSonLaboratory(null);
        }
        IPage<InsOrderFile> insOrderFileIPage = insOrderFileMapper.getFileList(page, QueryWrappers.queryWrappers(insOrderFile), insOrderId, sonLaboratory);
        if (ObjectUtils.isNotEmpty(insOrderFile.getInsSampleId())) {
            sampleId = insOrderFile.getInsSampleId();
            insOrderFile.setInsSampleId(null);
        }
        IPage<InsOrderFile> insOrderFileIPage = insOrderFileMapper.getFileList(page, QueryWrappers.queryWrappers(insOrderFile), insOrderId, sonLaboratory,sampleId);
        map.put("body", insOrderFileIPage);
        return map;
    }
    @Override
    public int uploadFile(Integer orderId, MultipartFile file, String sonLaboratory) {
    public int uploadFile(Integer orderId, MultipartFile file, String sonLaboratory, Integer sampleId) {
        String urlString;
        String pathName;
        String path;
@@ -312,6 +304,9 @@
        String contentType = file.getContentType();
        InsOrderFile insOrderFile = new InsOrderFile();
        insOrderFile.setInsOrderId(orderId);
        if (ObjectUtils.isNotEmpty(sampleId)) {
            insOrderFile.setInsSampleId(sampleId);
        }
        insOrderFile.setFileName(filename);
        if (contentType != null && contentType.startsWith("image/")) {
            // æ˜¯å›¾ç‰‡
@@ -327,28 +322,10 @@
            if (!realpath.exists()) {
                realpath.mkdirs();
            }
            pathName = file.getOriginalFilename().replace("#", "&");
            pathName = UUID.randomUUID() + "_"+file.getOriginalFilename().replace("#", "&");
            urlString = realpath + "/" + pathName;
            file.transferTo(new File(urlString));
            insOrderFile.setFileUrl(pathName);
            if (ObjectUtils.isNotEmpty(sonLaboratory)) {
                insOrderFile.setSonLaboratory(sonLaboratory);
                //删除重复的数据
                insOrderFileMapper.delete(Wrappers.<InsOrderFile>lambdaQuery()
                        .eq(InsOrderFile::getInsOrderId, orderId)
                        .eq(InsOrderFile::getType, insOrderFile.getType())
                        .eq(InsOrderFile::getFileName, insOrderFile.getFileName())
                        .eq(InsOrderFile::getSonLaboratory, insOrderFile.getSonLaboratory())
                        .eq(InsOrderFile::getFileUrl, insOrderFile.getFileUrl()));
            } else {
                //删除重复的数据
                insOrderFileMapper.delete(Wrappers.<InsOrderFile>lambdaQuery()
                        .eq(InsOrderFile::getInsOrderId, orderId)
                        .eq(InsOrderFile::getType, insOrderFile.getType())
                        .eq(InsOrderFile::getFileName, insOrderFile.getFileName())
                        .isNull(InsOrderFile::getSonLaboratory)
                        .eq(InsOrderFile::getFileUrl, insOrderFile.getFileUrl()));
            }
            insOrderFileMapper.insert(insOrderFile);
            //如果是辐射试验(近场/远程上传的csv文件)
            String[] split = filename.split("\\.");
@@ -368,9 +345,11 @@
    }
    @Override
    public List<String> upPlanUser2(Integer orderId) {
        List<Integer> sampleId = insSampleMapper.selectList(Wrappers.<InsSample>lambdaQuery().eq(InsSample::getInsOrderId, orderId)).stream().map(InsSample::getId).collect(Collectors.toList());
        List<String> sonLaboratory = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery().eq(InsProduct::getState, 1).in(InsProduct::getInsSampleId, sampleId)).stream().map(InsProduct::getSonLaboratory).distinct().collect(Collectors.toList());
    public List<String> upPlanUser2(Integer sampleId) {
        List<String> sonLaboratory = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery()
                .eq(InsProduct::getState, 1)
                .eq(InsProduct::getInsSampleId, sampleId))
                .stream().map(InsProduct::getSonLaboratory).distinct().collect(Collectors.toList());
        return sonLaboratory;
    }
@@ -388,17 +367,15 @@
        /*样品入库*/
        warehouseService.inWarehouse(trees, sampleCode);
        /*新增检验任务*/
        //先判断该订单是否有这个站点的项目
        //先判断该样品是否有这个站点的项目
        InsSample insSample = insSampleMapper.selectOne(Wrappers.<InsSample>lambdaQuery().eq(InsSample::getSampleCode, sampleCode));
        List<Integer> sampleIds = insSampleMapper.selectList(Wrappers.<InsSample>lambdaQuery()
                .eq(InsSample::getInsOrderId, insSample.getInsOrderId())).stream().map(InsSample::getId).collect(Collectors.toList());
        List<String> collect = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery()
                .eq(InsProduct::getState, 1)
                .in(InsProduct::getInsSampleId, sampleIds)).stream().map(InsProduct::getSonLaboratory).collect(Collectors.toList());
                .eq(InsProduct::getInsSampleId, insSample.getId())).stream().map(InsProduct::getSonLaboratory).collect(Collectors.toList());
        if (!collect.contains(sonLaboratory)) {
            throw new ErrorException("该订单没有" + sonLaboratory + "站点的相关项目,请查看下单详情!");
            throw new ErrorException("该样品没有" + sonLaboratory + "站点的相关项目,请查看下单详情!");
        }
        //判断该订单是否站点任务有结束试验
        //判断该订单是否站点任务有结束试验(只要任一任务结束试验都不能再次试验)
        List<InsOrderState> orderStates = insOrderStateMapper.selectList(Wrappers.<InsOrderState>lambdaQuery()
                .eq(InsOrderState::getInsOrderId, insSample.getInsOrderId())
                .eq(InsOrderState::getInsState, 5));
@@ -407,6 +384,7 @@
        }
        InsOrderState orderState = insOrderStateMapper.selectOne(Wrappers.<InsOrderState>lambdaQuery()
                .eq(InsOrderState::getInsOrderId, insSample.getInsOrderId())
                .eq(InsOrderState::getInsSampleId, insSample.getId())
                .eq(InsOrderState::getLaboratory, sonLaboratory));
        if (ObjectUtils.isNotEmpty(orderState)) {
            //继续试验
@@ -418,6 +396,7 @@
        } else {
            InsOrderState insOrderState = new InsOrderState();
            insOrderState.setInsOrderId(insSample.getInsOrderId());
            insOrderState.setInsOrderId(insSample.getId());
            insOrderState.setLaboratory(sonLaboratory);
            insOrderState.setInsState(0);
            insOrderState.setNum(1);//初始是第一次
@@ -430,25 +409,24 @@
    @Override
    public int outInsOrderState(String sonLaboratory, String sampleCode) {
        //判断该样品的检验任务是否已经结束(继续试验或者是结束试验)
        //先判断该订单是否有这个站点的项目
        //先判断该样品是否有这个站点的项目
        InsSample insSample = insSampleMapper.selectOne(Wrappers.<InsSample>lambdaQuery().eq(InsSample::getSampleCode, sampleCode));
        List<Integer> sampleIds = insSampleMapper.selectList(Wrappers.<InsSample>lambdaQuery()
                .eq(InsSample::getInsOrderId, insSample.getInsOrderId())).stream().map(InsSample::getId).collect(Collectors.toList());
        List<String> collect = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery()
                .eq(InsProduct::getState, 1)
                .in(InsProduct::getInsSampleId, sampleIds)).stream().map(InsProduct::getSonLaboratory).collect(Collectors.toList());
                .eq(InsProduct::getInsSampleId, insSample.getId())).stream().map(InsProduct::getSonLaboratory).collect(Collectors.toList());
        if (!collect.contains(sonLaboratory)) {
            throw new ErrorException("该订单没有" + sonLaboratory + "站点的相关项目,请查看下单详情!");
            throw new ErrorException("该样品没有" + sonLaboratory + "站点的相关项目,请查看下单详情!");
        }
        //判断该订单是否站点任务有(继续试验或者是结束试验)
        List<InsOrderState> orderStates = insOrderStateMapper.selectList(Wrappers.<InsOrderState>lambdaQuery()
                .eq(InsOrderState::getInsOrderId, insSample.getInsOrderId())
                .eq(InsOrderState::getInsState, 5));
                .eq(InsOrderState::getInsState, 5));//结束试验
        if (CollectionUtils.isEmpty(orderStates)) {
            List<InsOrderState> orderStates1 = insOrderStateMapper.selectList(Wrappers.<InsOrderState>lambdaQuery()
                    .eq(InsOrderState::getInsOrderId, insSample.getInsOrderId())
                    .eq(InsOrderState::getInsSampleId, insSample.getId())
                    .eq(InsOrderState::getLaboratory, sonLaboratory)
                    .eq(InsOrderState::getInsState, 6));
                    .eq(InsOrderState::getInsState, 6));//继续试验
            if (CollectionUtils.isEmpty(orderStates1)) {
                throw new ErrorException("该样品的检验任务还没有结束试验或继续试验,暂时无法出库!");
            }
@@ -677,11 +655,13 @@
                int pId = Integer.parseInt(res.replaceAll("\\D+", ""));
                InsProduct insProduct = insProductMapper.selectById(pId);
                // é€šè¿‡æ ·æœ¬id获取订单id
                int orderId = insSampleMapper.selectById(insProduct.getInsSampleId()).getInsOrderId();
                int count = insProductMapper.selectInsProductCountByOrderId(orderId);
                InsSample insSample = insSampleMapper.selectById(insProduct.getInsSampleId());
                int orderId = insSample.getInsOrderId();
                int count = insProductMapper.selectInsProductCountByOrderId(insSample.getId());
                if (count == 0) {
                    insOrderStateMapper.update(new InsOrderState(), Wrappers.<InsOrderState>lambdaUpdate()
                            .eq(InsOrderState::getInsOrderId, orderId)
                            .eq(InsOrderState::getInsSampleId, insSample.getId())
                            .eq(InsOrderState::getLaboratory, insProduct.getSonLaboratory())
                            .set(InsOrderState::getInsState, 2));
                }
@@ -703,6 +683,7 @@
        InsOrder insOrder = insOrderMapper.selectById(insProductResultDtos.getOrderId());
        InsOrderState orderState = insOrderStateMapper.selectOne(Wrappers.<InsOrderState>lambdaQuery()
                .eq(InsOrderState::getInsOrderId, insProductResultDtos.getOrderId())
                .eq(InsOrderState::getInsSampleId, insProductResultDtos.getSampleId())
                .eq(InsOrderState::getLaboratory, insProductResultDtos.getSonLaboratory())
                .orderByDesc(InsOrderState::getId)
                .last("LIMIT 1"));// ç¡®ä¿åªå–一条记录
@@ -816,6 +797,7 @@
        if (count == 0) {
            insOrderStateMapper.update(new InsOrderState(), Wrappers.<InsOrderState>lambdaUpdate()
                    .eq(InsOrderState::getInsOrderId, insProductResultDtos.getOrderId())
                    .eq(InsOrderState::getInsSampleId, insProductResultDtos.getSampleId())
                    .eq(InsOrderState::getLaboratory, insProductResultDtos.getSonLaboratory())
                    .set(InsOrderState::getInsState, 2));
        }
@@ -896,10 +878,10 @@
    //交接
    @Override
    public int upPlanUser(Integer userId, Integer orderId, String sonLaboratory) {
    public int upPlanUser(Integer userId, Integer sampleId, String sonLaboratory) {
        InsSampleUser insSampleUser = new InsSampleUser();
        insSampleUser.setUserId(userId);
        insSampleUser.setInsSampleId(orderId);
        insSampleUser.setInsSampleId(sampleId);
        insSampleUser.setState(0);
        insSampleUser.setSonLaboratory(sonLaboratory);
        return insSampleUserMapper.insert(insSampleUser);
@@ -907,13 +889,12 @@
    @Override
    @Transactional(rollbackFor = Exception.class)
    public int verifyPlan(Integer orderId, String laboratory, Integer type, String tell) throws IOException {
    public int verifyPlan(Integer sampleId, String laboratory, Integer type, String tell) throws IOException {
        LocalDateTime now = LocalDateTime.now();
        Integer userId = getLook.selectPowerByMethodAndUserId(null).get("userId");
        List<InsUnPass> insUnPasses = new ArrayList<>();
        /*样品下的项目只要有一个项目不合格则检验结果为0,否则为1*/
        List<InsSample> samples = insSampleMapper.selectList(Wrappers.<InsSample>lambdaQuery().eq(InsSample::getInsOrderId, orderId));
        for (InsSample insSample : samples) {
        InsSample insSample = insSampleMapper.selectById(sampleId);
            List<InsProduct> insProducts = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery()
                    .eq(InsProduct::getInsSampleId, insSample.getId())
                    .eq(InsProduct::getSonLaboratory, laboratory)
@@ -926,6 +907,7 @@
            }
            insSampleMapper.updateById(insSample);
            /*复核后,将不合格的项目信息添加到ins_un_pass表中*/
        InsOrder insOrder = insOrderMapper.selectById(insSample.getInsOrderId());
            for (InsProduct insProduct : insProducts) {
                if (insProduct.getInsResult() == 0) {
                    InsUnPass insUnPass = new InsUnPass();
@@ -935,19 +917,19 @@
                    insUnPass.setInspectionItem(insProduct.getInspectionItem());
                    insUnPass.setInspectionItemSubclass(insProduct.getInspectionItemSubclass());
                    insUnPass.setLastValue(insProduct.getLastValue());
                    insUnPass.setEntrustCode(insOrderMapper.selectById(orderId).getEntrustCode());
                insUnPass.setEntrustCode(insOrder.getEntrustCode());
                    List<Integer> userIds = insProductUserMapper.selectList(Wrappers.<InsProductUser>lambdaQuery().eq(InsProductUser::getInsProductId, insProduct.getId())).stream().map(InsProductUser::getCreateUser).distinct().collect(Collectors.toList());
                    String name = userMapper.selectBatchIds(userIds).stream().map(User::getName).collect(Collectors.joining(","));
                    insUnPass.setName(name);
                    insUnPasses.add(insUnPass);
                }
            }
        }
        insUnPassService.saveBatch(insUnPasses);
        /*type=0  å†æ¬¡è¯•验; type=1 ç»§ç»­è¯•验 ; type=2 ç»“束试验*/
        // æŸ¥è¯¢æ ¹æ® id å€’序排列的第一条记录
        InsOrderState record = insOrderStateMapper.selectOne(Wrappers.<InsOrderState>lambdaQuery()
                .eq(InsOrderState::getInsOrderId, orderId)
                .eq(InsOrderState::getInsOrderId, insSample.getInsOrderId())
                .eq(InsOrderState::getInsSampleId, sampleId)
                .eq(InsOrderState::getLaboratory, laboratory)
                .orderByDesc(InsOrderState::getId)
                .last("LIMIT 1")); // ç¡®ä¿åªå–一条记录
@@ -972,7 +954,8 @@
                case 1:
                    //继续试验:该站点任务结束(可以再次扫码检验);
                    insOrderStateMapper.update(null, Wrappers.<InsOrderState>lambdaUpdate()
                            .eq(InsOrderState::getInsOrderId, orderId)
                            .eq(InsOrderState::getInsOrderId, insSample.getInsOrderId())
                            .eq(InsOrderState::getInsSampleId, sampleId)
                            .eq(InsOrderState::getLaboratory, laboratory)
                            .set(InsOrderState::getInsState, 6)
                            .set(InsOrderState::getVerifyTell, tell)
@@ -981,25 +964,23 @@
                case 2:
                    //结束试验:此委托单停止试验(无法再次检验)。
                    insOrderStateMapper.update(null, Wrappers.<InsOrderState>lambdaUpdate()
                            .eq(InsOrderState::getInsOrderId, orderId)
                            .eq(InsOrderState::getInsOrderId, insSample.getInsOrderId())
                            .eq(InsOrderState::getInsSampleId, sampleId)
                            .eq(InsOrderState::getLaboratory, laboratory)
                            .set(InsOrderState::getInsState, 5)
                            .set(InsOrderState::getVerifyTell, tell)
                            .set(InsOrderState::getVerifyUser, userId));
                    //如果订单类型是原理样机,则该订单直接闭环
                    InsOrder insOrder = insOrderMapper.selectById(orderId);
                    if (insOrder.getFormType().equals("原理样机")) {
                        for (InsSample sample : samples) {
                            //出库
                            try {
                                outInsOrderState(laboratory, sample.getSampleCode());
                            outInsOrderState(laboratory, insSample.getSampleCode());
                            } catch (Exception e) {
                            }
                        }
                        insOrder.setState(4);
                        insOrderMapper.updateById(insOrder);
                    }
                    break;
            }
        }
@@ -1033,10 +1014,10 @@
    @Override
    public int submitPlan(SubmitPlanDto submitPlanDto) {
        List<InsSample> insSamples = insSampleMapper.selectList(Wrappers.<InsSample>lambdaQuery()
                .eq(InsSample::getInsOrderId, submitPlanDto.getOrderId()).select(InsSample::getId));
        InsSample insSample = insSampleMapper.selectById(submitPlanDto.getSampleId());
        InsOrderState orderState = insOrderStateMapper.selectOne(Wrappers.<InsOrderState>lambdaQuery()
                .eq(InsOrderState::getInsOrderId, submitPlanDto.getOrderId())
                .eq(InsOrderState::getInsOrderId, insSample.getInsOrderId())
                .eq(InsOrderState::getInsSampleId, submitPlanDto.getSampleId())
                .eq(InsOrderState::getLaboratory, submitPlanDto.getLaboratory())
                .orderByDesc(InsOrderState::getId)
                .last("LIMIT 1"));// ç¡®ä¿åªå–一条记录
@@ -1049,16 +1030,10 @@
        insOrderUser.setNote(ObjectUtils.isNotEmpty(submitPlanDto.getNote()) ? submitPlanDto.getNote() : null);
        insOrderUser.setTerm(ObjectUtils.isNotEmpty(submitPlanDto.getTerm()) ? submitPlanDto.getTerm() : null);
        insOrderUserMapper.insert(insOrderUser);
        List<Integer> ids = insSamples.stream().map(a -> a.getId()).collect(Collectors.toList());
        List<InsProduct> insProducts = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery()
                .in(InsProduct::getInsSampleId, ids)
                .eq(InsProduct::getInsSampleId, insSample.getId())
                .eq(InsProduct::getSonLaboratory, submitPlanDto.getLaboratory())
                .eq(InsProduct::getState, 1)
                .and(wrapper -> wrapper
                        .isNull(InsProduct::getInsResult)
                        .or()
                        .eq(InsProduct::getInsResult, 2)
                ));
                .eq(InsProduct::getState, 1));
        if (insProducts.size() > 0) {
            String str = "";
            int count = 0;
@@ -1090,19 +1065,13 @@
            }
        }
        insOrderStateMapper.update(null, Wrappers.<InsOrderState>lambdaUpdate()
                .eq(InsOrderState::getInsOrderId, submitPlanDto.getOrderId())
                .eq(InsOrderState::getInsOrderId, insSample.getInsOrderId())
                .eq(InsOrderState::getInsSampleId, submitPlanDto.getSampleId())
                .eq(InsOrderState::getLaboratory, submitPlanDto.getLaboratory())
                .set(InsOrderState::getInsState, 3)
                .set(InsOrderState::getVerifyUser, submitPlanDto.getVerifyUser()));
        InsOrder insOrder = insOrderMapper.selectById(submitPlanDto.getOrderId());
        /*这个情况先关闭----如果是C类订单且是下发到质量部,则直接复核通过(结束试验)*/
//        if (insOrder.getOrderType().equals("C") && insOrder.getDepartmentLims().equals("质量部")) {
//            try {
//                verifyPlan(orderId, laboratory, 2, null);
//            } catch (IOException e) {
//                e.printStackTrace();
//            }
//        } else {
        InsOrder insOrder = insOrderMapper.selectById(insSample.getInsOrderId());
        Integer userId = getLook.selectPowerByMethodAndUserId(null).get("userId");
        //LIMS系统消息推送
        InformationNotification info = new InformationNotification();
@@ -1130,11 +1099,10 @@
            map.put("enable_id_trans", 0);//是否开启id转译.0否
            map.put("enable_duplicate_check", 0);//是否开启重复消息检查.0否
            qywxApi.send(map);
//        }
        //复核人--检验单相关负责人
        InsSampleUser insSampleUser = new InsSampleUser();
        insSampleUser.setUserId(submitPlanDto.getVerifyUser());
        insSampleUser.setInsSampleId(submitPlanDto.getOrderId());
        insSampleUser.setInsSampleId(submitPlanDto.getSampleId());
        insSampleUser.setState(1);
        insSampleUser.setSonLaboratory(submitPlanDto.getLaboratory());
        insSampleUserMapper.insert(insSampleUser);
inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderServiceImpl.java
@@ -81,22 +81,13 @@
    @Resource
    InsProductResultMapper insProductResultMapper;
    @Resource
    private WarehouseHistoryMapper warehouseHistoryMapper;
    @Resource
    private InsProductMapper insProductMapper;
    @Resource
    private InsProductService insProductService;
    @Resource
    private InsProductUserMapper insProductUserMapper;
    @Resource
    private GiveCode giveCode;
    @Resource
    private InsSampleUserMapper insSampleUserMapper;
    @Resource
    private InsOrderStateMapper insOrderStateMapper;
    @Resource
    UserMapper userMapper;
    @Resource
    InformationNotificationService informationNotificationService;
    @Resource
@@ -141,34 +132,6 @@
        });
        map.put("body", sampleOrderDtoIPage);
        return map;
    }
    //分配站点
    @Override
    @Transactional(rollbackFor = Exception.class)
    public int upInsOrder(Integer orderId, Integer sampleId, String appointed, Integer userId, String sonLaboratory) {
        InsOrder insOrder = new InsOrder();
        insOrder.setId(orderId);
        //insOrder.setAppointed(LocalDate.parse(appointed));
        insOrder.setSendTime(LocalDateTime.now());
        insOrderMapper.updateById(insOrder);
        //修改成只给当前选择的试验室下发单子
        InsOrderState insOrderState = new InsOrderState();
        insOrderState.setInsOrderId(orderId);
        insOrderState.setLaboratory(sonLaboratory);
        insOrderState.setInsState(0);
        insOrderState.setNum(1);//初始是第一次
        insOrderStateMapper.insert(insOrderState);
        //这里是在给分配的指定的人和试验室下发检验人
        if (userId != null) {
            InsSampleUser insSampleUser = new InsSampleUser();
            insSampleUser.setState(0);
            insSampleUser.setUserId(userId);
            insSampleUser.setInsSampleId(orderId);
            insSampleUser.setSonLaboratory(sonLaboratory);
            insSampleUserMapper.insert(insSampleUser);
        }
        return 1;
    }
    @Override
@@ -346,7 +309,7 @@
                    if (!realpath.exists()) {
                        realpath.mkdirs();
                    }
                    pathName = UUID.randomUUID() + "_" + file.getOriginalFilename();
                    pathName = UUID.randomUUID() + "_" + file.getOriginalFilename().replace("#", "&");
                    urlString = realpath + "/" + pathName;
                    file.transferTo(new File(urlString));
                    insOrderFile.setFileUrl(pathName);
@@ -479,18 +442,13 @@
    }
    @Override
    public Map<String, Object> getInsOrderAndSample(Integer id, String laboratory) {
    public Map<String, Object> getInsOrderAndSample(Integer sampleId, String laboratory) {
        InsSample insSample = insSampleMapper.selectById(sampleId);
        Map<String, Object> map = new HashMap<>();
        InsOrder insOrder = insOrderMapper.selectById2(id);
        List<SampleProductDto> insSamples = insSampleMapper.selectList1(insOrder.getId());
        List<SampleProductDto> list = insSampleMapper.getInsOrderAndSample(id, laboratory);
        InsOrder insOrder = insOrderMapper.selectById2(insSample.getInsOrderId());
        SampleProductDto sampleProductDto = insSampleMapper.getInsOrderAndSample(sampleId, laboratory);
        //再次试验会出现为空的情况
        if (list.size() != insSamples.size()) {
            List<Integer> ids = list.stream().map(sampleProductDto -> sampleProductDto.getId()).distinct().collect(Collectors.toList());
            List<SampleProductDto> samples = insSamples.stream().filter(insSample ->
                    !ids.contains(insSample.getId())
            ).collect(Collectors.toList());
            for (SampleProductDto insSample : samples) {
        if (ObjectUtils.isEmpty(sampleProductDto)) {
                List<InsProduct> insProducts = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery()
                        .eq(InsProduct::getInsSampleId, insSample.getId())
                        .eq(InsProduct::getState, 1)
@@ -503,12 +461,9 @@
                            .eq(InsProductResult::getInsProductId, insProduct.getId()).isNull(InsProductResult::getNum));
                    insProduct.setInsProductResult(insProductResult);
                }
                insSample.setInsProduct(insProducts);
                list.add(insSample);
            BeanUtils.copyProperties(insSample,sampleProductDto);
            sampleProductDto.setInsProduct(insProducts);
            }
        }
        for (SampleProductDto sampleProductDto : list) {
            List<Integer> ids = sampleProductDto.getInsProduct().stream().map(InsProduct::getId).collect(Collectors.toList());
            List<InsProductUser> insProductUsers = insProductUserMapper.selectList(Wrappers.<InsProductUser>lambdaQuery()
                    .in(InsProductUser::getInsProductId, ids));
@@ -517,11 +472,10 @@
                String collect = userMapper.selectBatchIds(userIds).stream().map(User::getName).collect(Collectors.joining(","));
                sampleProductDto.setCheckName(collect);
            }
        }
        map.put("insOrder", insOrder);
        map.put("sampleProduct", list);
        map.put("sampleProduct", sampleProductDto);
        //查询所有记录模版去重
        List<Map<Integer, Object>> list2 = insOrderMapper.selectReportModelByOrderId(id, laboratory);
        List<Map<Integer, Object>> list2 = insOrderMapper.selectReportModelByOrderId(insSample.getInsOrderId(), laboratory);
        map.put("reportModel", list2);
        return map;
    }
inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsReportServiceImpl.java
@@ -26,10 +26,7 @@
import com.itextpdf.text.pdf.PdfStamper;
import com.yuanchu.mom.common.GetLook;
import com.yuanchu.mom.common.PrintChina;
import com.yuanchu.mom.dto.InsReportDto;
import com.yuanchu.mom.dto.InsReportDto1;
import com.yuanchu.mom.dto.ReportPageDto;
import com.yuanchu.mom.dto.SampleProductDto;
import com.yuanchu.mom.dto.*;
import com.yuanchu.mom.exception.ErrorException;
import com.yuanchu.mom.mapper.*;
import com.yuanchu.mom.pojo.*;
@@ -139,19 +136,7 @@
        map.put("head", PrintChina.printChina(ReportPageDto.class));
        Map<String, Integer> map1 = getLook.selectPowerByMethodAndUserId("pageInsReport");
        if (map1.get("look") == 1) reportPageDto.setCreateUser(map1.get("userId"));
        User user = userMapper.selectById(map1.get("userId"));//当前登录的人
        //获取当前人所属实验室id
        String departLimsId = user.getDepartLimsId();
        String laboratory = null;
        if (ObjectUtils.isNotEmpty(departLimsId) && !departLimsId.equals("")) {
            String[] split = departLimsId.split(",");
            //查询对应架构名称(通信实验室,电力实验室,检测办)
            String departLims = insOrderMapper.seldepLimsId(Integer.parseInt(split[split.length - 1]));
            if (departLims.contains("实验室")) {
                laboratory = departLims;
            }
        }
        map.put("body", insReportMapper.pageInsReport(page, QueryWrappers.queryWrappers(reportPageDto), laboratory));
        map.put("body", insReportMapper.pageInsReport(page, QueryWrappers.queryWrappers(reportPageDto)));
        return map;
    }
@@ -333,7 +318,6 @@
            if (files != null) {
                for (File f : files) {
                    // æ ¹æ®æ–‡ä»¶åæŸ¥è¯¢id
                    String name = f.getName();
                    InsReport insReport = insReportMapper.selectOne(Wrappers.<InsReport>lambdaQuery().like(InsReport::getCode, f.getName().replace(".docx", "")));
                    if (ObjectUtils.isEmpty(insReport)) {
                        throw new ErrorException("没有找到 " + f.getName() + " è¿™ä¸ªæ–‡ä»¶å¯¹åº”的报告数据");
@@ -374,30 +358,37 @@
    @Override
    @Transactional(rollbackFor = Exception.class)
    public int isReport(InsReportDto insReportDto) {
        //先判断该订单是否可以去生产报告
        Long count = insOrderStateMapper.selectCount(Wrappers.<InsOrderState>lambdaQuery().eq(InsOrderState::getInsOrderId, insReportDto.getId()).eq(InsOrderState::getInsState, 5));
        //先判断该订单是否可以去生产报告(是否结束试验)
        Long count = insOrderStateMapper.selectCount(Wrappers.<InsOrderState>lambdaQuery()
                .eq(InsOrderState::getInsOrderId, insReportDto.getId()).eq(InsOrderState::getInsState, 5));
        if (count > 0) {
            if (insReportDto.getState() == 1) {
                List<InsReportDto1> insReportDto1s = insReportDto.getInsReportDto1s();
                wordUtils.generateReport(insReportDto.getId(), insReportDto1s);
            } else {
                //结束订单
                InsOrder insOrder = new InsOrder();
                insOrder.setId(insReportDto.getId());
                insOrder.setState(4);
                insOrderMapper.updateById(insOrder);
                for (InsReportDto1 insReportDto1 : insReportDto1s) {
                    wordUtils.generateReport(insReportDto.getId(), insReportDto1);
            }
        } else {
            throw new ErrorException("该订单还未结束试验,无法生产报告!");
               //如果不生成就一直挂着
            }
        } else {
            throw new ErrorException("该订单还未结束试验,无法生成报告!");
        }
        return 0;
    }
    //查出该订单下每个站点下的检验次数
    @Override
    public List<InsOrderState> getInsOrderStateCount(Integer id) {
        List<InsOrderState> insOrderStates = insOrderStateMapper.getInsOrderStateCount(id);
        return insOrderStates;
    public List<InsOrderStateDto> getInsOrderStateCount(Integer id) {
        List<InsOrderStateDto> insOrderStateDtos = new ArrayList<>();
        List<InsSample> insSamples = insSampleMapper.selectList(Wrappers.<InsSample>lambdaQuery().eq(InsSample::getInsOrderId, id));
        for (InsSample insSample : insSamples) {
            InsOrderStateDto insOrderStateDto = new InsOrderStateDto();
            insOrderStateDto.setInsSample(insSample);
            List<InsOrderState> insOrderStates = insOrderStateMapper.getInsOrderStateCount(id, insSample.getId());
            insOrderStateDto.setInsOrderStates(insOrderStates);
            insOrderStateDtos.add(insOrderStateDto);
        }
        return insOrderStateDtos;
    }
inspect-server/src/main/java/com/yuanchu/mom/utils/FuSheUtils.java
@@ -1,5 +1,6 @@
package com.yuanchu.mom.utils;
import cn.hutool.core.lang.UUID;
import com.deepoove.poi.XWPFTemplate;
import com.deepoove.poi.config.Configure;
import com.deepoove.poi.config.ConfigureBuilder;
@@ -11,8 +12,10 @@
import com.yuanchu.mom.exception.ErrorException;
import com.yuanchu.mom.mapper.InsOrderFileMapper;
import com.yuanchu.mom.mapper.InsOrderMapper;
import com.yuanchu.mom.mapper.InsSampleMapper;
import com.yuanchu.mom.pojo.InsOrder;
import com.yuanchu.mom.pojo.InsOrderFile;
import com.yuanchu.mom.pojo.InsSample;
import org.apache.commons.io.IOUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.poi.openxml4j.util.ZipSecureFile;
@@ -43,6 +46,9 @@
    @Resource
    InsOrderMapper insOrderMapper;
    @Resource
    InsSampleMapper insSampleMapper;
    public void getFuSheWord1(String sonLaboratory, InsOrderFile insOrderFile) {
        //读取excel文件内容
@@ -85,8 +91,7 @@
                                    default:
                                        System.out.print("NULL\t");
                                }
                            }
                            else {
                            } else {
                                switch (cell.getCellType()) {
                                    case STRING:
                                        if (StringUtils.isNotEmpty(s)) {
@@ -524,18 +529,19 @@
        }
        // è¾“出到文件
        try {
            InsOrder insOrder = insOrderMapper.selectById(insOrderFile.getInsOrderId());
            InsSample insSample = insSampleMapper.selectById(insOrderFile.getInsSampleId());
            String[] split = insOrderFile.getFileName().split("\\.");
            String name = insOrderFile.getFileName().substring(0, (insOrderFile.getFileName().length() - split[split.length - 1].length()));
            FileOutputStream out = new FileOutputStream(wordUrl + "/" + insOrder.getEntrustCode() + "&" + sonLaboratory + name + "解析的辐射站点报告.docx");
            FileOutputStream out = new FileOutputStream(wordUrl + "/" + UUID.randomUUID() + "_" + insSample.getSampleCode() + "&" + sonLaboratory + name + "解析的辐射站点报告.docx");
            document.write(out);
            out.close();
            document.close();
            InsOrderFile orderFile = new InsOrderFile();
            orderFile.setInsOrderId(insOrderFile.getInsOrderId());
            orderFile.setFileUrl(insOrder.getEntrustCode() + "&" + sonLaboratory + name + "解析的辐射站点报告.docx");
            orderFile.setInsSampleId(insOrderFile.getInsSampleId());
            orderFile.setFileUrl(UUID.randomUUID() + "_" + insSample.getSampleCode() + "&" + sonLaboratory + name + "解析的辐射站点报告.docx");
            orderFile.setType(2);
            orderFile.setFileName(insOrder.getEntrustCode() + "&" + sonLaboratory + name + "解析的辐射站点报告.docx");
            orderFile.setFileName(insSample.getSampleCode() + "&" + sonLaboratory + name + "解析的辐射站点报告.docx");
            orderFile.setSonLaboratory(sonLaboratory);
            insOrderFileMapper.insert(orderFile);
        } catch (IOException e) {
@@ -589,7 +595,6 @@
            XWPFParagraph paragraph18 = table1.getRow(1).getCell(0).getParagraphArray(0);
            XWPFRun run18 = paragraph18.createRun();
            run18.setText("频段: "+result1+"MHz "+"下倾角"+result);
            List<String> collect = Arrays.stream(split).collect(Collectors.toList());
@@ -672,7 +677,6 @@
                }
                XWPFParagraph paragraph3 = table.getRow(0).getCell(3).getParagraphArray(0);
                XWPFRun run3 = paragraph3.createRun();
                run3.setText(bz.get(s2).toString());
@@ -752,18 +756,19 @@
        // è¾“出到文件
        try {
            InsOrder insOrder = insOrderMapper.selectById(insOrderFile.getInsOrderId());
            InsSample insSample = insSampleMapper.selectById(insOrderFile.getInsSampleId());
            String[] split = insOrderFile.getFileName().split("\\.");
            String name = insOrderFile.getFileName().replace("#","&").substring(0, (insOrderFile.getFileName().length() - split[split.length - 1].length()));
            FileOutputStream out = new FileOutputStream(wordUrl + "/" + insOrder.getEntrustCode() + "&" + sonLaboratory + name + "解析的辐射站点报告.docx");
            FileOutputStream out = new FileOutputStream(wordUrl + "/" + UUID.randomUUID() + "_" + insSample.getSampleCode() + "&" + sonLaboratory + name + "解析的辐射站点报告.docx");
            document.write(out);
            out.close();
            document.close();
            InsOrderFile orderFile = new InsOrderFile();
            orderFile.setInsOrderId(insOrderFile.getInsOrderId());
            orderFile.setFileUrl(insOrder.getEntrustCode() + "&" + sonLaboratory + name + "解析的辐射站点报告.docx");
            orderFile.setInsSampleId(insOrderFile.getInsSampleId());
            orderFile.setFileUrl(UUID.randomUUID() + "_" + insSample.getSampleCode() + "&" + sonLaboratory + name + "解析的辐射站点报告.docx");
            orderFile.setType(2);
            orderFile.setFileName(insOrder.getEntrustCode() + "&" + sonLaboratory + name + "解析的辐射站点报告.docx");
            orderFile.setFileName(insSample.getSampleCode() + "&" + sonLaboratory + name + "解析的辐射站点报告.docx");
            orderFile.setSonLaboratory(sonLaboratory);
            insOrderFileMapper.insert(orderFile);
        } catch (IOException e) {
inspect-server/src/main/java/com/yuanchu/mom/utils/WordUtils.java
@@ -1,5 +1,6 @@
package com.yuanchu.mom.utils;
import cn.hutool.core.lang.UUID;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
@@ -12,6 +13,7 @@
import com.deepoove.poi.data.style.*;
import com.deepoove.poi.util.TableTools;
import com.yuanchu.mom.dto.InsReportDto1;
import com.yuanchu.mom.dto.InsReportDto2;
import com.yuanchu.mom.dto.SampleProductDto;
import com.yuanchu.mom.exception.ErrorException;
import com.yuanchu.mom.mapper.*;
@@ -88,6 +90,9 @@
    @Resource
    InsSampleUserMapper insSampleUserMapper;
    @Resource
    GiveCode giveCode;
    //生成站点电路试验报告
    public void generateWord(String term, InsOrderState insOrderState) {
@@ -97,9 +102,8 @@
        List<Map<String, Object>> tables = new ArrayList<>();
        //查询订单
        InsOrder insOrder = insOrderMapper.selectById(insOrderState.getInsOrderId());
        //查询且过滤出有电路试验的样品
        List<InsSample> insSamples = insSampleMapper.selectSample(insOrderState.getInsOrderId());
        insSamples.forEach(insSample -> {
        //查询样品
        InsSample insSample = insSampleMapper.selectById(insOrderState.getInsSampleId());
            //查询项目
            List<InsProduct> insProducts = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery()
                    .eq(InsProduct::getInsSampleId, insSample.getId())
@@ -1486,8 +1490,6 @@
                tables.add(table);
                lable.getAndIncrement();
            });
        });
        ZipSecureFile.setMinInflateRatio(0.0001);
        InputStream inputStream = this.getClass().getResourceAsStream("/static/word1.docx");
@@ -1498,14 +1500,15 @@
                    put("title", title);
                    put("tables", tables);
                }});
        String name = insOrder.getEntrustCode().replace("/", "") + "-" + title + ".docx";
        String name = insOrder.getEntrustCode().replace("/", "") + "-" +insSample.getSampleCode()+"-"+ title + ".docx";
        String url = UUID.randomUUID() + "_" + name;
        try {
            template.writeAndClose(Files.newOutputStream(Paths.get(wordUrl + "/" + name)));
            template.writeAndClose(Files.newOutputStream(Paths.get(wordUrl + "/" + url)));
        } catch (IOException e) {
            throw new RuntimeException(e);
        }
        // å¤„理合并单元格的问题
        String path = wordUrl + "/" + name;
        String path = wordUrl + "/" + url;
        try {
            ZipSecureFile.setMinInflateRatio(0.0001);
            FileInputStream stream = new FileInputStream(path);
@@ -1581,27 +1584,27 @@
        } catch (IOException e) {
            throw new RuntimeException(e);
        }
        InsOrderFile insOrderFile = new InsOrderFile();
        insOrderFile.setInsOrderId(insOrderState.getInsOrderId());
        insOrderFile.setInsSampleId(insOrderState.getInsSampleId());
        insOrderFile.setFileName(name);
        insOrderFile.setType(2);
        insOrderFile.setFileUrl(name);
        insOrderFile.setFileUrl(url);
        insOrderFile.setSonLaboratory("电路试验");
        insOrderFileMapper.insert(insOrderFile);
    }
    //生成总报告
    public void generateReport(Integer orderId, List<InsReportDto1> insReportDto1s) {
    public void generateReport(Integer orderId, InsReportDto1 insReportDto1) {
        LocalDateTime now = LocalDateTime.now();
        InsOrder insOrder = insOrderMapper.selectById(orderId);
        //委托部门 departLims
        String departLims = userMapper.selectDepartLims(insOrder.getPrepareUser());
        //samples是过滤掉没有检验项目的样品
        List<SampleProductDto> samples = insSampleMapper.selectSampleProductListByOrderId(orderId);
        String sampleCode = samples.get(0).getSampleCode();
        SampleProductDto insSample = insSampleMapper.selectSampleProductListByOrderId(insReportDto1.getSampleId());
        String sampleCode = insSample.getSampleCode();
        InsReport insReport = new InsReport();
        insReport.setCode(insOrder.getEntrustCode().replace("WT", "TXJC"));
        insReport.setCode(giveCode.giveCode("TXJC-", "ins_report", "-", "yyMMdd"));
        insReport.setInsSampleId(insSample.getId());
        insReport.setInsOrderId(orderId);
        Set<String> standardMethod = new HashSet<>();
        Set<String> deviceSet = new HashSet<>();
@@ -1612,7 +1615,7 @@
        AtomicReference<Integer> productSize2 = new AtomicReference<>(0);
        AtomicReference<Integer> productSize3 = new AtomicReference<>(0);
        String[] monthNames = {"January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"};
        samples.forEach(s -> {
        SampleProductDto s=insSample;
            models.add(s.getModel());
            standardMethod.addAll(standardMethodListMapper.selectList(Wrappers.<StandardMethodList>lambdaQuery()
                    .in(StandardMethodList::getId, Arrays.stream(s.getStandardMethodListId().replaceAll("[\\[\\]]", "").split(","))
@@ -1649,13 +1652,13 @@
                        .collect(Collectors.toSet());
                labToDeviceMap.put(entry.getKey(), productIds);
            }
            for (InsReportDto1 insReportDto1 : insReportDto1s) {
                String laboratory = insReportDto1.getLaboratory();
            for (InsReportDto2 insReportDto2 : insReportDto1.getInsReportDto2s()) {
                String laboratory = insReportDto2.getLaboratory();
                if (!labToDeviceMap.containsKey(laboratory)) {
                    continue;
                }
                Set<Integer> productIds = labToDeviceMap.get(laboratory);
                Integer num = insReportDto1.getNum();
                Integer num = insReportDto2.getNum();
                //普通试验结果表
                List<InsProductResult> insProductResults = insProductResultMapper.selectList(
                        Wrappers.<InsProductResult>lambdaQuery()
@@ -1684,7 +1687,7 @@
                    }
                }
            }
        });
        /*检验情况一览表*/
        List<Map<String, String>> tables = new ArrayList<>();
@@ -1693,7 +1696,7 @@
        List<Map<String, Object>> tables4 = new ArrayList<>();
        Integer indexs = 1;
        //判断是否有电路试验,环境试验
        List<String> strings = insReportDto1s.stream().map(InsReportDto1::getLaboratory).distinct().collect(Collectors.toList());
        List<String> strings = insReportDto1.getInsReportDto2s().stream().map(InsReportDto2::getLaboratory).distinct().collect(Collectors.toList());
        if (strings.contains("近场") || strings.contains("远场")) {
            Map<String, String> table = new HashMap<>();
            table.put("indexs", indexs + "");
@@ -1704,6 +1707,7 @@
            /*辐射的试验表*/
            List<InsOrderFile> insOrderFiles = insOrderFileMapper.selectList(Wrappers.<InsOrderFile>lambdaQuery()
                    .eq(InsOrderFile::getInsOrderId, orderId)
                    .eq(InsOrderFile::getInsSampleId, insReportDto1.getSampleId())
                    .like(InsOrderFile::getFileName, "解析的辐射站点报告")
                    .and(wrapper -> wrapper
                            .eq(InsOrderFile::getSonLaboratory, "远场")
@@ -1807,8 +1811,7 @@
            strings.remove("电路试验");
            strings.remove("近场");
            strings.remove("远场");
            List<Integer> productIdes = samples.stream().flatMap(sampleProductDto ->
                    sampleProductDto.getInsProduct().stream().map(InsProduct::getId)).collect(Collectors.toList());
            List<Integer> productIdes = insSample.getInsProduct().stream().map(InsProduct::getId).collect(Collectors.toList());
            List<Integer> collect = insProductResult2Mapper.selectList(Wrappers.<InsProductResult2>lambdaQuery()
                    .in(InsProductResult2::getInsProductId, productIdes))
                    .stream().map(InsProductResult2::getResult).distinct().collect(Collectors.toList());
@@ -1843,9 +1846,9 @@
                indexs += 1;
                /*创建环境试验条件表2*(项目数+1)*/
                List<InsProduct> products = samples.stream().flatMap(sampleProductDto -> sampleProductDto.getInsProduct().stream()
                List<InsProduct> products =  insSample.getInsProduct().stream()
                        .filter(insProduct -> !insProduct.getInspectionItem().equals("电路试验"))
                        .filter(insProduct -> !insProduct.getInspectionItem().equals("辐射试验")))
                        .filter(insProduct -> !insProduct.getInspectionItem().equals("辐射试验"))
                        .map(insProduct -> {
                            InsProduct product = new InsProduct();
                            product.setInspectionItemSubclass(insProduct.getInspectionItemSubclass());
@@ -1957,13 +1960,12 @@
                indexs += 1;
            }
            /*勾选的电路试验表*/
            List<InsSample> insSamples = insSampleMapper.selectSample(orderId);
            for (InsReportDto1 insReportDto1 : insReportDto1s) {
                InsOrderUser insOrderUser = insOrderUserMapper.selectById(insReportDto1.getInsOrderUsersId());
            for (InsReportDto2 insReportDto2 : insReportDto1.getInsReportDto2s()) {
                InsOrderUser insOrderUser = insOrderUserMapper.selectById(insReportDto2.getInsOrderUsersId());
                InsOrderState orderState = insOrderStateMapper.selectById(insOrderUser.getInsOrderStateId());
                if (orderState.getLaboratory().equals("电路试验")) {
                    orderState.setNum(insOrderUser.getNum());
                    getWord1(insOrderUser.getTerm(), orderState, insSamples, tables2);
                    getWord1(insOrderUser.getTerm(), orderState, tables2);
                }
            }
        }
@@ -1979,9 +1981,9 @@
                tables.add(table2);
                /*创建环境试验条件表2*(项目数+1)*/
                List<InsProduct> products = samples.stream().flatMap(sampleProductDto -> sampleProductDto.getInsProduct().stream()
                List<InsProduct> products = insSample.getInsProduct().stream()
                        .filter(insProduct -> !insProduct.getInspectionItem().equals("电路试验"))
                        .filter(insProduct -> !insProduct.getInspectionItem().equals("辐射试验")))
                        .filter(insProduct -> !insProduct.getInspectionItem().equals("辐射试验"))
                        .map(insProduct -> {
                            InsProduct product = new InsProduct();
                            product.setInspectionItemSubclass(insProduct.getInspectionItemSubclass());
@@ -2085,8 +2087,8 @@
        ZipSecureFile.setMinInflateRatio(0.0001);
        InputStream inputStream = this.getClass().getResourceAsStream("/static/report-template.docx");
        StringBuilder standardMethod2 = new StringBuilder();
        for (String s : standardMethod) {
            standardMethod2.append(";\n").append(s);
        for (String s1 : standardMethod) {
            standardMethod2.append(";\n").append(s1);
        }
        standardMethod2.append(";\n").append("GB/T 9410-2008 ã€Šç§»åŠ¨é€šä¿¡å¤©çº¿é€šç”¨æŠ€æœ¯è§„èŒƒã€‹");
        standardMethod2.replace(0, 1, "");
@@ -2096,8 +2098,8 @@
        }
        Map<String, String> codeStr = new HashMap<>();
        codeStr.put("报告编号", insReport.getCode());
        codeStr.put("样品名称", insOrder.getSample());
        codeStr.put("规格型号", samples.get(0).getModel());
        codeStr.put("样品名称", insSample.getSample());
        codeStr.put("规格型号", insSample.getModel());
        codeStr.put("发放日期", now.format(DateTimeFormatter.ofPattern("yyyy-MM-dd")));
        String codePath;
        try {
@@ -2119,7 +2121,7 @@
        List<Map<String, String>> finalDeviceList = deviceList;
        List<Map<String, String>> sampleList = insSampleMapper.selectSampleList(orderId);
        Integer userId = insSampleUserMapper.selectOne(Wrappers.<InsSampleUser>lambdaQuery()
                .eq(InsSampleUser::getInsSampleId, orderId).last("limit 1")).getUserId();
                .eq(InsSampleUser::getInsSampleId, insReportDto1.getSampleId()).last("limit 1")).getUserId();
        String signatureUrl;
        try {
            signatureUrl = userMapper.selectById(userId).getSignatureUrl();
@@ -2151,11 +2153,12 @@
            insOrder.setPhone("/");
        }
        //检验项目的环境
        InsProduct insProduct = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery().eq(InsProduct::getState, 1).eq(InsProduct::getInsSampleId, samples.get(0).getId())).get(0);
        InsProduct insProduct = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery()
                .eq(InsProduct::getState, 1)
                .eq(InsProduct::getInsSampleId, insReportDto1.getSampleId())).get(0);
        String environment = "";
        environment = (ObjectUtils.isNotEmpty(insProduct.getTemperature()) ? insProduct.getTemperature() + "℃ " : "") + (ObjectUtils.isNotEmpty(insProduct.getHumidity()) ? insProduct.getHumidity() + "%" : "");
        String finalEnvironment = environment;
        List<SampleProductDto> finalSamples = samples;
        String title3 = "";
        if (tables3.size() > 0) {
            title3 = "辐射方向图参数";
@@ -2169,7 +2172,7 @@
                    put("sampleCode", sampleCode);
                    put("environment", finalEnvironment);
                    put("custom", custom);
                    put("sampleSize", finalSamples.size());
                    put("sampleSize", "1");
                    put("standardMethod", (standardMethod2.toString().equals("null") ? "" : standardMethod2));
                    put("deviceList", finalDeviceList);
                    put("tables", tables);
@@ -2323,11 +2326,12 @@
    //电路报告用于总报告的方法
    private void getWord1(String term, InsOrderState insOrderState, List<InsSample> insSamples, List<Map<String, Object>> tables2) {
    private void getWord1(String term, InsOrderState insOrderState,List<Map<String, Object>> tables2) {
        AtomicInteger lable = new AtomicInteger(1);
        AtomicInteger index = new AtomicInteger();
        String title = term + "电路参数";
        insSamples.forEach(insSample -> {
        InsSample insSample = insSampleMapper.selectById(insOrderState.getInsSampleId());
            //查询项目
            List<InsProduct> insProducts = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery()
                    .eq(InsProduct::getInsSampleId, insSample.getId())
@@ -3714,7 +3718,6 @@
                table2.put("title", title);
                tables2.add(table2);
                lable.getAndIncrement();
            });
        });
    }
inspect-server/src/main/java/com/yuanchu/mom/vo/InsOrderPlanTaskSwitchVo.java
@@ -11,6 +11,7 @@
    @ValueTableShow(value = 1,name = "委托编号")
    private String entrustCode;
    @ValueTableShow(value = 2,name = "检验对象")
    private String sampleType;
@@ -36,5 +37,7 @@
    private Integer orderUserId;
    private Integer sampleId;
    private Integer verifyUser;
}
inspect-server/src/main/java/com/yuanchu/mom/vo/InsOrderPlanVO.java
@@ -52,6 +52,8 @@
    private Integer orderUserId;
    private Integer sampleId;
    private Integer verifyUser;
    private Integer orderStateId;
inspect-server/src/main/resources/mapper/InsOrderFileMapper.xml
@@ -5,6 +5,7 @@
    <resultMap id="BaseResultMap" type="com.yuanchu.mom.pojo.InsOrderFile">
        <id column="id" property="id"/>
        <result column="ins_order_id" property="insOrderId"/>
        <result property="insSampleId" column="ins_sample_id" />
        <result column="type" property="type"/>
        <result column="file_url" property="fileUrl"/>
        <result column="file_name" property="fileName"/>
@@ -24,6 +25,10 @@
            and (son_laboratory=#{sonLaboratory}
            or son_laboratory is null)
        </if>
        <if test="sampleId!=null and sampleId!=''">
            and (ins_sample_id=#{sampleId}
            or ins_sample_id is null)
        </if>
        ) A
        <if test="ew.customSqlSegment != null and ew.customSqlSegment != ''">
            ${ew.customSqlSegment}
inspect-server/src/main/resources/mapper/InsOrderStateMapper.xml
@@ -6,6 +6,7 @@
    <resultMap id="BaseResultMap" type="com.yuanchu.mom.pojo.InsOrderState">
        <id property="id" column="idd" jdbcType="INTEGER"/>
        <result property="insOrderId" column="ins_order_id" jdbcType="INTEGER"/>
        <result property="insSampleId" column="ins_sample_id" jdbcType="INTEGER"/>
        <result property="laboratory" column="laboratory" jdbcType="VARCHAR"/>
        <result property="insState" column="ins_state" jdbcType="INTEGER"/>
        <result property="sort" column="sort" jdbcType="INTEGER"/>
@@ -33,5 +34,6 @@
                 left join ins_order_user iou on ios.id = iou.ins_order_state_id
            left join user on submit_user=user.id
        where ios.ins_order_id = #{id}
          and ios.ins_sample_id = #{sampleId}
    </select>
</mapper>
inspect-server/src/main/resources/mapper/InsProductMapper.xml
@@ -102,8 +102,7 @@
        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}
        where isa.id = #{sampleId}
          and (ip.ins_result is null or ip.ins_result = 2)
          and ip.state = 1
    </select>
inspect-server/src/main/resources/mapper/InsReportMapper.xml
@@ -3,10 +3,10 @@
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yuanchu.mom.mapper.InsReportMapper">
    <resultMap id="BaseResultMap" type="com.yuanchu.mom.pojo.InsReport">
            <id property="id" column="id" jdbcType="INTEGER"/>
            <result property="insOrderId" column="ins_order_id" jdbcType="INTEGER"/>
        <result property="insSampleId" column="ins_sample_id" jdbcType="INTEGER"/>
            <result property="url" column="url" jdbcType="VARCHAR"/>
            <result property="urlS" column="url_s" jdbcType="VARCHAR"/>
            <result property="isRatify" column="is_ratify" jdbcType="INTEGER"/>
@@ -23,24 +23,23 @@
        select *
        from (
        select
        ir.*,io.entrust_code,u.name write_user_name,u1.name ratify_user,u2.name examine_user,io.laboratory,l.id labId
        ir.*,io.entrust_code,sample_code,u.name write_user_name,u1.name ratify_user,u2.name
        examine_user,io.laboratory,l.id labId
        from ins_report ir
        left join ins_order io on io.id = ir.ins_order_id
        left join ins_sample isa on isa.id = ir.ins_sample_id
        left join user u on u.id = ir.write_user_id
        left join user u1 on u1.id = ir.ratify_user_id
        left join user u2 on u2.id = ir.examine_user_id
        left join laboratory l on io.laboratory=laboratory_name
        where 1=1
        <if test="laboratory!=null and laboratory!=''">
           and  laboratory=#{laboratory}
        </if>
        ) a
        <if test="ew.customSqlSegment != null and ew.customSqlSegment != ''">
            ${ew.customSqlSegment}
        </if>
    </select>
    <select id="getLaboratoryByName" resultType="java.lang.String">
        select s.address from seal s
        select s.address
        from seal s
        left join laboratory l on s.lab_id = l.id
        where l.laboratory_name = #{name}
        and s.type = '报告类型'
inspect-server/src/main/resources/mapper/InsSampleMapper.xml
@@ -34,13 +34,16 @@
        verify_user,
        ios.id orderStateId,
        ios.create_time,
        (SELECT ins_time FROM ins_order_state WHERE ins_order_id = a.id AND laboratory = a.son_laboratory ORDER BY ins_time DESC LIMIT 1) AS ins_time ,
        (SELECT ins_time FROM ins_order_state WHERE ins_order_id = a.id AND laboratory = a.son_laboratory and
        ins_order_state.ins_sample_id=a.sampleId ORDER BY ins_time DESC LIMIT 1) AS ins_time ,
        iou.submit_time ,
        ios.sort,
        sort_time,
        version,
        ios.num-1 num1
        FROM
        ins_order_state ios
        LEFT JOIN
        (
        SELECT
        io.id,
@@ -48,8 +51,9 @@
        io.type,
        io.appointed,
        io.send_time,
        group_concat(distinct isa.sample,' ') sample,
        group_concat(distinct isa.sample_code,' ') sampleCode,
        isa.id sampleId,
        isa.sample sample,
        isa.sample_code sampleCode,
        userName,
        checkName,
        ip.son_laboratory,
@@ -64,7 +68,7 @@
        and u.state=0
        GROUP BY ins_sample_id
        ORDER BY ins_sample_id
        ) isu ON isu.ins_sample_id = io.id
        ) isu ON isu.ins_sample_id = isa.id
        LEFT JOIN (
        SELECT ins_sample_id,uu.name checkName
        FROM ins_sample_user u LEFT JOIN user uu ON u.user_id = uu.id
@@ -72,7 +76,7 @@
        and u.state=1
        GROUP BY ins_sample_id
        ORDER BY ins_sample_id
        )isu2 ON isu2.ins_sample_id = io.id
        )isu2 ON isu2.ins_sample_id = isa.id
        LEFT JOIN ins_product ip ON ip.ins_sample_id = isa.id
        WHERE io.state = 1 and send_time is not null
        <if test="userName !=null and userName!=''">
@@ -84,7 +88,7 @@
        ip.son_laboratory,
        io.id
        ) a
        LEFT JOIN ins_order_state ios ON ios.ins_order_id = a.id AND ios.laboratory = a.son_laboratory
        ON ios.ins_order_id = a.id AND ios.laboratory = a.son_laboratory and ios.ins_sample_id=a.sampleId
        LEFT JOIN ins_order_user iou ON ios.id = iou.ins_order_state_id and ios.num=iou.num
        ORDER BY
        ios.sort,
@@ -106,8 +110,10 @@
    <select id="inspectionOrderDetailsTaskSwitching" resultType="com.yuanchu.mom.vo.InsOrderPlanTaskSwitchVo">
        select * from(
        SELECT
        a.*,ios.ins_state,ios.verify_tell,isu2.order_user_id,<!--(ios.verify_user = #{userId})--> verify_user
        a.*,ios.ins_state,ios.verify_tell,isu2.order_user_id,verify_user
        FROM
        ins_order_state ios
        LEFT JOIN
        (
        SELECT
        io.id,
@@ -115,8 +121,9 @@
        io.type,
        io.appointed,
        io.send_time,
        group_concat(distinct isa.sample,' ') sampleType,
        group_concat(distinct isa.sample_code,' ') sampleCode,
        isa.id sampleId,
        isa.sample sampleType,
        isa.sample_code sampleCode,
        isu.user_id,
        user.name userName,
        ip.son_laboratory,
@@ -125,7 +132,7 @@
        FROM
        ins_order io
        LEFT JOIN ins_sample isa ON isa.ins_order_id = io.id
        LEFT JOIN ( <!--SELECT * FROM ins_sample_user GROUP BY ins_sample_id, user_id -->
        LEFT JOIN (
        SELECT *
        FROM ins_sample_user u
        WHERE son_laboratory=#{sonLaboratory} and (ins_sample_id, id) IN (
@@ -135,12 +142,11 @@
        GROUP BY ins_sample_id
        )
        ORDER BY ins_sample_id, id
        ) isu ON isu.ins_sample_id = io.id
        ) isu ON isu.ins_sample_id = isa.id
        LEFT JOIN ins_product ip ON ip.ins_sample_id = isa.id
        LEFT JOIN user ON isu.user_id = user.id
        WHERE
        io.state = 1
        -- # 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 )
@@ -150,21 +156,21 @@
        ip.son_laboratory,
        io.id
        ) a
        LEFT JOIN ins_order_state ios ON ios.ins_order_id = a.id AND ios.laboratory = a.son_laboratory
        left join (SELECT td.user_id order_user_id, td.ins_sample_id FROM ins_sample_user td,(SELECT max(id) id FROM
          ON ios.ins_order_id = a.id AND ios.laboratory = a.son_laboratory and a.sampleId=ios.ins_sample_id
        left join
        (SELECT td.user_id order_user_id, td.ins_sample_id FROM ins_sample_user td,(SELECT max(id) id FROM
        ins_sample_user where son_laboratory=#{sonLaboratory} GROUP BY ins_sample_id) md where td.id = md.id
        <if test="userId !=null and userId!=''">
            and user_id = #{userId} OR user_id is NULL
        </if>
        OR user_id is NULL
        ) isu2 on
        isu2.ins_sample_id = a.id
        isu2.ins_sample_id = a.sampleId
        where ins_state is not null
        <if test="laboratory != null and laboratory != ''">
            and a.laboratory=#{laboratory}
        </if>
        ORDER BY
        <!--a.user_id DESC,-->
        a.type DESC,
        a.id
        ) b
@@ -215,7 +221,7 @@
               ip.method_s
        from ins_sample isa
                 left join ins_product ip on isa.id = ip.ins_sample_id
        where isa.ins_order_id = #{id}
        where isa.id = #{id}
          and state = 1
          and isa.id in (select id1
                         from (select is2.id id1, ip.id
@@ -266,7 +272,7 @@
               `last_value`,
               ip.ins_result    ip_ins_result,
               state,
               ins_sample_id,
               ios.ins_sample_id,
               ip.create_user   ip_create_user,
               ip.update_user   ip_update_user,
               ip.create_time   ip_create_time,
@@ -292,11 +298,11 @@
               ip.temperature,
               ip.humidity
        from ins_sample isa
                 left join ins_order_state ios on isa.ins_order_id = ios.ins_order_id
                 left join ins_order_state ios on isa.id = ios.ins_sample_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 isa.ins_order_id = #{id}
        where isa.id = #{sampleId}
          and state = 1
          and ip.son_laboratory = #{laboratory}
          and ios.laboratory = #{laboratory}
@@ -336,7 +342,7 @@
               `last_value`,
               ip.ins_result    ip_ins_result,
               state,
               ins_sample_id,
               ios.ins_sample_id,
               ip.create_user   ip_create_user,
               ip.update_user   ip_update_user,
               ip.create_time   ip_create_time,
@@ -362,11 +368,11 @@
               ip.temperature,
               ip.humidity
        from ins_sample isa
                 left join ins_order_state ios on isa.ins_order_id = ios.ins_order_id
                 left join ins_order_state ios on isa.id = ios.ins_sample_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 isa.ins_order_id = #{id}
        where isa.id = #{sampleId}
          and state = 1
          and ip.son_laboratory = #{laboratory}
          and ios.laboratory = #{laboratory}
@@ -591,7 +597,7 @@
               `last_value`,
               ip.ins_result    ip_ins_result,
               state,
               ins_sample_id,
               ios.ins_sample_id,
               ip.create_user   ip_create_user,
               ip.update_user   ip_update_user,
               ip.create_time   ip_create_time,
@@ -616,10 +622,10 @@
               ip.dic
        from ins_product ip
                 left join ins_sample isa on ip.ins_sample_id = isa.id
                 left join ins_order_state ios on ios.ins_order_id = isa.ins_order_id
                 left join ins_order_state ios on ios.ins_sample_id = isa.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_sample_id = #{id}
        where ios.ins_sample_id = #{id}
          and state = 1
          and ip.son_laboratory = #{laboratory}
          and ip.standard_method_list_id is not null
@@ -659,7 +665,7 @@
               `last_value`,
               ip.ins_result    ip_ins_result,
               state,
               ins_sample_id,
               ios.ins_sample_id,
               ip.create_user   ip_create_user,
               ip.update_user   ip_update_user,
               ip.create_time   ip_create_time,
@@ -684,10 +690,10 @@
               ip.dic
        from ins_product ip
                 left join ins_sample isa on ip.ins_sample_id = isa.id
                 left join ins_order_state ios on ios.ins_order_id = isa.ins_order_id
                 left join ins_order_state ios on ios.ins_sample_id = isa.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_sample_id = #{id}
        where ios.ins_sample_id = #{id}
          and state = 1
          and ip.son_laboratory = #{laboratory}
          and ip.standard_method_list_id is not null
@@ -725,7 +731,7 @@
               `last_value`,
               ip.ins_result    ip_ins_result,
               state,
               ins_sample_id,
               ios.ins_sample_id,
               ip.create_user   ip_create_user,
               ip.update_user   ip_update_user,
               ip.create_time   ip_create_time,
@@ -750,10 +756,10 @@
               ip.dic
        from ins_product ip
                 left join ins_sample isa on ip.ins_sample_id = isa.id
                 left join ins_order_state ios on ios.ins_order_id = isa.ins_order_id
                 left join ins_order_state ios on ios.ins_sample_id = isa.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_sample_id = #{id}
        where ios.ins_sample_id = #{id}
          and state = 1
          and ip.son_laboratory = #{laboratory}
          and ip.standard_method_list_id is not null
@@ -956,9 +962,5 @@
        where son_laboratory = '电路试验'
          and state = 1
          and ins_order_id = #{insOrderId}
    </select>
    <select id="selectList1" resultType="com.yuanchu.mom.dto.SampleProductDto">
        select * from ins_sample where ins_order_id=#{id
}
    </select>
</mapper>