From d9de769c21b1600d94f52eaceb4382aaa3523575 Mon Sep 17 00:00:00 2001 From: Crunchy <3114200645@qq.com> Date: 星期五, 19 七月 2024 17:55:09 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- inspect-server/src/main/java/com/yuanchu/mom/service/InsOrderService.java | 5 performance-server/src/main/java/com/yuanchu/mom/controller/AuxiliaryWorkingHoursDayController.java | 10 inspect-server/src/main/resources/mapper/InsSampleMapper.xml | 30 ++ inspect-server/src/main/java/com/yuanchu/mom/dto/CostStatisticsDto.java | 21 + performance-server/src/main/java/com/yuanchu/mom/dto/AuxiliaryOriginalHoursDto.java | 1 inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderPlanServiceImpl.java | 44 +++ inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderServiceImpl.java | 133 +++++++---- performance-server/src/main/java/com/yuanchu/mom/service/impl/AuxiliaryOutputWorkingHoursServiceImpl.java | 56 +++- performance-server/src/main/resources/mapper/AuxiliaryOriginalHoursMapper.xml | 2 performance-server/src/main/java/com/yuanchu/mom/service/impl/AuxiliaryOriginalHoursServiceImpl.java | 124 ++++++++++ inspect-server/src/main/java/com/yuanchu/mom/vo/InsOrderPlanVO.java | 6 performance-server/src/main/java/com/yuanchu/mom/service/impl/AuxiliaryWorkingHoursDayServiceImpl.java | 54 +++- inspect-server/src/main/resources/mapper/InsOrderMapper.xml | 120 ++++++++++ inspect-server/src/main/java/com/yuanchu/mom/controller/InsOrderController.java | 10 performance-server/src/main/java/com/yuanchu/mom/dto/HoursDay.java | 12 + performance-server/src/main/java/com/yuanchu/mom/service/AuxiliaryWorkingHoursDayService.java | 4 inspect-server/src/main/java/com/yuanchu/mom/pojo/InsProduct.java | 4 17 files changed, 525 insertions(+), 111 deletions(-) diff --git a/inspect-server/src/main/java/com/yuanchu/mom/controller/InsOrderController.java b/inspect-server/src/main/java/com/yuanchu/mom/controller/InsOrderController.java index 0af2a5a..169a309 100644 --- a/inspect-server/src/main/java/com/yuanchu/mom/controller/InsOrderController.java +++ b/inspect-server/src/main/java/com/yuanchu/mom/controller/InsOrderController.java @@ -23,6 +23,8 @@ import lombok.AllArgsConstructor; import org.springframework.web.bind.annotation.*; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; import java.util.List; @@ -179,4 +181,12 @@ public Result<?> labelPrinting(String ids) { return Result.success(insOrderService.labelPrinting(ids)); } + + @ValueClassify("璐圭敤缁熻") + @ApiOperation(value = "璐圭敤缁熻瀵煎嚭") + @PostMapping("/export") + public void export(@RequestBody Map<String, Object> data,HttpServletResponse response) throws Exception { + CostStatisticsDto costStatisticsDto = JackSonUtil.unmarshal(JackSonUtil.marshal(data.get("entity")), CostStatisticsDto.class); + insOrderService.export(costStatisticsDto,response); + } } \ No newline at end of file diff --git a/inspect-server/src/main/java/com/yuanchu/mom/dto/CostStatisticsDto.java b/inspect-server/src/main/java/com/yuanchu/mom/dto/CostStatisticsDto.java index 35b2b21..10d4e84 100644 --- a/inspect-server/src/main/java/com/yuanchu/mom/dto/CostStatisticsDto.java +++ b/inspect-server/src/main/java/com/yuanchu/mom/dto/CostStatisticsDto.java @@ -1,5 +1,7 @@ package com.yuanchu.mom.dto; +import com.alibaba.excel.annotation.ExcelIgnore; +import com.alibaba.excel.annotation.ExcelProperty; import com.baomidou.mybatisplus.annotation.TableField; import com.fasterxml.jackson.annotation.JsonFormat; import com.yuanchu.mom.annotation.ValueTableShow; @@ -14,39 +16,58 @@ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @ValueTableShow(value = 1, name = "涓嬪崟鏃堕棿") + @ExcelProperty(value ={"涓ぉ绉戞妧妫�娴嬩腑蹇冩牱鍝佺櫥璁拌〃","ZTT/QR-30-01-01","鏃ユ湡"}) private LocalDateTime createTime; @ValueTableShow(value = 2, name = "濮旀墭缂栧彿") + @ExcelProperty(value ={"涓ぉ绉戞妧妫�娴嬩腑蹇冩牱鍝佺櫥璁拌〃","ZTT/QR-30-01-01","妫�楠岀紪鍙�"}) private String entrustCode; @ValueTableShow(value = 3, name = "鏍峰搧鍚嶇О") + @ExcelProperty(value ={"涓ぉ绉戞妧妫�娴嬩腑蹇冩牱鍝佺櫥璁拌〃","鏍峰搧鍚嶇О"}) private String sample; @ValueTableShow(value = 4, name = "瑙勬牸鍨嬪彿") + @ExcelProperty(value ={"涓ぉ绉戞妧妫�娴嬩腑蹇冩牱鍝佺櫥璁拌〃","瑙勬牸鍨嬪彿"}) private String model; @ValueTableShow(value = 5, name = "鏍峰搧鏁伴噺") + @ExcelProperty(value ={"涓ぉ绉戞妧妫�娴嬩腑蹇冩牱鍝佺櫥璁拌〃","鏍峰搧鏁伴噺"}) private Integer num; @ValueTableShow(value = 6, name = "鎬讳环") + @ExcelProperty(value ={"涓ぉ绉戞妧妫�娴嬩腑蹇冩牱鍝佺櫥璁拌〃","鎬讳环"}) private BigDecimal price; @ValueTableShow(value = 7, name = "璇曢獙椤圭洰") + @ExcelProperty(value ={"涓ぉ绉戞妧妫�娴嬩腑蹇冩牱鍝佺櫥璁拌〃","璇曢獙椤圭洰"}) private String inspectionItem; @ValueTableShow(value = 8, name = "濮旀墭鍗曚綅") + @ExcelProperty(value ={"涓ぉ绉戞妧妫�娴嬩腑蹇冩牱鍝佺櫥璁拌〃","濮旀墭鍗曚綅"}) private String company; @ValueTableShow(value = 9, name = "濮旀墭浜�") + @ExcelProperty(value ={"涓ぉ绉戞妧妫�娴嬩腑蹇冩牱鍝佺櫥璁拌〃","濮旀墭浜�"}) private String name; + @ExcelProperty(value ={"涓ぉ绉戞妧妫�娴嬩腑蹇冩牱鍝佺櫥璁拌〃","鐢熶骇鍗曚綅"}) + private String production; + + @ExcelProperty(value ={"涓ぉ绉戞妧妫�娴嬩腑蹇冩牱鍝佺櫥璁拌〃","宸ョ▼鍚嶇О"}) + private String engineering; + + @ExcelIgnore private Integer createUser; + @ExcelIgnore private Integer insSampleId; + @ExcelIgnore private Double cost;//宸ユ椂 @TableField(exist = false,select = false) + @ExcelIgnore private String dates; diff --git a/inspect-server/src/main/java/com/yuanchu/mom/pojo/InsProduct.java b/inspect-server/src/main/java/com/yuanchu/mom/pojo/InsProduct.java index 14dd76e..a0f694d 100644 --- a/inspect-server/src/main/java/com/yuanchu/mom/pojo/InsProduct.java +++ b/inspect-server/src/main/java/com/yuanchu/mom/pojo/InsProduct.java @@ -221,4 +221,8 @@ private Integer insFibersId; private Integer standardMethodListId; + + //杩斿洖鐨�20搴﹀父娓╃殑璁$畻鍊�(娓╁害寰幆) + @TableField(exist = false ,select = false) + private String complue; } \ No newline at end of file diff --git a/inspect-server/src/main/java/com/yuanchu/mom/service/InsOrderService.java b/inspect-server/src/main/java/com/yuanchu/mom/service/InsOrderService.java index f00cc68..2479a02 100644 --- a/inspect-server/src/main/java/com/yuanchu/mom/service/InsOrderService.java +++ b/inspect-server/src/main/java/com/yuanchu/mom/service/InsOrderService.java @@ -6,6 +6,9 @@ import com.yuanchu.mom.dto.*; import com.yuanchu.mom.pojo.InsOrder; +import javax.servlet.ServletException; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; import java.util.List; import java.util.Map; @@ -41,4 +44,6 @@ int updateStatus(Integer id); List<SampleProductDto3> labelPrinting(String ids); + + void export(CostStatisticsDto costStatisticsDto,HttpServletResponse response)throws IOException, ServletException; } diff --git a/inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderPlanServiceImpl.java b/inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderPlanServiceImpl.java index 6bf6f97..192afae 100644 --- a/inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderPlanServiceImpl.java +++ b/inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderPlanServiceImpl.java @@ -136,9 +136,10 @@ public Map<String, Object> selectInsOrderPlanList(Page page, InsOrderPlanDTO insOrderPlanDTO) { Map<String, Object> map = new HashMap<>(); map.put("head", PrintChina.printChina(InsOrderPlanVO.class)); - Map<String, Integer> map1 = getLook.selectPowerByMethodAndUserId(null); - Integer userId = map1.get("userId"); - if (ObjectUtil.isNotEmpty(insOrderPlanDTO.getUserId())) { + Integer userId = null; + if (ObjectUtil.isNotEmpty(insOrderPlanDTO.getUserId()) ) { + Map<String, Integer> map1 = getLook.selectPowerByMethodAndUserId(null); + userId = map1.get("userId"); insOrderPlanDTO.setUserId(userId.longValue()); } IPage<InsOrderPlanVO> insOrderPage = insSampleMapper.findInsSampleAndOrder(page, QueryWrappers.queryWrappers(insOrderPlanDTO), userId); @@ -217,7 +218,11 @@ List<String> collect = new ArrayList<>(); List<InsSample> insSamples = insSampleMapper.selectList(Wrappers.<InsSample>lambdaQuery().eq(InsSample::getInsOrderId, orderId).select(InsSample::getId)); List<Integer> ids = insSamples.stream().map(a -> a.getId()).collect(Collectors.toList()); - List<InsProduct> insProducts = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery().in(InsProduct::getInsSampleId, ids).eq(InsProduct::getSonLaboratory, laboratory).eq(InsProduct::getState, 1).eq(InsProduct::getInsResult, 0)); + List<InsProduct> insProducts = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery() + .in(InsProduct::getInsSampleId, ids) + .eq(InsProduct::getSonLaboratory, laboratory) + .eq(InsProduct::getState, 1) + .eq(InsProduct::getInsResult, 0)); if (insProducts.size() > 0) { collect = insProducts.stream().map(insProduct -> { return insProduct.getInspectionItem() + "-" + insProduct.getInspectionItemSubclass(); @@ -361,6 +366,16 @@ if (ObjectUtils.isNotEmpty(insProductResult)) { insProduct.setInsProductResult(insProductResult); } + //姹傚悓绛夋潯浠朵笅1娆″惊鐜�20搴﹀父娓╃殑璁$畻鍊� + InsProductResult insProductResult1 = insProductResultMapper.selectOne(Wrappers.<InsProductResult>lambdaQuery().eq(InsProductResult::getInsProductId,insProductMapper.selectOne(Wrappers.<InsProduct>lambdaQuery() + .eq(InsProduct::getInsSampleId,sampleId) + .eq(InsProduct::getInspectionItem, "1") + .eq(InsProduct::getInspectionItemSubclass, "20鈩�(甯告俯)") + .eq(InsProduct::getInspectionItemClass, insProduct.getInspectionItemClass()) + .eq(InsProduct::getInsFiberId, fiber.getId())).getId() )); + if (!insProductResult1.getComValue().equals("[]")) { + insProduct.setComplue(insProductResult1.getComValue().split(":")[1].split("\"")[1]); + } productVo.setInsProduct(insProduct); productVos.add(productVo); } @@ -383,6 +398,16 @@ productVo.setColor(fiber.getColor()); productVo.setBushColor(fiber.getBushColor()); insProduct.setInsProductResult(insProductResult); + //姹傚悓绛夋潯浠朵笅1娆″惊鐜�20搴﹀父娓╃殑璁$畻鍊� + InsProductResult insProductResult1 = insProductResultMapper.selectOne(Wrappers.<InsProductResult>lambdaQuery().eq(InsProductResult::getInsProductId,insProductMapper.selectOne(Wrappers.<InsProduct>lambdaQuery() + .eq(InsProduct::getInsSampleId,sampleId) + .eq(InsProduct::getInspectionItem, "1") + .eq(InsProduct::getInspectionItemSubclass, "20鈩�(甯告俯)") + .eq(InsProduct::getInspectionItemClass, insProduct.getInspectionItemClass()) + .eq(InsProduct::getInsFiberId, fiber.getId())).getId() )); + if (!insProductResult1.getComValue().equals("[]")) { + insProduct.setComplue(insProductResult1.getComValue().split(":")[1].split("\"")[1]); + } productVo.setInsProduct(insProduct); productVos.add(productVo); } @@ -434,6 +459,8 @@ JSONObject insValue = JSON.parseObject(JSON.toJSONString(o)); Map<String, Object> map = new HashMap<>(); map.put("v", JSON.parseObject(JSON.toJSONString(insValue.get("v"))).get("v")); + map.put("r", JSON.toJSONString(insValue.get("r"))); + map.put("c", JSON.toJSONString(insValue.get("c"))); try { if ((insValue.get("u") == null || insValue.get("u").equals("")) && StrUtil.isNotEmpty(JSON.parseObject(JSON.toJSONString(insValue.get("v"))).get("v").toString())) { map.put("u", userId + ""); @@ -3341,7 +3368,6 @@ map2.put(product.getTemplateId(), standardTemplateService.getStandTempThingById(product.getTemplateId()) + ""); thing = map2.get(product.getTemplateId()); } -// thing = map2.get(product.getTemplateId()); if (StrUtil.isNotEmpty(thing)) { JSONObject sheet = JSON.parseObject(JSON.toJSONString(JSON.parseArray(JSON.toJSONString(JSON.parseObject(thing).get("data"))).get(0))); JSONObject config = JSON.parseObject(JSON.toJSONString(sheet.get("config"))); @@ -3360,7 +3386,13 @@ public int submitPlan(Integer orderId, String laboratory, Integer verifyUser) { List<InsSample> insSamples = insSampleMapper.selectList(Wrappers.<InsSample>lambdaQuery().eq(InsSample::getInsOrderId, orderId).select(InsSample::getId)); List<Integer> ids = insSamples.stream().map(a -> a.getId()).collect(Collectors.toList()); - List<InsProduct> insProducts = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery().in(InsProduct::getInsSampleId, ids).eq(InsProduct::getSonLaboratory, laboratory).eq(InsProduct::getState, 1).isNull(InsProduct::getInsResult).isNull(InsProduct::getInsFiberId).isNull(InsProduct::getInsFibersId)); + List<InsProduct> insProducts = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery() + .in(InsProduct::getInsSampleId, ids) + .eq(InsProduct::getSonLaboratory, laboratory) + .eq(InsProduct::getState, 1) + .isNull(InsProduct::getInsResult) + .isNull(InsProduct::getInsFiberId) + .isNull(InsProduct::getInsFibersId)); insProducts.addAll(insProductMapper.selectFiberInsProduct(ids, laboratory)); if (insProducts.size() > 0) { String str = ""; diff --git a/inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderServiceImpl.java b/inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderServiceImpl.java index 103b180..c9689b7 100644 --- a/inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderServiceImpl.java +++ b/inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderServiceImpl.java @@ -2,6 +2,10 @@ import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; +import com.alibaba.excel.EasyExcel; +import com.alibaba.excel.ExcelWriter; +import com.alibaba.excel.write.metadata.WriteSheet; +import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy; import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; @@ -25,6 +29,10 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import javax.servlet.ServletException; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.net.URLEncoder; import java.time.LocalDate; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; @@ -84,13 +92,13 @@ Integer roleId = user.getRoleId(); //鑾峰彇褰撳墠浜烘墍灞炲疄楠屽id String departLimsId = user.getDepartLimsId(); - String laboratory=null; - if (ObjectUtils.isNotEmpty(departLimsId) && !departLimsId.equals("")){ + String laboratory = null; + if (ObjectUtils.isNotEmpty(departLimsId) && !departLimsId.equals("")) { String[] split = departLimsId.split(","); - //鏌ヨ瀵瑰簲鏋舵瀯鍚嶇О(閫氫俊瀹為獙瀹�,鐢靛姏瀹為獙瀹�,妫�娴嬪姙) - String departLims=baseMapper.seldepLimsId(Integer.parseInt(split[split.length - 1])); - if (departLims.contains("瀹為獙瀹�")){ - laboratory=departLims; + //鏌ヨ瀵瑰簲鏋舵瀯鍚嶇О(閫氫俊瀹為獙瀹�,鐢靛姏瀹為獙瀹�,妫�娴嬪姙) + String departLims = baseMapper.seldepLimsId(Integer.parseInt(split[split.length - 1])); + if (departLims.contains("瀹為獙瀹�")) { + laboratory = departLims; } } //鍒ゆ柇鏄惁鏄叏閮ㄦ潈闄� @@ -108,7 +116,7 @@ } } } - map.put("body", insOrderMapper.selectInsOrderPage(page, QueryWrappers.queryWrappers(sampleOrderDto),laboratory)); + map.put("body", insOrderMapper.selectInsOrderPage(page, QueryWrappers.queryWrappers(sampleOrderDto), laboratory)); return map; } @@ -336,6 +344,8 @@ //鍒ゆ柇鐑惊鐜」鐩殑娣诲姞鍜屾俯鍗囪瘯楠岄」鐩殑娣诲姞 else if (product.getInspectionItem().equals("鐑惊鐜�") || product.getInspectionItem().equals("娓╁崌璇曢獙")) { List<InsProduct> insProductess = new ArrayList<>(); + product.setId(null); + product.setInsSampleId(sampleId); insProductess.add(product); List<InsProduct> insProductes = new ArrayList<>(); List<InsProduct> insProducts = new ArrayList<>(); @@ -363,8 +373,6 @@ insProduct.setInspectionItemType("0"); insProduct.setInspectionValueType("1"); insProducts.add(insProduct); - insProductes.add(insProduct); - insProductess.add(insProduct); } //鐑惊鐜墠鏈夊娆″惊鐜鏁� if (product.getInspectionItem().equals("鐑惊鐜�")) { @@ -379,20 +387,19 @@ insProductess.add(insProduct1); } } - if (count > 1) { - //寰幆瓒呰繃1娆� - for (int j = 2; j <= count; j++) { - for (InsProduct insProduct : insProductes) { - InsProduct insProduct1 = new InsProduct(); - BeanUtils.copyProperties(insProduct, insProduct1); - insProduct1.setInspectionItem(j + "");//寰幆娆℃暟 - insProductess.add(insProduct1); - } + if (count > 1) { + //寰幆瓒呰繃1娆� + for (int j = 2; j <= count; j++) { + for (InsProduct insProduct : insProductes) { + InsProduct insProduct1 = new InsProduct(); + BeanUtils.copyProperties(insProduct, insProduct1); + insProduct1.setInspectionItem(j + "");//寰幆娆℃暟 + insProductess.add(insProduct1); } } + } insProductService.saveBatch(insProductess); - } - else { + } else { if (!is) { switch (type) { case 1: @@ -473,34 +480,22 @@ map.put("head", PrintChina.printChina(CostStatisticsDto.class)); Map<String, Integer> map1 = getLook.selectPowerByMethodAndUserId("costStatistics"); if (map1.get("look") == 1) costStatisticsDto.setCreateUser(map1.get("userId")); - IPage<CostStatisticsDto> costStatisticsDtoIPage = insOrderMapper.selectCostStatistics(page, QueryWrappers.queryWrappers(costStatisticsDto).ge("create_time", split[0]).le("create_time", split[1] + " 23:59:59")); - List<CostStatisticsDto> costStatisticsDtoList = costStatisticsDtoIPage.getRecords(); - for (CostStatisticsDto statisticsDto : costStatisticsDtoList) { - statisticsDto.setNum(1); - } - List<CostStatisticsDto> costStatisticsDtoList1 = deduplicateAndSumCounts(costStatisticsDtoList); - costStatisticsDtoIPage.setRecords(costStatisticsDtoList1); - map.put("body", costStatisticsDtoIPage); - return map; - } - private static List<CostStatisticsDto> deduplicateAndSumCounts(List<CostStatisticsDto> list) { - // 浣跨敤涓�涓� Map 鏉ュ瓨鏀惧凡缁忓嚭鐜拌繃鐨� inspectionItem + entrustCode + sample 鐨勭粍鍚� - Map<String, CostStatisticsDto> map = new HashMap<>(); - // 閬嶅巻鍒楄〃杩涜鍘婚噸鍜岃鏁� - for (CostStatisticsDto dto : list) { - String key = dto.getInspectionItem() + dto.getEntrustCode() + dto.getSample(); - if (map.containsKey(key)) { - // 濡傛灉宸茬粡瀛樺湪锛屽垯绱姞鏁伴噺 - CostStatisticsDto existingDto = map.get(key); - existingDto.setNum(existingDto.getNum() + dto.getNum()); - existingDto.setPrice(existingDto.getPrice().add(dto.getPrice())); + IPage<CostStatisticsDto> dtoIPage = insOrderMapper.selectCostStatistics(page, QueryWrappers.queryWrappers(costStatisticsDto).ge("create_time", split[0]).le("create_time", split[1] + " 23:59:59")); + List<CostStatisticsDto> collect = dtoIPage.getRecords().stream().map(dto -> { + Set<String> uniqueTags = new HashSet<>(); + if (dto.getInspectionItem().contains(",")) { + for (String s : dto.getInspectionItem().split(",")) { + uniqueTags.add(s.split("@")[0]); + } } else { - // 濡傛灉涓嶅瓨鍦紝鍒欐斁鍏� Map 涓� - map.put(key, dto); + uniqueTags.add(dto.getInspectionItem().split("@")[0]); } - } - // 灏� Map 涓殑鍊艰浆涓� List 杩斿洖 - return new ArrayList<>(map.values()); + dto.setInspectionItem(uniqueTags.toString()); + return dto; + }).collect(Collectors.toList()); + dtoIPage.setRecords(collect); + map.put("body", dtoIPage); + return map; } @Override @@ -511,16 +506,11 @@ costStatisticsDto.setDates(null); List<CostStatisticsDto> costStatisticsDtos = insOrderMapper.selectCostStatistics2(QueryWrappers.queryWrappers(costStatisticsDto).ge("create_time", split[0]).le("create_time", split[1] + " 23:59:59")); double totalPrice = costStatisticsDtos.stream() - .filter(distinctByKey(dto -> Arrays.asList(dto.getEntrustCode(), dto.getSample(), dto.getCost()))) .filter(dto -> dto.getPrice() != null) // 杩囨护鎺変环鏍间负 null 鐨勫璞� - .mapToDouble(value -> value.getPrice().doubleValue()) + .mapToDouble(value -> value.getPrice().doubleValue() * value.getNum()) .sum(); map.put("total", totalPrice); return map; - } - public static <T> Predicate<T> distinctByKey(Function<? super T, ?> keyExtractor) { - Map<Object, Boolean> seen = new ConcurrentHashMap<>(); - return t -> seen.putIfAbsent(keyExtractor.apply(t), Boolean.TRUE) == null; } @Override @@ -558,6 +548,45 @@ }).collect(Collectors.toList()); return sampleProductDto3s; } + + @Override + public void export(CostStatisticsDto costStatisticsDto,HttpServletResponse response) throws IOException { + //鏌ヨ瀵煎嚭鐨勮垂鐢ㄧ粺璁℃暟鎹� + String dates = costStatisticsDto.getDates(); + String[] split = dates.replaceAll("\\[", "").replaceAll("]", "").replaceAll("\"", "").split(","); + costStatisticsDto.setDates(null); + List<CostStatisticsDto> costStatisticsDtos = insOrderMapper.selectCostStatistics2(QueryWrappers.queryWrappers(costStatisticsDto).ge("create_time", split[0]).le("create_time", split[1] + " 23:59:59")); + costStatisticsDtos = costStatisticsDtos.stream().map(dto -> { + Set<String> uniqueTags = new HashSet<>(); + if (dto.getInspectionItem().contains(",")) { + for (String s : dto.getInspectionItem().split(",")) { + uniqueTags.add(s.split("@")[0]); + } + } else { + uniqueTags.add(dto.getInspectionItem().split("@")[0]); + } + dto.setInspectionItem(uniqueTags.toString()); + return dto; + }).collect(Collectors.toList()); + + response.setContentType("application/vnd.ms-excel"); + response.setCharacterEncoding("UTF-8"); + // 杩欓噷URLEncoder.encode鍙互闃叉涓枃涔辩爜 褰撶劧鍜宔asyexcel娌℃湁鍏崇郴 + String fileName = URLEncoder.encode("鏍峰搧璐圭敤缁熻瀵煎嚭", "UTF-8"); + response.setHeader("Content-disposition", "attachment;filename=" + fileName + ".xlsx"); + try { + // 鏂板缓ExcelWriter + ExcelWriter excelWriter = EasyExcel.write(response.getOutputStream()).registerWriteHandler(new LongestMatchColumnWidthStyleStrategy()).build(); + + WriteSheet mainSheet = EasyExcel.writerSheet( "鏍峰搧璐圭敤缁熻瀵煎嚭").head(CostStatisticsDto.class).build(); + excelWriter.write(costStatisticsDtos, mainSheet); + + // 鍏抽棴娴� + excelWriter.finish(); + } catch (IOException e) { + throw new RuntimeException("瀵煎嚭澶辫触"); + } + } } diff --git a/inspect-server/src/main/java/com/yuanchu/mom/vo/InsOrderPlanVO.java b/inspect-server/src/main/java/com/yuanchu/mom/vo/InsOrderPlanVO.java index 2f724d6..d4e6ec2 100644 --- a/inspect-server/src/main/java/com/yuanchu/mom/vo/InsOrderPlanVO.java +++ b/inspect-server/src/main/java/com/yuanchu/mom/vo/InsOrderPlanVO.java @@ -22,6 +22,11 @@ @ValueTableShow(value = 5,name = "鐘舵��") private String insState; + @ValueTableShow(value = 5,name = "璐熻矗浜�") + private String userName; + + private Integer userId; + @ValueTableShow(value = 8,name = "妫�楠屽紑濮嬫椂闂�") private String insTime; @@ -34,7 +39,6 @@ @ValueTableShow(value = 8,name = "鐞嗙敱") private String verifyTell; - private Integer userId; private String sonLaboratory; diff --git a/inspect-server/src/main/resources/mapper/InsOrderMapper.xml b/inspect-server/src/main/resources/mapper/InsOrderMapper.xml index a0b49ae..8c0fbce 100644 --- a/inspect-server/src/main/resources/mapper/InsOrderMapper.xml +++ b/inspect-server/src/main/resources/mapper/InsOrderMapper.xml @@ -146,7 +146,7 @@ </select> <select id="selectCostStatistics" resultType="com.yuanchu.mom.dto.CostStatisticsDto"> select * from ( - SELECT + <!--SELECT i.id, i.entrust_code, i.create_time, @@ -170,7 +170,55 @@ SEPARATOR ',') inspection_item2 from ins_product where state = 1 GROUP BY ins_sample_id,man_hour_group) b GROUP BY b.ins_sample_id) c ON c.ins_sample_id = isa.id where (i.state = 1 or i.state = 3 or i.state = 4) - ) a + ) a--> + SELECT A.id, + A.entrust_code, + A.create_time, + A.sample, + A.model, + A.inspection_item, + A.company, + A.`name`, + COUNT(1) num, + SUM(A.price) price, + SUM(A.cost) cost + FROM + (SELECT + i.id, + i.entrust_code, + i.create_time, + isa.sample, + isa.sample_code, + isa.model, + c.price, + c.cost, + c.inspection_item, + cus.company, + u.`name`, + i.create_user, + c.ins_sample_id + FROM + ins_order i + LEFT JOIN ins_sample isa ON isa.ins_order_id = i.id + LEFT JOIN `user` u ON u.id = i.user_id + left join custom cus on cus.id = u.company + LEFT JOIN (select SUM(b.price) price, sum(b.man_hour) cost,b.ins_sample_id, + GROUP_CONCAT(b.inspection_item2 + SEPARATOR ',') + inspection_item from (select * , + GROUP_CONCAT(CONCAT(inspection_item,'@',inspection_item_subclass) SEPARATOR ',')inspection_item2 from ins_product where state = 1 and template_id IS NOT NULL GROUP BY ins_sample_id,man_hour_group) b GROUP + BY b.ins_sample_id) c ON c.ins_sample_id = isa.id + where (i.state = 1 or i.state = 3 or i.state = 4) and c.ins_sample_id IS not NULL)A + GROUP BY + A.id, + A.entrust_code, + A.create_time, + A.sample, + A.model, + A.inspection_item, + A.company, + A.`name` + ) B <if test="ew.customSqlSegment != null and ew.customSqlSegment != ''"> ${ew.customSqlSegment} </if> @@ -310,7 +358,7 @@ <select id="selectCostStatistics2" resultType="com.yuanchu.mom.dto.CostStatisticsDto"> select * from ( - SELECT + <!--SELECT i.id, i.entrust_code, i.create_time, @@ -333,7 +381,71 @@ SEPARATOR ',') inspection_item2 from ins_product where state = 1 GROUP BY ins_sample_id,man_hour_group) b GROUP BY b.ins_sample_id) c ON c.ins_sample_id = isa.id where (i.state = 1 or i.state = 3 or i.state = 4) - ) a + ) a--> + SELECT A.id, + A.entrust_code, + A.create_time, + A.sample, + A.model, + A.inspection_item, + A.company, + A.`name`, + production, + engineering, + COUNT(1) num, + SUM(A.price) price, + SUM(A.cost) cost + FROM + (SELECT + i.id, + i.entrust_code, + i.create_time, + isa.sample, + isa.sample_code, + isa.model, + c.price, + c.cost, + c.inspection_item, + cus.company, + u.`name`, + i.create_user, + c.ins_sample_id, + production, + engineering + FROM + ins_order i + LEFT JOIN ins_sample isa ON isa.ins_order_id = i.id + LEFT JOIN `user` u ON u.id = i.user_id + left join custom cus on cus.id = u.company + LEFT JOIN (select SUM(b.price) price, sum(b.man_hour) cost,b.ins_sample_id, + GROUP_CONCAT(b.inspection_item2 + SEPARATOR ',') + inspection_item from (select * , + GROUP_CONCAT(CONCAT(inspection_item,'',inspection_item_subclass) SEPARATOR ',')inspection_item2 from ins_product where state = 1 and template_id IS NOT NULL GROUP BY ins_sample_id,man_hour_group) b GROUP + BY b.ins_sample_id) c ON c.ins_sample_id = isa.id + where (i.state = 1 or i.state = 3 or i.state = 4) and c.ins_sample_id IS not NULL)A + GROUP BY + A.id, + A.entrust_code, + A.create_time, + A.sample, + A.model, + A.inspection_item, + A.company, + A.`name`, + production, + engineering + ORDER BY + A.id, + A.entrust_code, + A.create_time, + A.sample, + A.model, + A.inspection_item, + A.company, + A.`name`, + production, + engineering) B <if test="ew.customSqlSegment != null and ew.customSqlSegment != ''"> ${ew.customSqlSegment} </if> diff --git a/inspect-server/src/main/resources/mapper/InsSampleMapper.xml b/inspect-server/src/main/resources/mapper/InsSampleMapper.xml index e822231..c644e16 100644 --- a/inspect-server/src/main/resources/mapper/InsSampleMapper.xml +++ b/inspect-server/src/main/resources/mapper/InsSampleMapper.xml @@ -27,7 +27,7 @@ <select id="findInsSampleAndOrder" resultType="com.yuanchu.mom.vo.InsOrderPlanVO"> select * from(select * from( SELECT - a.*,ios.ins_state,ios.verify_tell,isu2.order_user_id,(ios.verify_user = #{userId}) verify_user + a.*,ios.ins_state,ios.verify_tell,isu2.order_user_id,<!--(ios.verify_user = #{userId})--> verify_user FROM ( SELECT @@ -38,28 +38,48 @@ io.send_time, group_concat(distinct isa.sample,' ') sample, isu.user_id, + user.name userName, ip.son_laboratory, io.ins_time FROM ins_order io LEFT JOIN ins_sample isa ON isa.ins_order_id = io.id - LEFT JOIN ( SELECT * FROM ins_sample_user GROUP BY ins_sample_id, user_id ) isu ON isu.ins_sample_id = io.id + LEFT JOIN ( <!--SELECT * FROM ins_sample_user GROUP BY ins_sample_id, user_id --> + SELECT * + FROM ins_sample_user u + WHERE (ins_sample_id, id) IN ( + SELECT ins_sample_id, MAX(id) + FROM ins_sample_user + GROUP BY ins_sample_id + ) + ORDER BY ins_sample_id, id + ) isu ON isu.ins_sample_id = io.id LEFT JOIN ins_product ip ON ip.ins_sample_id = isa.id + LEFT JOIN user ON isu.user_id = user.id WHERE io.state = 1 # AND io.ins_state != 5 and send_time is not null - and (isu.user_id = #{userId} OR isu.user_id is NULL) + <if test="userId !=null and userId!=''"> + and (isu.user_id = #{userId} OR isu.user_id is NULL ) + </if> + OR isu.user_id is NULL + GROUP BY ip.son_laboratory, io.id ) a LEFT JOIN ins_order_state ios ON ios.ins_order_id = a.id AND ios.laboratory = a.son_laboratory left join (SELECT td.user_id order_user_id, td.ins_sample_id FROM ins_sample_user td,(SELECT max(id) id FROM - ins_sample_user GROUP BY ins_sample_id) md where td.id = md.id and user_id = #{userId}) isu2 on + ins_sample_user GROUP BY ins_sample_id) md where td.id = md.id + <if test="userId !=null and userId!=''"> + and user_id = #{userId} OR user_id is NULL + </if> + OR user_id is NULL + ) isu2 on isu2.ins_sample_id = a.id ORDER BY - a.user_id DESC, + <!--a.user_id DESC,--> a.type DESC, a.id ) b diff --git a/performance-server/src/main/java/com/yuanchu/mom/controller/AuxiliaryWorkingHoursDayController.java b/performance-server/src/main/java/com/yuanchu/mom/controller/AuxiliaryWorkingHoursDayController.java index e65f7e3..3cc5cb5 100644 --- a/performance-server/src/main/java/com/yuanchu/mom/controller/AuxiliaryWorkingHoursDayController.java +++ b/performance-server/src/main/java/com/yuanchu/mom/controller/AuxiliaryWorkingHoursDayController.java @@ -3,6 +3,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.yuanchu.mom.annotation.ValueClassify; import com.yuanchu.mom.dto.AuxiliaryWorkingHoursDayDto; +import com.yuanchu.mom.dto.HoursDay; import com.yuanchu.mom.pojo.AuxiliaryWorkingHours; import com.yuanchu.mom.pojo.AuxiliaryWorkingHoursDay; import com.yuanchu.mom.service.AuxiliaryWorkingHoursDayService; @@ -20,6 +21,7 @@ import javax.annotation.Resource; import java.time.LocalDateTime; +import java.util.List; import java.util.Map; /** @@ -72,15 +74,15 @@ @ValueClassify("宸ユ椂绠$悊") @ApiOperation(value = "鎵瑰噯宸ユ椂缁熻鐨勮緟鍔╁伐鏃�") @PostMapping("/approve") - public Result approve(@RequestBody AuxiliaryWorkingHoursDay auxiliaryWorkingHoursDay) { - return Result.success(auxiliaryWorkingHoursDayService.checkOrApprove(auxiliaryWorkingHoursDay)); + public Result approve(@RequestBody HoursDay hoursDay ) { + return Result.success(auxiliaryWorkingHoursDayService.checkOrApprove(hoursDay)); } @ValueClassify("宸ユ椂绠$悊") @ApiOperation(value = "瀹℃牳宸ユ椂缁熻鐨勮緟鍔╁伐鏃�") @PostMapping("/check") - public Result check(@RequestBody AuxiliaryWorkingHoursDay auxiliaryWorkingHoursDay ) { - return Result.success(auxiliaryWorkingHoursDayService.checkOrApprove(auxiliaryWorkingHoursDay)); + public Result check(@RequestBody HoursDay hoursDay ) { + return Result.success(auxiliaryWorkingHoursDayService.checkOrApprove(hoursDay)); } @ValueClassify("宸ユ椂绠$悊") diff --git a/performance-server/src/main/java/com/yuanchu/mom/dto/AuxiliaryOriginalHoursDto.java b/performance-server/src/main/java/com/yuanchu/mom/dto/AuxiliaryOriginalHoursDto.java index 740adfa..a1ff994 100644 --- a/performance-server/src/main/java/com/yuanchu/mom/dto/AuxiliaryOriginalHoursDto.java +++ b/performance-server/src/main/java/com/yuanchu/mom/dto/AuxiliaryOriginalHoursDto.java @@ -5,6 +5,7 @@ import com.yuanchu.mom.annotation.ValueTableShow; import com.yuanchu.mom.pojo.AuxiliaryCorrectionHours; import io.swagger.annotations.ApiModelProperty; +import lombok.Builder; import lombok.Data; import java.text.DecimalFormat; diff --git a/performance-server/src/main/java/com/yuanchu/mom/dto/HoursDay.java b/performance-server/src/main/java/com/yuanchu/mom/dto/HoursDay.java new file mode 100644 index 0000000..22bc6b0 --- /dev/null +++ b/performance-server/src/main/java/com/yuanchu/mom/dto/HoursDay.java @@ -0,0 +1,12 @@ +package com.yuanchu.mom.dto; + +import com.yuanchu.mom.pojo.AuxiliaryWorkingHoursDay; +import lombok.Data; + +import java.util.List; + +@Data +public class HoursDay { + + private List<AuxiliaryWorkingHoursDay> auxiliaryWorkingHoursDays; +} diff --git a/performance-server/src/main/java/com/yuanchu/mom/service/AuxiliaryWorkingHoursDayService.java b/performance-server/src/main/java/com/yuanchu/mom/service/AuxiliaryWorkingHoursDayService.java index 86669a0..fd84bcd 100644 --- a/performance-server/src/main/java/com/yuanchu/mom/service/AuxiliaryWorkingHoursDayService.java +++ b/performance-server/src/main/java/com/yuanchu/mom/service/AuxiliaryWorkingHoursDayService.java @@ -2,11 +2,13 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.yuanchu.mom.dto.AuxiliaryWorkingHoursDayDto; +import com.yuanchu.mom.dto.HoursDay; import com.yuanchu.mom.pojo.AuxiliaryWorkingHours; import com.yuanchu.mom.pojo.AuxiliaryWorkingHoursDay; import com.baomidou.mybatisplus.extension.service.IService; import java.time.LocalDateTime; +import java.util.List; import java.util.Map; /** @@ -25,7 +27,7 @@ AuxiliaryWorkingHoursDay selectAuxiliaryWorkingHoursByNumber(String number); - int checkOrApprove(AuxiliaryWorkingHoursDay auxiliaryWorkingHoursDay); + boolean checkOrApprove(HoursDay hoursDay); int updateAuxiliaryWorkingHoursDay(AuxiliaryWorkingHoursDay auxiliaryWorkingHoursDay); diff --git a/performance-server/src/main/java/com/yuanchu/mom/service/impl/AuxiliaryOriginalHoursServiceImpl.java b/performance-server/src/main/java/com/yuanchu/mom/service/impl/AuxiliaryOriginalHoursServiceImpl.java index 2230285..51ec8c7 100644 --- a/performance-server/src/main/java/com/yuanchu/mom/service/impl/AuxiliaryOriginalHoursServiceImpl.java +++ b/performance-server/src/main/java/com/yuanchu/mom/service/impl/AuxiliaryOriginalHoursServiceImpl.java @@ -19,6 +19,7 @@ import com.yuanchu.mom.pojo.User; import com.yuanchu.mom.service.AuxiliaryOriginalHoursService; import com.yuanchu.mom.utils.QueryWrappers; +import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import javax.annotation.Resource; @@ -26,10 +27,7 @@ import java.io.IOException; import java.net.URLEncoder; import java.text.DecimalFormat; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; import java.util.stream.Collectors; @Service @@ -110,19 +108,95 @@ originalHoursDtoIPage.setSize(page.getSize()); originalHoursDtoIPage.setCurrent(page.getCurrent()); List<AuxiliaryOriginalHoursDto> auxiliaryOriginalHoursDtos = new ArrayList<>(); + Map<String, AuxiliaryOriginalHoursDto> data1 = new HashMap<>(); + Map<String, AuxiliaryOriginalHoursDto> data2 = new HashMap<>(); //浜ч噺宸ユ椂 List<Map<String, Object>> maps = auxiliaryOutputWorkingHoursMapper.totalHours(auxiliaryOriginalHoursLookDto.getMonth(), ids); if (ObjectUtils.isNotEmpty(maps)) { - auxiliaryOriginalHoursDtos.addAll(getData(maps, "浜ч噺宸ユ椂").values()); + data1 = getData(maps, "浜ч噺宸ユ椂"); + auxiliaryOriginalHoursDtos.addAll(data1.values()); } //杈呭姪宸ユ椂 List<Map<String, Object>> maps1 = auxiliaryWorkingHoursDayMapper.totalHours(auxiliaryOriginalHoursLookDto.getMonth(), ids); if (ObjectUtils.isNotEmpty(maps1)) { - auxiliaryOriginalHoursDtos.addAll(getData(maps1, "杈呭姪宸ユ椂").values()); + data2 = getData(maps1, "杈呭姪宸ユ椂"); + auxiliaryOriginalHoursDtos.addAll(data2.values()); } //鍔犵彮宸ユ椂 - //鎬诲伐鏃� - List<Map<String, Object>> maps2 = auxiliaryOriginalHoursMapper.totalHours(auxiliaryOriginalHoursLookDto.getMonth(), ids); + //鎬诲伐鏃�=浜ч噺宸ユ椂+杈呭姪宸ユ椂+鍔犵彮宸ユ椂 + Map<String, AuxiliaryOriginalHoursDto> data4 = new HashMap<String, AuxiliaryOriginalHoursDto>(); + Map<String, AuxiliaryOriginalHoursDto> data3 = data1; + if (data1.size()>0) { + if (data2.size() > 0) { + for (Map.Entry<String, AuxiliaryOriginalHoursDto> entry : data2.entrySet()) { + String key = entry.getKey(); + AuxiliaryOriginalHoursDto value = entry.getValue(); + if (data3.containsKey(key)) { + for (Map.Entry<String, AuxiliaryOriginalHoursDto> dtoEntry : data3.entrySet()) { + if (dtoEntry.getKey().equals(key)) { + AuxiliaryOriginalHoursDto auxiliaryOriginalHoursDto = new AuxiliaryOriginalHoursDto(); + AuxiliaryOriginalHoursDto hoursDto = data3.get(key); + BeanUtils.copyProperties(hoursDto, auxiliaryOriginalHoursDto); + auxiliaryOriginalHoursDto.setType("鎬诲伐鏃�"); + auxiliaryOriginalHoursDto.setOneHours((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getOneHours()) ? auxiliaryOriginalHoursDto.getOneHours() : 0) + (ObjectUtils.isNotEmpty(value.getOneHours()) ? value.getOneHours() : 0)); + auxiliaryOriginalHoursDto.setTwoHours((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getTwoHours()) ? auxiliaryOriginalHoursDto.getTwoHours() : 0) + (ObjectUtils.isNotEmpty(value.getTwoHours()) ? value.getTwoHours() : 0)); + auxiliaryOriginalHoursDto.setThreeHours((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getThreeHours()) ? auxiliaryOriginalHoursDto.getThreeHours() : 0) + (ObjectUtils.isNotEmpty(value.getThreeHours()) ? value.getThreeHours() : 0)); + auxiliaryOriginalHoursDto.setFourHours((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getFourHours()) ? auxiliaryOriginalHoursDto.getFourHours() : 0) + (ObjectUtils.isNotEmpty(value.getFourHours()) ? value.getFourHours() : 0)); + auxiliaryOriginalHoursDto.setFiveHours((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getFiveHours()) ? auxiliaryOriginalHoursDto.getFiveHours() : 0) + (ObjectUtils.isNotEmpty(value.getFiveHours()) ? value.getFiveHours() : 0)); + auxiliaryOriginalHoursDto.setSixHours((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getSixHours()) ? auxiliaryOriginalHoursDto.getSixHours() : 0) + (ObjectUtils.isNotEmpty(value.getSixHours()) ? value.getSixHours() : 0)); + auxiliaryOriginalHoursDto.setSevenHours((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getSevenHours()) ? auxiliaryOriginalHoursDto.getSevenHours() : 0) + (ObjectUtils.isNotEmpty(value.getSevenHours()) ? value.getSevenHours() : 0)); + auxiliaryOriginalHoursDto.setEightHours((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getEightHours()) ? auxiliaryOriginalHoursDto.getEightHours() : 0) + (ObjectUtils.isNotEmpty(value.getEightHours()) ? value.getEightHours() : 0)); + auxiliaryOriginalHoursDto.setNineHours((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getNineHours()) ? auxiliaryOriginalHoursDto.getNineHours() : 0) + (ObjectUtils.isNotEmpty(value.getNineHours()) ? value.getNineHours() : 0)); + auxiliaryOriginalHoursDto.setTenHours((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getTenHours()) ? auxiliaryOriginalHoursDto.getTenHours() : 0) + (ObjectUtils.isNotEmpty(value.getTenHours()) ? value.getTenHours() : 0)); + auxiliaryOriginalHoursDto.setElevenHours((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getElevenHours()) ? auxiliaryOriginalHoursDto.getElevenHours() : 0) + (ObjectUtils.isNotEmpty(value.getElevenHours()) ? value.getElevenHours() : 0)); + auxiliaryOriginalHoursDto.setTwelveHours((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getTwelveHours()) ? auxiliaryOriginalHoursDto.getTwelveHours() : 0) + (ObjectUtils.isNotEmpty(value.getTwelveHours()) ? value.getTwelveHours() : 0)); + auxiliaryOriginalHoursDto.setThirteenHours((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getThirteenHours()) ? auxiliaryOriginalHoursDto.getThirteenHours() : 0) + (ObjectUtils.isNotEmpty(value.getThirteenHours()) ? value.getThirteenHours() : 0)); + auxiliaryOriginalHoursDto.setFourteenHours((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getFourteenHours()) ? auxiliaryOriginalHoursDto.getFourteenHours() : 0) + (ObjectUtils.isNotEmpty(value.getFourteenHours()) ? value.getFourteenHours() : 0)); + auxiliaryOriginalHoursDto.setFifteenHours((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getFifteenHours()) ? auxiliaryOriginalHoursDto.getFifteenHours() : 0) + (ObjectUtils.isNotEmpty(value.getFifteenHours()) ? value.getFifteenHours() : 0)); + auxiliaryOriginalHoursDto.setSixteenHours((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getSixteenHours()) ? auxiliaryOriginalHoursDto.getSixteenHours() : 0) + (ObjectUtils.isNotEmpty(value.getSixteenHours()) ? value.getSixteenHours() : 0)); + auxiliaryOriginalHoursDto.setSeventeenHours((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getSeventeenHours()) ? auxiliaryOriginalHoursDto.getSeventeenHours() : 0) + (ObjectUtils.isNotEmpty(value.getSeventeenHours()) ? value.getSeventeenHours() : 0)); + auxiliaryOriginalHoursDto.setEighteenHours((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getEighteenHours()) ? auxiliaryOriginalHoursDto.getEighteenHours() : 0) + (ObjectUtils.isNotEmpty(value.getEighteenHours()) ? value.getEighteenHours() : 0)); + auxiliaryOriginalHoursDto.setNineteenHours((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getNineteenHours()) ? auxiliaryOriginalHoursDto.getNineteenHours() : 0) + (ObjectUtils.isNotEmpty(value.getNineteenHours()) ? value.getNineteenHours() : 0)); + auxiliaryOriginalHoursDto.setTwelveHours((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getTwelveHours()) ? auxiliaryOriginalHoursDto.getTwelveHours() : 0) + (ObjectUtils.isNotEmpty(value.getTwelveHours()) ? value.getTwelveHours() : 0)); + auxiliaryOriginalHoursDto.setTwentyOneHours((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getTwentyOneHours()) ? auxiliaryOriginalHoursDto.getTwentyOneHours() : 0) + (ObjectUtils.isNotEmpty(value.getTwentyOneHours()) ? value.getTwentyOneHours() : 0)); + auxiliaryOriginalHoursDto.setTwentyTwoHours((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getTwentyTwoHours()) ? auxiliaryOriginalHoursDto.getTwentyTwoHours() : 0) + (ObjectUtils.isNotEmpty(value.getTwentyTwoHours()) ? value.getTwentyTwoHours() : 0)); + auxiliaryOriginalHoursDto.setTwentyThreeHours((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getTwentyThreeHours()) ? auxiliaryOriginalHoursDto.getTwentyThreeHours() : 0) + (ObjectUtils.isNotEmpty(value.getTwentyThreeHours()) ? value.getTwentyThreeHours() : 0)); + auxiliaryOriginalHoursDto.setTwentyFourHours((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getTwentyFourHours()) ? auxiliaryOriginalHoursDto.getTwentyFourHours() : 0) + (ObjectUtils.isNotEmpty(value.getTwentyFourHours()) ? value.getTwentyFourHours() : 0)); + auxiliaryOriginalHoursDto.setTwentyFiveHours((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getTwentyFiveHours()) ? auxiliaryOriginalHoursDto.getTwentyFiveHours() : 0) + (ObjectUtils.isNotEmpty(value.getTwentyFiveHours()) ? value.getTwentyFiveHours() : 0)); + auxiliaryOriginalHoursDto.setTwentySixHours((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getTwentySixHours()) ? auxiliaryOriginalHoursDto.getTwentySixHours() : 0) + (ObjectUtils.isNotEmpty(value.getTwentySixHours()) ? value.getTwentySixHours() : 0)); + auxiliaryOriginalHoursDto.setTwentySevenHours((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getTwentySevenHours()) ? auxiliaryOriginalHoursDto.getTwentySevenHours() : 0) + (ObjectUtils.isNotEmpty(value.getTwentySevenHours()) ? value.getTwentySevenHours() : 0)); + auxiliaryOriginalHoursDto.setTwentyEightHours((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getTwentyEightHours()) ? auxiliaryOriginalHoursDto.getTwentyEightHours() : 0) + (ObjectUtils.isNotEmpty(value.getTwentyEightHours()) ? value.getTwentyEightHours() : 0)); + auxiliaryOriginalHoursDto.setTwentyNineHours((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getTwentyNineHours()) ? auxiliaryOriginalHoursDto.getTwentyNineHours() : 0) + (ObjectUtils.isNotEmpty(value.getTwentyNineHours()) ? value.getTwentyNineHours() : 0)); + auxiliaryOriginalHoursDto.setThirtyHours((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getThirtyHours()) ? auxiliaryOriginalHoursDto.getThirtyHours() : 0) + (ObjectUtils.isNotEmpty(value.getThirtyHours()) ? value.getThirtyHours() : 0)); + auxiliaryOriginalHoursDto.setThirtyOneHours((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getThirtyOneHours()) ? auxiliaryOriginalHoursDto.getThirtyOneHours() : 0) + (ObjectUtils.isNotEmpty(value.getThirtyOneHours()) ? value.getThirtyOneHours() : 0)); + auxiliaryOriginalHoursDto.setTotal((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getTotal()) ? auxiliaryOriginalHoursDto.getTotal() : 0) + (ObjectUtils.isNotEmpty(value.getTotal()) ? value.getTotal() : 0)); + data4.put(key, auxiliaryOriginalHoursDto); + } else { + AuxiliaryOriginalHoursDto hoursDto = data3.get(dtoEntry.getKey()); + AuxiliaryOriginalHoursDto dto = new AuxiliaryOriginalHoursDto(); + BeanUtils.copyProperties(hoursDto, dto); + dto.setType("鎬诲伐鏃�"); + data4.put(dtoEntry.getKey(), dto); + } + } + } else { + value.setType("鎬诲伐鏃�"); + data4.put(key, value); + } + } + } + else { + for (Map.Entry<String, AuxiliaryOriginalHoursDto> entry : data3.entrySet()) { + AuxiliaryOriginalHoursDto dto = entry.getValue(); + AuxiliaryOriginalHoursDto originalHoursDto = new AuxiliaryOriginalHoursDto(); + BeanUtils.copyProperties(dto, originalHoursDto); + originalHoursDto.setType("鎬诲伐鏃�"); + data4.put(entry.getKey(), originalHoursDto); + } + } + auxiliaryOriginalHoursDtos.addAll(data4.values()); + } + /*List<Map<String, Object>> maps2 = auxiliaryOriginalHoursMapper.totalHours(auxiliaryOriginalHoursLookDto.getMonth(), ids); if (ObjectUtils.isNotEmpty(maps2)) { //浜ч噺宸ユ椂+杈呭姪宸ユ椂閮戒笉涓虹┖ auxiliaryOriginalHoursDtos.addAll(getData(maps2, "鎬诲伐鏃�").values()); @@ -132,8 +206,37 @@ auxiliaryOriginalHoursDtos.addAll(getData(maps1, "鎬诲伐鏃�").values()); } else if (ObjectUtils.isNotEmpty(maps)) { auxiliaryOriginalHoursDtos.addAll(getData(maps, "鎬诲伐鏃�").values()); + }*/ + + auxiliaryOriginalHoursDtos = auxiliaryOriginalHoursDtos.stream().sorted(Comparator.comparing(AuxiliaryOriginalHoursDto::getName)).collect(Collectors.toList()); + // 妫�鏌ユ瘡涓汉鐨勫伐鏃剁被鍨嬶紝琛ュ叏缂哄皯鐨勫伐鏃� + Map<String, Set<String>> workHoursMap = new HashMap<>(); + String[] requiredHours = {"浜ч噺宸ユ椂", "杈呭姪宸ユ椂", "鍔犵彮宸ユ椂", "鎬诲伐鏃�"}; + for (AuxiliaryOriginalHoursDto dto : auxiliaryOriginalHoursDtos) { + workHoursMap.computeIfAbsent(dto.getName(), k -> new HashSet<>()).add(dto.getType()); } - originalHoursDtoIPage.setRecords(auxiliaryOriginalHoursDtos); + List<AuxiliaryOriginalHoursDto> result = auxiliaryOriginalHoursDtos; + for (String name1 : workHoursMap.keySet()) { + Set<String> workTypes = workHoursMap.get(name1); + for (String requiredHour : requiredHours) { + if (!workTypes.contains(requiredHour)) { + AuxiliaryOriginalHoursDto auxiliaryOriginalHoursDto = new AuxiliaryOriginalHoursDto(); + auxiliaryOriginalHoursDto.setName(name1); + auxiliaryOriginalHoursDto.setAuxiliaryCorrectionHours(null); + auxiliaryOriginalHoursDto.setType(requiredHour); + auxiliaryOriginalHoursDto.setMonth(auxiliaryOriginalHoursLookDto.getMonth()); + result.add(auxiliaryOriginalHoursDto); + } + } + } + List<String> order = Arrays.asList("浜ч噺宸ユ椂", "杈呭姪宸ユ椂", "鍔犵彮宸ユ椂", "鎬诲伐鏃�"); + Comparator<AuxiliaryOriginalHoursDto> comparator = Comparator.comparingInt(dto -> { + String type = dto.getType(); + return order.indexOf(type) == -1 ? order.size() : order.indexOf(type); + }); + result = result.stream().sorted(Comparator.comparing(AuxiliaryOriginalHoursDto::getName).thenComparing(comparator)).collect(Collectors.toList()); + originalHoursDtoIPage.setRecords(result); + originalHoursDtoIPage.setTotal(result.size()); map.put("body", originalHoursDtoIPage); return map; } @@ -192,7 +295,6 @@ .eq(AuxiliaryCorrectionHours::getType, auxiliaryOriginalHoursDto.getType()) .eq(AuxiliaryCorrectionHours::getMonth, auxiliaryOriginalHoursDto.getMonth())); auxiliaryOriginalHoursDto.setAuxiliaryCorrectionHours(auxiliaryCorrectionHours); - dtoMap.put(name, auxiliaryOriginalHoursDto); } AuxiliaryCorrectionHours auxiliaryCorrectionHours = auxiliaryOriginalHoursDto.getAuxiliaryCorrectionHours(); switch (objectMap.get("month").toString().substring(8, 10)) { @@ -479,6 +581,8 @@ ); DecimalFormat df = new DecimalFormat("#.####"); // 璁惧畾鍥涗綅灏忔暟 auxiliaryOriginalHoursDto.setTotal(Double.parseDouble(df.format(auxiliaryOriginalHoursDto.getTotal()))); + + dtoMap.put(name, auxiliaryOriginalHoursDto); } return dtoMap; } diff --git a/performance-server/src/main/java/com/yuanchu/mom/service/impl/AuxiliaryOutputWorkingHoursServiceImpl.java b/performance-server/src/main/java/com/yuanchu/mom/service/impl/AuxiliaryOutputWorkingHoursServiceImpl.java index ee1d698..131200a 100644 --- a/performance-server/src/main/java/com/yuanchu/mom/service/impl/AuxiliaryOutputWorkingHoursServiceImpl.java +++ b/performance-server/src/main/java/com/yuanchu/mom/service/impl/AuxiliaryOutputWorkingHoursServiceImpl.java @@ -5,6 +5,7 @@ import com.alibaba.excel.write.metadata.WriteSheet; import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -97,22 +98,38 @@ if (ObjectUtils.isNotEmpty(dates) && ObjectUtils.isNotEmpty(week)) { String[] split = dates.replaceAll("\\[", "").replaceAll("]", "").replaceAll("\"", "").split(","); String[] weeks = week.replaceAll("\\[", "").replaceAll("]", "").replaceAll("\"", "").split(","); - map.put("body", auxiliaryOutputWorkingHoursMapper.selectAuxiliaryOutputWorkingHours(page, + IPage<AuxiliaryOutputWorkingHoursDto> auxiliaryOutputWorkingHoursDtoIPage = auxiliaryOutputWorkingHoursMapper.selectAuxiliaryOutputWorkingHours(page, QueryWrappers.queryWrappers(auxiliaryOutputWorkingHoursDto) .ge("date_time", split[0]).le("date_time", split[1] + " 23:59:59") - .ge("week", weeks[0]).le("week", weeks[1]), ids)); + .ge("week", weeks[0]).le("week", weeks[1]), ids); + for (AuxiliaryOutputWorkingHoursDto record : auxiliaryOutputWorkingHoursDtoIPage.getRecords()) { + record.setDateTime(record.getDateTime().substring(0,10)); + } + map.put("body",auxiliaryOutputWorkingHoursDtoIPage ); } else if (ObjectUtils.isNotEmpty(dates) && ObjectUtils.isEmpty(week)) { String[] split = dates.replaceAll("\\[", "").replaceAll("]", "").replaceAll("\"", "").split(","); - map.put("body", auxiliaryOutputWorkingHoursMapper.selectAuxiliaryOutputWorkingHours(page, + IPage<AuxiliaryOutputWorkingHoursDto> auxiliaryOutputWorkingHoursDtoIPage = auxiliaryOutputWorkingHoursMapper.selectAuxiliaryOutputWorkingHours(page, QueryWrappers.queryWrappers(auxiliaryOutputWorkingHoursDto) - .ge("date_time", split[0]).le("date_time", split[1] + " 23:59:59"), ids)); + .ge("date_time", split[0]).le("date_time", split[1] + " 23:59:59"), ids); + for (AuxiliaryOutputWorkingHoursDto record : auxiliaryOutputWorkingHoursDtoIPage.getRecords()) { + record.setDateTime(record.getDateTime().substring(0,10)); + } + map.put("body",auxiliaryOutputWorkingHoursDtoIPage ); } else if (ObjectUtils.isEmpty(dates) && ObjectUtils.isNotEmpty(week)) { String[] weeks = week.replaceAll("\\[", "").replaceAll("]", "").replaceAll("\"", "").split(","); - map.put("body", auxiliaryOutputWorkingHoursMapper.selectAuxiliaryOutputWorkingHours(page, + IPage<AuxiliaryOutputWorkingHoursDto> auxiliaryOutputWorkingHoursDtoIPage = auxiliaryOutputWorkingHoursMapper.selectAuxiliaryOutputWorkingHours(page, QueryWrappers.queryWrappers(auxiliaryOutputWorkingHoursDto) - .ge("week", weeks[0]).le("week", weeks[1]), ids)); + .ge("week", weeks[0]).le("week", weeks[1]), ids); + for (AuxiliaryOutputWorkingHoursDto record : auxiliaryOutputWorkingHoursDtoIPage.getRecords()) { + record.setDateTime(record.getDateTime().substring(0,10)); + } + map.put("body", auxiliaryOutputWorkingHoursDtoIPage); } else { - map.put("body", auxiliaryOutputWorkingHoursMapper.selectAuxiliaryOutputWorkingHours(page, QueryWrappers.queryWrappers(auxiliaryOutputWorkingHoursDto), ids)); + IPage<AuxiliaryOutputWorkingHoursDto> auxiliaryOutputWorkingHoursDtoIPage = auxiliaryOutputWorkingHoursMapper.selectAuxiliaryOutputWorkingHours(page, QueryWrappers.queryWrappers(auxiliaryOutputWorkingHoursDto), ids); + for (AuxiliaryOutputWorkingHoursDto record : auxiliaryOutputWorkingHoursDtoIPage.getRecords()) { + record.setDateTime(record.getDateTime().substring(0,10)); + } + map.put("body", auxiliaryOutputWorkingHoursDtoIPage); } return map; } @@ -122,17 +139,21 @@ public Map<String, Object> collectWorkingHours(AuxiliaryOutputWorkingHoursDto auxiliaryOutputWorkingHoursDto) { AuxiliaryOutputWorkingHours outputWorkingHours = new AuxiliaryOutputWorkingHours(); AuxiliaryWorkingHoursDay workingHoursDay = new AuxiliaryWorkingHoursDay(); + List<Integer> ids = new ArrayList<>(); + if (ObjectUtils.isNotEmpty(auxiliaryOutputWorkingHoursDto.getWeekDay())){ + outputWorkingHours.setWeekDay(auxiliaryOutputWorkingHoursDto.getWeekDay()); + workingHoursDay.setWeekDay(auxiliaryOutputWorkingHoursDto.getWeekDay()); + } if (ObjectUtils.isNotEmpty(auxiliaryOutputWorkingHoursDto.getName())){ - User user = userMapper.selectOne(Wrappers.<User>lambdaQuery().eq(User::getName, auxiliaryOutputWorkingHoursDto.getName())); - outputWorkingHours.setCheck(user.getId()); - workingHoursDay.setNameUser(user.getId()); + List<User> user = userMapper.selectList(Wrappers.<User>lambdaQuery().like(User::getName, auxiliaryOutputWorkingHoursDto.getName())); + ids.addAll(user.stream().map(User::getId).collect(Collectors.toList())); } String dates = auxiliaryOutputWorkingHoursDto.getDateTime(); auxiliaryOutputWorkingHoursDto.setDateTime(null); Map<String, Object> map = new HashMap<>(); Double sumOutputWorkTime = 0.0; Double sumApprovedWorkingHour = 0.0; - List<Integer> ids = null; + //鍒ゆ柇鏄粍闀胯繕鏄粍鍛樿繕鏄鐞嗗憳 Map<String, Integer> map1 = getLook.selectPowerByMethodAndUserId("selectAuxiliaryOutputWorkingHours"); User user = userMapper.selectById(map1.get("userId")); @@ -156,6 +177,9 @@ } List<AuxiliaryOutputWorkingHours> auxiliaryOutputWorkingHours = new ArrayList<>(); List<AuxiliaryWorkingHoursDay> auxiliaryWorkingHoursDays = new ArrayList<>(); + if (ids.size() == 0) { + ids=null; + } if (ObjectUtils.isNotEmpty(dates)) { String[] split = dates.replaceAll("\\[", "").replaceAll("]", "").replaceAll("\"", "").split(","); //缁熻褰撳墠鐢ㄦ埛鐨勪骇鍝佸伐鏃� @@ -167,7 +191,13 @@ .eq("state","宸叉壒鍑�") .ge("date_time", split[0]) .le("date_time", split[1] + " 23:59:59"),ids); - } else { + }else if (ObjectUtils.isNotEmpty(auxiliaryOutputWorkingHoursDto.getWeekDay())){ + //缁熻褰撳墠鐢ㄦ埛鐨勪骇鍝佸伐鏃� + auxiliaryOutputWorkingHours = auxiliaryOutputWorkingHoursMapper.selectLists(QueryWrappers.queryWrappers(outputWorkingHours),ids); + //缁熻褰撳墠鐢ㄦ埛鐨勮緟鍔╁伐鏃� + auxiliaryWorkingHoursDays = auxiliaryWorkingHoursDayMapper.selectLists(QueryWrappers.queryWrappers(workingHoursDay).eq("state","宸叉壒鍑�"),ids); + } + else { auxiliaryOutputWorkingHours = auxiliaryOutputWorkingHoursMapper.selectListByIds(ids); auxiliaryWorkingHoursDays = auxiliaryWorkingHoursDayMapper.selectListByIds(ids); } @@ -183,7 +213,7 @@ map.put("浜ч噺宸ユ椂姹囨��", sumOutputWorkTime); if (ObjectUtils.isNotEmpty(auxiliaryWorkingHoursDays)) { for (AuxiliaryWorkingHoursDay auxiliaryWorkingHoursDay : auxiliaryWorkingHoursDays) { - sumApprovedWorkingHour += auxiliaryWorkingHoursDay.getNonproductiveTime(); + sumApprovedWorkingHour += auxiliaryWorkingHoursDay.getReviewerNonproductiveTime();//澶嶆牳宸ユ椂 } } map.put("杈呭姪宸ユ椂姹囨��", sumApprovedWorkingHour); diff --git a/performance-server/src/main/java/com/yuanchu/mom/service/impl/AuxiliaryWorkingHoursDayServiceImpl.java b/performance-server/src/main/java/com/yuanchu/mom/service/impl/AuxiliaryWorkingHoursDayServiceImpl.java index c5814b9..80dcba5 100644 --- a/performance-server/src/main/java/com/yuanchu/mom/service/impl/AuxiliaryWorkingHoursDayServiceImpl.java +++ b/performance-server/src/main/java/com/yuanchu/mom/service/impl/AuxiliaryWorkingHoursDayServiceImpl.java @@ -1,11 +1,13 @@ package com.yuanchu.mom.service.impl; +import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.yuanchu.mom.common.GetLook; import com.yuanchu.mom.common.PrintChina; import com.yuanchu.mom.dto.AuxiliaryWorkingHoursDayDto; +import com.yuanchu.mom.dto.HoursDay; import com.yuanchu.mom.exception.ErrorException; import com.yuanchu.mom.mapper.*; import com.yuanchu.mom.pojo.*; @@ -86,28 +88,44 @@ ids.addAll(users.stream().map(User::getId).distinct().collect(Collectors.toList())); } } - if (ids.size()==0){ - ids=null; + if (ids.size() == 0) { + ids = null; } if (ObjectUtils.isNotEmpty(dates) && ObjectUtils.isNotEmpty(week)) { String[] split = dates.replaceAll("\\[", "").replaceAll("]", "").replaceAll("\"", "").split(","); String[] weeks = week.replaceAll("\\[", "").replaceAll("]", "").replaceAll("\"", "").split(","); - map.put("body", auxiliaryWorkingHoursDayMapper.selectAuxiliaryWorkingHoursDay(page, + IPage<AuxiliaryWorkingHoursDayDto> auxiliaryWorkingHoursDayDtoIPage = auxiliaryWorkingHoursDayMapper.selectAuxiliaryWorkingHoursDay(page, QueryWrappers.queryWrappers(auxiliaryWorkingHoursDayDto) .ge("date_time", split[0]).le("date_time", split[1] + " 23:59:59") - .ge("week", weeks[0]).le("week", weeks[1]), ids)); + .ge("week", weeks[0]).le("week", weeks[1]), ids); + for (AuxiliaryWorkingHoursDayDto record : auxiliaryWorkingHoursDayDtoIPage.getRecords()) { + record.setDateTime(record.getDateTime().substring(0, 10)); + } + map.put("body", auxiliaryWorkingHoursDayDtoIPage); } else if (ObjectUtils.isNotEmpty(dates) && ObjectUtils.isEmpty(week)) { String[] split = dates.replaceAll("\\[", "").replaceAll("]", "").replaceAll("\"", "").split(","); - map.put("body", auxiliaryWorkingHoursDayMapper.selectAuxiliaryWorkingHoursDay(page, + IPage<AuxiliaryWorkingHoursDayDto> auxiliaryWorkingHoursDayDtoIPage = auxiliaryWorkingHoursDayMapper.selectAuxiliaryWorkingHoursDay(page, QueryWrappers.queryWrappers(auxiliaryWorkingHoursDayDto) - .ge("date_time", split[0]).le("date_time", split[1] + " 23:59:59"), ids)); + .ge("date_time", split[0]).le("date_time", split[1] + " 23:59:59"), ids); + for (AuxiliaryWorkingHoursDayDto record : auxiliaryWorkingHoursDayDtoIPage.getRecords()) { + record.setDateTime(record.getDateTime().substring(0, 10)); + } + map.put("body", auxiliaryWorkingHoursDayDtoIPage); } else if (ObjectUtils.isEmpty(dates) && ObjectUtils.isNotEmpty(week)) { String[] weeks = week.replaceAll("\\[", "").replaceAll("]", "").replaceAll("\"", "").split(","); - map.put("body", auxiliaryWorkingHoursDayMapper.selectAuxiliaryWorkingHoursDay(page, + IPage<AuxiliaryWorkingHoursDayDto> auxiliaryWorkingHoursDayDtoIPage = auxiliaryWorkingHoursDayMapper.selectAuxiliaryWorkingHoursDay(page, QueryWrappers.queryWrappers(auxiliaryWorkingHoursDayDto) - .ge("week", weeks[0]).le("week", weeks[1]), ids)); + .ge("week", weeks[0]).le("week", weeks[1]), ids); + for (AuxiliaryWorkingHoursDayDto record : auxiliaryWorkingHoursDayDtoIPage.getRecords()) { + record.setDateTime(record.getDateTime().substring(0, 10)); + } + map.put("body", auxiliaryWorkingHoursDayDtoIPage); } else { - map.put("body", auxiliaryWorkingHoursDayMapper.selectAuxiliaryWorkingHoursDay(page, QueryWrappers.queryWrappers(auxiliaryWorkingHoursDayDto), ids)); + IPage<AuxiliaryWorkingHoursDayDto> auxiliaryWorkingHoursDayDtoIPage = auxiliaryWorkingHoursDayMapper.selectAuxiliaryWorkingHoursDay(page, QueryWrappers.queryWrappers(auxiliaryWorkingHoursDayDto), ids); + for (AuxiliaryWorkingHoursDayDto record : auxiliaryWorkingHoursDayDtoIPage.getRecords()) { + record.setDateTime(record.getDateTime().substring(0, 10)); + } + map.put("body", auxiliaryWorkingHoursDayDtoIPage); } return map; } @@ -136,12 +154,20 @@ //瀹℃牳/鎵瑰噯 @Override - public int checkOrApprove(AuxiliaryWorkingHoursDay auxiliaryWorkingHoursDay) { - if (auxiliaryWorkingHoursDay.getState().equals("宸插鏍�")) { - Integer userId = getLook.selectPowerByMethodAndUserId(null).get("userId"); - auxiliaryWorkingHoursDay.setReviewer(userMapper.selectById(userId).getName()); + public boolean checkOrApprove(HoursDay hoursDay) { + List<AuxiliaryWorkingHoursDay> auxiliaryWorkingHoursDays = hoursDay.getAuxiliaryWorkingHoursDays(); + for (AuxiliaryWorkingHoursDay auxiliaryWorkingHoursDay : auxiliaryWorkingHoursDays) { + if (auxiliaryWorkingHoursDay.getState().equals("宸插鏍�")) { + Integer userId = getLook.selectPowerByMethodAndUserId(null).get("userId"); + auxiliaryWorkingHoursDay.setReviewer(userMapper.selectById(userId).getName()); + } + if (auxiliaryWorkingHoursDay.getReviewerNumber() == null) { + auxiliaryWorkingHoursDay.setReviewerNumber(auxiliaryWorkingHoursDay.getAmount());//澶嶆牳鏁伴噺 + auxiliaryWorkingHoursDay.setReviewerNonproductiveTime(auxiliaryWorkingHoursDay.getNonproductiveTime());//澶嶆牳宸ユ椂 + } + } - return auxiliaryWorkingHoursDayMapper.updateById(auxiliaryWorkingHoursDay); + return updateBatchById(auxiliaryWorkingHoursDays); } //缂栬緫 diff --git a/performance-server/src/main/resources/mapper/AuxiliaryOriginalHoursMapper.xml b/performance-server/src/main/resources/mapper/AuxiliaryOriginalHoursMapper.xml index 0f7802d..9aee9af 100644 --- a/performance-server/src/main/resources/mapper/AuxiliaryOriginalHoursMapper.xml +++ b/performance-server/src/main/resources/mapper/AuxiliaryOriginalHoursMapper.xml @@ -2,7 +2,7 @@ <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" > <mapper namespace="com.yuanchu.mom.mapper.AuxiliaryOriginalHoursMapper"> <select id="totalHours" resultType="java.util.Map"> - select E.name, E.month, E.total + select E.name, E.month, E.total manHours from (select C.name, C.month, C.manHours + D.manHours as total from (select A.name, A.month, -- Gitblit v1.9.3