zouyu
2025-03-11 0800df1e422c8f7e5fee825410bfed8344ee3629
检验下单:数据查看
已修改3个文件
已添加1个文件
142 ■■■■ 文件已修改
inspect-server/src/main/java/com/ruoyi/inspect/comparater/CustomComparator.java 100 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/ruoyi/inspect/controller/InsOrderController.java 22 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/ruoyi/inspect/service/InsOrderService.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsOrderServiceImpl.java 17 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/ruoyi/inspect/comparater/CustomComparator.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,100 @@
package com.ruoyi.inspect.comparater;
import com.ruoyi.common.core.domain.entity.SysDictData;
import com.ruoyi.inspect.dto.SampleProductDto2;
import com.ruoyi.system.service.ISysDictDataService;
import com.ruoyi.system.service.ISysDictTypeService;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Component;
import java.text.Collator;
import java.util.*;
import java.util.regex.Pattern;
import java.util.stream.Collectors;
/**
     * æ•°æ®æŸ¥çœ‹æŽ¥å£ï¼Œè‡ªå®šä¹‰æŽ’序规则
     */
@Component
public class CustomComparator implements Comparator<SampleProductDto2> {
    public CustomComparator(ISysDictTypeService dictTypeService) {
        this.dictTypeService = dictTypeService;
    }
    private final ISysDictTypeService dictTypeService;
    @Override
    public int compare(SampleProductDto2 o1, SampleProductDto2 o2) {
        //根据试验室排序
        if(StringUtils.isNotBlank(o1.getSonLaboratory())&& StringUtils.isNotBlank(o2.getSonLaboratory())){
            if(!Objects.equals(o1.getSonLaboratory(),o2.getSonLaboratory())){
                Collator instance = Collator.getInstance(Locale.CHINA);
                return instance.compare(o1.getSonLaboratory(),o2.getSonLaboratory());
            }
        }
        //查询全色谱,过滤色标并排序
        List<String> colorList = dictTypeService.selectDictDataByType("fiber_color_type").stream()
                .sorted(Comparator.comparing(SysDictData::getDictSort))
                .map(SysDictData::getDictLabel)
                .collect(Collectors.toList());
        //先按样品编号升序
        if(!Objects.equals(o1.getSampleCode(),o2.getSampleCode())){
            if(containsOnlyDigits(o1.getSampleCode()) && containsOnlyDigits(o2.getSampleCode())){
//                Integer o1Num = Integer.parseInt(o1.getSampleCode());
//                Integer o2Num = Integer.parseInt(o2.getSampleCode());
                Long o1Num = Long.parseLong(o1.getSampleCode());
                Long o2Num = Long.parseLong(o2.getSampleCode());
                return o1Num.compareTo(o2Num);
            }
            return o1.getSampleCode().compareTo(o2.getSampleCode());
        }
        //根据套管色标以及光纤色标排序
        if(StringUtils.isNotBlank(o1.getBushColor())&& StringUtils.isNotBlank(o2.getBushColor())){
            //套管色标排序
            if(!Objects.equals(o1.getBushColor(),o2.getBushColor())){
                Integer o1Index = colorList.indexOf(o1.getBushColor());
                Integer o2Index = colorList.indexOf(o2.getBushColor());
                return o1Index.compareTo(o2Index);
            }
            //光纤带排序
            if(StringUtils.isNotBlank(o1.getCode())&& StringUtils.isNotBlank(o2.getCode())){
                if(!Objects.equals(o1.getCode(),o2.getCode())){
                    return o1.getCode().compareTo(o2.getCode());
                }
            }
            //光纤色标排序
            if(StringUtils.isNotBlank(o1.getColor())&& StringUtils.isNotBlank(o2.getColor())){
                if(!Objects.equals(o1.getColor(),o2.getColor())){
                    Integer o1Index = colorList.indexOf(o1.getColor());
                    Integer o2Index = colorList.indexOf(o2.getColor());
                    return o1Index.compareTo(o2Index);
                }
            }
        }
        //根据检验项排序
        if(!Objects.equals(o1.getInspectionItem(),o2.getInspectionItem())){
            List<String> specialItems = Arrays.asList("耐环境应力开裂","热收缩率");
            if(specialItems.contains(o1.getInspectionItem()) && specialItems.contains(o2.getInspectionItem())){
                return Integer.MAX_VALUE;
            }
            Collator instance = Collator.getInstance(Locale.CHINA);
            return instance.compare(o1.getInspectionItem(),o2.getInspectionItem());
        }
        //检验子项排序
        if(StringUtils.isNotBlank(o1.getInspectionItemSubclass())&& StringUtils.isNotBlank(o2.getInspectionItemSubclass())){
            if(!Objects.equals(o1.getInspectionItemSubclass(),o2.getInspectionItemSubclass())){
                Collator instance = Collator.getInstance(Locale.CHINA);
                return instance.compare(o1.getInspectionItemSubclass(),o2.getInspectionItemSubclass());
            }
        }
        return 0;
    }
    public static boolean containsOnlyDigits(String str) {
        String regex = "\\d+"; // åŒ¹é…ä¸€ä¸ªæˆ–多个数字
        return Pattern.matches(regex, str);
    }
}
inspect-server/src/main/java/com/ruoyi/inspect/controller/InsOrderController.java
@@ -3,7 +3,9 @@
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.core.domain.Result;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.common.utils.JackSonUtil;
import com.ruoyi.inspect.dto.*;
import com.ruoyi.inspect.pojo.InsOrder;
@@ -46,8 +48,6 @@
        return Result.success(insOrderService.selectInsOrderParameter(page, sampleOrderDto));
    }
    //用于检验下单区别查看所有订单和只查看同一个委托单位的订单
    @ApiOperation(value = "判断当前客户紧急额度是否用完")
    @GetMapping("/hasSendUrgentOrder")
