zss
2024-09-14 e700e89f85e58747b57fc0d7e1fd30f3483aacca
检验任务历史记录
已修改6个文件
已添加5个文件
417 ■■■■■ 文件已修改
inspect-server/src/main/java/com/yuanchu/mom/controller/InsOrderController.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/yuanchu/mom/controller/InsOrderPlanController.java 26 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/yuanchu/mom/mapper/InsOrderUserMapper.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/yuanchu/mom/pojo/InsOrderState.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/yuanchu/mom/pojo/InsOrderUser.java 56 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/yuanchu/mom/service/InsOrderPlanService.java 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/yuanchu/mom/service/InsOrderUserService.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderPlanServiceImpl.java 216 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderUserServiceImpl.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/resources/mapper/InsOrderStateMapper.xml 33 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/resources/mapper/InsOrderUserMapper.xml 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/yuanchu/mom/controller/InsOrderController.java
@@ -64,6 +64,7 @@
    @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));
    }
inspect-server/src/main/java/com/yuanchu/mom/controller/InsOrderPlanController.java
@@ -10,10 +10,7 @@
import com.yuanchu.mom.dto.InsProductResultDto;
import com.yuanchu.mom.pojo.InsOrderFile;
import com.yuanchu.mom.pojo.InsOrderState;
import com.yuanchu.mom.service.InsOrderFileService;
import com.yuanchu.mom.service.InsOrderPlanService;
import com.yuanchu.mom.service.InsOrderStateService;
import com.yuanchu.mom.service.InsProductService;
import com.yuanchu.mom.service.*;
import com.yuanchu.mom.utils.JackSonUtil;
import com.yuanchu.mom.vo.InsProductResultVo;
import com.yuanchu.mom.vo.Result;
@@ -39,6 +36,7 @@
public class InsOrderPlanController {
    private InsOrderPlanService insOrderPlanService;
    private InsOrderUserService insOrderUserService;
    private InsOrderFileService insOrderFileService;
@@ -117,8 +115,8 @@
    @ValueClassify("检验任务")
    @ApiOperation(value = "检验任务提交")
    @PostMapping("/submitPlan")
    public Result<?> submitPlan(Integer orderId,String laboratory, Integer verifyUser, String entrustCode) {
        int num = insOrderPlanService.submitPlan(orderId, laboratory, verifyUser, entrustCode);
    public Result<?> submitPlan(Integer orderId,String laboratory, Integer verifyUser, String entrustCode, String note,String term) {
        int num = insOrderPlanService.submitPlan(orderId, laboratory, verifyUser, entrustCode,note,term);
        return num == 1 ? Result.success() : Result.fail("提交失败,部分项目还未进行检验");
    }
@@ -212,11 +210,25 @@
        return Result.success(insOrderStateService.updateById(orderState));
    }
    @ValueClassify("检验任务")
    @ValueAuth
    @PostMapping("/getInsOrderUserList")
    @ApiOperation("查看检验历史列表")
    public Result<?> getInsOrderUserList(Integer insOrderStateId) {
        return Result.success(insOrderPlanService.getInsOrderUserList(insOrderStateId));
    }
    @ValueAuth
    @PostMapping("/getInsProduct2")
    @ApiOperation("查看检验历史")
    public Result<?> getInsProduct2(Integer id, Integer type, String laboratory, HttpServletRequest request,Integer num) {
        return Result.success(insOrderPlanService.getInsProduct2(id, type, laboratory, request,num));
    }
    @ValueClassify("检验任务")
    @ApiOperation(value = "扫码报检")
    @PostMapping("/scanInsOrderState")
    public Result scanInsOrderState(String sonLaboratory,String sampleCode) {
        return Result.success(insOrderPlanService.scanInsOrderState(sonLaboratory,sampleCode));
    }
}
inspect-server/src/main/java/com/yuanchu/mom/mapper/InsOrderUserMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,19 @@
package com.yuanchu.mom.mapper;
import com.yuanchu.mom.pojo.InsOrderUser;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import java.util.List;
/**
 * <p>
 * æ¯æ¬¡æ£€éªŒä»»åŠ¡é‡å¤è®°å½• Mapper æŽ¥å£
 * </p>
 *
 * @author æ±Ÿè‹éµ·é›ç½‘络科技有限公司
 * @since 2024-09-14 10:08:31
 */
