lxp
2025-03-15 5c92f5ec07c74272c7bfd658ef9c9f5ceb02cfb1
inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsOrderServiceImpl.java
@@ -33,6 +33,7 @@
import com.ruoyi.common.utils.QueryWrappers;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.framework.exception.ErrorException;
import com.ruoyi.inspect.comparater.CustomComparator;
import com.ruoyi.inspect.dto.*;
import com.ruoyi.inspect.excel.FiberRibboGeometricalParameterExcelData;
import com.ruoyi.inspect.mapper.*;
@@ -49,6 +50,7 @@
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.core.Authentication;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Isolation;
import org.springframework.transaction.annotation.Transactional;
@@ -91,6 +93,10 @@
    private NumberGenerator<InsOrder> numberGenerator;
    private NumberGenerator<InsSample> sampleCodeGenerator;
    private NumberGenerator<InsFibers> fibersCodeGenerator;
    private InsSampleUserMapper insSampleUserMapper;
    private InsOrderStateMapper insOrderStateMapper;
@@ -114,7 +120,7 @@
    //获取检验下单数据
    @Override
    public Map<String, Object> selectInsOrderParameter(Page<InsOrder> page, SampleOrderDto sampleOrderDto) {
    public IPage<SampleOrderDto> selectInsOrderParameter(Page<InsOrder> page, SampleOrderDto sampleOrderDto) {
        page.setOptimizeCountSql(false);
        List<String> startAndEndTime = sampleOrderDto.getStartAndEndTime();
        String startTime = "";
@@ -123,25 +129,23 @@
            startTime = startAndEndTime.get(0) + " 00:00:00";
            endTime = startAndEndTime.get(1) + " 23:59:59";
        }
        Map<String, Object> map = new HashMap<>();
////        map.put("head", PrintChina.printChina(SampleOrderDto.class));
//        //判断全部,个人,组织的权限
//        Map<String, Integer> map1 = getLook.selectPowerByMethodAndUserId("selectInsOrderParameter");
//        User user = userMapper.selectById(map1.get("userId"));//当前登录的人
//        Integer roleId = user.getRoleId();
        User user = userMapper.selectById(SecurityUtils.getUserId());;//当前登录的人
//        //获取当前人所属实验室id
//        String departLimsId = user.getDepartLimsId();
        String laboratory = null;
//        if (ObjectUtils.isNotEmpty(departLimsId) && !departLimsId.isEmpty()) {
//            String[] split = departLimsId.split(",");
//            //查询对应架构名称(通信实验室,电力实验室,检测办)
//            String departLims = baseMapper.seldepLimsId(Integer.parseInt(split[split.length - 1]));
//            if (departLims.contains("实验室")) {
//                laboratory = departLims;
//            }
//        }
        String departLimsId = user.getDepartLimsId();
        String laboratory = "";
        if (ObjectUtils.isNotEmpty(departLimsId) && !departLimsId.isEmpty()) {
            String[] split = departLimsId.split(",");
            //查询对应架构名称(通信实验室,电力实验室,检测办)
            String departLims = baseMapper.seldepLimsId(Integer.parseInt(split[split.length - 1]));
            if (departLims.contains("实验室")) {
                laboratory = departLims;
            }
        }
//        //判断是否是全部权限
//        SecurityUtils.hasPermi("");
//        Power power = powerMapper.selectOne(Wrappers.<Power>lambdaQuery().eq(Power::getRoleId, roleId).eq(Power::getMenuMethod, "selectAllInsOrderParameter"));
//        if (ObjectUtils.isEmpty(power)) {
//            if (map1.get("look") == 1) {
@@ -174,8 +178,7 @@
                i.setSampleCode(split[0]);
            }
        });
        map.put("body", sampleOrderDtoIPage);
        return map;
        return sampleOrderDtoIPage;
    }
    @Override
@@ -256,11 +259,10 @@
        String outEntrustCodePrefix = getOutEntrustCodePrefix(customCode, laboratoryCode);
        String outEntrustCode = numberGenerator.generateNumberWithPrefix(5, outEntrustCodePrefix, InsOrder::getOutEntrustCode);
        insOrder.setOutEntrustCode(outEntrustCode);
