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) {