public interface InsOrderUserMapper extends BaseMapper<InsOrderUser> {
    List<InsOrderUser> getInsOrderUserList(Integer insOrderStateId);
}
inspect-server/src/main/java/com/yuanchu/mom/pojo/InsOrderState.java
@@ -98,4 +98,6 @@
    @TableField(exist = false,select = false)
    private String userName;
    private List<InsOrderUser> insOrderUserList;
}
inspect-server/src/main/java/com/yuanchu/mom/pojo/InsOrderUser.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,56 @@
package com.yuanchu.mom.pojo;
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.yuanchu.mom.common.OrderBy;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
/**
 * <p>
 * æ¯æ¬¡æ£€éªŒä»»åŠ¡é‡å¤è®°å½•
 * </p>
 *
 * @author æ±Ÿè‹éµ·é›ç½‘络科技有限公司
 * @since 2024-09-14 10:08:31
 */
@Getter
@Setter
@TableName("ins_order_user")
@ApiModel(value = "InsOrderUser对象", description = "每次检验任务重复记录")
public class InsOrderUser extends OrderBy implements Serializable {
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;
    @ApiModelProperty("外键:检验任务id")
    private Integer insOrderStateId;
    @ApiModelProperty("提交人")
    private Integer submitUser;
    @TableField(select = false,exist = false)
    private String submitUserName;
    @ApiModelProperty("提交时间")
    private LocalDateTime submitTime;
    @ApiModelProperty("检验次数")
    private Integer num;
    @ApiModelProperty("备注")
    private String note;
    @ApiModelProperty("条件")
    private String term;
    @ApiModelProperty("理由")
    private String tell;
}
inspect-server/src/main/java/com/yuanchu/mom/service/InsOrderPlanService.java
@@ -4,6 +4,7 @@
import com.yuanchu.mom.dto.InsOrderPlanDTO;
import com.yuanchu.mom.dto.InsProductResultDto;
import com.yuanchu.mom.pojo.InsOrderFile;
import com.yuanchu.mom.pojo.InsOrderUser;
import com.yuanchu.mom.pojo.InsProduct;
import com.yuanchu.mom.vo.InsProductResultVo;
import org.springframework.web.multipart.MultipartFile;
@@ -35,7 +36,7 @@
    int verifyPlan(Integer orderId, String laboratory, Integer type, String tell) throws IOException;
    int submitPlan(Integer orderId, String laboratory, Integer verifyUser, String entrustCode);
    int submitPlan(Integer orderId, String laboratory, Integer verifyUser, String entrustCode, String note,String term);
    List<InsProduct> getInsProduct(Integer id, Integer type, String laboratory, HttpServletRequest request);
    List<InsProduct> getInsProduct2(Integer id, Integer type, String laboratory, HttpServletRequest request,Integer num);
@@ -50,4 +51,8 @@
    int deleteInsContext(InsProductResultVo insProductResultVo);
    //扫码报检
    int scanInsOrderState(String sonLaboratory, String sampleCode);
    List<InsOrderUser> getInsOrderUserList(Integer insOrderStateId);
}
inspect-server/src/main/java/com/yuanchu/mom/service/InsOrderUserService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,16 @@
package com.yuanchu.mom.service;
import com.yuanchu.mom.pojo.InsOrderUser;
import com.baomidou.mybatisplus.extension.service.IService;
/**
 * <p>
 * æ¯æ¬¡æ£€éªŒä»»åŠ¡é‡å¤è®°å½• æœåŠ¡ç±»
 * </p>
 *
 * @author æ±Ÿè‹éµ·é›ç½‘络科技有限公司
 * @since 2024-09-14 10:08:31
 */
public interface InsOrderUserService extends IService<InsOrderUser> {
}
inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderPlanServiceImpl.java
@@ -87,6 +87,8 @@
    @Resource
    private InsProductMapper insProductMapper;
    @Resource
    private InsOrderUserMapper insOrderUserMapper;
    @Resource
    private ShiftTimeMapper shiftTimeMapper;
    @Resource
    private PerformanceShiftMapper performanceShiftMapper;
