From 0800df1e422c8f7e5fee825410bfed8344ee3629 Mon Sep 17 00:00:00 2001 From: zouyu <2723363702@qq.com> Date: 星期二, 11 三月 2025 09:40:17 +0800 Subject: [PATCH] 检验下单:数据查看 --- inspect-server/src/main/java/com/ruoyi/inspect/service/InsOrderService.java | 3 inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsOrderServiceImpl.java | 17 +---- inspect-server/src/main/java/com/ruoyi/inspect/comparater/CustomComparator.java | 100 +++++++++++++++++++++++++++++++++ inspect-server/src/main/java/com/ruoyi/inspect/controller/InsOrderController.java | 22 +++++-- 4 files changed, 122 insertions(+), 20 deletions(-) diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/comparater/CustomComparator.java b/inspect-server/src/main/java/com/ruoyi/inspect/comparater/CustomComparator.java new file mode 100644 index 0000000..f4dba96 --- /dev/null +++ b/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); + } + +} \ No newline at end of file diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/controller/InsOrderController.java b/inspect-server/src/main/java/com/ruoyi/inspect/controller/InsOrderController.java index 1a95be3..074496d 100644 --- a/inspect-server/src/main/java/com/ruoyi/inspect/controller/InsOrderController.java +++ b/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(); diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/service/InsOrderService.java b/inspect-server/src/main/java/com/ruoyi/inspect/service/InsOrderService.java index 5efb038..59e305d 100644 --- a/inspect-server/src/main/java/com/ruoyi/inspect/service/InsOrderService.java +++ b/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); diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsOrderServiceImpl.java b/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsOrderServiceImpl.java index 272479d..efc2876 100644 --- a/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsOrderServiceImpl.java +++ b/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) { -- Gitblit v1.9.3