| 8 小时以前 | gongchunyi | ![]() |
| 11 小时以前 | gongchunyi | ![]() |
| 11 小时以前 | gongchunyi | ![]() |
| 12 小时以前 | zouyu | ![]() |
| 17 小时以前 | deslrey | ![]() |
basic-server/src/main/java/com/ruoyi/basic/controller/StandardTreeController.java
@@ -94,6 +94,12 @@ return Result.success(standardProductListService.selectStandardProductListByMethodId(id, tree)); } @ApiOperation(value = "éè¿æ£éªæ åæ¥è¯¢æ£éªé¡¹ç®") @GetMapping("/buildStandardProductListNoDrag") public Result selectStandardProductListByMethodId1(Integer id, String tree) { return Result.success(standardProductListService.buildStandardProductListNoDrag(id, tree)); } @ApiOperation(value = "æ¹éæ¥è¯¢æ£éªé¡¹ç®") @GetMapping("/selectStandardProductByMethodId") public Result selectStandardProductByMethodId(Integer id, String tree, Integer page, String laboratory, String item, String items) { basic-server/src/main/java/com/ruoyi/basic/service/StandardProductListService.java
@@ -24,6 +24,8 @@ Map<String, Object> selectStandardProductListByMethodId(Integer id, String tree); Map<String, Object> buildStandardProductListNoDrag(Integer id, String tree); IPage<StandardProductList> selectStandardProductByMethodId(Integer id, String tree, Integer page, String laboratory, String item, String items); Map<String, List<?>> selectStandardProductEnumByMethodId(Integer id, String tree, String item); @@ -32,18 +34,21 @@ /** * æ ååºææ½ * * @param resetTreeDragDTO */ void resetTreeDrag(ResetTreeDragDTO resetTreeDragDTO); /** * æ ååºææ½ * * @param standardProductLists */ void resetTreeDragBatch(List<StandardProductList> standardProductLists); /** * æ£éªé¡¹è¦æ±å¼å¯¹æ¯ * * @param copyStandardProductListDto * @return */ @@ -51,6 +56,7 @@ /** * æ£éªé¡¹è¦æ±å¼å¯¹æ¯ä¸ä¸ª * * @param copyStandardProductListDto * @return */ @@ -58,6 +64,7 @@ /** * æ£éªé¡¹å¤å¶æåº * * @param copyStandardProductListDto * @return */ basic-server/src/main/java/com/ruoyi/basic/service/impl/StandardProductListServiceImpl.java
@@ -189,16 +189,15 @@ } /** * * @param str å¤å®å ¬å¼ * @param model åå· * @param standardCores è¯æ° * @param conductorMaterial å¯¼ä½æè´¨ * @param conductorType 导ä½ç±»å * @param str å¤å®å ¬å¼ * @param model åå· * @param standardCores è¯æ° * @param conductorMaterial å¯¼ä½æè´¨ * @param conductorType 导ä½ç±»å * @param insSample * @return */ private boolean getIsIf(String str, String model, String standardCores, String conductorMaterial, String conductorType,InsSampleReceiveDto insSample) { private boolean getIsIf(String str, String model, String standardCores, String conductorMaterial, String conductorType, InsSampleReceiveDto insSample) { Matcher matcher = Pattern.compile("\\d+(\\.\\d+)?").matcher(model); String model2 = ""; while (matcher.find()) { @@ -452,11 +451,225 @@ return Integer.compare(num1, num2); } }); // æç §ç´¢å¼æåº // æç §ç´¢å¼æåº if (isDrag) { list.sort((o1, o2) -> (o1.getSort() == null ? 0 : o1.getSort()) - (o2.getSort() == null ? 0 : o2.getSort())); list.sort(Comparator.comparingInt(o -> (o.getSort() == null ? 0 : o.getSort()))); } Map<String, Object> map = new HashMap<>(); map.put("productList", list); map.put("total", list.size()); return map; } @Override @Transactional(rollbackFor = Exception.class) public Map<String, Object> buildStandardProductListNoDrag(Integer id, String tree) { String[] trees = tree.split(" - "); List<StandardProductList> list = new ArrayList<>(); if (trees.length == 3) { List<StandardTree> treeList = new ArrayList<>(); StandardTree standardTree = new StandardTree(); standardTree.setFactory(trees[0]); standardTree.setLaboratory(trees[1]); standardTree.setSampleType(trees[2]); List<ProductDto> pList = standardTreeMapper.selectPList(trees[2]); if (CollectionUtils.isEmpty(pList) || pList.get(0) == null) { List<StandardTree> treeList1 = standardTreeMapper.selectList( Wrappers.<StandardTree>lambdaQuery() .eq(StandardTree::getLaboratory, trees[1]) .eq(StandardTree::getSampleType, trees[2]) ); if (CollectionUtils.isEmpty(treeList1)) { treeList.add(standardTree); } else { treeList.addAll(treeList1); } } else { for (ProductDto p : pList) { standardTree.setSample(p.getName()); List<StandardTree> treeList1 = standardTreeMapper.selectList( Wrappers.<StandardTree>lambdaQuery() .eq(StandardTree::getLaboratory, trees[1]) .eq(StandardTree::getSampleType, trees[2]) .eq(StandardTree::getSample, p.getName()) ); if (CollectionUtils.isEmpty(treeList1)) { treeList.add(JSON.parseObject( JSON.toJSONString(standardTree), StandardTree.class )); } else { treeList.addAll(treeList1); } } } for (StandardTree st : treeList) { String tree2 = trees[0] + " - " + trees[1] + " - " + trees[2] + " - " + st.getSample() + " - " + st.getModel(); list.addAll( standardTreeMapper.selectStandardProductListByTree( "\"" + trees[2] + "\"", st.getSample(), st.getModel(), tree2, trees[1] ) ); list.addAll( standardTreeMapper.selectStandardProductListByTree2( "\"" + trees[2] + "\",\"" + st.getSample() + "\"", st.getSample(), st.getModel(), tree2, trees[1] ) ); } } else if (trees.length == 4) { List<StandardTree> treeList = standardTreeMapper.selectList( Wrappers.<StandardTree>lambdaQuery() .eq(StandardTree::getLaboratory, trees[1]) .eq(StandardTree::getSampleType, trees[2]) .eq(StandardTree::getSample, trees[3]) ); if (CollectionUtils.isEmpty(treeList)) { StandardTree st = new StandardTree(); st.setFactory(trees[0]); st.setLaboratory(trees[1]); st.setSampleType(trees[2]); st.setSample(trees[3]); treeList.add(st); } for (StandardTree st : treeList) { String str = tree + " - " + st.getModel(); list.addAll( standardTreeMapper.selectStandardProductListByTree( "\"" + trees[2] + "\"", st.getSample(), st.getModel(), str, trees[1] ) ); list.addAll( standardTreeMapper.selectStandardProductListByTree2( "\"" + trees[2] + "\",\"" + trees[3] + "\"", st.getSample(), st.getModel(), str, trees[1] ) ); } } else { list.addAll( standardTreeMapper.selectStandardProductListByTree( "\"" + trees[2] + "\"", "null".equals(trees[3]) ? null : trees[3], trees[4], tree, trees[1] ) ); list.addAll( standardTreeMapper.selectStandardProductListByTree2( "\"" + trees[2] + "\",\"" + trees[3] + "\"", "null".equals(trees[3]) ? null : trees[3], trees[4], tree, trees[1] ) ); } for (StandardProductList p : list) { p.setId(IdWorker.getId()); } List<StandardProductList> oldList = standardProductListMapper.selectList( Wrappers.<StandardProductList>lambdaQuery() .eq(StandardProductList::getStandardMethodListId, id) .like(StandardProductList::getTree, tree) ); for (StandardProductList old : oldList) { for (StandardProductList cur : list) { // åå¾åªæä¸ä¸ªå¼ï¼èªå¨èµå¼ String radiusList = cur.getRadiusList(); if (StringUtils.isNotBlank(radiusList) && !"null".equals(radiusList) && !"\"\"".equals(radiusList)) { JSONArray jsonArray = JSON.parseArray(radiusList); List<String> radius = jsonArray.toJavaList(String.class); if (CollectionUtils.isNotEmpty(radius) && radius.size() == 1) { cur.setRadius(radius.get(0)); } } if (Objects.equals(old.getInspectionItem(), cur.getInspectionItem()) && Objects.equals( Objects.toString(old.getInspectionItemSubclass(), ""), Objects.toString(cur.getInspectionItemSubclass(), "") ) && Objects.equals(old.getModel(), cur.getModel()) && old.getTree().contains( cur.getSample() == null ? "null" : cur.getSample() ) && Objects.equals( old.getStructureItemParameterId(), cur.getStructureItemParameterId() )) { cur.setId(old.getId()); cur.setSort(old.getSort()); cur.setState(old.getState()); cur.setMethod(old.getMethodS()); cur.setRadius(old.getRadius()); cur.setRates(old.getRates()); cur.setAsk(old.getAsk()); cur.setTell(old.getTell()); cur.setPrice(old.getPrice()); cur.setManHour(old.getManHour()); cur.setSection(old.getSection()); cur.setCores(old.getCores()); cur.setConductorMaterial(old.getConductorMaterial()); cur.setConductorType(old.getConductorType()); cur.setTemplateId(old.getTemplateId()); break; } } } list.sort((o1, o2) -> { String f1 = o1.getManHourGroup(); String f2 = o2.getManHourGroup(); boolean e1 = StringUtils.isBlank(f1); boolean e2 = StringUtils.isBlank(f2); if (e1 && e2) return 0; if (e1) return 1; if (e2) return -1; return Integer.compare( extractNumber(f1), extractNumber(f2) ); }); Map<String, Object> map = new HashMap<>(); map.put("productList", list); @@ -508,6 +721,7 @@ /** * ä¿®æ¹æ ååºåºé´ * * @param list * @return */ @@ -520,6 +734,7 @@ /** * æ ååºææ½ * * @param resetTreeDragDTO */ @Override @@ -538,7 +753,7 @@ resetTreeDragDTO.getTree()); // ä»ä¸å¾ä¸ } else if (beginIndex > endIndex){ } else if (beginIndex > endIndex) { standardProductListMapper.updateSortDown(beginIndex, endIndex, methodId, @@ -559,6 +774,7 @@ /** * æ£éªé¡¹è¦æ±å¼å¯¹æ¯ * * @param copyDto * @return */ @@ -602,6 +818,7 @@ /** * æ£éªé¡¹å¤å¶å¯¹æ¯ä¸ä¸ª * * @param dto * @return */ @@ -636,6 +853,7 @@ /** * æ£éªé¡¹å¤å¶æåº * * @param copyDto * @return */ inspect-server/src/main/java/com/ruoyi/inspect/controller/DataAnalysisController.java
@@ -25,30 +25,44 @@ private DataAnalysisService dataAnalysisService; /** * æ¥è¯¢åæææ±ç¶ç»è®¡ * æ¥è¯¢ç©æå±æ§æ±ç¶ç»è®¡ * * @param dataAnalysisDto * @return */ @ApiOperation(value = "æ¥è¯¢åæææ±ç¶ç»è®¡") @ApiOperation(value = "æ¥è¯¢ç©æå±æ§æ±ç¶ç»è®¡") @GetMapping("/getRawPassRateByBarChart") public Result getRawPassRateByBarChart(DataAnalysisDto dataAnalysisDto) { return Result.success(dataAnalysisService.getRawPassRateByBarChart(dataAnalysisDto)); } /** * æ¥è¯¢åæææ±ç¶ç»è®¡ * æ¥è¯¢ç©æå±æ§æ±ç¶ç»è®¡ * * @param dataAnalysisDto * @return */ @ApiOperation(value = "æ¥è¯¢åææåæ ¼çé¥¼ç¶æ") @ApiOperation(value = "æ¥è¯¢ç©æå±æ§åæ ¼ç饼ç¶å¾") @GetMapping("/getRawPassRateByCake") public Result getRawPassRateByCake(DataAnalysisDto dataAnalysisDto) { return Result.success(dataAnalysisService.getRawPassRateByCake(dataAnalysisDto)); } /** * æ¥è¯¢ç©æå±æ§åæ ¼çè¡¨æ ¼ * * @param dataAnalysisDto * @return */ @ApiOperation(value = "æ¥è¯¢ç©æå±æ§åæ ¼çè¡¨æ ¼") @GetMapping("/getMaterialPropTable") public Result getMaterialPropTable(DataAnalysisDto dataAnalysisDto) { return Result.success(dataAnalysisService.getMaterialPropTable(dataAnalysisDto)); } /** * æ¥è¯¢åææé¡¹ * * @param dataAnalysisDto * @return */ @@ -60,6 +74,7 @@ /** * æ¥è¯¢åææé¡¹æ£åæ * * @param dataAnalysisDto * @return */ @@ -71,6 +86,7 @@ /** * æ¥è¯¢åææé¡¹æ£åæå表 * * @param dataAnalysisDto * @return */ @@ -82,6 +98,7 @@ /** * æ¥è¯¢åææé¡¹æ£åæå表 * * @param dataAnalysisDto * @return */ @@ -93,6 +110,7 @@ /** * æ¥è¯¢åææé¡¹æ£ååå®¶æ°æ®å¯¹æ¯ * * @param dataAnalysisDto * @return */ @@ -104,6 +122,7 @@ /** * æ¥è¯¢æ¬æä¸ä¸ä¸ªæåæ ¼çå¯¹æ¯ * * @param dataAnalysisDto * @return */ @@ -115,6 +134,7 @@ /** * æ¥è¯¢æ£éªé¡¹ç±»åé¥¼å¾ * * @param dataAnalysisDto * @return */ inspect-server/src/main/java/com/ruoyi/inspect/controller/IfsPartPropsRecordController.java
@@ -2,7 +2,6 @@ import com.ruoyi.common.core.domain.Result; import com.ruoyi.inspect.dto.IfsPartPropsRecordDTO; import com.ruoyi.inspect.pojo.IfsPartPropsRecord; import com.ruoyi.inspect.service.IfsPartPropsRecordService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; inspect-server/src/main/java/com/ruoyi/inspect/dto/DataAnalysisDto.java
@@ -36,6 +36,9 @@ @ApiModelProperty("åç»ç±»å, 0: é»è®¤æç §æ ·ååºå 1: åä¸åå®¶, åä¸åå·, ä¸åæ¹æ¬¡, 2 : åä¸åå·, ä¸ååå®¶") private String groupType; @ApiModelProperty("ç©æå±æ§") private String materialProp; @ApiModelProperty("éæ©çæ£éªé¡¹åç§°") private List<String> itemNames; inspect-server/src/main/java/com/ruoyi/inspect/dto/MaterialPropTableDTO.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,26 @@ package com.ruoyi.inspect.dto; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.math.BigDecimal; import java.util.Date; @Data public class MaterialPropTableDTO { @ApiModelProperty(value = "ä¿®æ¹åæ¹æ¬¡å·") private String updateBatchNo; @ApiModelProperty(value = "æµè¾¾çéè´æ°é") private BigDecimal qtyArrived; @ApiModelProperty(value = "é¶ä»¶æè¿°") private String partDesc; @ApiModelProperty(value = "åæ ¼ç¶æ") private Integer inspectStatus; @ApiModelProperty(value = "ä¸åæ¶é´") private Date sendTime; } inspect-server/src/main/java/com/ruoyi/inspect/mapper/DataAnalysisMapper.java
@@ -2,6 +2,7 @@ import com.ruoyi.basic.dto.IfsInventoryQuantitySupplierDto; import com.ruoyi.inspect.dto.DataAnalysisDto; import com.ruoyi.inspect.dto.MaterialPropTableDTO; import com.ruoyi.inspect.vo.RawMaterialSupplierVo; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -19,32 +20,39 @@ public interface DataAnalysisMapper { /** * è·åæ¬å¨çåææä¿¡æ¯ * è·åæ¬å¨çç©æå±æ§ä¿¡æ¯ * * @return */ List<Map<String, Object>> getRawPassRateByBarChartByWeek(@Param("dto") DataAnalysisDto dataAnalysisDto); /** * è·åæ¬æçåææä¿¡æ¯ * è·åæ¬æçç©æå±æ§ä¿¡æ¯ * * @return */ List<Map<String, Object>> getRawPassRateByBarChartByDay(@Param("dto") DataAnalysisDto dataAnalysisDto); /** * è·åæ¬å¹´çåææä¿¡æ¯ * è·åæ¬å¹´çç©æå±æ§ä¿¡æ¯ * * @return */ List<Map<String, Object>> getRawPassRateByBarChartByYear(@Param("dto") DataAnalysisDto dataAnalysisDtor); /** * æ¥ç忿饼ç¶å¾ * * @return */ Map<String, Object> getRawPassRateByCake(@Param("dto") DataAnalysisDto dataAnalysisDto); List<MaterialPropTableDTO> getMaterialPropTable(@Param("dto") DataAnalysisDto dataAnalysisDto); /** * æ¥è¯¢æ£æµé¡¹éå * * @param dataAnalysisDto * @return */ @@ -52,6 +60,7 @@ /** * æ¥è¯¢ææç * * @param dataAnalysisDto * @return */ @@ -62,12 +71,14 @@ /** * æ¥è¯¢æ¬æä¸ä¸æåæ ¼çå¯¹æ¯ * * @return */ List<Map<String, Object>> getRawUpMonth(); /** * æ¥è¯¢æ£éªé¡¹ç±»åé¥¼å¾ * * @return */ Map<String, Object> getOrderTypeCookie(); inspect-server/src/main/java/com/ruoyi/inspect/service/DataAnalysisService.java
@@ -3,6 +3,7 @@ import com.ruoyi.basic.dto.IfsInventoryQuantitySupplierDto; import com.ruoyi.inspect.dto.DataAnalysisDto; import com.ruoyi.inspect.dto.MaterialPropTableDTO; import com.ruoyi.inspect.vo.DeviationAnalyzeVo; import com.ruoyi.inspect.vo.RawProductAnalysisVo; @@ -18,18 +19,24 @@ public interface DataAnalysisService { /** * æ¥è¯¢åæææ±ç¶ç»è®¡ * æ¥è¯¢ç©æå±æ§æ±ç¶ç»è®¡ * @return */ List<Map<String, Object>> getRawPassRateByBarChart(DataAnalysisDto dataAnalysisDto); /** * æ¥è¯¢åææåæ ¼ç饼ç¶å¾ * æ¥è¯¢ç©æå±æ§åæ ¼ç饼ç¶å¾ * @param dataAnalysisDto * @return */ Map<String, Object> getRawPassRateByCake(DataAnalysisDto dataAnalysisDto); /** * æ¥è¯¢ç©æå±æ§åæ ¼ç饼ç¶å¾ * @param dataAnalysisDto * @return */ List<MaterialPropTableDTO> getMaterialPropTable(DataAnalysisDto dataAnalysisDto); /** * æ¥è¯¢æ£éªé¡¹åç§° inspect-server/src/main/java/com/ruoyi/inspect/service/impl/DataAnalysisServiceImpl.java
@@ -9,6 +9,7 @@ import com.ruoyi.common.constant.InsOrderTypeConstants; import com.ruoyi.framework.exception.ErrorException; import com.ruoyi.inspect.dto.DataAnalysisDto; import com.ruoyi.inspect.dto.MaterialPropTableDTO; import com.ruoyi.inspect.dto.SampleProductRawAnalysisDto; import com.ruoyi.inspect.mapper.DataAnalysisMapper; import com.ruoyi.inspect.mapper.InsProductMapper; @@ -43,7 +44,8 @@ private InsProductMapper insProductMapper; /** * æ¥è¯¢åæææ±ç¶ç»è®¡ * æ¥è¯¢ç©æå±æ§æ±ç¶ç»è®¡ * * @return searchTime æ¶é´ * @return passRate åæ ¼ç * @return sum æ»æ° @@ -64,7 +66,8 @@ DateTime endOfWeek = DateUtil.endOfWeek(now); dataAnalysisDto.setBeginDate(DateUtil.format(beginOfWeek, "yyyy-MM-dd HH:mm:ss")); dataAnalysisDto.setEndDate(DateUtil.format(endOfWeek, "yyyy-MM-dd HH:mm:ss")); return dataAnalysisMapper.getRawPassRateByBarChartByWeek(dataAnalysisDto); List<Map<String, Object>> maps = dataAnalysisMapper.getRawPassRateByBarChartByWeek(dataAnalysisDto); return maps; } else if (dataAnalysisDto.getDateType().equals("2")) { // è·åå½åæçå¼å§æ¶é´ï¼æ¯æ1å· 00:00:00ï¼ DateTime beginOfMonth = DateUtil.beginOfMonth(now); @@ -72,7 +75,8 @@ DateTime endOfMonth = DateUtil.endOfMonth(now); dataAnalysisDto.setBeginDate(DateUtil.format(beginOfMonth, "yyyy-MM-dd HH:mm:ss")); dataAnalysisDto.setEndDate(DateUtil.format(endOfMonth, "yyyy-MM-dd HH:mm:ss")); return dataAnalysisMapper.getRawPassRateByBarChartByDay(dataAnalysisDto); List<Map<String, Object>> maps = dataAnalysisMapper.getRawPassRateByBarChartByDay(dataAnalysisDto); return maps; } else if (dataAnalysisDto.getDateType().equals("3")) { // è·åå½åå¹´çå¼å§æ¶é´ï¼æ¯å¹´1æ1æ¥ 00:00:00ï¼ DateTime beginOfYear = DateUtil.beginOfYear(now); @@ -80,7 +84,8 @@ DateTime endOfYear = DateUtil.endOfYear(now); dataAnalysisDto.setBeginDate(DateUtil.format(beginOfYear, "yyyy-MM-dd HH:mm:ss")); dataAnalysisDto.setEndDate(DateUtil.format(endOfYear, "yyyy-MM-dd HH:mm:ss")); return dataAnalysisMapper.getRawPassRateByBarChartByYear(dataAnalysisDto); List<Map<String, Object>> maps = dataAnalysisMapper.getRawPassRateByBarChartByYear(dataAnalysisDto); return maps; } return null; @@ -88,9 +93,9 @@ /** * æ¥è¯¢åææé¥¼ç¶å¾ * * @param dataAnalysisDto * @return * sum : æ»æ° * @return sum : æ»æ° * unQualified : ä¸åæ ¼æ°é * qualified : åæ ¼æ°é * passRate : åæ ¼ç @@ -125,12 +130,51 @@ dataAnalysisDto.setBeginDate(DateUtil.format(beginOfYear, "yyyy-MM-dd HH:mm:ss")); dataAnalysisDto.setEndDate(DateUtil.format(endOfYear, "yyyy-MM-dd HH:mm:ss")); } return dataAnalysisMapper.getRawPassRateByCake(dataAnalysisDto); Map<String, Object> rawPassRateByCake = dataAnalysisMapper.getRawPassRateByCake(dataAnalysisDto); return rawPassRateByCake; } @Override public List<MaterialPropTableDTO> getMaterialPropTable(DataAnalysisDto dataAnalysisDto) { // æ ¼å¼ååæ®µ, é¿å æ¥é this.formatDataAnalysisDto(dataAnalysisDto); // è·åå½åæ¥æ DateTime now = DateUtil.date(); if (StrUtil.isNotBlank(dataAnalysisDto.getBeginDate()) && StrUtil.isNotBlank(dataAnalysisDto.getEndDate())) { } else if (dataAnalysisDto.getDateType().equals("1")) { // è·åæ¬å¨çå¼å§æ¶é´ï¼å¨ä¸ 00:00:00ï¼ DateTime beginOfWeek = DateUtil.beginOfWeek(now); // è·åæ¬å¨çç»ææ¶é´ï¼å¨æ¥ 23:59:59ï¼ DateTime endOfWeek = DateUtil.endOfWeek(now); dataAnalysisDto.setBeginDate(DateUtil.format(beginOfWeek, "yyyy-MM-dd HH:mm:ss")); dataAnalysisDto.setEndDate(DateUtil.format(endOfWeek, "yyyy-MM-dd HH:mm:ss")); } else if (dataAnalysisDto.getDateType().equals("2")) { // è·åå½åæçå¼å§æ¶é´ï¼æ¯æ1å· 00:00:00ï¼ DateTime beginOfMonth = DateUtil.beginOfMonth(now); // è·åå½åæçç»ææ¶é´ï¼æ¬ææåä¸å¤© 23:59:59ï¼ DateTime endOfMonth = DateUtil.endOfMonth(now); dataAnalysisDto.setBeginDate(DateUtil.format(beginOfMonth, "yyyy-MM-dd HH:mm:ss")); dataAnalysisDto.setEndDate(DateUtil.format(endOfMonth, "yyyy-MM-dd HH:mm:ss")); } else if (dataAnalysisDto.getDateType().equals("3")) { // è·åå½åå¹´çå¼å§æ¶é´ï¼æ¯å¹´1æ1æ¥ 00:00:00ï¼ DateTime beginOfYear = DateUtil.beginOfYear(now); // è·åå½åå¹´çç»ææ¶é´ï¼æ¯å¹´12æ31æ¥ 23:59:59ï¼ DateTime endOfYear = DateUtil.endOfYear(now); dataAnalysisDto.setBeginDate(DateUtil.format(beginOfYear, "yyyy-MM-dd HH:mm:ss")); dataAnalysisDto.setEndDate(DateUtil.format(endOfYear, "yyyy-MM-dd HH:mm:ss")); } List<MaterialPropTableDTO> rawPassRateByCake = dataAnalysisMapper.getMaterialPropTable(dataAnalysisDto); return rawPassRateByCake; } /** * æ¥è¯¢æ£éªé¡¹åç§° * * @param dataAnalysisDto * @return */ @@ -151,6 +195,7 @@ /** * æ¥è¯¢åææé¡¹æ£åæ * * @param dataAnalysisDto * @return */ @@ -202,6 +247,7 @@ /** * æ¥è¯¢æ£æµé¡¹åæå表 * * @param dataAnalysisDto * @return */ @@ -214,6 +260,7 @@ /** * æ¥è¯¢é¡¹æ£åæåæ ¼ç * * @param dataAnalysisDto * @return */ @@ -386,6 +433,7 @@ /** * æ¥è¯¢æ¬æä¸ä¸æåæ ¼çå¯¹æ¯ * * @param dataAnalysisDto * @return */ @@ -396,6 +444,7 @@ /** * æ¥è¯¢æ£éªé¡¹ç±»åé¥¼å¾ * * @param dataAnalysisDto * @return */ @@ -406,6 +455,7 @@ /** * 计ç®è¿åæ°æ® * * @param lastValues * @return */ @@ -473,6 +523,7 @@ /** * è®¡ç®æå·® * * @param lastValues * @return */ @@ -509,6 +560,7 @@ /** * 计ç®å¹³åå¼ * * @param values * @return */ @@ -531,6 +583,7 @@ /** * è®¡ç®æ ååå·® * * @return */ private static BigDecimal computeStandardDeviation(List<String> lastValues) { @@ -588,6 +641,7 @@ /** * *****æ ¼å¼ååæ®µ**** * * @param dataAnalysisDto */ private void formatDataAnalysisDto(DataAnalysisDto dataAnalysisDto) { inspect-server/src/main/java/com/ruoyi/inspect/service/impl/IfsPartPropsRecordServiceImpl.java
@@ -1,6 +1,5 @@ package com.ruoyi.inspect.service.impl; import cn.hutool.core.bean.BeanUtil; import cn.hutool.json.JSONUtil; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -10,14 +9,15 @@ import com.ruoyi.common.enums.OrderType; import com.ruoyi.common.utils.api.IfsApiUtils; import com.ruoyi.inspect.dto.IfsPartPropsRecordDTO; import com.ruoyi.inspect.mapper.IfsPartPropsRecordMapper; import com.ruoyi.inspect.mapper.IfsSplitOrderRecordMapper; import com.ruoyi.inspect.pojo.IfsPartPropsRecord; import com.ruoyi.inspect.pojo.IfsSplitOrderRecord; import com.ruoyi.inspect.service.IfsPartPropsRecordService; import com.ruoyi.inspect.mapper.IfsPartPropsRecordMapper; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -42,6 +42,9 @@ @Autowired private IfsSplitOrderRecordMapper ifsSplitOrderRecordMapper; @Value("${ifs.contract}") public String contract; @Override @Transactional(rollbackFor = Exception.class) public boolean saveOrUpdateProps(IfsPartPropsRecordDTO ifsPartPropsRecord) { @@ -58,7 +61,7 @@ inAttrMap.put("SYSCODE", "LIMS"); inAttrMap.put("SYSMODEL", "åºåç©ææ¹æ¬¡å±æ§ä¿®æ¹"); HashMap<String, Object> batchInfoMap = new HashMap<>(); batchInfoMap.put("CONTRACT","ZTNS");//å batchInfoMap.put("CONTRACT",contract);//å batchInfoMap.put("PART_NO",ifsPartPropsRecord.getPartNo());//é¶ä»¶å· batchInfoMap.put("LOT_BATCH_NO",ifsPartPropsRecord.getLotBatchNo());//æ¹æ¬¡å· batchInfoMap.put("ATTR1",ifsPartPropsRecord.getDrumNo());//è½½å ·ç¼å· inspect-server/src/main/resources/mapper/DataAnalysisMapper.xml
@@ -1,195 +1,304 @@ <?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.ruoyi.inspect.mapper.DataAnalysisMapper"> <!-- è·åæ¬å¨çåææä¿¡æ¯ --> <!-- è·åæ¬å¨çç©æå±æ§ä¿¡æ¯ --> <select id="getRawPassRateByBarChartByWeek" resultType="java.util.Map"> WITH RECURSIVE AllWeeks AS (SELECT 1 AS week UNION ALL SELECT week + 1 FROM AllWeeks WHERE week < 7) SELECT COALESCE(sub.sum, 0) AS sum, CASE am.week WHEN 1 THEN 'æææ¥' WHEN 2 THEN 'ææä¸' WHEN 3 THEN 'ææäº' WHEN 4 THEN 'ææä¸' WHEN 5 THEN 'ææå' WHEN 6 THEN 'ææäº' WHEN 7 THEN 'ææå ' END AS searchTime, COALESCE(sub.passRate, 0) AS passRate WITH RECURSIVE AllWeeks AS ( SELECT 1 AS week UNION ALL SELECT week + 1 FROM AllWeeks WHERE week < 7 ) SELECT COALESCE(sub.qualified, 0) AS qualified, COALESCE(sub.unQualified, 0) AS unQualified, CASE am.week WHEN 1 THEN 'æææ¥' WHEN 2 THEN 'ææä¸' WHEN 3 THEN 'ææäº' WHEN 4 THEN 'ææä¸' WHEN 5 THEN 'ææå' WHEN 6 THEN 'ææäº' WHEN 7 THEN 'ææå ' END AS searchTime FROM AllWeeks am LEFT JOIN (select COUNT(*) sum, DAYOFWEEK(io1.send_time) searchTime, ROUND((COUNT(*) - SUM(CASE WHEN inspect_status in (2, 4) THEN 1 ELSE 0 END)) / COUNT(*) * 100, 2) passRate from ifs_inventory_quantity iiq LEFT JOIN ins_order io1 on io1.ifs_inventory_id = iiq.id and io1.order_type = #{dto.orderType} and io1.state != -1 left join (select is2.ins_order_id, is2.sample_type, is2.model, is2.sample from ins_sample is2 group by is2.ins_order_id) ins on ins.ins_order_id = io1.id where iiq.is_finish = 1 and iiq.inspect_status not in (0, 3) and (io1.send_time between #{dto.beginDate} and #{dto.endDate}) <if test="dto.sampleName != null and dto.sampleName != ''"> and ins.sample like concat('%', #{dto.sampleName}, '%') LEFT JOIN ( SELECT DAYOFWEEK(io1.send_time) AS week, SUM(CASE WHEN iiq.inspect_status = 1 THEN 1 ELSE 0 END) AS qualified, SUM(CASE WHEN iiq.inspect_status = 2 THEN 1 ELSE 0 END) AS unQualified FROM ifs_inventory_quantity iiq INNER JOIN ins_order io1 ON io1.ifs_inventory_id = iiq.id LEFT JOIN ( SELECT ins_order_id, MAX(sample) AS sample, MAX(model) AS model FROM ins_sample GROUP BY ins_order_id ) ins ON ins.ins_order_id = io1.id WHERE iiq.is_finish = 1 AND iiq.inspect_status IN (1, 2) AND io1.order_type = #{dto.orderType} AND io1.state != -1 AND io1.send_time BETWEEN #{dto.beginDate} AND #{dto.endDate} <if test="dto.materialProp != null and dto.materialProp.trim() != ''"> AND IFNULL(iiq.material_prop,'') LIKE CONCAT('%',#{dto.materialProp},'%') </if> <if test="dto.modelName != null and dto.modelName != ''"> and ins.model like concat('%', #{dto.modelName}, '%') <if test="dto.sampleName != null and dto.sampleName.trim() != ''"> AND IFNULL(ins.sample,'') LIKE CONCAT('%',#{dto.sampleName},'%') </if> <if test="dto.supplierName != null and dto.supplierName != ''"> and iiq.supplier_name like concat('%', #{dto.supplierName}, '%') <if test="dto.modelName != null and dto.modelName.trim() != ''"> AND IFNULL(ins.model,'') LIKE CONCAT('%',#{dto.modelName},'%') </if> GROUP BY DAYOFWEEK(io1.send_time) having searchTime is not null) sub ON am.week = sub.searchTime WHERE am.week BETWEEN 1 AND 7 <if test="dto.supplierName != null and dto.supplierName.trim() != ''"> AND IFNULL(iiq.supplier_name,'') LIKE CONCAT('%',#{dto.supplierName},'%') </if> GROUP BY DAYOFWEEK(io1.send_time) ) sub ON am.week = sub.week ORDER BY am.week </select> <!-- è·åæ¬æçåææä¿¡æ¯ --> <!-- è·åæ¬æçç©æå±æ§ä¿¡æ¯ --> <!-- è·åæ¬æçç©æå±æ§ä¿¡æ¯ï¼æå¤©ï¼è¡¥å ¨æ¥æï¼ --> <select id="getRawPassRateByBarChartByDay" resultType="java.util.Map"> select COUNT(*) sum, DATE_FORMAT(io1.send_time, '%Y-%m-%d') searchTime, ROUND((COUNT(*) - SUM(CASE WHEN inspect_status in (2, 4) THEN 1 ELSE 0 END)) / COUNT(*) * 100, 2) passRate from ifs_inventory_quantity iiq LEFT JOIN ins_order io1 on io1.ifs_inventory_id = iiq.id and io1.order_type = #{dto.orderType} and io1.state != -1 left join (select is2.ins_order_id, is2.sample_type, is2.model, is2.sample from ins_sample is2 group by is2.ins_order_id) ins on ins.ins_order_id = io1.id where iiq.is_finish = 1 and iiq.inspect_status not in (0, 3) and (io1.send_time between #{dto.beginDate} and #{dto.endDate}) WITH RECURSIVE AllDays AS ( SELECT DATE(#{dto.beginDate}) AS day UNION ALL SELECT DATE_ADD(day, INTERVAL 1 DAY) FROM AllDays WHERE day < DATE(#{dto.endDate}) ) SELECT DATE_FORMAT(ad.day,'%Y-%m-%d') AS searchTime, COALESCE(sub.qualified,0) AS qualified, COALESCE(sub.unQualified,0) AS unQualified, CASE WHEN COALESCE(sub.total,0) = 0 THEN 0 ELSE ROUND(sub.qualified / sub.total * 100, 2) END AS passRate FROM AllDays ad LEFT JOIN ( SELECT DATE(io1.send_time) AS day, COUNT(*) AS total, SUM(CASE WHEN iiq.inspect_status = 1 THEN 1 ELSE 0 END) AS qualified, SUM(CASE WHEN iiq.inspect_status = 2 THEN 1 ELSE 0 END) AS unQualified FROM ifs_inventory_quantity iiq LEFT JOIN ins_order io1 ON io1.ifs_inventory_id = iiq.id AND io1.order_type = #{dto.orderType} AND io1.state != -1 AND io1.send_time BETWEEN #{dto.beginDate} AND #{dto.endDate} LEFT JOIN ( SELECT ins_order_id, MAX(sample) AS sample, MAX(model) AS model FROM ins_sample GROUP BY ins_order_id ) ins ON ins.ins_order_id = io1.id WHERE iiq.is_finish = 1 AND iiq.inspect_status IN (1,2) <if test="dto.materialProp != null and dto.materialProp != ''"> AND IFNULL(iiq.material_prop,'') LIKE CONCAT('%',#{dto.materialProp},'%') </if> <if test="dto.sampleName != null and dto.sampleName != ''"> and ins.sample like concat('%', #{dto.sampleName}, '%') AND IFNULL(ins.sample,'') LIKE CONCAT('%',#{dto.sampleName},'%') </if> <if test="dto.modelName != null and dto.modelName != ''"> and ins.model like concat('%', #{dto.modelName}, '%') AND IFNULL(ins.model,'') LIKE CONCAT('%',#{dto.modelName},'%') </if> <if test="dto.supplierName != null and dto.supplierName != ''"> and iiq.supplier_name like concat('%', #{dto.supplierName}, '%') AND IFNULL(iiq.supplier_name,'') LIKE CONCAT('%',#{dto.supplierName},'%') </if> GROUP BY DATE_FORMAT(io1.send_time, '%Y-%m-%d') having searchTime is not null order by searchTime GROUP BY DATE(io1.send_time) ) sub ON ad.day = sub.day ORDER BY ad.day </select> <!-- è·åæ¬å¹´çåææä¿¡æ¯ --> <!-- è·åæ¬å¹´çç©æå±æ§ä¿¡æ¯ --> <!-- è·åæ¬å¹´çç©æå±æ§ä¿¡æ¯ --> <select id="getRawPassRateByBarChartByYear" resultType="java.util.Map"> WITH RECURSIVE AllMonths AS (SELECT 1 AS month UNION ALL SELECT month + 1 FROM AllMonths WHERE month < 12) SELECT COALESCE(sub.sum, 0) AS sum, CASE am.month WHEN 1 THEN '1æ' WHEN 2 THEN '2æ' WHEN 3 THEN '3æ' WHEN 4 THEN '4æ' WHEN 5 THEN '5æ' WHEN 6 THEN '6æ' WHEN 7 THEN '7æ' WHEN 8 THEN '8æ' WHEN 9 THEN '9æ' WHEN 10 THEN '10æ' WHEN 11 THEN '11æ' WHEN 12 THEN '12æ' END AS searchTime, COALESCE(sub.passRate, 0) AS passRate WITH RECURSIVE AllMonths AS ( SELECT 1 AS month UNION ALL SELECT month + 1 FROM AllMonths WHERE month < 12 ) SELECT CASE am.month WHEN 1 THEN '1æ' WHEN 2 THEN '2æ' WHEN 3 THEN '3æ' WHEN 4 THEN '4æ' WHEN 5 THEN '5æ' WHEN 6 THEN '6æ' WHEN 7 THEN '7æ' WHEN 8 THEN '8æ' WHEN 9 THEN '9æ' WHEN 10 THEN '10æ' WHEN 11 THEN '11æ' WHEN 12 THEN '12æ' END AS searchTime, COALESCE(sub.qualified,0) AS qualified, COALESCE(sub.unQualified,0) AS unQualified, CASE WHEN COALESCE(sub.total,0) = 0 THEN 0 ELSE ROUND(sub.qualified / sub.total * 100, 2) END AS passRate FROM AllMonths am LEFT JOIN (select COUNT(*) sum, DATE_FORMAT(io1.send_time, '%m') searchTime, ROUND((COUNT(*) - SUM(CASE WHEN inspect_status in (2, 4) THEN 1 ELSE 0 END)) / COUNT(*) * 100, 2) passRate from ifs_inventory_quantity iiq LEFT JOIN ins_order io1 on io1.ifs_inventory_id = iiq.id and io1.order_type = #{dto.orderType} and io1.state != -1 left join (select is2.ins_order_id, is2.sample_type, is2.model, is2.sample from ins_sample is2 group by is2.ins_order_id) ins on ins.ins_order_id = io1.id where iiq.is_finish = 1 and iiq.inspect_status not in (0, 3) and (io1.send_time between #{dto.beginDate} and #{dto.endDate}) LEFT JOIN ( SELECT MONTH(io1.send_time) AS month, COUNT(*) AS total, SUM(CASE WHEN iiq.inspect_status = 1 THEN 1 ELSE 0 END) AS qualified, SUM(CASE WHEN iiq.inspect_status = 2 THEN 1 ELSE 0 END) AS unQualified FROM ifs_inventory_quantity iiq LEFT JOIN ins_order io1 ON io1.ifs_inventory_id = iiq.id AND io1.order_type = #{dto.orderType} AND io1.state != -1 AND io1.send_time BETWEEN #{dto.beginDate} AND #{dto.endDate} LEFT JOIN ( SELECT ins_order_id, MAX(sample) AS sample, MAX(model) AS model FROM ins_sample GROUP BY ins_order_id ) ins ON ins.ins_order_id = io1.id WHERE iiq.is_finish = 1 AND iiq.inspect_status IN (1,2) <if test="dto.materialProp != null and dto.materialProp != ''"> AND IFNULL(iiq.material_prop,'') LIKE CONCAT('%',#{dto.materialProp},'%') </if> <if test="dto.sampleName != null and dto.sampleName != ''"> and ins.sample like concat('%', #{dto.sampleName}, '%') AND IFNULL(ins.sample,'') LIKE CONCAT('%',#{dto.sampleName},'%') </if> <if test="dto.modelName != null and dto.modelName != ''"> and ins.model like concat('%', #{dto.modelName}, '%') AND IFNULL(ins.model,'') LIKE CONCAT('%',#{dto.modelName},'%') </if> <if test="dto.supplierName != null and dto.supplierName != ''"> and iiq.supplier_name like concat('%', #{dto.supplierName}, '%') AND IFNULL(iiq.supplier_name,'') LIKE CONCAT('%',#{dto.supplierName},'%') </if> GROUP BY DATE_FORMAT(io1.send_time, '%Y-%m') having searchTime is not null) sub ON am.month = sub.searchTime WHERE am.month BETWEEN 1 AND 12 GROUP BY MONTH(io1.send_time) ) sub ON am.month = sub.month ORDER BY am.month </select> <!-- æ¥ç忿饼ç¶å¾ --> <!-- æ¥çç©æå±æ§é¥¼ç¶å¾ --> <select id="getRawPassRateByCake" resultType="java.util.Map"> select COUNT(*) sum, (COUNT(*) - SUM(CASE WHEN inspect_status in (2, 4) THEN 1 ELSE 0 END)) qualified, (COUNT(*) - SUM(CASE WHEN inspect_status = 1 THEN 1 ELSE 0 END)) unQualified, ROUND((COUNT(*) - SUM(CASE WHEN inspect_status in (2, 4) THEN 1 ELSE 0 END)) / COUNT(*) * 100, 2) AS passRate from ifs_inventory_quantity iiq LEFT JOIN ins_order io1 on io1.ifs_inventory_id = iiq.id and io1.order_type = #{dto.orderType} and io1.state != -1 left join (select is2.ins_order_id, is2.sample_type, is2.model, is2.sample from ins_sample is2 group by is2.ins_order_id) ins on ins.ins_order_id = io1.id where iiq.is_finish = 1 and iiq.inspect_status not in (0, 3) and (io1.send_time between #{dto.beginDate} and #{dto.endDate}) SELECT COUNT(*) AS sum, /* åæ ¼ */ SUM(CASE WHEN iiq.inspect_status = 1 THEN 1 ELSE 0 END) AS qualified, /* ä¸åæ ¼ */ SUM(CASE WHEN iiq.inspect_status = 2 THEN 1 ELSE 0 END) AS unQualified, ROUND( SUM(CASE WHEN iiq.inspect_status = 1 THEN 1 ELSE 0 END) / COUNT(*) * 100, 2 ) AS passRate FROM ifs_inventory_quantity iiq INNER JOIN ins_order io1 ON io1.ifs_inventory_id = iiq.id LEFT JOIN ( SELECT is2.ins_order_id, MAX(is2.sample_type) AS sample_type, MAX(is2.model) AS model, MAX(is2.sample) AS sample FROM ins_sample is2 GROUP BY is2.ins_order_id ) ins ON ins.ins_order_id = io1.id WHERE iiq.is_finish = 1 AND iiq.inspect_status IN (1, 2) AND io1.order_type = #{dto.orderType} AND io1.state != -1 AND io1.send_time BETWEEN #{dto.beginDate} AND #{dto.endDate} <if test="dto.materialProp != null and dto.materialProp.trim() != ''"> AND IFNULL(iiq.material_prop, '') LIKE CONCAT('%', #{dto.materialProp}, '%') </if> <if test="dto.sampleName != null and dto.sampleName.trim() != ''"> AND IFNULL(ins.sample, '') LIKE CONCAT('%', #{dto.sampleName}, '%') </if> <if test="dto.modelName != null and dto.modelName.trim() != ''"> AND IFNULL(ins.model, '') LIKE CONCAT('%', #{dto.modelName}, '%') </if> <if test="dto.supplierName != null and dto.supplierName.trim() != ''"> AND IFNULL(iiq.supplier_name, '') LIKE CONCAT('%', #{dto.supplierName}, '%') </if> </select> <select id="getMaterialPropTable" resultType="com.ruoyi.inspect.dto.MaterialPropTableDTO"> SELECT iiq.update_batch_no AS updateBatchNo, -- ä¿®æ¹åæ¹æ¬¡å· iiq.qty_arrived AS qtyArrived, -- æµè¾¾çéè´æ°é iiq.part_desc AS partDesc, -- é¶ä»¶æè¿° iiq.inspect_status AS inspectStatus, -- åæ ¼ç¶æ io1.send_time AS sendTime -- ä¸åæ¶é´ FROM ifs_inventory_quantity iiq INNER JOIN ins_order io1 ON io1.ifs_inventory_id = iiq.id AND io1.order_type = #{dto.orderType} AND io1.state != -1 AND io1.send_time BETWEEN #{dto.beginDate} AND #{dto.endDate} LEFT JOIN ( SELECT ins_order_id, MAX(sample) AS sample, MAX(model) AS model FROM ins_sample GROUP BY ins_order_id ) ins ON ins.ins_order_id = io1.id WHERE iiq.is_finish = 1 AND iiq.inspect_status IN (1,2) <if test="dto.materialProp != null and dto.materialProp != ''"> AND IFNULL(iiq.material_prop,'') LIKE CONCAT('%',#{dto.materialProp},'%') </if> <if test="dto.sampleName != null and dto.sampleName != ''"> and ins.sample like concat('%', #{dto.sampleName}, '%') AND IFNULL(ins.sample,'') LIKE CONCAT('%',#{dto.sampleName},'%') </if> <if test="dto.modelName != null and dto.modelName != ''"> and ins.model like concat('%', #{dto.modelName}, '%') AND IFNULL(ins.model,'') LIKE CONCAT('%',#{dto.modelName},'%') </if> <if test="dto.supplierName != null and dto.supplierName != ''"> and iiq.supplier_name like concat('%', #{dto.supplierName}, '%') AND IFNULL(iiq.supplier_name,'') LIKE CONCAT('%',#{dto.supplierName},'%') </if> ORDER BY io1.send_time DESC </select> <select id="getRawProductAnalysisAllSample" resultType="com.ruoyi.basic.dto.IfsInventoryQuantitySupplierDto"> select iiq.*, io1.entrust_code, io1.id enter_order_id, ins.id sample_id, ins.sample_type, ins.sample sample_name, ins.model sample_model, io1.send_time io1.entrust_code, io1.id enter_order_id, ins.id sample_id, ins.sample_type, ins.sample sample_name, ins.model sample_model, io1.send_time from ifs_inventory_quantity iiq LEFT JOIN ins_order io1 on io1.ifs_inventory_id = iiq.id and io1.order_type = #{dto.orderType} and io1.state != -1 left join ins_sample ins on ins.ins_order_id = io1.id LEFT JOIN ins_order io1 on io1.ifs_inventory_id = iiq.id and io1.order_type = #{dto.orderType} and io1.state != -1 left join ins_sample ins on ins.ins_order_id = io1.id where iiq.is_finish = 1 and iiq.inspect_status not in (0, 3) and iiq.inspect_status not in (0, 3) <if test="dto.beginDate != null and dto.beginDate != '' and dto.endDate != null and dto.endDate != ''"> and (io1.send_time between #{dto.beginDate} and #{dto.endDate}) </if> @@ -207,29 +316,29 @@ <!-- æ¥è¯¢æ£æµé¡¹éå --> <select id="getRawProductAnalysisList" resultType="com.ruoyi.basic.dto.IfsInventoryQuantitySupplierDto"> select iiq.*, io1.entrust_code, io1.id enter_order_id, ins.id sample_id, ins.sample_type, ins.sample sample_name, ins.model sample_model, u.name user_name, io1.send_time io1.entrust_code, io1.id enter_order_id, ins.id sample_id, ins.sample_type, ins.sample sample_name, ins.model sample_model, u.name user_name, io1.send_time from ifs_inventory_quantity iiq LEFT JOIN ins_order io1 on io1.ifs_inventory_id = iiq.id and io1.order_type = #{dto.orderType} and io1.state != -1 left join user u on io1.create_user = u.id left join (select is2.ins_order_id, is2.sample_type, is2.sample_code, is2.model, is2.sample, is2.id from ins_sample is2 group by is2.ins_order_id) ins on ins.ins_order_id = io1.id LEFT JOIN ins_order io1 on io1.ifs_inventory_id = iiq.id and io1.order_type = #{dto.orderType} and io1.state != -1 left join user u on io1.create_user = u.id left join (select is2.ins_order_id, is2.sample_type, is2.sample_code, is2.model, is2.sample, is2.id from ins_sample is2 group by is2.ins_order_id) ins on ins.ins_order_id = io1.id where iiq.is_finish = 1 and iiq.inspect_status not in (0, 3) and iiq.inspect_status not in (0, 3) <if test="dto.beginDate != null and dto.beginDate != '' and dto.endDate != null and dto.endDate != ''"> and (io1.send_time between #{dto.beginDate} and #{dto.endDate}) </if> @@ -244,26 +353,26 @@ </if> </select> <select id="getItemValueByOrderIds" resultType="com.ruoyi.inspect.vo.RawMaterialSupplierVo"> select io2.id orderId, io2.entrust_code, ins.sample, ins.model, iiq.supplier_name, (select ip.`last_value` from ins_product ip where concat(ip.inspection_item, ip.inspection_item_subclass) = #{itemName} and ip.ins_sample_id = ins.id limit 1) lastValue select io2.id orderId, io2.entrust_code, ins.sample, ins.model, iiq.supplier_name, (select ip.`last_value` from ins_product ip where concat(ip.inspection_item, ip.inspection_item_subclass) = #{itemName} and ip.ins_sample_id = ins.id limit 1) lastValue from ins_order io2 left join ifs_inventory_quantity iiq on io2.ifs_inventory_id = iiq.id left join (select is2.ins_order_id, is2.sample_type, is2.sample_code, is2.model, is2.sample, is2.id from ins_sample is2 group by is2.ins_order_id) ins on ins.ins_order_id = io2.id left join ifs_inventory_quantity iiq on io2.ifs_inventory_id = iiq.id left join (select is2.ins_order_id, is2.sample_type, is2.sample_code, is2.model, is2.sample, is2.id from ins_sample is2 group by is2.ins_order_id) ins on ins.ins_order_id = io2.id where io2.id in <foreach collection="insOrderIds" index="index" open="(" separator="," close=")" item="val"> #{val} @@ -272,7 +381,7 @@ <!-- æ¥è¯¢æ¬æä¸ä¸æåæ ¼çå¯¹æ¯ --> <select id="getRawUpMonth" resultType="java.util.Map"> select DATE_FORMAT(DATE_SUB(CURDATE(), INTERVAL 1 MONTH), '%Y-%m') as month, select DATE_FORMAT(DATE_SUB(CURDATE(), INTERVAL 1 MONTH), '%Y-%m') as month, (select ROUND((COUNT(*) - SUM(CASE WHEN inspect_status in (2, 4) THEN 1 ELSE 0 END)) / COUNT(*) * 100, 2) passRate @@ -282,10 +391,11 @@ and io1.state != -1 where iiq.is_finish = 1 and iiq.inspect_status not in (0, 3) and (io1.send_time between DATE_FORMAT(DATE_SUB(DATE_FORMAT(NOW(), '%Y-%m-01'), INTERVAL 1 MONTH), '%Y-%m-%d %H:%i:%s') and (io1.send_time between DATE_FORMAT(DATE_SUB(DATE_FORMAT(NOW(), '%Y-%m-01'), INTERVAL 1 MONTH), '%Y-%m-%d %H:%i:%s') and DATE_FORMAT(LAST_DAY(DATE_SUB(NOW(), INTERVAL 1 MONTH)), '%Y-%m-%d 23:59:59'))) passRate UNION ALL select DATE_FORMAT(CURRENT_DATE, '%Y-%m') as month, select DATE_FORMAT(CURRENT_DATE, '%Y-%m') as month, (select ROUND((COUNT(*) - SUM(CASE WHEN inspect_status in (2, 4) THEN 1 ELSE 0 END)) / COUNT(*) * 100, 2) passRate inspect-server/src/main/resources/mapper/InsOrderMapper.xml
@@ -417,13 +417,13 @@ iiq.part_desc, iiq.lot_batch_no, iiq.part_no, iiq.inspect_status as ins_state, ippr.insulation_color, ippr.outer_color, ippr.drum_no, ippr.start_meter_mark, ippr.end_meter_mark, io.update_time, io.ins_state, -- æ£éªäººæ¥è¯¢ï¼ä¼å åææ´¾çè´è´£äººï¼å¦ææ²¡æåå订åå建人 COALESCE(isu.userName, u.name) AS inspector_name FROM ifs_inventory_quantity iiq