@@ -179,31 +181,6 @@
    public boolean claimInsOrderPlan(InsOrderPlanDTO entity) {
        if (Objects.isNull(entity)) {
            return false;
        }
        /*认领需要判断该样品是否在库*/
        //查询样品id(过滤没有检验项目的样品)
        List<Integer> sampleIds = insSampleMapper.selectList(Wrappers.<InsSample>lambdaQuery()
                .eq(InsSample::getInsOrderId, entity.getInsSampleId())).stream().map(InsSample::getId).collect(Collectors.toList());
        for (Integer samId : sampleIds) {
            //过滤没有检验项目的样品id
            if (ObjectUtils.isEmpty(insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery()
                    .eq(InsProduct::getInsSampleId, samId)
                    .eq(InsProduct::getState, 1)))) {
                continue;
            }
            //入库次数
            Long inCount = warehouseHistoryMapper.selectCount(Wrappers.<WarehouseHistory>lambdaQuery()
                    .eq(WarehouseHistory::getState, 1)
                    .eq(WarehouseHistory::getInsSampleId, samId));
            //出库次数
            Long outCount = warehouseHistoryMapper.selectCount(Wrappers.<WarehouseHistory>lambdaQuery()
                    .eq(WarehouseHistory::getState, 2)
                    .eq(WarehouseHistory::getInsSampleId, samId));
            if (inCount > 0 && inCount > outCount) {
                continue;
            } else {
                throw new ErrorException("所选的样品库存不足,请检查入库和出库记录!");
            }
        }
        Map<String, Integer> map1 = getLook.selectPowerByMethodAndUserId(null);
        Integer userId = map1.get("userId");
@@ -359,6 +336,54 @@
                .eq(InsProductResult2::getFrequency, insProductResultVo.getFrequency())
                .eq(InsProductResult2::getNum, insProductResultVo.getNum())
                .in(InsProductResult2::getInsProductId, insProductResultVo.getProductIds()));
    }
    //扫码报检
    @Override
    public int scanInsOrderState(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());
        if (!collect.contains(sonLaboratory)) {
            throw new ErrorException("该订单没有" + sonLaboratory + "站点的相关项目,请查看下单详情!");
        }
        //判断该订单是否站点任务有结束试验
        List<InsOrderState> orderStates = insOrderStateMapper.selectList(Wrappers.<InsOrderState>lambdaQuery()
                .eq(InsOrderState::getInsOrderId, insSample.getInsOrderId())
                .eq(InsOrderState::getInsState, 5));
        if (CollectionUtils.isNotEmpty(orderStates)) {
            throw new ErrorException("该订单站点的任务已经结束试验,无法再次进行试验!");
        }
        InsOrderState orderState = insOrderStateMapper.selectOne(Wrappers.<InsOrderState>lambdaQuery()
                .eq(InsOrderState::getInsOrderId, insSample.getInsOrderId())
                .eq(InsOrderState::getLaboratory, sonLaboratory));
        if (ObjectUtils.isNotEmpty(orderState)) {
            //继续试验
            if (orderState.getInsState() == 6) {
                orderState.setInsState(0);
                orderState.setNum(orderState.getNum() + 1);//递增
                insOrderStateMapper.updateById(orderState);
            } else {
                throw new ErrorException("该订单站点的任务已创建,无法再次创建!");
            }
        } else {
            InsOrderState insOrderState = new InsOrderState();
            insOrderState.setInsOrderId(insSample.getInsOrderId());
            insOrderState.setLaboratory(sonLaboratory);
            insOrderState.setInsState(0);
            insOrderState.setNum(1);//初始是第一次
            insOrderStateMapper.insert(insOrderState);
        }
        return 1;
    }
    @Override
    public List<InsOrderUser> getInsOrderUserList(Integer insOrderStateId) {
        return insOrderUserMapper.getInsOrderUserList(insOrderStateId);
    }