//        String giveCode = this.giveCode.giveCode("JCZX-" + customCode + "-", "ins_sample", "", "yyMMdd");
        String giveCode = "";
//        insOrder.setOutEntrustCode(giveCode.giveCode3("ZT/" + code2 + "-" + code + "-", insOrder.getCompanyId(), insOrder.getLaboratory(), "ins_order", "", "yyMM"));
//        String giveCode = this.giveCode.giveCode("JCZX-" + code + "-", "ins_sample", "", "yyMMdd");
        insOrderMapper.insert(insOrder);
        //生成样品编号
        String currentDay = LocalDate.now().format(DateTimeFormatter.ofPattern("yyMMdd"));
        String generatedSampleCode = sampleCodeGenerator.generateNumberWithPrefix(3, currentDay, InsSample::getSampleCode);
        AtomicInteger count = new AtomicInteger();
        List<FiberDto> fiberList = new ArrayList<>();
        list.forEach(a -> {
@@ -268,7 +270,7 @@
            a.setId(null);
            a.setInsOrderId(insOrder.getId());
            if (StrUtil.isEmpty(a.getSampleCode())) {
                a.setSampleCode(giveCode.split("-")[2] + "-" + count.get());
                a.setSampleCode(generatedSampleCode + "-" + count.get());
            } else {
                //去除手输的样品编号中首尾可能包含的空格
                a.setSampleCode(a.getSampleCode().trim());
@@ -295,8 +297,7 @@
                            for (FibersDto fibersDto : bushingDto.getFibers()) {
                                fibersDto.setInsBushingId(bushingDto.getId());
                                if (StringUtils.isBlank(fibersDto.getCode())) {
//                                    fibersDto.setCode(this.giveCode.giveCode("", "ins_fibers", "", "yyMMdd"));
                                    fibersDto.setCode("");
                                    fibersDto.setCode(fibersCodeGenerator.generateNumberWithPrefix(3, currentDay, InsFibers::getCode));
                                }
                                insFibersMapper.insert(fibersDto);
                                for (FiberDto fiberDto : fibersDto.getFiber()) {
@@ -335,16 +336,13 @@
                                    insProductMapper.insert(product);
                                }
                            }
//                            else {
//                                throw new ErrorException("样品的光纤配置信息里面没有配置光纤带信息也没有光纤信息,请重新配置保存再提交下单!!!");
//                            }
                        }
                    }
                }
            }
            if (ObjectUtil.isNotEmpty(a.getInsulating())) {
                List<InsProduct> ip2 = new ArrayList<>();
                for (Integer i = 0; i < a.getInsulating().getNum(); i++) {
                for (int i = 0; i < a.getInsulating().getNum(); i++) {
                    ip2.addAll(a.getInsulating().getInsProduct());
                }
                for (InsProduct product : ip2) {
@@ -365,8 +363,7 @@
                        b.setInsOrderId(insOrder.getId());
                        b.setParentId(a.getId());
                        if (StrUtil.isEmpty(b.getSampleCode())) {
//                            b.setSampleCode(this.giveCode.giveCode("", "ins_sample", "", "yyMMdd"));
                            b.setSampleCode("");
                            b.setSampleCode(sampleCodeGenerator.generateNumberWithPrefix(3, currentDay, InsSample::getSampleCode));
                        }
                        insSampleMapper.insert(b);
                        if (ObjectUtil.isNotEmpty(b.getInsProduct())) {
@@ -389,7 +386,7 @@
                    } else {
                        for (FibersDto fibersDto : bushingDto.getFibers()) {
                            fibersDto.setInsBushingId(bushingDto.getId());
                            fibersDto.setCode("");
                            fibersDto.setCode(fibersCodeGenerator.generateNumberWithPrefix(3, currentDay, InsFibers::getCode));
                            insFibersMapper.insert(fibersDto);
                            for (FiberDto fiberDto : fibersDto.getFiber()) {
                                fiberDto.setInsFibersId(fibersDto.getId());
@@ -509,16 +506,6 @@
                        }
                    }
                }
                // 没有进行光纤配置的熔接配对,直接添加样品
//                try {
//                    for (InsProduct insProduct : insProducts) {
//                        insProduct.setId(null);
//                        insProduct.setInsSampleId(insSample.getId());
//                        insProductMapper.insert(insProduct);
//                    }
//                } catch (Exception e) {
//                }
            }
        }
        return insOrder.getId();
@@ -935,20 +922,16 @@
    }
    @Override
    public Map<String, Object> selectSampleAndProductByOrderId(SampleProductDto2 sampleProductDto) {
        Map<String, Object> map = new HashMap<>();
        List<Map<String, Object>> headList = new ArrayList<>();
    public List<SampleProductDto2> selectSampleAndProductByOrderId(SampleProductDto2 sampleProductDto) {
        List<SampleProductDto2> SampleProductDto2S = null;
        if (!Objects.isNull(sampleProductDto.getId())) {
            String laboratory = insOrderMapper.selectById(sampleProductDto.getId()).getLaboratory();
            if (laboratory.equals("电力产品实验室")) {
                //电力试验室的数据查看,删除光纤配置相关字段
//                headList = PrintChina.printChina(SampleProductDTODL.class);
                SampleProductDto2S = insOrderMapper.selectSampleAndProductByOrderId(
                        QueryWrappers.queryWrappers(sampleProductDto).orderByAsc("ins_product_id"),
                        sampleProductDto.getId());
            } else {
//                headList = PrintChina.printChina(SampleProductDto2.class);
                SampleProductDto2S = insOrderMapper.selectSampleAndProductByOrderId(
                        QueryWrappers.queryWrappers(sampleProductDto)
                                .orderByAsc("son_laboratory"),
@@ -1022,7 +1005,7 @@
                }
                collect2.addAll(list);
                SampleProductDto2S = collect2;
//                SampleProductDto2S.sort(new CustomComparator(enumService));
                SampleProductDto2S.sort(new CustomComparator(dictTypeService));
            }
        }
        for (SampleProductDto2 record : SampleProductDto2S) {
@@ -1039,15 +1022,14 @@
                record.setLastValue(String.join(",", values));
            }
        }
        map.put("head", headList);
        map.put("body", SampleProductDto2S);
        return map;
        return SampleProductDto2S;
    }
    @Override
    public List<Map<String, Object>> viewDetails(Map<String, Object> map) {
        List<Map<String, Object>> list = new ArrayList<>();
        String inspectionItem = map.get("inspectionItem").toString(); // 检验项
        String inspectionItemSubclass = map.get("inspectionItemSubclass").toString(); // 检验子项
        if (inspectionItem.equals("单根垂直燃烧")) {
            ArrayList<Integer> numbers = new ArrayList<>();
            InsProduct insProduct = insProductMapper.selectById(Integer.parseInt(map.get("insProductId").toString()));
@@ -1163,10 +1145,9 @@
        } else {
            // 松套管 过滤出检验项名称一致的数据
            List<InsProduct> productList = insProductMapper.selectList(new LambdaQueryWrapper<InsProduct>()
                            .eq(InsProduct::getInsSampleId, Integer.parseInt(map.get("insSampleId").toString())))
                    .stream()
                    .filter(item -> item.getInspectionItem().equals(inspectionItem))
                    .collect(Collectors.toList());
                    .eq(InsProduct::getInspectionItem, inspectionItem)
                    .eq(StringUtils.isNotEmpty(inspectionItemSubclass),InsProduct::getInspectionItemSubclass, inspectionItemSubclass)
                    .eq(InsProduct::getInsSampleId, Integer.parseInt(map.get("insSampleId").toString())));
            for (InsProduct product : productList) {
                HashMap<String, Object> map2 = new HashMap<>();
                map2.put("entrustCode", map.get("entrustCode")); // 委托编号
@@ -1179,12 +1160,6 @@
                    color = insBushingMapper.selectById(product.getInsBushId()).getColor(); // 套管
                }
                map2.put("color", color); // 套管颜色
//                InsProductResult result = insProductResultMapper.selectOne(new LambdaQueryWrapper<InsProductResult>()
//                        .eq(InsProductResult::getInsProductId, product.getId()));
//                if(!Objects.isNull(result)) {
//                    List<Map> maps = JSONArray.parseArray(result.getInsValue(), Map.class);
//                    map2.put("insValue",maps.get(0).get("v").toString()); // 检验结果
//                }
                list.add(map2);
            }
        }