@@ -65,12 +65,14 @@
    @ApiOperation(value = "分配按钮")
    @PostMapping("/upInsOrder")
    @Log(title = "检验下单", businessType = BusinessType.UPDATE)
    public Result<?> upInsOrder(@RequestBody UpInsOrderDTO upInsOrderDTO) {
        return Result.success(insOrderService.upInsOrder(upInsOrderDTO));
    }
    @ApiOperation(value = "下单按钮")
    @PostMapping("/addInsOrder")
    @Log(title = "检验下单", businessType = BusinessType.INSERT)
    public Result<?> addInsOrder(String str) {
        Map<String, Object> map = JSON.parseObject(str, Map.class);
        JSONArray jsonArray = JSON.parseArray(map.get("list")+"");
@@ -90,6 +92,7 @@
    @ApiOperation(value = "查询检验下单内容详情")
    @GetMapping("/getInsOrder")
    @Log(title = "检验下单", businessType = BusinessType.OTHER)
    public Result<?> getInsOrder(Integer orderId) {
        return Result.success(insOrderService.getInsOrder(orderId));
    }
@@ -100,18 +103,21 @@
            @ApiImplicitParam(name = "state", value = "审核结果 1:通过 2:不通过", dataTypeClass = Integer.class)
    })
    @PostMapping("/upInsOrderOfState")
    @Log(title = "检验下单", businessType = BusinessType.UPDATE)
    public Result<?> upInsOrderOfState(@RequestBody InsOrder insOrder) {
        return Result.success(insOrderService.upInsOrderOfState(insOrder));
    }
    @ApiOperation(value = "保存检验模板按钮")
    @PostMapping("/addInsOrderTemplate")
    @Log(title = "检验下单", businessType = BusinessType.INSERT)
    public Result<?> addInsOrderTemplate(@RequestBody InsOrderTemplate insOrderTemplate) {
        return Result.success(insOrderTemplateService.addInsOrderTemplate(insOrderTemplate));
    }
    @ApiOperation(value = "删除检验模板按钮")
    @PostMapping("/delInsOrderTemplate")
    @Log(title = "检验下单", businessType = BusinessType.DELETE)
    public Result<?> delInsOrderTemplate(Integer id) {
        return Result.success(insOrderTemplateService.delInsOrderTemplate(id));
    }