@@ -879,18 +904,22 @@
        }
        insUnPassService.saveBatch(insUnPasses);
        /*type=0  å†æ¬¡è¯•验; type=1 ç»§ç»­è¯•验 ; type=2 ç»“束试验*/
        switch (type) {
            case 0:
                /*再次试验:该单子退回到检验状态(排序改成当前的最后),次数递增(保留以前的数据);*/
                //更新原来的检验任务
                // æŸ¥è¯¢æ ¹æ® id å€’序排列的第一条记录
                InsOrderState record = insOrderStateMapper.selectOne(Wrappers.<InsOrderState>lambdaQuery()
                        .eq(InsOrderState::getInsOrderId, orderId)
                        .eq(InsOrderState::getLaboratory, laboratory)
                        .orderByDesc(InsOrderState::getId)
                        .last("LIMIT 1")); // ç¡®ä¿åªå–一条记录
                if (record != null) {
                    // èŽ·å–åˆ°ç¬¬ä¸€æ¡è®°å½•çš„ id åŽï¼Œæ‰§è¡Œæ›´æ–°æ“ä½œ
        // æŸ¥è¯¢æ ¹æ® id å€’序排列的第一条记录
        InsOrderState record = insOrderStateMapper.selectOne(Wrappers.<InsOrderState>lambdaQuery()
                .eq(InsOrderState::getInsOrderId, orderId)
                .eq(InsOrderState::getLaboratory, laboratory)
                .orderByDesc(InsOrderState::getId)
                .last("LIMIT 1")); // ç¡®ä¿åªå–一条记录
        if (record != null) {
            //更新记录
            insOrderUserMapper.update(null, Wrappers.<InsOrderUser>lambdaUpdate()
                    .eq(InsOrderUser::getInsOrderStateId, record.getId())
                    .eq(InsOrderUser::getNum, record.getNum())
                    .set(InsOrderUser::getTell, tell));
            switch (type) {
                case 0:
                    /*再次试验:该单子退回到检验状态(排序改成当前的最后),次数递增(保留以前的数据);*/
                    //更新原来的检验任务
                    insOrderStateMapper.update(null, Wrappers.<InsOrderState>lambdaUpdate()
                            .eq(InsOrderState::getId, record.getId())
                            .set(InsOrderState::getInsTime, now)
@@ -899,80 +928,34 @@
                            .set(InsOrderState::getVerifyUser, userId)
                            .set(InsOrderState::getNum, record.getNum() + 1)//次数加1
                            .set(InsOrderState::getCreateTime, LocalDateTime.now()));
                }
                break;
            case 1:
                //继续试验:则继续将检验任务转接至下一站点;
                insOrderStateMapper.update(null, Wrappers.<InsOrderState>lambdaUpdate()
                        .eq(InsOrderState::getInsOrderId, orderId)
                        .eq(InsOrderState::getLaboratory, laboratory)
                        .set(InsOrderState::getInsTime, now)
                        .set(InsOrderState::getInsState, 6)
                        .set(InsOrderState::getVerifyTell, tell)
                        .set(InsOrderState::getVerifyUser, userId));
                //转接至下一站点,需要先判断是否还有其余试验室,如果有其余试验室需要将订单下发
                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::getState, 1));
                List<Integer> list = new ArrayList<>();
                list.add(4);
                list.add(5);
                list.add(6);
                List<InsOrderState> insOrderStates = insOrderStateMapper.selectList(Wrappers.<InsOrderState>lambdaQuery()
                        .eq(InsOrderState::getInsOrderId, orderId)
                        .in(InsOrderState::getInsState, list));
                List<String> strings = insOrderStates.stream().map(InsOrderState::getLaboratory).distinct().collect(Collectors.toList());
                //除去当前复核的试验室和已经复核的试验室
                List<String> collect = insProducts.stream()
                        .map(InsProduct::getSonLaboratory)
                        .distinct()
                        .filter(s -> !s.equals(laboratory))
                        .filter(s -> !strings.contains(s))
                        .collect(Collectors.toList());
                if (collect.size() > 0) {
                    //要判断剩余试验室中哪个最空闲就安排给哪个
                    Map<String, Long> dataCounts = new HashMap<>();
                    for (String sonLaboratory : collect) {
                        Long count = insOrderStateMapper.selectCount(Wrappers.<InsOrderState>lambdaQuery()
                                .eq(InsOrderState::getLaboratory, sonLaboratory)
                                .ne(InsOrderState::getInsState, 4)
                                .ne(InsOrderState::getInsState, 5)
                                .ne(InsOrderState::getInsState, 6));
                        dataCounts.put(sonLaboratory, count);
                    break;
                case 1:
                    //继续试验:则继续将检验任务转接至下一站点;
                    insOrderStateMapper.update(null, Wrappers.<InsOrderState>lambdaUpdate()
                            .eq(InsOrderState::getInsOrderId, orderId)
                            .eq(InsOrderState::getLaboratory, laboratory)
                            .set(InsOrderState::getInsTime, now)
                            .set(InsOrderState::getInsState, 6)
                            .set(InsOrderState::getVerifyTell, tell)
                            .set(InsOrderState::getVerifyUser, userId));
                    break;
                case 2:
                    //结束试验:此委托单停止试验,直接生成最终报告和费用统计。
                    insOrderStateMapper.update(null, Wrappers.<InsOrderState>lambdaUpdate()
                            .eq(InsOrderState::getInsOrderId, orderId)
                            .eq(InsOrderState::getLaboratory, laboratory)
                            .set(InsOrderState::getInsTime, now)
                            .set(InsOrderState::getInsState, 5)
                            .set(InsOrderState::getVerifyTell, tell)
                            .set(InsOrderState::getVerifyUser, userId));
                    //如果订单类型是原理样机,则该订单直接闭环
                    InsOrder insOrder = insOrderMapper.selectById(orderId);
                    if (insOrder.getFormType().equals("原理样机")) {
                        insOrder.setState(4);
                        insOrderMapper.updateById(insOrder);
                    }
                    // æŸ¥æ‰¾æ•°æ®é‡æœ€å°‘的元素
                    String minElement = null;
                    Long minCount = Long.MAX_VALUE;
                    for (Map.Entry<String, Long> entry : dataCounts.entrySet()) {
                        if (entry.getValue() < minCount) {
                            minCount = entry.getValue();
                            minElement = entry.getKey();
                        }
                    }
                    InsOrderState insOrderState = new InsOrderState();
                    insOrderState.setInsOrderId(orderId);
                    insOrderState.setLaboratory(minElement);
                    insOrderState.setInsState(0);
                    insOrderState.setNum(1);//初始是第一次
                    insOrderStateMapper.insert(insOrderState);
                } else {
                    //如果继续试验没有其他站点的检验任务那就结束试验
                    verifyPlan(orderId, laboratory, 2, tell);
                }
                break;
            case 2:
                //结束试验:此委托单停止试验,直接生成最终报告和费用统计。
                insOrderStateMapper.update(null, Wrappers.<InsOrderState>lambdaUpdate()
                        .eq(InsOrderState::getInsOrderId, orderId)
                        .eq(InsOrderState::getLaboratory, laboratory)
                        .set(InsOrderState::getInsTime, now)
                        .set(InsOrderState::getInsState, 5)
                        .set(InsOrderState::getVerifyTell, tell)
                        .set(InsOrderState::getVerifyUser, userId));
                break;
                    break;
            }
        }
        /*复核完成之后生成他自己的站点报告(仅限辐射试验检测(近场,远场)和电路试验)*/
        /*switch (laboratory) {
@@ -992,7 +975,7 @@
    }
    //生成电路试验的excel文件
    private MultipartFile generateExcelFile(Integer orderId, String laboratory) throws IOException{
    private MultipartFile generateExcelFile(Integer orderId, String laboratory) throws IOException {
        // åˆ›å»ºä¸€ä¸ªWorkbook对象
        Workbook workbook = new XSSFWorkbook();
@@ -1048,7 +1031,7 @@
    }
    @Override
    public int submitPlan(Integer orderId, String laboratory, Integer verifyUser, String entrustCode) {
    public int submitPlan(Integer orderId, String laboratory, Integer verifyUser, String entrustCode, String note, String term) {
        List<InsSample> insSamples = insSampleMapper.selectList(Wrappers.<InsSample>lambdaQuery()
                .eq(InsSample::getInsOrderId, orderId).select(InsSample::getId));
        InsOrderState orderState = insOrderStateMapper.selectOne(Wrappers.<InsOrderState>lambdaQuery()
@@ -1056,6 +1039,15 @@
                .eq(InsOrderState::getLaboratory, laboratory)
                .orderByDesc(InsOrderState::getId)
                .last("LIMIT 1"));// ç¡®ä¿åªå–一条记录
        /*记录检验任务每次的备注信息*/
        InsOrderUser insOrderUser = new InsOrderUser();
        insOrderUser.setInsOrderStateId(orderState.getId());
        insOrderUser.setSubmitUser(getLook.selectPowerByMethodAndUserId(null).get("userId"));
        insOrderUser.setSubmitTime(LocalDateTime.now());
        insOrderUser.setNum(orderState.getNum());
        insOrderUser.setNote(ObjectUtils.isNotEmpty(note) ? note : null);
        insOrderUser.setTerm(ObjectUtils.isNotEmpty(term) ? term : 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)
inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderUserServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,20 @@
package com.yuanchu.mom.service.impl;
import com.yuanchu.mom.pojo.InsOrderUser;
import com.yuanchu.mom.mapper.InsOrderUserMapper;
import com.yuanchu.mom.service.InsOrderUserService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
/**
 * <p>
 * æ¯æ¬¡æ£€éªŒä»»åŠ¡é‡å¤è®°å½• æœåŠ¡å®žçŽ°ç±»
 * </p>
 *
 * @author æ±Ÿè‹éµ·é›ç½‘络科技有限公司
 * @since 2024-09-14 10:08:31
 */
@Service
public class InsOrderUserServiceImpl extends ServiceImpl<InsOrderUserMapper, InsOrderUser> implements InsOrderUserService {
}
inspect-server/src/main/resources/mapper/InsOrderStateMapper.xml
@@ -4,33 +4,34 @@
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yuanchu.mom.mapper.InsOrderStateMapper">
    <resultMap id="BaseResultMap" type="com.yuanchu.mom.pojo.InsOrderState">
        <id property="id" column="id" jdbcType="INTEGER"/>
        <id property="id" column="idd" jdbcType="INTEGER"/>
        <result property="insOrderId" column="ins_order_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"/>
        <result property="version" column="version" jdbcType="INTEGER"/>
        <result property="createUser" column="create_user" jdbcType="INTEGER"/>
        <result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
        <result property="updateUser" column="update_user" jdbcType="INTEGER"/>
        <result property="updateTime" column="update_time" jdbcType="TIMESTAMP"/>
        <result property="sortTime" column="sort_time" jdbcType="TIMESTAMP"/>
        <collection property="insOrderUserList" resultMap="insOrderUsers"/>
    </resultMap>
    <sql id="Base_Column_List">
        id,ins_order_id,laboratory,
        ins_state,create_user,create_time,
        update_user,update_time,sort,sort_time
    </sql>
    <select id="getInsOrderStateCount" resultType="com.yuanchu.mom.pojo.InsOrderState">
        select distinct ios.*,userName
    <resultMap id="insOrderUsers" type="com.yuanchu.mom.pojo.InsOrderUser">
        <id column="id" property="id"/>
        <result column="submit_user" property="submitUser"/>
        <result column="submitUserName" property="submitUserName"/>
        <result column="submit_time" property="submitTime"/>
        <result column="num" property="num"/>
        <result column="note" property="note"/>
        <result column="term" property="term"/>
        <result column="tell" property="tell"/>
    </resultMap>
    <select id="getInsOrderStateCount" resultMap="BaseResultMap">
        select  ios.id idd,laboratory,version, iou.*,name submitUserName
        from ins_order_state ios
                 LEFT JOIN (
            SELECT ins_sample_id,GROUP_CONCAT( DISTINCT uu.name SEPARATOR ',') AS userName
            FROM ins_sample_user u LEFT JOIN user uu ON u.user_id = uu.id
            WHERE  u.state=0
            GROUP BY ins_sample_id
            ORDER BY ins_sample_id
        ) isu ON isu.ins_sample_id = ios.ins_order_id
                 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}
    </select>
</mapper>
inspect-server/src/main/resources/mapper/InsOrderUserMapper.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,21 @@
<?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.InsOrderUserMapper">
    <!-- é€šç”¨æŸ¥è¯¢æ˜ å°„结果 -->
    <resultMap id="BaseResultMap" type="com.yuanchu.mom.pojo.InsOrderUser">
        <id column="id" property="id"/>
        <result column="ins_order_state_id" property="insOrderStateId"/>
        <result column="submit_user" property="submitUser"/>
        <result column="submit_time" property="submitTime"/>
        <result column="num" property="num"/>
        <result column="note" property="note"/>
        <result column="term" property="term"/>
        <result column="tell" property="tell"/>
    </resultMap>
    <select id="getInsOrderUserList" resultType="com.yuanchu.mom.pojo.InsOrderUser">
        select iou.*, name submitUserName
        from ins_order_user iou
                 left join user on submit_user = user.id
    </select>
</mapper>