@@ -1200,8 +1175,7 @@
    @Override
    public void exportChecked(Map<String, Object> data, HttpServletResponse response) {
//        Integer userId = getLook.selectPowerByMethodAndUserId(null).get("userId");
        Integer userId = Integer.valueOf(String.valueOf(SecurityUtils.getLoginUser().getUserId()));
        User user = userMapper.selectById(userId);
        User user = userMapper.selectById(SecurityUtils.getLoginUser().getUserId());
        List<String> names = null;
        String startTime = "";
        String endTime = "";
@@ -1710,7 +1684,7 @@
        }
        temperatureCyclingList = temperatureCyclingList.stream().distinct().collect(Collectors.toList());
        //查询全色谱,过滤色标并排序
        List<String> colorList = dictTypeService.selectDictDataByType("color_type").stream()
        List<String> colorList = dictTypeService.selectDictDataByType("fiber_color_type").stream()
                .sorted(Comparator.comparing(SysDictData::getDictSort))
                .map(SysDictData::getDictLabel)
                .collect(Collectors.toList());
@@ -1884,16 +1858,12 @@
    @Override
    public Map<String, Object> costStatistics(IPage<CostStatisticsDto> page, CostStatisticsDto costStatisticsDto) {
    public IPage<CostStatisticsDto> costStatistics(IPage<CostStatisticsDto> page, CostStatisticsDto costStatisticsDto) {
        String dates = costStatisticsDto.getDates();
        String[] split = dates.replaceAll("\\[", "").replaceAll("]", "").replaceAll("\"", "").split(",");
        costStatisticsDto.setDates(null);
        Map<String, Object> map = new HashMap<>();
//        map.put("head", PrintChina.printChina(CostStatisticsDto.class));
        Map<String, Integer> map1 = new HashMap<>();
        if (map1.get("look") == 1) costStatisticsDto.setCreateUser(map1.get("userId"));
        // 获取当前人所在实验室
        Integer userId = 1;
        Integer userId = Integer.parseInt(SecurityUtils.getLoginUser().getUser().getUserId().toString());
        String departLimsId = userMapper.selectById(userId).getDepartLimsId();
        String laboratory = "";
        if (StringUtils.isNotBlank(departLimsId)) {
@@ -1920,8 +1890,7 @@
            return dto;
        }).collect(Collectors.toList());
        dtoIPage.setRecords(collect);
        map.put("body", dtoIPage);
        return map;
        return dtoIPage;
    }
    @Override
@@ -1945,10 +1914,6 @@
        LocalDate today = LocalDate.parse(split[1]);
        LocalTime end = LocalTime.of(23, 59, 59);
        List<CostStatisticsDto> costStatisticsDtos = insOrderMapper.selectCostStatistics2(QueryWrappers.queryWrappers(costStatisticsDto), split[0], today.atTime(end).toString(), laboratory);
//        double totalPrice = costStatisticsDtos.stream()
//                .filter(dto -> dto.getPrice() != null) // 过滤掉价格为 null 的对象
//                .mapToDouble(value -> value.getPrice().doubleValue() * value.getNum())
//                .sum();
        BigDecimal total = BigDecimal.ZERO;
        for (CostStatisticsDto dto : costStatisticsDtos) {
            if (Objects.isNull(dto.getPrice()) || dto.getPrice().compareTo(BigDecimal.ZERO) == 0) {