@@ -130,8 +136,7 @@
    @ApiOperation(value = "通过检验单查询检验数据(数据查看)")
    @GetMapping("/selectSampleAndProductByOrderId")
    public Result<?> selectSampleAndProductByOrderId(@RequestBody Map<String, Object> data) throws Exception {
        SampleProductDto2 sampleProductDto = JackSonUtil.unmarshal(JackSonUtil.marshal(data.get("entity")), SampleProductDto2.class);
    public Result<?> selectSampleAndProductByOrderId(SampleProductDto2 sampleProductDto) {
        return Result.success(insOrderService.selectSampleAndProductByOrderId(sampleProductDto));
    }
    //数据查看下的查看详情(单根垂直燃烧和松套管
@@ -142,6 +147,7 @@
    @ApiOperation(value = "导出已检委托单")
    @PostMapping("/exportChecked")
    @Log(title = "检验下单", businessType = BusinessType.EXPORT)
    public void exportChecked(@RequestBody Map<String, Object> data, HttpServletResponse response) {
        insOrderService.exportChecked(data,response);
    }
@@ -155,6 +161,7 @@
    @ApiOperation(value = "撤销按钮")
    @PutMapping("/updateStatus")
    @Log(title = "检验下单", businessType = BusinessType.UPDATE)
    public Result<?> updateStatus(Integer id) {
        insOrderService.updateStatus(id);
        return Result.success();
@@ -209,6 +216,7 @@
     * @param data
     * @return
     */
    @Log(title = "检验下单", businessType = BusinessType.UPDATE)
    @PostMapping("/revoke")
    public Result<?> revoke(@RequestBody Map<String, Object> data)   {
        insProductService.revoke(data);
@@ -253,13 +261,12 @@
        return Result.success(insProductService.revokeReviewProduct(orderId,sampleId));
    }
    /**
     * æ’¤é”€å®¡æ ¸é€šè¿‡
     * @param orderId
     * @return
     */
    @Log(title = "检验下单", businessType = BusinessType.UPDATE)
    @GetMapping("/revocationPassed")
    public Result<?> revocationPassed(Integer orderId){
        insProductService.revocationPassed(orderId);
@@ -271,6 +278,7 @@
     * @param orderId
     * @return
     */
    @Log(title = "检验下单", businessType = BusinessType.UPDATE)
    @GetMapping("/revocationCancel")
    public Result<?> revocationCancel(Integer orderId){
        insProductService.revocationCancel(orderId);
@@ -280,6 +288,7 @@
    @ApiOperation(value = "待检的撤销")
    @PutMapping("/updateInspected")
    @Log(title = "检验下单", businessType = BusinessType.UPDATE)
    public Result<?> updateInspected(Integer orderId,String ids){
        insProductService.updateInspected(orderId,ids);
        return Result.success();
@@ -287,6 +296,7 @@
    @ApiOperation(value = "撤销审核按钮")
    @PostMapping("/checkUpdate")
    @Log(title = "检验下单", businessType = BusinessType.UPDATE)
    public Result<?> checkUpdate(Integer orderId,Integer state){
        insProductService.checkUpdate(orderId,state);
        return Result.success();
inspect-server/src/main/java/com/ruoyi/inspect/service/InsOrderService.java
@@ -33,7 +33,8 @@
    Map<String, Object> getInsOrderAndSample(Integer id, String laboratory);
    Map<String, Object> selectSampleAndProductByOrderId(SampleProductDto2 sampleProductDto);
    List<SampleProductDto2> selectSampleAndProductByOrderId(SampleProductDto2 sampleProductDto);
    List<Map<String, Object>> viewDetails(Map<String,Object> map);
    void exportChecked(Map<String,Object> data, HttpServletResponse response);
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.*;
@@ -933,20 +934,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"),
@@ -1020,7 +1017,7 @@
                }
                collect2.addAll(list);
                SampleProductDto2S = collect2;
//                SampleProductDto2S.sort(new CustomComparator(enumService));
                SampleProductDto2S.sort(new CustomComparator(dictTypeService));
            }
        }
        for (SampleProductDto2 record : SampleProductDto2S) {
@@ -1037,9 +1034,7 @@
                record.setLastValue(String.join(",", values));
            }
        }
        map.put("head", headList);
        map.put("body", SampleProductDto2S);
        return map;
        return SampleProductDto2S;
    }
    @Override
@@ -1942,10 +1937,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) {