From 4b5c6891b92a186685b713627fe6701074b67435 Mon Sep 17 00:00:00 2001 From: lxp <1928192722@qq.com> Date: 星期五, 14 三月 2025 14:48:31 +0800 Subject: [PATCH] 工时管理1.0 --- performance-server/src/main/java/com/ruoyi/performance/service/AuxiliaryWorkingHoursService.java | 3 performance-server/src/main/java/com/ruoyi/performance/controller/AuxiliaryWorkingHoursController.java | 19 performance-server/src/main/java/com/ruoyi/performance/service/impl/AuxiliaryOriginalHoursServiceImpl.java | 446 ++++++++------- performance-server/src/main/java/com/ruoyi/performance/service/impl/AuxiliaryOutputWorkingHoursServiceImpl.java | 294 +++++---- performance-server/src/main/java/com/ruoyi/performance/dto/AuxiliaryOriginalHoursDto.java | 108 ++- performance-server/src/main/java/com/ruoyi/performance/service/AuxiliaryWorkingHoursDayService.java | 9 performance-server/src/main/java/com/ruoyi/performance/controller/AuxiliaryWorkingHoursDayController.java | 38 inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsOrderServiceImpl.java | 14 performance-server/src/main/resources/mapper/PerformanceShiftMapper.xml | 2 performance-server/src/main/java/com/ruoyi/performance/controller/PerformanceShiftController.java | 3 performance-server/src/main/java/com/ruoyi/performance/dto/AuxiliaryOutputWorkingHoursDto.java | 7 performance-server/src/main/java/com/ruoyi/performance/service/AuxiliaryOriginalHoursService.java | 11 performance-server/src/main/java/com/ruoyi/performance/controller/AuxiliaryOutputWorkingHoursController.java | 21 performance-server/src/main/java/com/ruoyi/performance/service/impl/AuxiliaryWorkingHoursDayServiceImpl.java | 245 +++++--- ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserRoleMapper.java | 22 performance-server/src/main/java/com/ruoyi/performance/controller/AuxiliaryCorrectionHoursController.java | 2 performance-server/src/main/java/com/ruoyi/performance/pojo/AuxiliaryOutputWorkingHours.java | 68 +- performance-server/src/main/resources/mapper/AuxiliaryOutputWorkingHoursMapper.xml | 127 +--- ruoyi-system/src/main/resources/mapper/system/SysUserRoleMapper.xml | 24 performance-server/src/main/java/com/ruoyi/performance/mapper/AuxiliaryOutputWorkingHoursMapper.java | 21 performance-server/src/main/java/com/ruoyi/performance/service/AuxiliaryOutputWorkingHoursService.java | 9 inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsProductServiceImpl.java | 21 performance-server/src/main/java/com/ruoyi/performance/service/impl/AuxiliaryWorkingHoursServiceImpl.java | 3 cnas-require/src/main/java/com/ruoyi/requier/service/impl/PkMasterServiceImpl.java | 39 inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsReportServiceImpl.java | 9 performance-server/src/main/java/com/ruoyi/performance/pojo/AuxiliaryCorrectionHours.java | 77 +- performance-server/src/main/java/com/ruoyi/performance/controller/AuxiliaryOriginalHoursController.java | 21 27 files changed, 869 insertions(+), 794 deletions(-) diff --git a/cnas-require/src/main/java/com/ruoyi/requier/service/impl/PkMasterServiceImpl.java b/cnas-require/src/main/java/com/ruoyi/requier/service/impl/PkMasterServiceImpl.java index cbafb5d..3625815 100644 --- a/cnas-require/src/main/java/com/ruoyi/requier/service/impl/PkMasterServiceImpl.java +++ b/cnas-require/src/main/java/com/ruoyi/requier/service/impl/PkMasterServiceImpl.java @@ -3,13 +3,17 @@ import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.date.DateTime; import cn.hutool.core.date.DateUtil; + import cn.hutool.core.util.ObjectUtil; + import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; + import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; import com.baomidou.mybatisplus.core.toolkit.Wrappers; + import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.basic.vo.StandardProductVO; import com.ruoyi.common.core.domain.entity.User; @@ -30,6 +34,7 @@ import com.ruoyi.requier.pojo.PkSlave; import com.ruoyi.requier.service.InsOrderPlanService; import com.ruoyi.requier.service.PkMasterService; +import com.ruoyi.requier.service.impl.InsOrderPlanServiceImpl; import com.ruoyi.system.mapper.UserMapper; import lombok.extern.slf4j.Slf4j; import org.apache.logging.log4j.util.Strings; @@ -96,11 +101,12 @@ @Resource private AuxiliaryOutputWorkingHoursMapper auxiliaryOutputWorkingHoursMapper; + //娓╁害寰幆鏁伴噰 @Override @Transactional(rollbackFor = Exception.class) public int temDataAcquisition(PkMaster pkMaster) { - Integer userId = SecurityUtils.getUserId().intValue(); + Integer userId = Integer.parseInt(SecurityUtils.getUserId().toString()); //鏌ヨ鏁伴噰鍏宠仈鐨勫瓙琛ㄤ俊鎭� PkMaster master = new PkMaster(); List<PkMaster> pkMasters = pkMasterMapper.selectList(Wrappers.<PkMaster>lambdaQuery() @@ -532,12 +538,12 @@ if(isWithinRange) { // 姝e父涓婄彮 auxiliaryOutputWorkingHours.setOrderNo(insOrder.getEntrustCode()); // 闈炲姞鐝鎵樺崟鍙� - auxiliaryOutputWorkingHours.setWorkTime(new BigDecimal(accuracy(manHour,count))); // 宸ユ椂 + auxiliaryOutputWorkingHours.setWorkTime(accuracy(manHour,count)); // 宸ユ椂 auxiliaryOutputWorkingHours.setAmount(count); // 闈炲姞鐝暟閲� }else{ // 鍔犵彮 auxiliaryOutputWorkingHours.setOvertimeOrderNo(insOrder.getEntrustCode()); // 闈炲姞鐝鎵樺崟鍙� - auxiliaryOutputWorkingHours.setOvertimeWorkTime(new BigDecimal(accuracy(manHour,count))); // 宸ユ椂 + auxiliaryOutputWorkingHours.setOvertimeWorkTime(accuracy(manHour,count)); // 宸ユ椂 auxiliaryOutputWorkingHours.setOvertimeAmount(count); // 闈炲姞鐝暟閲� } if(isCross) { @@ -547,15 +553,15 @@ String date = LocalDateTime.now().toLocalDate().atStartOfDay().format(formatters);// 褰撳ぉ auxiliaryOutputWorkingHours.setDateTime(date); // 鏃ユ湡 } - auxiliaryOutputWorkingHours.setOutputWorkTime(new BigDecimal(accuracy(manHour,count))); // 浜у嚭宸ユ椂 + auxiliaryOutputWorkingHours.setOutputWorkTime(accuracy(manHour,count)); // 浜у嚭宸ユ椂 auxiliaryOutputWorkingHours.setWeekDay(insOrderPlanServiceImpl.getWeek(LocalDateTime.now().format(formatters)));//鏄熸湡 auxiliaryOutputWorkingHours.setWeek(String.valueOf(DateUtil.weekOfYear(DateUtil.offsetDay(parse, 1))));//鍛ㄦ - auxiliaryOutputWorkingHours.setCheck(userId);//妫�娴嬩汉 + auxiliaryOutputWorkingHours.setCheckId(userId);//妫�娴嬩汉 auxiliaryOutputWorkingHours.setSample(insSample.getSampleCode());//鏍峰搧缂栧彿 auxiliaryOutputWorkingHours.setManHourGroup(workHourMap.getManHourGroup());//宸ユ椂鍒嗙粍 // 鏌ヨ闇�瑕佹搷浣滅殑鏃ユ湡鏄惁鏈夎褰� List<AuxiliaryOutputWorkingHours> oldRecords = auxiliaryOutputWorkingHoursMapper.selectList(Wrappers.<AuxiliaryOutputWorkingHours>lambdaQuery() - .eq(AuxiliaryOutputWorkingHours::getCheck,userId) + .eq(AuxiliaryOutputWorkingHours::getCheckId,userId) .eq(AuxiliaryOutputWorkingHours::getInspectionItem, "娓╁害寰幆") .eq(AuxiliaryOutputWorkingHours::getInspectionItemSubclass, "") .eq(AuxiliaryOutputWorkingHours::getSample, insSample.getSampleCode()) @@ -566,7 +572,7 @@ ); // 鎵�鏈夌殑璁板綍锛堝叾浠栧ぉ + 褰撳墠澶╋級 List<AuxiliaryOutputWorkingHours> addOldRecords = auxiliaryOutputWorkingHoursMapper.selectList(Wrappers.<AuxiliaryOutputWorkingHours>lambdaQuery() - .eq(AuxiliaryOutputWorkingHours::getCheck,userId) + .eq(AuxiliaryOutputWorkingHours::getCheckId,userId) .eq(AuxiliaryOutputWorkingHours::getInspectionItem, "娓╁害寰幆") .eq(AuxiliaryOutputWorkingHours::getInspectionItemSubclass, "") .eq(AuxiliaryOutputWorkingHours::getSample, insSample.getSampleCode()) @@ -588,14 +594,14 @@ if(isWithinRange) { // 姝e父涓婄彮 - auxiliaryOutputWorkingHours.setWorkTime(new BigDecimal(accuracy(manHour,(count - otherDayAmount + allValue)))); // 宸ユ椂 + auxiliaryOutputWorkingHours.setWorkTime(accuracy(manHour,(count - otherDayAmount + allValue))); // 宸ユ椂 auxiliaryOutputWorkingHours.setAmount((count - otherDayAmount + allValue)); // 闈炲姞鐝暟閲� }else { // 鍔犵彮 - auxiliaryOutputWorkingHours.setOvertimeWorkTime(new BigDecimal(accuracy(manHour,(count - otherDayAmount + allValue)))); // 宸ユ椂 + auxiliaryOutputWorkingHours.setOvertimeWorkTime(accuracy(manHour,(count - otherDayAmount + allValue))); // 宸ユ椂 auxiliaryOutputWorkingHours.setOvertimeAmount((count - otherDayAmount + allValue)); // 闈炲姞鐝暟閲� } - auxiliaryOutputWorkingHours.setOutputWorkTime(new BigDecimal(accuracy(manHour,(count - otherDayAmount + allValue)))); // 浜у嚭宸ユ椂 + auxiliaryOutputWorkingHours.setOutputWorkTime(accuracy(manHour,(count - otherDayAmount + allValue))); // 浜у嚭宸ユ椂 auxiliaryOutputWorkingHoursMapper.insert(auxiliaryOutputWorkingHours); } }else { @@ -616,19 +622,18 @@ int num = Objects.isNull(auxiliaryOutputWorkingHours1.getAmount()) ? 0 :auxiliaryOutputWorkingHours1.getAmount(); // 鍘熸湰鐨勬暟閲� auxiliaryOutputWorkingHours1.setAmount(count - oldAmount + num + allValue); // 闈炲姞鐝暟閲� auxiliaryOutputWorkingHours1.setOrderNo(insOrder.getEntrustCode()); // 闈炲姞鐝鎵樺崟鍙� - auxiliaryOutputWorkingHours1.setWorkTime(new BigDecimal(accuracy(manHour,(count - oldAmount + num + allValue)))); // 宸ユ椂 - BigDecimal outputWorkTime = new BigDecimal(accuracy(manHour, auxiliaryOutputWorkingHours1.getAmount())).add((Objects.isNull(auxiliaryOutputWorkingHours1.getOvertimeWorkTime()) ? new BigDecimal(0) : auxiliaryOutputWorkingHours1.getOvertimeWorkTime())); - auxiliaryOutputWorkingHours1.setOutputWorkTime(outputWorkTime);// 浜у嚭宸ユ椂 閲囬泦鑲畾鏄細閲囬泦瀹� + auxiliaryOutputWorkingHours1.setWorkTime(accuracy(manHour,(count - oldAmount + num + allValue))); // 宸ユ椂 + auxiliaryOutputWorkingHours1.setOutputWorkTime(accuracy(manHour,auxiliaryOutputWorkingHours1.getAmount()) + + (Objects.isNull(auxiliaryOutputWorkingHours1.getOvertimeWorkTime()) ? 0 : auxiliaryOutputWorkingHours1.getOvertimeWorkTime())); // 浜у嚭宸ユ椂 閲囬泦鑲畾鏄細閲囬泦瀹� }else{ // 鍔犵彮 // 鎷垮埌鍘熸湰鐨勬暟閲� 涓� 鏂扮殑鏁伴噺鐩稿姞 int num = Objects.isNull(auxiliaryOutputWorkingHours1.getOvertimeAmount()) ? 0 :auxiliaryOutputWorkingHours1.getOvertimeAmount(); // 鍘熸湰鐨勬暟閲� auxiliaryOutputWorkingHours1.setOvertimeAmount(count - oldAmount + num + allValue);// 鍔犵彮鏁伴噺 auxiliaryOutputWorkingHours1.setOvertimeOrderNo(insOrder.getEntrustCode()); // 鍔犵彮濮旀墭鍗曞彿 - auxiliaryOutputWorkingHours1.setOvertimeWorkTime(new BigDecimal(accuracy(manHour,(count - oldAmount + num + allValue)))); // 宸ユ椂 - BigDecimal outputWorkTime = new BigDecimal(accuracy(manHour, auxiliaryOutputWorkingHours1.getOvertimeAmount())).add( - (Objects.isNull(auxiliaryOutputWorkingHours1.getWorkTime()) ? new BigDecimal(0) : auxiliaryOutputWorkingHours1.getWorkTime())); - auxiliaryOutputWorkingHours1.setOutputWorkTime(outputWorkTime); // 浜у嚭宸ユ椂 閲囬泦鑲畾鏄細閲囬泦瀹� + auxiliaryOutputWorkingHours1.setOvertimeWorkTime(accuracy(manHour,(count - oldAmount + num + allValue))); // 宸ユ椂 + auxiliaryOutputWorkingHours1.setOutputWorkTime(accuracy(manHour,auxiliaryOutputWorkingHours1.getOvertimeAmount()) + + (Objects.isNull(auxiliaryOutputWorkingHours1.getWorkTime()) ? 0 : auxiliaryOutputWorkingHours1.getWorkTime())); // 浜у嚭宸ユ椂 閲囬泦鑲畾鏄細閲囬泦瀹� } auxiliaryOutputWorkingHoursMapper.updateById(auxiliaryOutputWorkingHours1); } diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsOrderServiceImpl.java b/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsOrderServiceImpl.java index ae37bf8..08b58e1 100644 --- a/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsOrderServiceImpl.java +++ b/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsOrderServiceImpl.java @@ -1029,6 +1029,7 @@ public List<Map<String, Object>> viewDetails(Map<String, Object> map) { List<Map<String, Object>> list = new ArrayList<>(); String inspectionItem = map.get("inspectionItem").toString(); // 妫�楠岄」 + String inspectionItemSubclass = map.get("inspectionItemSubclass").toString(); // 妫�楠屽瓙椤� if (inspectionItem.equals("鍗曟牴鍨傜洿鐕冪儳")) { ArrayList<Integer> numbers = new ArrayList<>(); InsProduct insProduct = insProductMapper.selectById(Integer.parseInt(map.get("insProductId").toString())); @@ -1144,10 +1145,9 @@ } else { // 鏉惧绠� 杩囨护鍑烘楠岄」鍚嶇О涓�鑷寸殑鏁版嵁 List<InsProduct> productList = insProductMapper.selectList(new LambdaQueryWrapper<InsProduct>() - .eq(InsProduct::getInsSampleId, Integer.parseInt(map.get("insSampleId").toString()))) - .stream() - .filter(item -> item.getInspectionItem().equals(inspectionItem)) - .collect(Collectors.toList()); + .eq(InsProduct::getInspectionItem, inspectionItem) + .eq(StringUtils.isNotEmpty(inspectionItemSubclass),InsProduct::getInspectionItemSubclass, inspectionItemSubclass) + .eq(InsProduct::getInsSampleId, Integer.parseInt(map.get("insSampleId").toString()))); for (InsProduct product : productList) { HashMap<String, Object> map2 = new HashMap<>(); map2.put("entrustCode", map.get("entrustCode")); // 濮旀墭缂栧彿 @@ -1160,12 +1160,6 @@ color = insBushingMapper.selectById(product.getInsBushId()).getColor(); // 濂楃 } map2.put("color", color); // 濂楃棰滆壊 -// InsProductResult result = insProductResultMapper.selectOne(new LambdaQueryWrapper<InsProductResult>() -// .eq(InsProductResult::getInsProductId, product.getId())); -// if(!Objects.isNull(result)) { -// List<Map> maps = JSONArray.parseArray(result.getInsValue(), Map.class); -// map2.put("insValue",maps.get(0).get("v").toString()); // 妫�楠岀粨鏋� -// } list.add(map2); } } diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsProductServiceImpl.java b/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsProductServiceImpl.java index 1d96a2c..8c42108 100644 --- a/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsProductServiceImpl.java +++ b/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsProductServiceImpl.java @@ -432,11 +432,13 @@ if(sampleIds.contains(insSample.getId())) { list = selectTemperatureByProductId(productId); }else { + // 灏嗘俯搴﹀惊鐜痠d杩囨护 + productIds = productIds.stream().filter(item -> !item.equals(productId)).collect(Collectors.toList()); // 鎾ら攢鐨勬槸妫�楠岄」 - List<InsProduct> productList = insProductMapper.selectList(new LambdaQueryWrapper<InsProduct>() + List<InsProduct> productList = insProductMapper.selectList(new LambdaQueryWrapper<InsProduct>() .eq(InsProduct::getState, 1) .eq(InsProduct::getSpecialItemParentId,productId) - .in(InsProduct::getId, productIds)); + .in(CollectionUtils.isNotEmpty(productIds),InsProduct::getId, productIds)); Map<String, List<InsProduct>> collect = productList.stream().collect(Collectors.groupingBy(InsProduct::getInspectionItem)); // 鎷垮埌寰幆娆℃暟 Iterator<Map.Entry<String, List<InsProduct>>> iterator = collect.entrySet().iterator(); @@ -475,12 +477,14 @@ if(sampleIds.contains(insSample.getId())) { list = selectTemperatureNumberByProductId(parentId, inspectionItem); }else { + // 杩囨护鍑烘俯搴﹀惊鐜殑id + productIds = productIds.stream().filter(item -> !item.equals(parentId)).collect(Collectors.toList()); // 鏌ヨ鎾ら攢鐨勬俯搴︾偣 List<InsProduct> productList = insProductMapper.selectList(new LambdaQueryWrapper<InsProduct>() .eq(InsProduct::getState, 1) .eq(InsProduct::getSpecialItemParentId, parentId) .eq(InsProduct::getInspectionItem, inspectionItem) - .in(InsProduct::getId, productIds)); + .in(CollectionUtils.isNotEmpty(productIds),InsProduct::getId, productIds)); // 鏍规嵁妫�楠屽瓙椤瑰緱鍒版俯搴︾偣 Map<String, List<InsProduct>> collect = productList.stream().collect(Collectors.groupingBy(InsProduct::getInspectionItemSubclass)); Iterator<Map.Entry<String, List<InsProduct>>> iterator = collect.entrySet().iterator(); @@ -525,7 +529,16 @@ List<InsProduct> productList = insProductMapper.selectList(new LambdaQueryWrapper<InsProduct>() .in(InsProduct::getId, productIds)); if(CollectionUtils.isNotEmpty(productList)) { - // 寰楀垽鏂竴涓� 鏄惁鍚湁娓╁害寰幆椤圭洰 + // 濡傛灉鎾ら攢鐨勯」鐩槸娓╁害寰幆 閭d箞鐩稿簲鐨勫瓙椤归渶瑕佸叏閮ㄦ挙閿� + List<InsProduct> collect3 = productList.stream().filter(item -> item.getInspectionItem().equals("娓╁害寰幆")).collect(Collectors.toList()); + if(CollectionUtils.isNotEmpty(collect3)) { + for (InsProduct a : collect3) { + insProductMapper.update(null,new LambdaUpdateWrapper<InsProduct>() + .set(InsProduct::getState,0) + .eq(InsProduct::getSpecialItemParentId,a.getId())); + } + } + // 濡傛灉鏄煇涓�涓俯搴� 鏄惁鍚湁娓╁害寰幆瀛愰」 List<InsProduct> collect2 = productList.stream().filter(item -> Objects.nonNull(item.getSpecialItemParentId()) && NumberUtil.isInteger(item.getInspectionItem())).collect(Collectors.toList()); if(CollectionUtils.isNotEmpty(collect2)) { diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsReportServiceImpl.java b/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsReportServiceImpl.java index e7a5ed2..fc78233 100644 --- a/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsReportServiceImpl.java +++ b/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsReportServiceImpl.java @@ -211,11 +211,12 @@ insReport.setId(id); insReport.setState(1); insReport.setWriteTime(LocalDateTime.now());//鎻愪氦鏃堕棿 - insReport.setWriteUserId(Integer.getInteger(SecurityUtils.getUserId().toString()));//鎻愪氦浜� + insReport.setWriteUserId(Integer.parseInt(SecurityUtils.getUserId().toString()));//鎻愪氦浜� //鑾峰彇鎻愪氦浜虹殑绛惧悕鍦板潃 String signatureUrl; try { - signatureUrl = userMapper.selectById(Integer.getInteger(SecurityUtils.getUserId().toString())).getSignatureUrl(); + Integer i = Integer.parseInt(SecurityUtils.getUserId().toString()); + signatureUrl = userMapper.selectById(i).getSignatureUrl(); } catch (Exception e) { throw new ErrorException("鎵句笉鍒扮紪鍒朵汉鐨勭鍚�"); } @@ -240,7 +241,7 @@ if (ObjectUtils.isNotEmpty(examineTell)) { insReport.setExamineTell(examineTell); } - insReport.setExamineUserId(Integer.getInteger(SecurityUtils.getUserId().toString()));//瀹℃牳浜� + insReport.setExamineUserId(Integer.parseInt(SecurityUtils.getUserId().toString()));//瀹℃牳浜� insReport.setExamineTime(LocalDateTime.now());//瀹℃牳鏃堕棿 if (isExamine == 0) { //濡傛灉瀹℃牳涓嶉�氳繃 @@ -276,7 +277,7 @@ if (ObjectUtils.isNotEmpty(ratifyTell)) { insReport.setRatifyTell(ratifyTell); } - insReport.setRatifyUserId(Integer.getInteger(SecurityUtils.getUserId().toString()));//鎵瑰噯浜� + insReport.setRatifyUserId(Integer.parseInt(SecurityUtils.getUserId().toString()));//鎵瑰噯浜� insReport.setRatifyTime(LocalDateTime.now());//鎵瑰噯鏃堕棿 if (isRatify == 0) { //濡傛灉鎵瑰噯涓嶉�氳繃 diff --git a/performance-server/src/main/java/com/ruoyi/performance/controller/AuxiliaryCorrectionHoursController.java b/performance-server/src/main/java/com/ruoyi/performance/controller/AuxiliaryCorrectionHoursController.java index 290e0f2..80cb612 100644 --- a/performance-server/src/main/java/com/ruoyi/performance/controller/AuxiliaryCorrectionHoursController.java +++ b/performance-server/src/main/java/com/ruoyi/performance/controller/AuxiliaryCorrectionHoursController.java @@ -35,7 +35,7 @@ AuxiliaryCorrectionHoursService auxiliaryCorrectionHoursService; @ApiOperation(value = "鏌ヨ淇宸ユ椂") - @PostMapping("/selectAuxiliaryCorrectionHours") + @GetMapping("/selectAuxiliaryCorrectionHours") public Result selectAuxiliaryCorrectionHours(Page page,AuxiliaryCorrectionHoursDto entity) throws Exception { return Result.success(auxiliaryCorrectionHoursService.selectAuxiliaryCorrectionHours(page, entity)); } diff --git a/performance-server/src/main/java/com/ruoyi/performance/controller/AuxiliaryOriginalHoursController.java b/performance-server/src/main/java/com/ruoyi/performance/controller/AuxiliaryOriginalHoursController.java index e70636c..c3f03e6 100644 --- a/performance-server/src/main/java/com/ruoyi/performance/controller/AuxiliaryOriginalHoursController.java +++ b/performance-server/src/main/java/com/ruoyi/performance/controller/AuxiliaryOriginalHoursController.java @@ -24,21 +24,20 @@ @Resource AuxiliaryOriginalHoursService auxiliaryOriginalHoursService; - @ApiOperation(value = "鏌ヨ鍘熷宸ユ椂") - @PostMapping("/selectAuxiliaryOriginalHours") + @ApiOperation(value = "宸ユ椂缁熻-鏌ョ湅鍘熷宸ユ椂鍒楄〃") + @GetMapping("/selectAuxiliaryOriginalHours") public Result selectAuxiliaryOriginalHours(Page page, AuxiliaryOriginalHoursLookDto entity) throws Exception { return Result.success(auxiliaryOriginalHoursService.selectAuxiliaryOriginalHours(page, entity)); } - @ApiOperation(value = "瀵煎嚭鍘熷宸ユ椂") + @ApiOperation(value = "宸ユ椂缁熻-瀵煎嚭鍘熷宸ユ椂") @PostMapping("/exportOriginalHours") - public void exportOriginalHours(@RequestParam("month") String month, @RequestParam("name") String name, @RequestParam("departLims") String departLims,HttpServletResponse response) throws IOException { - auxiliaryOriginalHoursService.exportWorkingHours(month,name,departLims,response); - } - - @ApiOperation(value = "鏌ヨ鏈堜唤鍏ㄩ儴宸ユ椂") - @PostMapping("/selectAuxiliaryAllByMonth") - public Result selectAuxiliaryAllByMonth(@RequestBody AuxiliaryOriginalHoursLookDto dto){ - return Result.success(auxiliaryOriginalHoursService.selectAuxiliaryAllByMonth(dto)); + public void exportOriginalHours( + Page page, + @RequestParam("month") String month, + @RequestParam(value = "name",required = false) String name, + @RequestParam(value = "departLims",required = false) String departLims, + HttpServletResponse response) throws IOException { + auxiliaryOriginalHoursService.exportWorkingHours(page,month,name,departLims,response); } } diff --git a/performance-server/src/main/java/com/ruoyi/performance/controller/AuxiliaryOutputWorkingHoursController.java b/performance-server/src/main/java/com/ruoyi/performance/controller/AuxiliaryOutputWorkingHoursController.java index 5fb7d13..3158c0d 100644 --- a/performance-server/src/main/java/com/ruoyi/performance/controller/AuxiliaryOutputWorkingHoursController.java +++ b/performance-server/src/main/java/com/ruoyi/performance/controller/AuxiliaryOutputWorkingHoursController.java @@ -1,5 +1,4 @@ package com.ruoyi.performance.controller; - import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.common.core.domain.Result; import com.ruoyi.common.utils.JackSonUtil; @@ -32,8 +31,8 @@ @Resource private AuxiliaryOutputWorkingHoursService auxiliaryOutputWorkingHoursService; - @ApiOperation(value = "鏌ヨ浜ч噺宸ユ椂") - @PostMapping("/selectAuxiliaryOutputWorkingHours") + @ApiOperation(value = "鏃ュ伐鏃剁鐞�-鏌ョ湅浜ч噺宸ユ椂鍒楄〃") + @GetMapping("/selectAuxiliaryOutputWorkingHours") public Result selectAuxiliaryOutputWorkingHours(Page page,AuxiliaryOutputWorkingHoursDto entity) throws Exception { return Result.success(auxiliaryOutputWorkingHoursService.selectAuxiliaryOutputWorkingHours(page, entity)); } @@ -45,8 +44,7 @@ return Result.success(auxiliaryOutputWorkingHoursService.collectWorkingHours(entity)); } - - @ApiOperation(value = "瀵煎嚭浜ч噺宸ユ椂+杈呭姪宸ユ椂") + @ApiOperation(value = "鏃ュ伐鏃剁鐞�-瀵煎嚭") @GetMapping("/exportWorkingHours") public void exportWorkingHours(HttpServletResponse response) throws IOException { auxiliaryOutputWorkingHoursService.exportWorkingHours(response); @@ -56,19 +54,6 @@ @PostMapping("/leader") public Result leader() { return Result.success(); - } - - - /** - * 瀵煎嚭浜ч噺宸ユ椂 - * @param response - * @throws IOException - */ - @ApiOperation(value = "瀵煎嚭浜ч噺宸ユ椂") - @PostMapping("/exportOutputHours") - public void exportOutputHours(@RequestBody Map<String, Object> data, HttpServletResponse response) throws Exception { - AuxiliaryOutputWorkingHoursDto entity = JackSonUtil.unmarshal(JackSonUtil.marshal(data.get("entity")), AuxiliaryOutputWorkingHoursDto.class); - auxiliaryOutputWorkingHoursService.exportOutputHours(entity, response); } } diff --git a/performance-server/src/main/java/com/ruoyi/performance/controller/AuxiliaryWorkingHoursController.java b/performance-server/src/main/java/com/ruoyi/performance/controller/AuxiliaryWorkingHoursController.java index bab8fc7..3eba06e 100644 --- a/performance-server/src/main/java/com/ruoyi/performance/controller/AuxiliaryWorkingHoursController.java +++ b/performance-server/src/main/java/com/ruoyi/performance/controller/AuxiliaryWorkingHoursController.java @@ -2,16 +2,14 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.common.core.domain.Result; +import com.ruoyi.common.core.dto.UserPageDto; import com.ruoyi.common.utils.JackSonUtil; import com.ruoyi.performance.pojo.AuxiliaryWorkingHours; import com.ruoyi.performance.service.AuxiliaryWorkingHoursService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.AllArgsConstructor; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import java.util.Map; @@ -33,27 +31,28 @@ private AuxiliaryWorkingHoursService auxiliaryWorkingHoursService; @ApiOperation(value="鏌ヨ杈呭姪宸ユ椂") - @PostMapping("/selectAuxiliaryWorkingHours") + @GetMapping("/selectAuxiliaryWorkingHours") public Result selectAuxiliaryWorkingHours(Page page,AuxiliaryWorkingHours entity) throws Exception { return Result.success(auxiliaryWorkingHoursService.selectAuxiliaryWorkingHours(page,entity)); } - @ApiOperation(value="鍒犻櫎杈呭姪宸ユ椂") + @ApiOperation(value="杈呭姪宸ユ椂閰嶇疆-鍒犻櫎") @PostMapping("/deleteAuxiliaryWorkingHours") public Result deleteAuxiliaryWorkingHours(Integer id){ return Result.success(auxiliaryWorkingHoursService.deleteAuxiliaryWorkingHours(id)); } - - @ApiOperation(value="淇敼杈呭姪宸ユ椂") + @ApiOperation(value="杈呭姪宸ユ椂閰嶇疆-缂栬緫") @PostMapping("/upAuxiliaryWorkingHours") public Result upAuxiliaryWorkingHours(@RequestBody AuxiliaryWorkingHours auxiliaryWorkingHours){ return Result.success(auxiliaryWorkingHoursService.upAuxiliaryWorkingHours(auxiliaryWorkingHours)); } - - @ApiOperation(value="鏂板杈呭姪宸ユ椂") + @ApiOperation(value="杈呭姪宸ユ椂閰嶇疆-鏂板") @PostMapping("/insertAuxiliaryWorkingHours") public Result insertAuxiliaryWorkingHours(@RequestBody AuxiliaryWorkingHours auxiliaryWorkingHours){ return Result.success(auxiliaryWorkingHoursService.insertAuxiliaryWorkingHours(auxiliaryWorkingHours)); } + + + } diff --git a/performance-server/src/main/java/com/ruoyi/performance/controller/AuxiliaryWorkingHoursDayController.java b/performance-server/src/main/java/com/ruoyi/performance/controller/AuxiliaryWorkingHoursDayController.java index 97b0a81..ae686db 100644 --- a/performance-server/src/main/java/com/ruoyi/performance/controller/AuxiliaryWorkingHoursDayController.java +++ b/performance-server/src/main/java/com/ruoyi/performance/controller/AuxiliaryWorkingHoursDayController.java @@ -10,15 +10,11 @@ import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.AllArgsConstructor; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; -import javax.servlet.http.HttpServletResponse; -import java.io.IOException; import java.time.LocalDateTime; + import java.util.Map; /** @@ -38,64 +34,52 @@ @Resource private AuxiliaryWorkingHoursDayService auxiliaryWorkingHoursDayService; - @ApiOperation(value = "鏌ヨ宸ユ椂缁熻鐨勮緟鍔╁伐鏃�") - @PostMapping("/selectAuxiliaryWorkingHoursDay") + @ApiOperation(value = "鏃ュ伐鏃剁鐞�-鏌ョ湅杈呭姪宸ユ椂鍒楄〃") + @GetMapping("/selectAuxiliaryWorkingHoursDay") public Result selectAuxiliaryWorkingHoursDay(Page page,AuxiliaryWorkingHoursDayDto entity) throws Exception { return Result.success(auxiliaryWorkingHoursDayService.selectAuxiliaryWorkingHoursDay(page, entity)); } @ApiOperation(value = "鏍规嵁缂栧彿鏌ヨ杈呭姪宸ユ椂閰嶇疆淇℃伅") - @PostMapping("/selectAuxiliaryWorkingHoursByNumber") + @GetMapping("/selectAuxiliaryWorkingHoursByNumber") public Result selectAuxiliaryWorkingHoursByNumber(String number) { return Result.success(auxiliaryWorkingHoursDayService.selectAuxiliaryWorkingHoursByNumber(number)); } @ApiOperation(value = "鏍规嵁缂栧彿褰撳墠鐢ㄦ埛淇℃伅鏌ヨ鎵�鍦ㄧ彮娆�") - @PostMapping("/selectshiftByUser") + @GetMapping("/selectshiftByUser") public Result selectshiftByUser(LocalDateTime dateTime) { return Result.success(auxiliaryWorkingHoursDayService.selectshiftByUser(dateTime)); } - @ApiOperation(value = "褰曞叆鏁版嵁(宸ユ椂缁熻鐨勮緟鍔╁伐鏃�)") + @ApiOperation(value = "鏃ュ伐鏃剁鐞�-褰曞叆杈呭姪宸ユ椂") @PostMapping("/insertAuxiliaryWorkingHoursDay") public Result insertAuxiliaryWorkingHoursDay(@RequestBody AuxiliaryWorkingHoursDay auxiliaryWorkingHoursDay) { return Result.success(auxiliaryWorkingHoursDayService.insertAuxiliaryWorkingHoursDay(auxiliaryWorkingHoursDay)); } - @ApiOperation(value = "鎵瑰噯宸ユ椂缁熻鐨勮緟鍔╁伐鏃�") + @ApiOperation(value = "鏃ュ伐鏃剁鐞�-鎵瑰噯杈呭姪宸ユ椂") @PostMapping("/approve") public Result approve(@RequestBody HoursDay hoursDay ) { return Result.success(auxiliaryWorkingHoursDayService.checkOrApprove(hoursDay)); } - @ApiOperation(value = "瀹℃牳宸ユ椂缁熻鐨勮緟鍔╁伐鏃�") + @ApiOperation(value = "鏃ュ伐鏃剁鐞�-瀹℃牳杈呭姪宸ユ椂") @PostMapping("/check") public Result check(@RequestBody HoursDay hoursDay ) { return Result.success(auxiliaryWorkingHoursDayService.checkOrApprove(hoursDay)); } - @ApiOperation(value = "缂栬緫宸ユ椂缁熻鐨勮緟鍔╁伐鏃�") + @ApiOperation(value = "鏃ュ伐鏃剁鐞�-缂栬緫杈呭姪宸ユ椂") @PostMapping("/updateAuxiliaryWorkingHoursDay") public Result updateAuxiliaryWorkingHoursDay(@RequestBody AuxiliaryWorkingHoursDay auxiliaryWorkingHoursDay) { return Result.success(auxiliaryWorkingHoursDayService.updateAuxiliaryWorkingHoursDay(auxiliaryWorkingHoursDay)); } - @ApiOperation(value = "鍒犻櫎宸ユ椂缁熻鐨勮緟鍔╁伐鏃�") + @ApiOperation(value = "鏃ュ伐鏃剁鐞�-鍒犻櫎杈呭姪宸ユ椂") @PostMapping("/deleteAuxiliaryWorkingHoursDay") public Result deleteAuxiliaryWorkingHoursDay(Integer id) { return Result.success(auxiliaryWorkingHoursDayService.deleteAuxiliaryWorkingHoursDay(id)); - } - - /** - * 瀵煎嚭杈呭姪宸ユ椂 - * @param response - * @throws IOException - */ - @ApiOperation(value = "瀵煎嚭杈呭姪宸ユ椂") - @PostMapping("/exportAssistantHours") - public void exportAssistantHours(@RequestBody Map<String, Object> data, HttpServletResponse response) throws Exception { - AuxiliaryWorkingHoursDayDto entity = JackSonUtil.unmarshal(JackSonUtil.marshal(data.get("entity")), AuxiliaryWorkingHoursDayDto.class); - auxiliaryWorkingHoursDayService.exportWorkingHours(entity, response); } } diff --git a/performance-server/src/main/java/com/ruoyi/performance/controller/PerformanceShiftController.java b/performance-server/src/main/java/com/ruoyi/performance/controller/PerformanceShiftController.java index 26b0197..04d1c08 100644 --- a/performance-server/src/main/java/com/ruoyi/performance/controller/PerformanceShiftController.java +++ b/performance-server/src/main/java/com/ruoyi/performance/controller/PerformanceShiftController.java @@ -115,7 +115,8 @@ @ApiOperation("鐝:鏌ヨ浜哄憳鍒楄〃") @GetMapping("/getUserList") public Result<?> getUserList(){ - return Result.success(performanceShiftService.getUserList()); + Map<String, List<Map<String, Object>>> userList = performanceShiftService.getUserList(); + return Result.success(userList); } diff --git a/performance-server/src/main/java/com/ruoyi/performance/dto/AuxiliaryOriginalHoursDto.java b/performance-server/src/main/java/com/ruoyi/performance/dto/AuxiliaryOriginalHoursDto.java index e037f05..8b89fb4 100644 --- a/performance-server/src/main/java/com/ruoyi/performance/dto/AuxiliaryOriginalHoursDto.java +++ b/performance-server/src/main/java/com/ruoyi/performance/dto/AuxiliaryOriginalHoursDto.java @@ -2,13 +2,20 @@ import com.alibaba.excel.annotation.ExcelIgnore; import com.alibaba.excel.annotation.ExcelProperty; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; import com.ruoyi.performance.pojo.AuxiliaryCorrectionHours; +import com.ruoyi.performance.utils.CustomerDoubleSerialize; import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; import lombok.Data; - -import java.math.BigDecimal; +import lombok.NoArgsConstructor; +import lombok.ToString; @Data +@AllArgsConstructor +@NoArgsConstructor +@ToString + //鍘熷宸ユ椂 public class AuxiliaryOriginalHoursDto { @@ -17,6 +24,7 @@ private String name; //淇宸ユ椂 + @ExcelIgnore private AuxiliaryCorrectionHours auxiliaryCorrectionHours; @ApiModelProperty("绫诲瀷") @@ -25,224 +33,256 @@ @ApiModelProperty("1鏃ュ伐鏃�") @ExcelProperty(value = "1鏃�") - private BigDecimal oneHours; + @JsonSerialize(using = CustomerDoubleSerialize.class) + private Double oneHours; @ExcelIgnore private Integer one; @ApiModelProperty("2鏃ュ伐鏃�") @ExcelProperty(value = "2鏃�") - private BigDecimal twoHours; + @JsonSerialize(using = CustomerDoubleSerialize.class) + private Double twoHours; @ExcelIgnore private Integer two; @ApiModelProperty("3鏃ュ伐鏃�") @ExcelProperty(value = "3鏃�") - private BigDecimal threeHours; + @JsonSerialize(using = CustomerDoubleSerialize.class) + private Double threeHours; @ExcelIgnore private Integer three; @ApiModelProperty("4鏃ュ伐鏃�") @ExcelProperty(value = "4鏃�") - private BigDecimal fourHours; + @JsonSerialize(using = CustomerDoubleSerialize.class) + private Double fourHours; @ExcelIgnore private Integer four; @ApiModelProperty("5鏃ュ伐鏃�") @ExcelProperty(value = "5鏃�") - private BigDecimal fiveHours; + @JsonSerialize(using = CustomerDoubleSerialize.class) + private Double fiveHours; @ExcelIgnore private Integer five; @ApiModelProperty("6鏃ュ伐鏃�") @ExcelProperty(value = "6鏃�") - private BigDecimal sixHours; + @JsonSerialize(using = CustomerDoubleSerialize.class) + private Double sixHours; @ExcelIgnore private Integer six; @ApiModelProperty("7鏃ュ伐鏃�") @ExcelProperty(value = "7鏃�") - private BigDecimal sevenHours; + @JsonSerialize(using = CustomerDoubleSerialize.class) + private Double sevenHours; @ExcelIgnore private Integer seven; @ApiModelProperty("8鏃ュ伐鏃�") @ExcelProperty(value = "8鏃�") - private BigDecimal eightHours; + @JsonSerialize(using = CustomerDoubleSerialize.class) + private Double eightHours; @ExcelIgnore private Integer eight; @ApiModelProperty("9鏃ュ伐鏃�") @ExcelProperty(value = "9鏃�") - private BigDecimal nineHours; + @JsonSerialize(using = CustomerDoubleSerialize.class) + private Double nineHours; @ExcelIgnore private Integer nine; @ApiModelProperty("10鏃ュ伐鏃�") @ExcelProperty(value = "10鏃�") - private BigDecimal tenHours; + @JsonSerialize(using = CustomerDoubleSerialize.class) + private Double tenHours; @ExcelIgnore private Integer ten; @ApiModelProperty("11鏃ュ伐鏃�") @ExcelProperty(value = "11鏃�") - private BigDecimal elevenHours; + @JsonSerialize(using = CustomerDoubleSerialize.class) + private Double elevenHours; @ExcelIgnore private Integer eleven; @ApiModelProperty("12鏃ュ伐鏃�") @ExcelProperty(value = "12鏃�") - private BigDecimal twelveHours; + @JsonSerialize(using = CustomerDoubleSerialize.class) + private Double twelveHours; @ExcelIgnore private Integer twelve; @ApiModelProperty("13鏃ュ伐鏃�") @ExcelProperty(value = "13鏃�") - private BigDecimal thirteenHours; + @JsonSerialize(using = CustomerDoubleSerialize.class) + private Double thirteenHours; @ExcelIgnore private Integer thirteen; @ApiModelProperty("14鏃ュ伐鏃�") @ExcelProperty(value = "14鏃�") - private BigDecimal fourteenHours; + @JsonSerialize(using = CustomerDoubleSerialize.class) + private Double fourteenHours; @ExcelIgnore private Integer fourteen; @ApiModelProperty("15鏃ュ伐鏃�") @ExcelProperty(value = "15鏃�") - private BigDecimal fifteenHours; + @JsonSerialize(using = CustomerDoubleSerialize.class) + private Double fifteenHours; @ExcelIgnore private Integer fifteen; @ApiModelProperty("16鏃ュ伐鏃�") @ExcelProperty(value = "16鏃�") - private BigDecimal sixteenHours; + @JsonSerialize(using = CustomerDoubleSerialize.class) + private Double sixteenHours; @ExcelIgnore private Integer sixteen; @ApiModelProperty("17鏃ュ伐鏃�") @ExcelProperty(value = "17鏃�") - private BigDecimal seventeenHours; + @JsonSerialize(using = CustomerDoubleSerialize.class) + private Double seventeenHours; @ExcelIgnore private Integer seventeen; @ApiModelProperty("18鏃ュ伐鏃�") @ExcelProperty(value = "18鏃�") - private BigDecimal eighteenHours; + @JsonSerialize(using = CustomerDoubleSerialize.class) + private Double eighteenHours; @ExcelIgnore private Integer eighteen; @ApiModelProperty("19鏃ュ伐鏃�") @ExcelProperty(value = "19鏃�") - private BigDecimal nineteenHours; + @JsonSerialize(using = CustomerDoubleSerialize.class) + private Double nineteenHours; @ExcelIgnore private Integer nineteen; @ApiModelProperty("20鏃ュ伐鏃�") @ExcelProperty(value = "20鏃�") - private BigDecimal twentyHours; + @JsonSerialize(using = CustomerDoubleSerialize.class) + private Double twentyHours; @ExcelIgnore private Integer twenty; @ApiModelProperty("21鏃ュ伐鏃�") @ExcelProperty(value = "21鏃�") - private BigDecimal twentyOneHours; + @JsonSerialize(using = CustomerDoubleSerialize.class) + private Double twentyOneHours; @ExcelIgnore private Integer twentyOne; @ApiModelProperty("22鏃ュ伐鏃�") @ExcelProperty(value = "22鏃�") - private BigDecimal twentyTwoHours; + @JsonSerialize(using = CustomerDoubleSerialize.class) + private Double twentyTwoHours; @ExcelIgnore private Integer twentyTwo; @ApiModelProperty("23鏃ュ伐鏃�") @ExcelProperty(value = "23鏃�") - private BigDecimal twentyThreeHours; + @JsonSerialize(using = CustomerDoubleSerialize.class) + private Double twentyThreeHours; @ExcelIgnore private Integer twentyThree; @ApiModelProperty("24鏃ュ伐鏃�") @ExcelProperty(value = "24鏃�") - private BigDecimal twentyFourHours; + @JsonSerialize(using = CustomerDoubleSerialize.class) + private Double twentyFourHours; @ExcelIgnore private Integer twentyFour; @ApiModelProperty("25鏃ュ伐鏃�") @ExcelProperty(value = "25鏃�") - private BigDecimal twentyFiveHours; + @JsonSerialize(using = CustomerDoubleSerialize.class) + private Double twentyFiveHours; @ExcelIgnore private Integer twentyFive; @ApiModelProperty("26鏃ュ伐鏃�") @ExcelProperty(value = "26鏃�") - private BigDecimal twentySixHours; + @JsonSerialize(using = CustomerDoubleSerialize.class) + private Double twentySixHours; @ExcelIgnore private Integer twentySix; @ApiModelProperty("27鏃ュ伐鏃�") @ExcelProperty(value = "27鏃�") - private BigDecimal twentySevenHours; + @JsonSerialize(using = CustomerDoubleSerialize.class) + private Double twentySevenHours; @ExcelIgnore private Integer twentySeven; @ApiModelProperty("28鏃ュ伐鏃�") @ExcelProperty(value = "28鏃�") - private BigDecimal twentyEightHours; + @JsonSerialize(using = CustomerDoubleSerialize.class) + private Double twentyEightHours; @ExcelIgnore private Integer twentyEight; @ApiModelProperty("29鏃ュ伐鏃�") @ExcelProperty(value = "29鏃�") - private BigDecimal twentyNineHours; + @JsonSerialize(using = CustomerDoubleSerialize.class) + private Double twentyNineHours; @ExcelIgnore private Integer twentyNine; @ApiModelProperty("30鏃ュ伐鏃�") @ExcelProperty(value = "30鏃�") - private BigDecimal thirtyHours; + @JsonSerialize(using = CustomerDoubleSerialize.class) + private Double thirtyHours; @ExcelIgnore private Integer thirty; @ApiModelProperty("31鏃ュ伐鏃�") @ExcelProperty(value = "31鏃�") - private BigDecimal thirtyOneHours; + @JsonSerialize(using = CustomerDoubleSerialize.class) + private Double thirtyOneHours; @ExcelIgnore private Integer thirtyOne; @ApiModelProperty("鎬诲伐鏃�") @ExcelProperty(value = "鎬诲伐鏃�") - private BigDecimal total; + @JsonSerialize(using = CustomerDoubleSerialize.class) + private Double total; @ApiModelProperty("鏈堜唤") @ExcelProperty(value = "鏈堜唤") diff --git a/performance-server/src/main/java/com/ruoyi/performance/dto/AuxiliaryOutputWorkingHoursDto.java b/performance-server/src/main/java/com/ruoyi/performance/dto/AuxiliaryOutputWorkingHoursDto.java index 0b5699a..acee277 100644 --- a/performance-server/src/main/java/com/ruoyi/performance/dto/AuxiliaryOutputWorkingHoursDto.java +++ b/performance-server/src/main/java/com/ruoyi/performance/dto/AuxiliaryOutputWorkingHoursDto.java @@ -11,9 +11,10 @@ public class AuxiliaryOutputWorkingHoursDto extends AuxiliaryOutputWorkingHours { @ApiModelProperty("妫�娴嬩汉") - @ExcelProperty(index = 1, value = "妫�娴嬩汉") + @ExcelProperty(value = "妫�娴嬩汉") private String name; - @ApiModelProperty("鐢电紗鏍囪瘑") - private String cableTag; + + // 鐘舵�� 宸叉彁浜� 宸插鏍� 宸叉壒鍑� + private String state; } diff --git a/performance-server/src/main/java/com/ruoyi/performance/mapper/AuxiliaryOutputWorkingHoursMapper.java b/performance-server/src/main/java/com/ruoyi/performance/mapper/AuxiliaryOutputWorkingHoursMapper.java index 15afc60..084e040 100644 --- a/performance-server/src/main/java/com/ruoyi/performance/mapper/AuxiliaryOutputWorkingHoursMapper.java +++ b/performance-server/src/main/java/com/ruoyi/performance/mapper/AuxiliaryOutputWorkingHoursMapper.java @@ -4,11 +4,11 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.ruoyi.performance.dto.AuxiliaryAllDto; -import com.ruoyi.performance.dto.AuxiliaryOriginalHoursLookDto; + import com.ruoyi.performance.dto.AuxiliaryOutputWorkingHoursDto; import com.ruoyi.performance.pojo.AuxiliaryOutputWorkingHours; import org.apache.ibatis.annotations.Param; + import java.util.List; import java.util.Map; @@ -35,21 +35,4 @@ List<AuxiliaryOutputWorkingHours> selectListByIds(@Param("ids") List<Integer> ids); List<AuxiliaryOutputWorkingHours> selectLists(@Param("ew") QueryWrapper<AuxiliaryOutputWorkingHours> ew, @Param("ids") List<Integer> ids); - - /** - * 鏌ヨ - * @param dto - * @return - */ - List<AuxiliaryAllDto> selectAuxiliaryAllByMonth(@Param("dto") AuxiliaryOriginalHoursLookDto dto, @Param("userIds") List<Integer> userIds); - - /** - * 鏌ヨ杈呭姪宸ユ椂 - * @param dto - * @param userIds - * @return - */ - List<AuxiliaryAllDto> selectSubsidiaryAllByMonth(@Param("dto") AuxiliaryOriginalHoursLookDto dto, @Param("userIds") List<Integer> userIds); - - List<AuxiliaryOutputWorkingHoursDto> selectAuxiliaryOutputWorkingHoursList(@Param("ew") QueryWrapper<AuxiliaryOutputWorkingHoursDto> ew, @Param("ids") List<Integer> ids); } diff --git a/performance-server/src/main/java/com/ruoyi/performance/pojo/AuxiliaryCorrectionHours.java b/performance-server/src/main/java/com/ruoyi/performance/pojo/AuxiliaryCorrectionHours.java index e786968..a9557c6 100644 --- a/performance-server/src/main/java/com/ruoyi/performance/pojo/AuxiliaryCorrectionHours.java +++ b/performance-server/src/main/java/com/ruoyi/performance/pojo/AuxiliaryCorrectionHours.java @@ -1,15 +1,18 @@ package com.ruoyi.performance.pojo; import com.alibaba.excel.annotation.ExcelProperty; -import com.baomidou.mybatisplus.annotation.*; +import com.baomidou.mybatisplus.annotation.FieldFill; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import java.io.Serializable; +import java.time.LocalDateTime; + import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Getter; import lombok.Setter; - -import java.io.Serializable; -import java.math.BigDecimal; -import java.time.LocalDateTime; /** * <p> @@ -23,7 +26,7 @@ @Setter @TableName("auxiliary_correction_hours") @ApiModel(value = "AuxiliaryCorrectionHours瀵硅薄", description = "宸ユ椂缁熻鐨勪慨姝e伐鏃�") -public class AuxiliaryCorrectionHours implements Serializable { +public class AuxiliaryCorrectionHours implements Serializable { @TableId(value = "id", type = IdType.AUTO) private Integer id; @@ -37,127 +40,127 @@ @ApiModelProperty("1") @ExcelProperty(value = "1鏃�") - private BigDecimal oneHours; + private Double oneHours; @ApiModelProperty("2") @ExcelProperty(value = "2鏃�") - private BigDecimal twoHours; + private Double twoHours; @ApiModelProperty("3") @ExcelProperty(value = "3鏃�") - private BigDecimal threeHours; + private Double threeHours; @ApiModelProperty("4") @ExcelProperty(value = "4鏃�") - private BigDecimal fourHours; + private Double fourHours; @ApiModelProperty("5") @ExcelProperty(value = "5鏃�") - private BigDecimal fiveHours; + private Double fiveHours; @ApiModelProperty("6") @ExcelProperty(value = "6鏃�") - private BigDecimal sixHours; + private Double sixHours; @ApiModelProperty("7") @ExcelProperty(value = "7鏃�") - private BigDecimal sevenHours; + private Double sevenHours; @ApiModelProperty("8") @ExcelProperty(value = "8鏃�") - private BigDecimal eightHours; + private Double eightHours; @ApiModelProperty("9") @ExcelProperty(value = "9鏃�") - private BigDecimal nineHours; + private Double nineHours; @ApiModelProperty("10") @ExcelProperty(value = "10鏃�") - private BigDecimal tenHours; + private Double tenHours; @ApiModelProperty("11") @ExcelProperty(value = "11鏃�") - private BigDecimal elevenHours; + private Double elevenHours; @ApiModelProperty("12") @ExcelProperty(value = "12鏃�") - private BigDecimal twelveHours; + private Double twelveHours; @ApiModelProperty("13") @ExcelProperty(value = "13鏃�") - private BigDecimal thirteenHours; + private Double thirteenHours; @ApiModelProperty("14") @ExcelProperty(value = "14鏃�") - private BigDecimal fourteenHours; + private Double fourteenHours; @ApiModelProperty("15") @ExcelProperty(value = "15鏃�") - private BigDecimal fifteenHours; + private Double fifteenHours; @ApiModelProperty("16") @ExcelProperty(value = "16鏃�") - private BigDecimal sixteenHours; + private Double sixteenHours; @ApiModelProperty("17") @ExcelProperty(value = "17鏃�") - private BigDecimal seventeenHours; + private Double seventeenHours; @ApiModelProperty("18") @ExcelProperty(value = "18鏃�") - private BigDecimal eighteenHours; + private Double eighteenHours; @ApiModelProperty("19") @ExcelProperty(value = "19鏃�") - private BigDecimal nineteenHours; + private Double nineteenHours; @ApiModelProperty("20") @ExcelProperty(value = "20鏃�") - private BigDecimal twentyHours; + private Double twentyHours; @ApiModelProperty("21") @ExcelProperty(value = "21鏃�") - private BigDecimal twentyOneHours; + private Double twentyOneHours; @ApiModelProperty("22") @ExcelProperty(value = "22鏃�") - private BigDecimal twentyTwoHours; + private Double twentyTwoHours; @ApiModelProperty("23") @ExcelProperty(value = "23鏃�") - private BigDecimal twentyThreeHours; + private Double twentyThreeHours; @ApiModelProperty("24") @ExcelProperty(value = "24鏃�") - private BigDecimal twentyFourHours; + private Double twentyFourHours; @ApiModelProperty("25") @ExcelProperty(value = "25鏃�") - private BigDecimal twentyFiveHours; + private Double twentyFiveHours; @ApiModelProperty("26") @ExcelProperty(value = "26鏃�") - private BigDecimal twentySixHours; + private Double twentySixHours; @ApiModelProperty("27") @ExcelProperty(value = "27鏃�") - private BigDecimal twentySevenHours; + private Double twentySevenHours; @ApiModelProperty("28") @ExcelProperty(value = "28鏃�") - private BigDecimal twentyEightHours; + private Double twentyEightHours; @ApiModelProperty("29") @ExcelProperty(value = "29鏃�") - private BigDecimal twentyNineHours; + private Double twentyNineHours; @ApiModelProperty("30") @ExcelProperty(value = "30鏃�") - private BigDecimal thirtyHours; + private Double thirtyHours; @ApiModelProperty("31") @ExcelProperty(value = "31鏃�") - private BigDecimal thirtyOneHours; + private Double thirtyOneHours; @ApiModelProperty("鏈堜唤") @ExcelProperty(value = "鏈堜唤") diff --git a/performance-server/src/main/java/com/ruoyi/performance/pojo/AuxiliaryOutputWorkingHours.java b/performance-server/src/main/java/com/ruoyi/performance/pojo/AuxiliaryOutputWorkingHours.java index 45fecbe..1116849 100644 --- a/performance-server/src/main/java/com/ruoyi/performance/pojo/AuxiliaryOutputWorkingHours.java +++ b/performance-server/src/main/java/com/ruoyi/performance/pojo/AuxiliaryOutputWorkingHours.java @@ -1,16 +1,17 @@ package com.ruoyi.performance.pojo; -import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelIgnore; import com.alibaba.excel.annotation.ExcelProperty; import com.baomidou.mybatisplus.annotation.*; import com.fasterxml.jackson.annotation.JsonFormat; + import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Getter; import lombok.Setter; +import lombok.ToString; import java.io.Serializable; -import java.math.BigDecimal; import java.time.LocalDateTime; /** @@ -25,99 +26,92 @@ @Setter @TableName("auxiliary_output_working_hours") @ApiModel(value = "AuxiliaryOutputWorkingHours瀵硅薄", description = "鏃ュ伐鏃剁鐞嗙殑浜ч噺宸ユ椂") -@ExcelIgnoreUnannotated +@ToString public class AuxiliaryOutputWorkingHours implements Serializable { @TableId(value = "id", type = IdType.AUTO) + @ExcelIgnore private Integer id; - @ApiModelProperty("妫�娴嬮」鍒嗙被") - @ExcelProperty(index = 2, value = "妫�娴嬮」鍒嗙被") - private String inspectionItemClass; - - @ApiModelProperty("妫�娴嬮」") - @ExcelProperty(index = 3, value = "妫�娴嬮」") + @ApiModelProperty("妫�娴嬬埗椤�") + @ExcelProperty(value = "妫�娴嬬埗椤�") private String inspectionItem; @ApiModelProperty("妫�娴嬪瓙椤�") - @ExcelProperty(index = 4, value = "妫�娴嬪瓙椤�") + @ExcelProperty(value = "妫�娴嬪瓙椤�") private String inspectionItemSubclass; - @ApiModelProperty("鏍峰搧id") - private Integer sampleId; - @ApiModelProperty("鏍峰搧缂栧彿") - @ExcelProperty(index = 6, value = "鏍峰搧缂栧彿") + @ExcelProperty(value = "鏍峰搧缂栧彿") private String sample; @ApiModelProperty("鍔犵彮濮旀墭鍗曞彿") + @ExcelProperty(value = "鍔犵彮濮旀墭鍗曞彿") private String overtimeOrderNo; @ApiModelProperty("鍔犵彮宸ユ椂") - private BigDecimal overtimeWorkTime; + @ExcelProperty(value = "鍔犵彮宸ユ椂") + private Double overtimeWorkTime; @ApiModelProperty("鍔犵彮鏁伴噺") + @ExcelProperty(value = "鍔犵彮鏁伴噺") private Integer overtimeAmount; @ApiModelProperty("闈炲姞鐝鎵樺崟鍙�") - private Integer orderId; - - @ApiModelProperty("濮旀墭鍗曞彿") - @ExcelProperty(index = 5, value = "濮旀墭鍗曞彿") + @ExcelProperty(value = "闈炲姞鐝鎵樺崟鍙�") private String orderNo; - @ApiModelProperty("宸ユ椂") - private BigDecimal workTime; + @ApiModelProperty("闈炲姞鐝伐鏃�") + @ExcelProperty(value = "闈炲姞鐝伐鏃�") + private Double workTime; - @ApiModelProperty("鏁伴噺") + @ApiModelProperty("闈炲姞鐝暟閲�") + @ExcelProperty(value = "闈炲姞鐝暟閲�") private Integer amount; @ApiModelProperty("浜ч噺宸ユ椂") - @ExcelProperty(index = 7, value = "浜ч噺宸ユ椂") - private BigDecimal outputWorkTime; + @ExcelProperty(value = "浜ч噺宸ユ椂") + private Double outputWorkTime; @ApiModelProperty("鏃ユ湡") - @ExcelProperty(index = 10, value = "鏃ユ湡") + @ExcelProperty(value = "鏃ユ湡") private String dateTime; @ApiModelProperty("鍛ㄦ") - @ExcelProperty(index = 11, value = "鍛ㄦ") + @ExcelProperty(value = "鍛ㄦ") private String week; @ApiModelProperty("鏄熸湡") - @ExcelProperty(index = 12, value = "鏄熸湡") + @ExcelProperty(value = "鏄熸湡") private String weekDay; @ApiModelProperty("妫�娴嬩汉id") - @TableField("`check`") - private Integer check; + @ExcelIgnore + private Integer checkId; @ApiModelProperty("鍒涘缓鏃堕棿") @TableField(fill = FieldFill.INSERT) @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @ExcelIgnore private LocalDateTime createTime; @ApiModelProperty("淇敼鏃堕棿") @TableField(fill = FieldFill.INSERT_UPDATE) @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @ExcelIgnore private LocalDateTime updateTime; @ApiModelProperty("鍒涘缓浜篿d") @TableField(fill = FieldFill.INSERT) + @ExcelIgnore private Integer createUser; @ApiModelProperty("淇敼浜篿d") @TableField(fill = FieldFill.INSERT_UPDATE) + @ExcelIgnore private Integer updateUser; @ApiModelProperty("宸ユ椂鍒嗙粍") - @ExcelProperty(index = 8, value = "宸ユ椂鍒嗙粍") + @ExcelIgnore private String manHourGroup; - - @ApiModelProperty("鍗曚环") - @ExcelProperty(index = 9, value = "鍗曚环") - private BigDecimal price; - - @ApiModelProperty("妫�楠岄」id") - private Integer insProductId; } diff --git a/performance-server/src/main/java/com/ruoyi/performance/service/AuxiliaryOriginalHoursService.java b/performance-server/src/main/java/com/ruoyi/performance/service/AuxiliaryOriginalHoursService.java index 05dd08c..7623701 100644 --- a/performance-server/src/main/java/com/ruoyi/performance/service/AuxiliaryOriginalHoursService.java +++ b/performance-server/src/main/java/com/ruoyi/performance/service/AuxiliaryOriginalHoursService.java @@ -2,13 +2,10 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.ruoyi.performance.dto.AuxiliaryAllDto; import com.ruoyi.performance.dto.AuxiliaryOriginalHoursDto; import com.ruoyi.performance.dto.AuxiliaryOriginalHoursLookDto; - import javax.servlet.http.HttpServletResponse; import java.io.IOException; -import java.util.List; import java.util.Map; public interface AuxiliaryOriginalHoursService { @@ -20,11 +17,5 @@ * * @param response */ - void exportWorkingHours(String month, String name, String departLims,HttpServletResponse response) throws IOException; - - /** - * 鏌ヨ鏈堜唤鍏ㄩ儴宸ユ椂 - * @return - */ - List<AuxiliaryAllDto> selectAuxiliaryAllByMonth(AuxiliaryOriginalHoursLookDto dto); + void exportWorkingHours(Page page,String month, String name, String departLims,HttpServletResponse response) throws IOException; } diff --git a/performance-server/src/main/java/com/ruoyi/performance/service/AuxiliaryOutputWorkingHoursService.java b/performance-server/src/main/java/com/ruoyi/performance/service/AuxiliaryOutputWorkingHoursService.java index c3f4818..57907fe 100644 --- a/performance-server/src/main/java/com/ruoyi/performance/service/AuxiliaryOutputWorkingHoursService.java +++ b/performance-server/src/main/java/com/ruoyi/performance/service/AuxiliaryOutputWorkingHoursService.java @@ -1,10 +1,12 @@ package com.ruoyi.performance.service; + import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; import com.ruoyi.performance.dto.AuxiliaryOutputWorkingHoursDto; import com.ruoyi.performance.pojo.AuxiliaryOutputWorkingHours; + import javax.servlet.http.HttpServletResponse; import java.io.IOException; @@ -34,11 +36,4 @@ * @throws IOException */ void exportWorkingHours(HttpServletResponse response)throws IOException; - - /** - * 瀵煎嚭浜ч噺宸ユ椂 - * @param entity - * @param response - */ - void exportOutputHours(AuxiliaryOutputWorkingHoursDto entity, HttpServletResponse response); } diff --git a/performance-server/src/main/java/com/ruoyi/performance/service/AuxiliaryWorkingHoursDayService.java b/performance-server/src/main/java/com/ruoyi/performance/service/AuxiliaryWorkingHoursDayService.java index 5c04cff..090693c 100644 --- a/performance-server/src/main/java/com/ruoyi/performance/service/AuxiliaryWorkingHoursDayService.java +++ b/performance-server/src/main/java/com/ruoyi/performance/service/AuxiliaryWorkingHoursDayService.java @@ -7,7 +7,7 @@ import com.ruoyi.performance.dto.HoursDay; import com.ruoyi.performance.pojo.AuxiliaryWorkingHoursDay; -import javax.servlet.http.HttpServletResponse; + import java.time.LocalDateTime; import java.util.Map; @@ -34,11 +34,4 @@ int deleteAuxiliaryWorkingHoursDay(Integer id); String selectshiftByUser(LocalDateTime dateTime); - - /** - * 瀵煎嚭杈呭姪宸ユ椂 - * @param entity - * @param response - */ - void exportWorkingHours(AuxiliaryWorkingHoursDayDto entity, HttpServletResponse response); } diff --git a/performance-server/src/main/java/com/ruoyi/performance/service/AuxiliaryWorkingHoursService.java b/performance-server/src/main/java/com/ruoyi/performance/service/AuxiliaryWorkingHoursService.java index d8a6000..1d2875d 100644 --- a/performance-server/src/main/java/com/ruoyi/performance/service/AuxiliaryWorkingHoursService.java +++ b/performance-server/src/main/java/com/ruoyi/performance/service/AuxiliaryWorkingHoursService.java @@ -3,6 +3,8 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; +import com.ruoyi.common.core.domain.entity.User; +import com.ruoyi.common.core.dto.UserPageDto; import com.ruoyi.performance.pojo.AuxiliaryWorkingHours; import java.util.Map; @@ -23,4 +25,5 @@ int upAuxiliaryWorkingHours(AuxiliaryWorkingHours auxiliaryWorkingHours); int insertAuxiliaryWorkingHours(AuxiliaryWorkingHours auxiliaryWorkingHours); + } diff --git a/performance-server/src/main/java/com/ruoyi/performance/service/impl/AuxiliaryOriginalHoursServiceImpl.java b/performance-server/src/main/java/com/ruoyi/performance/service/impl/AuxiliaryOriginalHoursServiceImpl.java index 2bacdd7..cd33f10 100644 --- a/performance-server/src/main/java/com/ruoyi/performance/service/impl/AuxiliaryOriginalHoursServiceImpl.java +++ b/performance-server/src/main/java/com/ruoyi/performance/service/impl/AuxiliaryOriginalHoursServiceImpl.java @@ -4,15 +4,15 @@ import com.alibaba.excel.ExcelWriter; import com.alibaba.excel.write.metadata.WriteSheet; import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; -import com.baomidou.mybatisplus.core.toolkit.StringUtils; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.common.core.domain.entity.User; -import com.ruoyi.common.exception.base.BaseException; -import com.ruoyi.performance.dto.AuxiliaryAllDto; +import com.ruoyi.common.utils.EasyExcelUtils; +import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.performance.dto.AuxiliaryCorrectionHoursDto; import com.ruoyi.performance.dto.AuxiliaryOriginalHoursDto; import com.ruoyi.performance.dto.AuxiliaryOriginalHoursLookDto; @@ -22,6 +22,9 @@ import com.ruoyi.performance.mapper.AuxiliaryWorkingHoursDayMapper; import com.ruoyi.performance.pojo.AuxiliaryCorrectionHours; import com.ruoyi.performance.service.AuxiliaryOriginalHoursService; +import com.ruoyi.system.domain.SysUserRole; +import com.ruoyi.system.mapper.SysRoleMapper; +import com.ruoyi.system.mapper.SysUserRoleMapper; import com.ruoyi.system.mapper.UserMapper; import org.apache.commons.math3.analysis.function.Power; import org.springframework.beans.BeanUtils; @@ -30,19 +33,26 @@ import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; import java.io.IOException; -import java.math.BigDecimal; -import java.math.RoundingMode; import java.net.URLEncoder; -import java.time.LocalDate; -import java.time.format.DateTimeFormatter; +import java.text.DecimalFormat; import java.util.*; import java.util.stream.Collectors; @Service public class AuxiliaryOriginalHoursServiceImpl implements AuxiliaryOriginalHoursService { + + @Resource UserMapper userMapper; + + + @Resource + SysUserRoleMapper userRoleMapper; + + @Resource + SysRoleMapper roleMapper; + @Resource AuxiliaryOriginalHoursMapper auxiliaryOriginalHoursMapper; @@ -68,18 +78,32 @@ List<Integer> ides = auxiliaryCorrectionHoursMapper.selDepartLimsByName(departLims); for (Integer ide : ides) { List<User> users = userMapper.selectList(Wrappers.<User>lambdaQuery() - .like(User::getDepartLimsId, ide)); + .like(User::getDepartLimsId, ide) + .eq(User::getStatus, 0)); if (ObjectUtils.isNotEmpty(users)) { - ides.clear(); ids.addAll(users.stream().map(User::getId).distinct().collect(Collectors.toList())); + break; } } } if (ObjectUtils.isNotEmpty(name)) { - ids.clear(); - ids.add(userMapper.selectOne(Wrappers.<User>lambdaQuery().like(User::getName, name)).getId()); + List<User> users = userMapper.selectList(new LambdaQueryWrapper<User>().like(User::getName, name)); + if(!users.isEmpty()) { + // 涓嶄负绌� 杩涜杩囨护 + if(CollectionUtils.isNotEmpty(ids)) { + List<Integer> collect = users.stream().map(User::getId).distinct().collect(Collectors.toList()); + ids = ids.stream().filter(item -> collect.contains(item)).collect(Collectors.toList()); + // ids 涓虹┖灏辫祴鍊� -1 + if(CollectionUtils.isEmpty(ids)) { + ids.add(-1); + } + }else { + // 涓虹┖ 杩涜鏂板 + ids.addAll(users.stream().map(User::getId).distinct().collect(Collectors.toList())); + } + } } - if (ids.size() == 0) { + if (ids.isEmpty()) { ids = null; } IPage<AuxiliaryOriginalHoursDto> originalHoursDtoIPage = new Page<>(); @@ -90,7 +114,7 @@ Map<String, AuxiliaryOriginalHoursDto> data2 = new HashMap<>(); Map<String, AuxiliaryOriginalHoursDto> data3 = new HashMap<>(); //浜ч噺宸ユ椂 - List<Map<String, Object>> maps = auxiliaryOutputWorkingHoursMapper.totalHours(auxiliaryOriginalHoursLookDto.getMonth(), ids, "浜ч噺宸ユ椂"); + List<Map<String, Object>> maps = auxiliaryOutputWorkingHoursMapper.totalHours(auxiliaryOriginalHoursLookDto.getMonth(), ids,"浜ч噺宸ユ椂"); if (ObjectUtils.isNotEmpty(maps)) { data1 = getData(maps, "浜ч噺宸ユ椂"); auxiliaryOriginalHoursDtos.addAll(data1.values()); @@ -102,30 +126,16 @@ auxiliaryOriginalHoursDtos.addAll(data2.values()); } //鍔犵彮宸ユ椂 - List<Map<String, Object>> maps2 = auxiliaryOutputWorkingHoursMapper.totalHours(auxiliaryOriginalHoursLookDto.getMonth(), ids, "鍔犵彮宸ユ椂"); + List<Map<String, Object>> maps2 = auxiliaryOutputWorkingHoursMapper.totalHours(auxiliaryOriginalHoursLookDto.getMonth(), ids,"鍔犵彮宸ユ椂"); if (ObjectUtils.isNotEmpty(maps2)) { data3 = getData(maps2, "鍔犵彮宸ユ椂"); auxiliaryOriginalHoursDtos.addAll(data3.values()); } //鎬诲伐鏃�=浜ч噺宸ユ椂+杈呭姪宸ユ椂+鍔犵彮宸ユ椂 Map<String, AuxiliaryOriginalHoursDto> data4 = new HashMap<String, AuxiliaryOriginalHoursDto>(); - if (data1.size() > 0) { + if (!data1.isEmpty()) { Map<String, AuxiliaryOriginalHoursDto> data5 = data1; - if (data2.size() > 0) { - merge(data5, data4, data2); - } - if (data3.size() > 0) { -// merge(data5,data4,data3); - } - if (data2.size() == 0 && data3.size() == 0) { - for (Map.Entry<String, AuxiliaryOriginalHoursDto> entry : data5.entrySet()) { - AuxiliaryOriginalHoursDto dto = entry.getValue(); - AuxiliaryOriginalHoursDto originalHoursDto = new AuxiliaryOriginalHoursDto(); - BeanUtils.copyProperties(dto, originalHoursDto); - originalHoursDto.setType("鎬诲伐鏃�"); - data4.put(entry.getKey(), originalHoursDto); - } - } + data4 = mergeTotal(data5,data2,data3); auxiliaryOriginalHoursDtos.addAll(data4.values()); } @@ -156,16 +166,25 @@ 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()); + if(page.getSize()>0){ + int i = (int) page.getSize() * ((int) page.getCurrent() - 1); + if(result.size() - i < page.getSize()) { + result = result.subList(i, result.size()); + } else { + result = result.subList(i, (int) page.getSize() + i); + } + } + originalHoursDtoIPage.setRecords(result); return originalHoursDtoIPage; } //瀵煎嚭鍘熷宸ユ椂 @Override - public void exportWorkingHours(String month, String name, String departLims, HttpServletResponse response) throws IOException { + public void exportWorkingHours(Page page,String month, String name, String departLims, HttpServletResponse response) throws IOException { List<AuxiliaryOriginalHoursDto> auxiliaryOriginalHoursDtos = new ArrayList<AuxiliaryOriginalHoursDto>(); + //鏌ヨ鍘熷宸ユ椂(浣跨敤鍒嗛〉鏌ヨ) AuxiliaryOriginalHoursLookDto auxiliaryOriginalHoursLookDto = new AuxiliaryOriginalHoursLookDto(); if (ObjectUtils.isNotEmpty(month)) { @@ -177,7 +196,7 @@ if (ObjectUtils.isNotEmpty(departLims)) { auxiliaryOriginalHoursLookDto.setDepartLims(departLims); } - IPage<AuxiliaryOriginalHoursDto> body = selectAuxiliaryOriginalHours(new Page(-1, -1), auxiliaryOriginalHoursLookDto); + IPage<AuxiliaryOriginalHoursDto> body = (IPage<AuxiliaryOriginalHoursDto>) selectAuxiliaryOriginalHours(new Page(-1, -1), auxiliaryOriginalHoursLookDto); auxiliaryOriginalHoursDtos = body.getRecords(); response.setContentType("application/vnd.ms-excel"); response.setCharacterEncoding("UTF-8"); @@ -186,7 +205,9 @@ response.setHeader("Content-disposition", "attachment;filename=" + fileName + ".xlsx"); try { // 鏂板缓ExcelWriter - ExcelWriter excelWriter = EasyExcel.write(response.getOutputStream()).registerWriteHandler(new LongestMatchColumnWidthStyleStrategy()).build(); + ExcelWriter excelWriter = EasyExcel.write(response.getOutputStream()) + .registerWriteHandler(EasyExcelUtils.getStyleStrategy()) + .registerWriteHandler(new LongestMatchColumnWidthStyleStrategy()).build(); WriteSheet mainSheet = EasyExcel.writerSheet(0, "鍘熷宸ユ椂瀵煎嚭").head(AuxiliaryOriginalHoursDto.class).build(); excelWriter.write(auxiliaryOriginalHoursDtos, mainSheet); // 鍏抽棴娴� @@ -195,71 +216,6 @@ throw new RuntimeException("瀵煎嚭澶辫触"); } - } - - /** - * 鏌ヨ鏈堜唤鍏ㄩ儴宸ユ椂 - * - * @return - */ - @Override - public List<AuxiliaryAllDto> selectAuxiliaryAllByMonth(AuxiliaryOriginalHoursLookDto dto) { - if (StringUtils.isBlank(dto.getMonth())) { - throw new BaseException("缂哄皯鏈堜唤"); - } - List<Integer> userIds = new ArrayList<>(); - - String name = dto.getName(); - if (ObjectUtils.isNotEmpty(name)) { - userIds.addAll(userMapper.selectList(Wrappers.<User>lambdaQuery().like(User::getName, name)).stream().map(User::getId).collect(Collectors.toList())); - } - // 瑙f瀽杈撳叆鐨勬椂闂村瓧绗︿覆 - LocalDate date = LocalDate.parse(dto.getMonth() + "-01", DateTimeFormatter.ofPattern("yyyy-MM-dd")); - - // 鑾峰彇鍓嶄竴涓湀鐨�26鍙� - LocalDate previousMonth26th = date.minusMonths(1).withDayOfMonth(26); - - // 鑾峰彇褰撳墠鏈堢殑25鍙� - LocalDate currentMonth25th = date.withDayOfMonth(25); - - // 鏍煎紡鍖栨棩鏈熶负 yyyy-MM-dd HH:mm:ss - DateTimeFormatter outputFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); - String beginDate = previousMonth26th.atStartOfDay().format(outputFormatter); - String endDate = currentMonth25th.atStartOfDay().format(outputFormatter); -// dto.setBeginDate(beginDate + " 00:00:00"); -// dto.setEndDate(endDate + " 23:59:59"); - dto.setBeginDate(beginDate); - dto.setEndDate(endDate); - - - // 鏌ヨ浜ч噺宸ユ椂 - List<AuxiliaryAllDto> auxiliaryAllDtos = auxiliaryOutputWorkingHoursMapper.selectAuxiliaryAllByMonth(dto, userIds); - - // 鏌ヨ杈呭姪宸ユ椂 - List<AuxiliaryAllDto> auxiliarySubsidiary = auxiliaryOutputWorkingHoursMapper.selectSubsidiaryAllByMonth(dto, userIds); - - //浜ч噺宸ユ椂杩涜浜哄憳鍒嗙粍, 鎶婅緟鍔╁伐鏃舵坊鍔� - Map<Integer, List<AuxiliaryAllDto>> groupIds = auxiliaryAllDtos.stream().collect(Collectors.groupingBy(AuxiliaryAllDto::getUserId)); - - for (AuxiliaryAllDto auxiliaryAllDto : auxiliarySubsidiary) { - List<AuxiliaryAllDto> allDtos = groupIds.get(auxiliaryAllDto.getUserId()); - // 鍒ゆ柇鏄惁涓虹┖ - if (CollectionUtils.isNotEmpty(allDtos)) { - // 娣诲姞杈呭姪宸ユ椂 - allDtos.get(0).setSubsidiaryHour(auxiliaryAllDto.getSubsidiaryHour()); - - } else { - // 娌℃湁鏀逛汉鍛樻坊鍔犱竴琛� - auxiliaryAllDtos.add(auxiliaryAllDto); - } - } - for (AuxiliaryAllDto auxiliaryAllDto : auxiliaryAllDtos) { - BigDecimal total = (auxiliaryAllDto.getYieldHour() != null ? auxiliaryAllDto.getYieldHour() : BigDecimal.ZERO) - .add(auxiliaryAllDto.getSubsidiaryHour() != null ? auxiliaryAllDto.getSubsidiaryHour() : BigDecimal.ZERO); - auxiliaryAllDto.setTotalHour(total); - } - - return auxiliaryAllDtos; } private Map<String, AuxiliaryOriginalHoursDto> getData(List<Map<String, Object>> objectMaps, String type) { @@ -283,7 +239,7 @@ AuxiliaryCorrectionHours auxiliaryCorrectionHours = auxiliaryOriginalHoursDto.getAuxiliaryCorrectionHours(); switch (objectMap.get("month").toString().substring(8, 10)) { case "01": - auxiliaryOriginalHoursDto.setOneHours(new BigDecimal(objectMap.get("manHours").toString())); + auxiliaryOriginalHoursDto.setOneHours(Double.parseDouble(objectMap.get("manHours").toString())); if (ObjectUtils.isNotEmpty(auxiliaryCorrectionHours)) { if (auxiliaryCorrectionHours.getOneHours().compareTo(auxiliaryOriginalHoursDto.getOneHours()) != 0) { auxiliaryOriginalHoursDto.setOne(1); @@ -291,7 +247,7 @@ } break; case "02": - auxiliaryOriginalHoursDto.setTwoHours(new BigDecimal(objectMap.get("manHours").toString())); + auxiliaryOriginalHoursDto.setTwoHours(Double.parseDouble(objectMap.get("manHours").toString())); if (ObjectUtils.isNotEmpty(auxiliaryCorrectionHours)) { if (auxiliaryCorrectionHours.getTwoHours().compareTo(auxiliaryOriginalHoursDto.getTwoHours()) != 0) { auxiliaryOriginalHoursDto.setTwo(1); @@ -299,7 +255,7 @@ } break; case "03": - auxiliaryOriginalHoursDto.setThreeHours(new BigDecimal(objectMap.get("manHours").toString())); + auxiliaryOriginalHoursDto.setThreeHours(Double.parseDouble(objectMap.get("manHours").toString())); if (ObjectUtils.isNotEmpty(auxiliaryCorrectionHours)) { if (auxiliaryCorrectionHours.getThreeHours().compareTo(auxiliaryOriginalHoursDto.getThreeHours()) != 0) { auxiliaryOriginalHoursDto.setThree(1); @@ -307,7 +263,7 @@ } break; case "04": - auxiliaryOriginalHoursDto.setFourHours(new BigDecimal(objectMap.get("manHours").toString())); + auxiliaryOriginalHoursDto.setFourHours(Double.parseDouble(objectMap.get("manHours").toString())); if (ObjectUtils.isNotEmpty(auxiliaryCorrectionHours)) { if (auxiliaryCorrectionHours.getFourHours().compareTo(auxiliaryOriginalHoursDto.getFourHours()) != 0) { auxiliaryOriginalHoursDto.setFour(1); @@ -315,7 +271,7 @@ } break; case "05": - auxiliaryOriginalHoursDto.setFiveHours(new BigDecimal(objectMap.get("manHours").toString())); + auxiliaryOriginalHoursDto.setFiveHours(Double.parseDouble(objectMap.get("manHours").toString())); if (ObjectUtils.isNotEmpty(auxiliaryCorrectionHours)) { if (auxiliaryCorrectionHours.getFiveHours().compareTo(auxiliaryOriginalHoursDto.getFiveHours()) != 0) { auxiliaryOriginalHoursDto.setFive(1); @@ -323,7 +279,7 @@ } break; case "06": - auxiliaryOriginalHoursDto.setSixHours(new BigDecimal(objectMap.get("manHours").toString())); + auxiliaryOriginalHoursDto.setSixHours(Double.parseDouble(objectMap.get("manHours").toString())); if (ObjectUtils.isNotEmpty(auxiliaryCorrectionHours)) { if (auxiliaryCorrectionHours.getSixHours().compareTo(auxiliaryOriginalHoursDto.getSixHours()) != 0) { auxiliaryOriginalHoursDto.setSix(1); @@ -331,7 +287,7 @@ } break; case "07": - auxiliaryOriginalHoursDto.setSevenHours(new BigDecimal(objectMap.get("manHours").toString())); + auxiliaryOriginalHoursDto.setSevenHours(Double.parseDouble(objectMap.get("manHours").toString())); if (ObjectUtils.isNotEmpty(auxiliaryCorrectionHours)) { if (auxiliaryCorrectionHours.getSevenHours().compareTo(auxiliaryOriginalHoursDto.getSevenHours()) != 0) { auxiliaryOriginalHoursDto.setSeven(1); @@ -339,7 +295,7 @@ } break; case "08": - auxiliaryOriginalHoursDto.setEightHours(new BigDecimal(objectMap.get("manHours").toString())); + auxiliaryOriginalHoursDto.setEightHours(Double.parseDouble(objectMap.get("manHours").toString())); if (ObjectUtils.isNotEmpty(auxiliaryCorrectionHours)) { if (auxiliaryCorrectionHours.getEightHours().compareTo(auxiliaryOriginalHoursDto.getEightHours()) != 0) { auxiliaryOriginalHoursDto.setEight(1); @@ -347,7 +303,7 @@ } break; case "09": - auxiliaryOriginalHoursDto.setNineHours(new BigDecimal(objectMap.get("manHours").toString())); + auxiliaryOriginalHoursDto.setNineHours(Double.parseDouble(objectMap.get("manHours").toString())); if (ObjectUtils.isNotEmpty(auxiliaryCorrectionHours)) { if (auxiliaryCorrectionHours.getNineHours().compareTo(auxiliaryOriginalHoursDto.getNineHours()) != 0) { auxiliaryOriginalHoursDto.setNine(1); @@ -355,7 +311,7 @@ } break; case "10": - auxiliaryOriginalHoursDto.setTenHours(new BigDecimal(objectMap.get("manHours").toString())); + auxiliaryOriginalHoursDto.setTenHours(Double.parseDouble(objectMap.get("manHours").toString())); if (ObjectUtils.isNotEmpty(auxiliaryCorrectionHours)) { if (auxiliaryCorrectionHours.getTenHours().compareTo(auxiliaryOriginalHoursDto.getTenHours()) != 0) { auxiliaryOriginalHoursDto.setTen(1); @@ -363,7 +319,7 @@ } break; case "11": - auxiliaryOriginalHoursDto.setElevenHours(new BigDecimal(objectMap.get("manHours").toString())); + auxiliaryOriginalHoursDto.setElevenHours(Double.parseDouble(objectMap.get("manHours").toString())); if (ObjectUtils.isNotEmpty(auxiliaryCorrectionHours)) { if (auxiliaryCorrectionHours.getElevenHours().compareTo(auxiliaryOriginalHoursDto.getElevenHours()) != 0) { auxiliaryOriginalHoursDto.setEleven(1); @@ -371,7 +327,7 @@ } break; case "12": - auxiliaryOriginalHoursDto.setTwelveHours(new BigDecimal(objectMap.get("manHours").toString())); + auxiliaryOriginalHoursDto.setTwelveHours(Double.parseDouble(objectMap.get("manHours").toString())); if (ObjectUtils.isNotEmpty(auxiliaryCorrectionHours)) { if (auxiliaryCorrectionHours.getTwelveHours().compareTo(auxiliaryOriginalHoursDto.getTwelveHours()) != 0) { auxiliaryOriginalHoursDto.setTwelve(1); @@ -379,7 +335,7 @@ } break; case "13": - auxiliaryOriginalHoursDto.setThirteenHours(new BigDecimal(objectMap.get("manHours").toString())); + auxiliaryOriginalHoursDto.setThirteenHours(Double.parseDouble(objectMap.get("manHours").toString())); if (ObjectUtils.isNotEmpty(auxiliaryCorrectionHours)) { if (auxiliaryCorrectionHours.getThirteenHours().compareTo(auxiliaryOriginalHoursDto.getThirteenHours()) != 0) { auxiliaryOriginalHoursDto.setThirteen(1); @@ -387,7 +343,7 @@ } break; case "14": - auxiliaryOriginalHoursDto.setFourteenHours(new BigDecimal(objectMap.get("manHours").toString())); + auxiliaryOriginalHoursDto.setFourteenHours(Double.parseDouble(objectMap.get("manHours").toString())); if (ObjectUtils.isNotEmpty(auxiliaryCorrectionHours)) { if (auxiliaryCorrectionHours.getFourteenHours().compareTo(auxiliaryOriginalHoursDto.getFourteenHours()) != 0) { auxiliaryOriginalHoursDto.setFourteen(1); @@ -395,7 +351,7 @@ } break; case "15": - auxiliaryOriginalHoursDto.setFifteenHours(new BigDecimal(objectMap.get("manHours").toString())); + auxiliaryOriginalHoursDto.setFifteenHours(Double.parseDouble(objectMap.get("manHours").toString())); if (ObjectUtils.isNotEmpty(auxiliaryCorrectionHours)) { if (auxiliaryCorrectionHours.getFifteenHours().compareTo(auxiliaryOriginalHoursDto.getFifteenHours()) != 0) { auxiliaryOriginalHoursDto.setFifteen(1); @@ -403,7 +359,7 @@ } break; case "16": - auxiliaryOriginalHoursDto.setSixteenHours(new BigDecimal(objectMap.get("manHours").toString())); + auxiliaryOriginalHoursDto.setSixteenHours(Double.parseDouble(objectMap.get("manHours").toString())); if (ObjectUtils.isNotEmpty(auxiliaryCorrectionHours)) { if (auxiliaryCorrectionHours.getSixteenHours().compareTo(auxiliaryOriginalHoursDto.getSixteenHours()) != 0) { auxiliaryOriginalHoursDto.setSixteen(1); @@ -411,7 +367,7 @@ } break; case "17": - auxiliaryOriginalHoursDto.setSeventeenHours(new BigDecimal(objectMap.get("manHours").toString())); + auxiliaryOriginalHoursDto.setSeventeenHours(Double.parseDouble(objectMap.get("manHours").toString())); if (ObjectUtils.isNotEmpty(auxiliaryCorrectionHours)) { if (auxiliaryCorrectionHours.getSeventeenHours().compareTo(auxiliaryOriginalHoursDto.getSeventeenHours()) != 0) { auxiliaryOriginalHoursDto.setSeventeen(1); @@ -419,7 +375,7 @@ } break; case "18": - auxiliaryOriginalHoursDto.setEighteenHours(new BigDecimal(objectMap.get("manHours").toString())); + auxiliaryOriginalHoursDto.setEighteenHours(Double.parseDouble(objectMap.get("manHours").toString())); if (ObjectUtils.isNotEmpty(auxiliaryCorrectionHours)) { if (auxiliaryCorrectionHours.getEighteenHours().compareTo(auxiliaryOriginalHoursDto.getEighteenHours()) != 0) { auxiliaryOriginalHoursDto.setEighteen(1); @@ -427,7 +383,7 @@ } break; case "19": - auxiliaryOriginalHoursDto.setNineteenHours(new BigDecimal(objectMap.get("manHours").toString())); + auxiliaryOriginalHoursDto.setNineteenHours(Double.parseDouble(objectMap.get("manHours").toString())); if (ObjectUtils.isNotEmpty(auxiliaryCorrectionHours)) { if (auxiliaryCorrectionHours.getNineteenHours().compareTo(auxiliaryOriginalHoursDto.getNineteenHours()) != 0) { auxiliaryOriginalHoursDto.setNineteen(1); @@ -435,7 +391,7 @@ } break; case "20": - auxiliaryOriginalHoursDto.setTwentyHours(new BigDecimal(objectMap.get("manHours").toString())); + auxiliaryOriginalHoursDto.setTwentyHours(Double.parseDouble(objectMap.get("manHours").toString())); if (ObjectUtils.isNotEmpty(auxiliaryCorrectionHours)) { if (auxiliaryCorrectionHours.getTwentyHours().compareTo(auxiliaryOriginalHoursDto.getTwentyHours()) != 0) { auxiliaryOriginalHoursDto.setTwenty(1); @@ -443,7 +399,7 @@ } break; case "21": - auxiliaryOriginalHoursDto.setTwentyOneHours(new BigDecimal(objectMap.get("manHours").toString())); + auxiliaryOriginalHoursDto.setTwentyOneHours(Double.parseDouble(objectMap.get("manHours").toString())); if (ObjectUtils.isNotEmpty(auxiliaryCorrectionHours)) { if (auxiliaryCorrectionHours.getTwentyOneHours().compareTo(auxiliaryOriginalHoursDto.getTwentyOneHours()) != 0) { auxiliaryOriginalHoursDto.setTwentyOne(1); @@ -451,7 +407,7 @@ } break; case "22": - auxiliaryOriginalHoursDto.setTwentyTwoHours(new BigDecimal(objectMap.get("manHours").toString())); + auxiliaryOriginalHoursDto.setTwentyTwoHours(Double.parseDouble(objectMap.get("manHours").toString())); if (ObjectUtils.isNotEmpty(auxiliaryCorrectionHours)) { if (auxiliaryCorrectionHours.getTwentyTwoHours().compareTo(auxiliaryOriginalHoursDto.getTwentyTwoHours()) != 0) { auxiliaryOriginalHoursDto.setTwentyTwo(1); @@ -459,7 +415,7 @@ } break; case "23": - auxiliaryOriginalHoursDto.setTwentyThreeHours(new BigDecimal(objectMap.get("manHours").toString())); + auxiliaryOriginalHoursDto.setTwentyThreeHours(Double.parseDouble(objectMap.get("manHours").toString())); if (ObjectUtils.isNotEmpty(auxiliaryCorrectionHours)) { if (auxiliaryCorrectionHours.getTwentyThreeHours().compareTo(auxiliaryOriginalHoursDto.getTwentyThreeHours()) != 0) { auxiliaryOriginalHoursDto.setTwentyThree(1); @@ -467,7 +423,7 @@ } break; case "24": - auxiliaryOriginalHoursDto.setTwentyFourHours(new BigDecimal(objectMap.get("manHours").toString())); + auxiliaryOriginalHoursDto.setTwentyFourHours(Double.parseDouble(objectMap.get("manHours").toString())); if (ObjectUtils.isNotEmpty(auxiliaryCorrectionHours)) { if (auxiliaryCorrectionHours.getTwentyFourHours().compareTo(auxiliaryOriginalHoursDto.getTwentyFourHours()) != 0) { auxiliaryOriginalHoursDto.setTwentyFour(1); @@ -475,7 +431,7 @@ } break; case "25": - auxiliaryOriginalHoursDto.setTwentyFiveHours(new BigDecimal(objectMap.get("manHours").toString())); + auxiliaryOriginalHoursDto.setTwentyFiveHours(Double.parseDouble(objectMap.get("manHours").toString())); if (ObjectUtils.isNotEmpty(auxiliaryCorrectionHours)) { if (auxiliaryCorrectionHours.getTwentyFiveHours().compareTo(auxiliaryOriginalHoursDto.getTwentyFiveHours()) != 0) { auxiliaryOriginalHoursDto.setTwentyFive(1); @@ -483,7 +439,7 @@ } break; case "26": - auxiliaryOriginalHoursDto.setTwentySixHours(new BigDecimal(objectMap.get("manHours").toString())); + auxiliaryOriginalHoursDto.setTwentySixHours(Double.parseDouble(objectMap.get("manHours").toString())); if (ObjectUtils.isNotEmpty(auxiliaryCorrectionHours)) { if (auxiliaryCorrectionHours.getTwentySixHours().compareTo(auxiliaryOriginalHoursDto.getTwentySixHours()) != 0) { auxiliaryOriginalHoursDto.setTwentySix(1); @@ -491,7 +447,7 @@ } break; case "27": - auxiliaryOriginalHoursDto.setTwentySevenHours(new BigDecimal(objectMap.get("manHours").toString())); + auxiliaryOriginalHoursDto.setTwentySevenHours(Double.parseDouble(objectMap.get("manHours").toString())); if (ObjectUtils.isNotEmpty(auxiliaryCorrectionHours)) { if (auxiliaryCorrectionHours.getTwentySevenHours().compareTo(auxiliaryOriginalHoursDto.getTwentySevenHours()) != 0) { auxiliaryOriginalHoursDto.setTwentySeven(1); @@ -499,7 +455,7 @@ } break; case "28": - auxiliaryOriginalHoursDto.setTwentyEightHours(new BigDecimal(objectMap.get("manHours").toString())); + auxiliaryOriginalHoursDto.setTwentyEightHours(Double.parseDouble(objectMap.get("manHours").toString())); if (ObjectUtils.isNotEmpty(auxiliaryCorrectionHours)) { if (auxiliaryCorrectionHours.getTwentyEightHours().compareTo(auxiliaryOriginalHoursDto.getTwentyEightHours()) != 0) { auxiliaryOriginalHoursDto.setTwentyEight(1); @@ -507,7 +463,7 @@ } break; case "29": - auxiliaryOriginalHoursDto.setTwentyNineHours(new BigDecimal(objectMap.get("manHours").toString())); + auxiliaryOriginalHoursDto.setTwentyNineHours(Double.parseDouble(objectMap.get("manHours").toString())); if (ObjectUtils.isNotEmpty(auxiliaryCorrectionHours)) { if (auxiliaryCorrectionHours.getTwentyNineHours().compareTo(auxiliaryOriginalHoursDto.getTwentyNineHours()) != 0) { auxiliaryOriginalHoursDto.setTwentyNine(1); @@ -515,7 +471,7 @@ } break; case "30": - auxiliaryOriginalHoursDto.setThirtyHours(new BigDecimal(objectMap.get("manHours").toString())); + auxiliaryOriginalHoursDto.setThirtyHours(Double.parseDouble(objectMap.get("manHours").toString())); if (ObjectUtils.isNotEmpty(auxiliaryCorrectionHours)) { if (auxiliaryCorrectionHours.getThirtyHours().compareTo(auxiliaryOriginalHoursDto.getThirtyHours()) != 0) { auxiliaryOriginalHoursDto.setThirty(1); @@ -523,7 +479,7 @@ } break; case "31": - auxiliaryOriginalHoursDto.setThirtyOneHours(new BigDecimal(objectMap.get("manHours").toString())); + auxiliaryOriginalHoursDto.setThirtyOneHours(Double.parseDouble(objectMap.get("manHours").toString())); if (ObjectUtils.isNotEmpty(auxiliaryCorrectionHours)) { if (auxiliaryCorrectionHours.getThirtyOneHours().compareTo(auxiliaryOriginalHoursDto.getThirtyOneHours()) != 0) { auxiliaryOriginalHoursDto.setThirtyOne(1); @@ -531,46 +487,133 @@ } break; } - auxiliaryOriginalHoursDto.setTotal((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getOneHours()) ? auxiliaryOriginalHoursDto.getOneHours() : BigDecimal.ZERO) - .add(ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getThreeHours()) ? auxiliaryOriginalHoursDto.getThreeHours() : BigDecimal.ZERO) - .add(ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getFourHours()) ? auxiliaryOriginalHoursDto.getFourHours() : BigDecimal.ZERO) - .add(ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getFiveHours()) ? auxiliaryOriginalHoursDto.getFiveHours() : BigDecimal.ZERO) - .add(ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getSixHours()) ? auxiliaryOriginalHoursDto.getSixHours() : BigDecimal.ZERO) - .add(ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getSevenHours()) ? auxiliaryOriginalHoursDto.getSevenHours() : BigDecimal.ZERO) - .add(ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getEightHours()) ? auxiliaryOriginalHoursDto.getEightHours() : BigDecimal.ZERO) - .add(ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getNineHours()) ? auxiliaryOriginalHoursDto.getNineHours() : BigDecimal.ZERO) - .add(ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getTenHours()) ? auxiliaryOriginalHoursDto.getTenHours() : BigDecimal.ZERO) - .add(ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getElevenHours()) ? auxiliaryOriginalHoursDto.getElevenHours() : BigDecimal.ZERO) - .add(ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getTwelveHours()) ? auxiliaryOriginalHoursDto.getTwelveHours() : BigDecimal.ZERO) - .add(ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getThirteenHours()) ? auxiliaryOriginalHoursDto.getThirteenHours() : BigDecimal.ZERO) - .add(ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getFourteenHours()) ? auxiliaryOriginalHoursDto.getFourteenHours() : BigDecimal.ZERO) - .add(ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getFifteenHours()) ? auxiliaryOriginalHoursDto.getFifteenHours() : BigDecimal.ZERO) - .add(ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getSixteenHours()) ? auxiliaryOriginalHoursDto.getSixteenHours() : BigDecimal.ZERO) - .add(ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getSeventeenHours()) ? auxiliaryOriginalHoursDto.getSeventeenHours() : BigDecimal.ZERO) - .add(ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getEighteenHours()) ? auxiliaryOriginalHoursDto.getEighteenHours() : BigDecimal.ZERO) - .add(ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getNineteenHours()) ? auxiliaryOriginalHoursDto.getNineteenHours() : BigDecimal.ZERO) - .add(ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getTwentyHours()) ? auxiliaryOriginalHoursDto.getTwentyHours() : BigDecimal.ZERO) - .add(ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getTwentyOneHours()) ? auxiliaryOriginalHoursDto.getTwentyOneHours() : BigDecimal.ZERO) - .add(ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getTwentyTwoHours()) ? auxiliaryOriginalHoursDto.getTwentyTwoHours() : BigDecimal.ZERO) - .add(ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getTwentyThreeHours()) ? auxiliaryOriginalHoursDto.getTwentyThreeHours() : BigDecimal.ZERO) - .add(ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getTwentyFourHours()) ? auxiliaryOriginalHoursDto.getTwentyFourHours() : BigDecimal.ZERO) - .add(ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getTwentyFiveHours()) ? auxiliaryOriginalHoursDto.getTwentyFiveHours() : BigDecimal.ZERO) - .add(ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getTwentySixHours()) ? auxiliaryOriginalHoursDto.getTwentySixHours() : BigDecimal.ZERO) - .add(ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getTwentySevenHours()) ? auxiliaryOriginalHoursDto.getTwentySevenHours() : BigDecimal.ZERO) - .add(ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getTwentyEightHours()) ? auxiliaryOriginalHoursDto.getTwentyEightHours() : BigDecimal.ZERO) - .add(ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getTwentyNineHours()) ? auxiliaryOriginalHoursDto.getTwentyNineHours() : BigDecimal.ZERO) - .add(ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getThirtyHours()) ? auxiliaryOriginalHoursDto.getThirtyHours() : BigDecimal.ZERO) - .add(ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getThirtyOneHours()) ? auxiliaryOriginalHoursDto.getThirtyOneHours() : BigDecimal.ZERO) + auxiliaryOriginalHoursDto.setTotal((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getOneHours()) ? auxiliaryOriginalHoursDto.getOneHours() : 0) + + (ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getTwoHours()) ? auxiliaryOriginalHoursDto.getTwoHours() : 0) + + (ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getThreeHours()) ? auxiliaryOriginalHoursDto.getThreeHours() : 0) + + (ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getFourHours()) ? auxiliaryOriginalHoursDto.getFourHours() : 0) + + (ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getFiveHours()) ? auxiliaryOriginalHoursDto.getFiveHours() : 0) + + (ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getSixHours()) ? auxiliaryOriginalHoursDto.getSixHours() : 0) + + (ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getSevenHours()) ? auxiliaryOriginalHoursDto.getSevenHours() : 0) + + (ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getEightHours()) ? auxiliaryOriginalHoursDto.getEightHours() : 0) + + (ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getNineHours()) ? auxiliaryOriginalHoursDto.getNineHours() : 0) + + (ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getTenHours()) ? auxiliaryOriginalHoursDto.getTenHours() : 0) + + (ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getElevenHours()) ? auxiliaryOriginalHoursDto.getElevenHours() : 0) + + (ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getTwelveHours()) ? auxiliaryOriginalHoursDto.getTwelveHours() : 0) + + (ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getThirteenHours()) ? auxiliaryOriginalHoursDto.getThirteenHours() : 0) + + (ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getFourteenHours()) ? auxiliaryOriginalHoursDto.getFourteenHours() : 0) + + (ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getFifteenHours()) ? auxiliaryOriginalHoursDto.getFifteenHours() : 0) + + (ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getSixteenHours()) ? auxiliaryOriginalHoursDto.getSixteenHours() : 0) + + (ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getSeventeenHours()) ? auxiliaryOriginalHoursDto.getSeventeenHours() : 0) + + (ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getEighteenHours()) ? auxiliaryOriginalHoursDto.getEighteenHours() : 0) + + (ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getNineteenHours()) ? auxiliaryOriginalHoursDto.getNineteenHours() : 0) + + (ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getTwentyHours()) ? auxiliaryOriginalHoursDto.getTwentyHours() : 0) + + (ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getTwentyOneHours()) ? auxiliaryOriginalHoursDto.getTwentyOneHours() : 0) + + (ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getTwentyTwoHours()) ? auxiliaryOriginalHoursDto.getTwentyTwoHours() : 0) + + (ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getTwentyThreeHours()) ? auxiliaryOriginalHoursDto.getTwentyThreeHours() : 0) + + (ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getTwentyFourHours()) ? auxiliaryOriginalHoursDto.getTwentyFourHours() : 0) + + (ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getTwentyFiveHours()) ? auxiliaryOriginalHoursDto.getTwentyFiveHours() : 0) + + (ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getTwentySixHours()) ? auxiliaryOriginalHoursDto.getTwentySixHours() : 0) + + (ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getTwentySevenHours()) ? auxiliaryOriginalHoursDto.getTwentySevenHours() : 0) + + (ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getTwentyEightHours()) ? auxiliaryOriginalHoursDto.getTwentyEightHours() : 0) + + (ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getTwentyNineHours()) ? auxiliaryOriginalHoursDto.getTwentyNineHours() : 0) + + (ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getThirtyHours()) ? auxiliaryOriginalHoursDto.getThirtyHours() : 0) + + (ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getThirtyOneHours()) ? auxiliaryOriginalHoursDto.getThirtyOneHours() : 0) ); - auxiliaryOriginalHoursDto.setTotal(auxiliaryOriginalHoursDto.getTotal().setScale(4, RoundingMode.HALF_UP)); + DecimalFormat df = new DecimalFormat("#.####"); // 璁惧畾鍥涗綅灏忔暟 + auxiliaryOriginalHoursDto.setTotal(Double.parseDouble(df.format(auxiliaryOriginalHoursDto.getTotal()))); dtoMap.put(name, auxiliaryOriginalHoursDto); } return dtoMap; } + /** + * 鍚堝苟鎬诲伐鏃� + * @param outputWorkHourMap 浜ч噺宸ユ椂 + * @param auxiliaryWorkHourMap 杈呭姪宸ユ椂 + * @param overtimeWorkHourMap 鍔犵彮宸ユ椂 + */ + private Map<String, AuxiliaryOriginalHoursDto> mergeTotal(Map<String, AuxiliaryOriginalHoursDto> outputWorkHourMap, + Map<String, AuxiliaryOriginalHoursDto> auxiliaryWorkHourMap, + Map<String, AuxiliaryOriginalHoursDto> overtimeWorkHourMap){ + Map<String, AuxiliaryOriginalHoursDto> totalMap = new HashMap<>(); + for (String userNameKey : outputWorkHourMap.keySet()) { + //浜у嚭宸ユ椂璁板綍 + AuxiliaryOriginalHoursDto outputWorkHourDTO = outputWorkHourMap.get(userNameKey); + //鎬诲伐鏃惰褰� + AuxiliaryOriginalHoursDto totalDTO = new AuxiliaryOriginalHoursDto(); + BeanUtils.copyProperties(outputWorkHourDTO, totalDTO); + totalDTO.setType("鎬诲伐鏃�"); + //褰撳墠浜哄憳鐨勮緟鍔╁伐鏃惰褰� + AuxiliaryOriginalHoursDto auxiliaryHoursDTO = new AuxiliaryOriginalHoursDto(); + if(!Objects.isNull(auxiliaryWorkHourMap.get(userNameKey))){ + auxiliaryHoursDTO = auxiliaryWorkHourMap.get(userNameKey); + } + //褰撳墠浜哄憳鐨勫姞鐝伐鏃惰褰� + AuxiliaryOriginalHoursDto overtimeHoursDTO = new AuxiliaryOriginalHoursDto(); + if(!Objects.isNull(overtimeWorkHourMap.get(userNameKey))){ + overtimeHoursDTO = overtimeWorkHourMap.get(userNameKey); + } + totalDTO.setOneHours(calcWorkHourTotal(outputWorkHourDTO.getOneHours(),auxiliaryHoursDTO.getOneHours(),overtimeHoursDTO.getOneHours())); + totalDTO.setTwoHours(calcWorkHourTotal(outputWorkHourDTO.getTwoHours(),auxiliaryHoursDTO.getTwoHours(),overtimeHoursDTO.getTwoHours())); + totalDTO.setThreeHours(calcWorkHourTotal(outputWorkHourDTO.getThreeHours(),auxiliaryHoursDTO.getThreeHours(),overtimeHoursDTO.getThreeHours())); + totalDTO.setFourHours(calcWorkHourTotal(outputWorkHourDTO.getFourHours(),auxiliaryHoursDTO.getFourHours(),overtimeHoursDTO.getFourHours())); + totalDTO.setFiveHours(calcWorkHourTotal(outputWorkHourDTO.getFiveHours(),auxiliaryHoursDTO.getFiveHours(),overtimeHoursDTO.getFiveHours())); + totalDTO.setSixHours(calcWorkHourTotal(outputWorkHourDTO.getSixHours(),auxiliaryHoursDTO.getSixHours(),overtimeHoursDTO.getSixHours())); + totalDTO.setSevenHours(calcWorkHourTotal(outputWorkHourDTO.getSevenHours(),auxiliaryHoursDTO.getSevenHours(),overtimeHoursDTO.getSevenHours())); + totalDTO.setEightHours(calcWorkHourTotal(outputWorkHourDTO.getEightHours(),auxiliaryHoursDTO.getEightHours(),overtimeHoursDTO.getEightHours())); + totalDTO.setNineHours(calcWorkHourTotal(outputWorkHourDTO.getNineHours(),auxiliaryHoursDTO.getNineHours(),overtimeHoursDTO.getNineHours())); + totalDTO.setTenHours(calcWorkHourTotal(outputWorkHourDTO.getTenHours(),auxiliaryHoursDTO.getTenHours(),overtimeHoursDTO.getTenHours())); + totalDTO.setElevenHours(calcWorkHourTotal(outputWorkHourDTO.getElevenHours(),auxiliaryHoursDTO.getElevenHours(),overtimeHoursDTO.getElevenHours())); + totalDTO.setTwelveHours(calcWorkHourTotal(outputWorkHourDTO.getTwelveHours(),auxiliaryHoursDTO.getTwelveHours(),overtimeHoursDTO.getTwelveHours())); + totalDTO.setThirteenHours(calcWorkHourTotal(outputWorkHourDTO.getThirteenHours(),auxiliaryHoursDTO.getThirteenHours(),overtimeHoursDTO.getThirteenHours())); + totalDTO.setFourteenHours(calcWorkHourTotal(outputWorkHourDTO.getFourteenHours(),auxiliaryHoursDTO.getFourteenHours(),overtimeHoursDTO.getFourteenHours())); + totalDTO.setFifteenHours(calcWorkHourTotal(outputWorkHourDTO.getFifteenHours(),auxiliaryHoursDTO.getFifteenHours(),overtimeHoursDTO.getFifteenHours())); + totalDTO.setSixteenHours(calcWorkHourTotal(outputWorkHourDTO.getSixteenHours(),auxiliaryHoursDTO.getSixteenHours(),overtimeHoursDTO.getSixteenHours())); + totalDTO.setSeventeenHours(calcWorkHourTotal(outputWorkHourDTO.getSeventeenHours(),auxiliaryHoursDTO.getSeventeenHours(),overtimeHoursDTO.getSeventeenHours())); + totalDTO.setEighteenHours(calcWorkHourTotal(outputWorkHourDTO.getEighteenHours(),auxiliaryHoursDTO.getEighteenHours(),overtimeHoursDTO.getEighteenHours())); + totalDTO.setNineteenHours(calcWorkHourTotal(outputWorkHourDTO.getNineteenHours(),auxiliaryHoursDTO.getNineteenHours(),overtimeHoursDTO.getNineteenHours())); + totalDTO.setTwentyHours(calcWorkHourTotal(outputWorkHourDTO.getTwentyHours(),auxiliaryHoursDTO.getTwentyHours(),overtimeHoursDTO.getTwentyHours())); + totalDTO.setTwentyOneHours(calcWorkHourTotal(outputWorkHourDTO.getTwentyOneHours(),auxiliaryHoursDTO.getTwentyOneHours(),overtimeHoursDTO.getTwentyOneHours())); + totalDTO.setTwentyTwoHours(calcWorkHourTotal(outputWorkHourDTO.getTwentyTwoHours(),auxiliaryHoursDTO.getTwentyTwoHours(),overtimeHoursDTO.getTwentyTwoHours())); + totalDTO.setTwentyThreeHours(calcWorkHourTotal(outputWorkHourDTO.getTwentyThreeHours(),auxiliaryHoursDTO.getTwentyThreeHours(),overtimeHoursDTO.getTwentyThreeHours())); + totalDTO.setTwentyFourHours(calcWorkHourTotal(outputWorkHourDTO.getTwentyFourHours(),auxiliaryHoursDTO.getTwentyFourHours(),overtimeHoursDTO.getTwentyFourHours())); + totalDTO.setTwentyFiveHours(calcWorkHourTotal(outputWorkHourDTO.getTwentyFiveHours(),auxiliaryHoursDTO.getTwentyFiveHours(),overtimeHoursDTO.getTwentyFiveHours())); + totalDTO.setTwentySixHours(calcWorkHourTotal(outputWorkHourDTO.getTwentySixHours(),auxiliaryHoursDTO.getTwentySixHours(),overtimeHoursDTO.getTwentySixHours())); + totalDTO.setTwentySevenHours(calcWorkHourTotal(outputWorkHourDTO.getTwentySevenHours(),auxiliaryHoursDTO.getTwentySevenHours(),overtimeHoursDTO.getTwentySevenHours())); + totalDTO.setTwentyEightHours(calcWorkHourTotal(outputWorkHourDTO.getTwentyEightHours(),auxiliaryHoursDTO.getTwentyEightHours(),overtimeHoursDTO.getTwentyEightHours())); + totalDTO.setTwentyNineHours(calcWorkHourTotal(outputWorkHourDTO.getTwentyNineHours(),auxiliaryHoursDTO.getTwentyNineHours(),overtimeHoursDTO.getTwentyNineHours())); + totalDTO.setThirtyHours(calcWorkHourTotal(outputWorkHourDTO.getThirtyHours(),auxiliaryHoursDTO.getThirtyHours(),overtimeHoursDTO.getThirtyHours())); + totalDTO.setThirtyOneHours(calcWorkHourTotal(outputWorkHourDTO.getThirtyOneHours(),auxiliaryHoursDTO.getThirtyOneHours(),overtimeHoursDTO.getThirtyOneHours())); + totalDTO.setTotal(calcWorkHourTotal(outputWorkHourDTO.getTotal(),auxiliaryHoursDTO.getTotal(),overtimeHoursDTO.getTotal())); + + totalMap.put(userNameKey,totalDTO); + } + return totalMap; + } + + /** + * 璁$畻鎬诲伐鏃� + * @param outputWorkHour 浜у嚭宸ユ椂 + * @param auxiliaryWorkHour 杈呭姪宸ユ椂 + * @param overtimeWorkHour 鍔犵彮宸ユ椂 + * @return + */ + private double calcWorkHourTotal(Double outputWorkHour,Double auxiliaryWorkHour,Double overtimeWorkHour){ + if(Objects.isNull(outputWorkHour)){ + outputWorkHour = 0.0; + } + if(Objects.isNull(auxiliaryWorkHour)){ + auxiliaryWorkHour = 0.0; + } + if(Objects.isNull(overtimeWorkHour)){ + overtimeWorkHour = 0.0; + } + return outputWorkHour + auxiliaryWorkHour + overtimeWorkHour; + } + //鍚堝苟 - private void merge(Map<String, AuxiliaryOriginalHoursDto> data5, Map<String, AuxiliaryOriginalHoursDto> data4, Map<String, AuxiliaryOriginalHoursDto> data2) { + private void merge(Map<String, AuxiliaryOriginalHoursDto> data5,Map<String, AuxiliaryOriginalHoursDto> data4,Map<String, AuxiliaryOriginalHoursDto> data2) { for (Map.Entry<String, AuxiliaryOriginalHoursDto> entry : data2.entrySet()) { String key = entry.getKey(); AuxiliaryOriginalHoursDto value = entry.getValue(); @@ -581,55 +624,48 @@ AuxiliaryOriginalHoursDto hoursDto = data5.get(key); BeanUtils.copyProperties(hoursDto, auxiliaryOriginalHoursDto); auxiliaryOriginalHoursDto.setType("鎬诲伐鏃�"); - auxiliaryOriginalHoursDto.setOneHours((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getOneHours()) ? auxiliaryOriginalHoursDto.getOneHours() : BigDecimal.ZERO).add(ObjectUtils.isNotEmpty(value.getOneHours()) ? value.getOneHours() : BigDecimal.ZERO)); - auxiliaryOriginalHoursDto.setTwoHours((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getTwoHours()) ? auxiliaryOriginalHoursDto.getTwoHours() : BigDecimal.ZERO).add(ObjectUtils.isNotEmpty(value.getTwoHours()) ? value.getTwoHours() : BigDecimal.ZERO)); - auxiliaryOriginalHoursDto.setThreeHours((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getThreeHours()) ? auxiliaryOriginalHoursDto.getThreeHours() : BigDecimal.ZERO).add(ObjectUtils.isNotEmpty(value.getThreeHours()) ? value.getThreeHours() : BigDecimal.ZERO)); - auxiliaryOriginalHoursDto.setFourHours((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getFourHours()) ? auxiliaryOriginalHoursDto.getFourHours() : BigDecimal.ZERO).add(ObjectUtils.isNotEmpty(value.getFourHours()) ? value.getFourHours() : BigDecimal.ZERO)); - auxiliaryOriginalHoursDto.setFiveHours((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getFiveHours()) ? auxiliaryOriginalHoursDto.getFiveHours() : BigDecimal.ZERO).add(ObjectUtils.isNotEmpty(value.getFiveHours()) ? value.getFiveHours() : BigDecimal.ZERO)); - auxiliaryOriginalHoursDto.setSixHours((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getSixHours()) ? auxiliaryOriginalHoursDto.getSixHours() : BigDecimal.ZERO).add(ObjectUtils.isNotEmpty(value.getSixHours()) ? value.getSixHours() : BigDecimal.ZERO)); - auxiliaryOriginalHoursDto.setSevenHours((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getSevenHours()) ? auxiliaryOriginalHoursDto.getSevenHours() : BigDecimal.ZERO).add(ObjectUtils.isNotEmpty(value.getSevenHours()) ? value.getSevenHours() : BigDecimal.ZERO)); - auxiliaryOriginalHoursDto.setEightHours((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getEightHours()) ? auxiliaryOriginalHoursDto.getEightHours() : BigDecimal.ZERO).add(ObjectUtils.isNotEmpty(value.getEightHours()) ? value.getEightHours() : BigDecimal.ZERO)); - auxiliaryOriginalHoursDto.setNineHours((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getNineHours()) ? auxiliaryOriginalHoursDto.getNineHours() : BigDecimal.ZERO).add(ObjectUtils.isNotEmpty(value.getNineHours()) ? value.getNineHours() : BigDecimal.ZERO)); - auxiliaryOriginalHoursDto.setTenHours((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getTenHours()) ? auxiliaryOriginalHoursDto.getTenHours() : BigDecimal.ZERO).add(ObjectUtils.isNotEmpty(value.getTenHours()) ? value.getTenHours() : BigDecimal.ZERO)); - auxiliaryOriginalHoursDto.setElevenHours((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getElevenHours()) ? auxiliaryOriginalHoursDto.getElevenHours() : BigDecimal.ZERO).add(ObjectUtils.isNotEmpty(value.getElevenHours()) ? value.getElevenHours() : BigDecimal.ZERO)); - auxiliaryOriginalHoursDto.setTwelveHours((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getTwelveHours()) ? auxiliaryOriginalHoursDto.getTwelveHours() : BigDecimal.ZERO).add(ObjectUtils.isNotEmpty(value.getTwelveHours()) ? value.getTwelveHours() : BigDecimal.ZERO)); - auxiliaryOriginalHoursDto.setThirteenHours((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getThirteenHours()) ? auxiliaryOriginalHoursDto.getThirteenHours() : BigDecimal.ZERO).add(ObjectUtils.isNotEmpty(value.getThirteenHours()) ? value.getThirteenHours() : BigDecimal.ZERO)); - auxiliaryOriginalHoursDto.setFourteenHours((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getFourteenHours()) ? auxiliaryOriginalHoursDto.getFourteenHours() : BigDecimal.ZERO).add(ObjectUtils.isNotEmpty(value.getFourteenHours()) ? value.getFourteenHours() : BigDecimal.ZERO)); - auxiliaryOriginalHoursDto.setFifteenHours((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getFifteenHours()) ? auxiliaryOriginalHoursDto.getFifteenHours() : BigDecimal.ZERO).add(ObjectUtils.isNotEmpty(value.getFifteenHours()) ? value.getFifteenHours() : BigDecimal.ZERO)); - auxiliaryOriginalHoursDto.setSixteenHours((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getSixteenHours()) ? auxiliaryOriginalHoursDto.getSixteenHours() : BigDecimal.ZERO).add(ObjectUtils.isNotEmpty(value.getSixteenHours()) ? value.getSixteenHours() : BigDecimal.ZERO)); - auxiliaryOriginalHoursDto.setSeventeenHours((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getSeventeenHours()) ? auxiliaryOriginalHoursDto.getSeventeenHours() : BigDecimal.ZERO).add(ObjectUtils.isNotEmpty(value.getSeventeenHours()) ? value.getSeventeenHours() : BigDecimal.ZERO)); - auxiliaryOriginalHoursDto.setEighteenHours((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getEighteenHours()) ? auxiliaryOriginalHoursDto.getEighteenHours() : BigDecimal.ZERO).add(ObjectUtils.isNotEmpty(value.getEighteenHours()) ? value.getEighteenHours() : BigDecimal.ZERO)); - auxiliaryOriginalHoursDto.setNineteenHours((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getNineteenHours()) ? auxiliaryOriginalHoursDto.getNineteenHours() : BigDecimal.ZERO).add(ObjectUtils.isNotEmpty(value.getNineteenHours()) ? value.getNineteenHours() : BigDecimal.ZERO)); - auxiliaryOriginalHoursDto.setTwelveHours((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getTwelveHours()) ? auxiliaryOriginalHoursDto.getTwelveHours() : BigDecimal.ZERO).add(ObjectUtils.isNotEmpty(value.getTwelveHours()) ? value.getTwelveHours() : BigDecimal.ZERO)); - auxiliaryOriginalHoursDto.setTwentyOneHours((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getTwentyOneHours()) ? auxiliaryOriginalHoursDto.getTwentyOneHours() : BigDecimal.ZERO).add(ObjectUtils.isNotEmpty(value.getTwentyOneHours()) ? value.getTwentyOneHours() : BigDecimal.ZERO)); - auxiliaryOriginalHoursDto.setTwentyTwoHours((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getTwentyTwoHours()) ? auxiliaryOriginalHoursDto.getTwentyTwoHours() : BigDecimal.ZERO).add(ObjectUtils.isNotEmpty(value.getTwentyTwoHours()) ? value.getTwentyTwoHours() : BigDecimal.ZERO)); - auxiliaryOriginalHoursDto.setTwentyThreeHours((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getTwentyThreeHours()) ? auxiliaryOriginalHoursDto.getTwentyThreeHours() : BigDecimal.ZERO).add(ObjectUtils.isNotEmpty(value.getTwentyThreeHours()) ? value.getTwentyThreeHours() : BigDecimal.ZERO)); - BigDecimal v = ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getTwentyFourHours()) ? auxiliaryOriginalHoursDto.getTwentyFourHours() : BigDecimal.ZERO; - BigDecimal v1 = ObjectUtils.isNotEmpty(value.getTwentyFourHours()) ? value.getTwentyFourHours() : BigDecimal.ZERO; - BigDecimal v2 = v.add(v1); - auxiliaryOriginalHoursDto.setTwentyFourHours((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getTwentyFourHours()) ? auxiliaryOriginalHoursDto.getTwentyFourHours() : BigDecimal.ZERO).add(ObjectUtils.isNotEmpty(value.getTwentyFourHours()) ? value.getTwentyFourHours() : BigDecimal.ZERO)); - auxiliaryOriginalHoursDto.setTwentyFiveHours((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getTwentyFiveHours()) ? auxiliaryOriginalHoursDto.getTwentyFiveHours() : BigDecimal.ZERO).add(ObjectUtils.isNotEmpty(value.getTwentyFiveHours()) ? value.getTwentyFiveHours() : BigDecimal.ZERO)); - auxiliaryOriginalHoursDto.setTwentySixHours((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getTwentySixHours()) ? auxiliaryOriginalHoursDto.getTwentySixHours() : BigDecimal.ZERO).add(ObjectUtils.isNotEmpty(value.getTwentySixHours()) ? value.getTwentySixHours() : BigDecimal.ZERO)); - auxiliaryOriginalHoursDto.setTwentySevenHours((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getTwentySevenHours()) ? auxiliaryOriginalHoursDto.getTwentySevenHours() : BigDecimal.ZERO).add(ObjectUtils.isNotEmpty(value.getTwentySevenHours()) ? value.getTwentySevenHours() : BigDecimal.ZERO)); - auxiliaryOriginalHoursDto.setTwentyEightHours((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getTwentyEightHours()) ? auxiliaryOriginalHoursDto.getTwentyEightHours() : BigDecimal.ZERO).add(ObjectUtils.isNotEmpty(value.getTwentyEightHours()) ? value.getTwentyEightHours() : BigDecimal.ZERO)); - auxiliaryOriginalHoursDto.setTwentyNineHours((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getTwentyNineHours()) ? auxiliaryOriginalHoursDto.getTwentyNineHours() : BigDecimal.ZERO).add(ObjectUtils.isNotEmpty(value.getTwentyNineHours()) ? value.getTwentyNineHours() : BigDecimal.ZERO)); - auxiliaryOriginalHoursDto.setThirtyHours((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getThirtyHours()) ? auxiliaryOriginalHoursDto.getThirtyHours() : BigDecimal.ZERO).add(ObjectUtils.isNotEmpty(value.getThirtyHours()) ? value.getThirtyHours() : BigDecimal.ZERO)); - auxiliaryOriginalHoursDto.setThirtyOneHours((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getThirtyOneHours()) ? auxiliaryOriginalHoursDto.getThirtyOneHours() : BigDecimal.ZERO).add(ObjectUtils.isNotEmpty(value.getThirtyOneHours()) ? value.getThirtyOneHours() : BigDecimal.ZERO)); - auxiliaryOriginalHoursDto.setTotal((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getTotal()) ? auxiliaryOriginalHoursDto.getTotal() : BigDecimal.ZERO).add(ObjectUtils.isNotEmpty(value.getTotal()) ? value.getTotal() : BigDecimal.ZERO)); + 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)); + double v = ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getTwentyFourHours()) ? auxiliaryOriginalHoursDto.getTwentyFourHours() : 0; + double v1 = ObjectUtils.isNotEmpty(value.getTwentyFourHours()) ? value.getTwentyFourHours() : 0; + double v2 = v + v1; + 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 = data5.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); } } - } } diff --git a/performance-server/src/main/java/com/ruoyi/performance/service/impl/AuxiliaryOutputWorkingHoursServiceImpl.java b/performance-server/src/main/java/com/ruoyi/performance/service/impl/AuxiliaryOutputWorkingHoursServiceImpl.java index d8974a9..e79587e 100644 --- a/performance-server/src/main/java/com/ruoyi/performance/service/impl/AuxiliaryOutputWorkingHoursServiceImpl.java +++ b/performance-server/src/main/java/com/ruoyi/performance/service/impl/AuxiliaryOutputWorkingHoursServiceImpl.java @@ -4,13 +4,18 @@ import com.alibaba.excel.ExcelWriter; import com.alibaba.excel.write.metadata.WriteSheet; import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy; +import com.alibaba.fastjson.JSONArray; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; +import com.baomidou.mybatisplus.core.toolkit.StringUtils; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.common.core.domain.entity.User; import com.ruoyi.common.utils.QueryWrappers; +import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.performance.dto.AuxiliaryOutputWorkingHoursDto; import com.ruoyi.performance.dto.AuxiliaryWorkingHoursDayDto; import com.ruoyi.performance.mapper.AuxiliaryOutputWorkingHoursMapper; @@ -27,10 +32,7 @@ import java.io.IOException; import java.math.BigDecimal; import java.net.URLEncoder; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; import java.util.stream.Collectors; /** @@ -53,118 +55,184 @@ @Resource UserMapper userMapper; + @Override public IPage<AuxiliaryOutputWorkingHoursDto> selectAuxiliaryOutputWorkingHours(Page page, AuxiliaryOutputWorkingHoursDto auxiliaryOutputWorkingHoursDto) { + auxiliaryOutputWorkingHoursDto.setWeekDay(weekConvert(StringUtils.isNotEmpty(auxiliaryOutputWorkingHoursDto.getWeekDay()) ? auxiliaryOutputWorkingHoursDto.getWeekDay() : "")); String dates = auxiliaryOutputWorkingHoursDto.getDateTime(); String week = auxiliaryOutputWorkingHoursDto.getWeek(); auxiliaryOutputWorkingHoursDto.setDateTime(null); auxiliaryOutputWorkingHoursDto.setWeek(null); + Map<String, Object> map = new HashMap<>(); List<Integer> ids = new ArrayList<>(); - if (ids.size() == 0) { - ids = null; - } + //鍒ゆ柇缁勯暱,缁勫憳,绠$悊鍛樻潈闄� + User user = userMapper.selectById(Integer.parseInt(SecurityUtils.getLoginUser().getUser().getUserId().toString())); + + IPage<AuxiliaryOutputWorkingHoursDto> auxiliaryOutputWorkingHoursDtoIPage = null; if (ObjectUtils.isNotEmpty(dates) && ObjectUtils.isNotEmpty(week)) { String[] split = dates.replaceAll("\\[", "").replaceAll("]", "").replaceAll("\"", "").split(","); String[] weeks = week.replaceAll("\\[", "").replaceAll("]", "").replaceAll("\"", "").split(","); - IPage<AuxiliaryOutputWorkingHoursDto> auxiliaryOutputWorkingHoursDtoIPage = auxiliaryOutputWorkingHoursMapper.selectAuxiliaryOutputWorkingHours(page, + 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); for (AuxiliaryOutputWorkingHoursDto record : auxiliaryOutputWorkingHoursDtoIPage.getRecords()) { record.setDateTime(record.getDateTime().substring(0,10)); } - return auxiliaryOutputWorkingHoursDtoIPage ; + map.put("body",auxiliaryOutputWorkingHoursDtoIPage ); } else if (ObjectUtils.isNotEmpty(dates) && ObjectUtils.isEmpty(week)) { String[] split = dates.replaceAll("\\[", "").replaceAll("]", "").replaceAll("\"", "").split(","); - IPage<AuxiliaryOutputWorkingHoursDto> auxiliaryOutputWorkingHoursDtoIPage = auxiliaryOutputWorkingHoursMapper.selectAuxiliaryOutputWorkingHours(page, + auxiliaryOutputWorkingHoursDtoIPage = auxiliaryOutputWorkingHoursMapper.selectAuxiliaryOutputWorkingHours(page, QueryWrappers.queryWrappers(auxiliaryOutputWorkingHoursDto) .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)); } - return auxiliaryOutputWorkingHoursDtoIPage ; + map.put("body",auxiliaryOutputWorkingHoursDtoIPage ); } else if (ObjectUtils.isEmpty(dates) && ObjectUtils.isNotEmpty(week)) { String[] weeks = week.replaceAll("\\[", "").replaceAll("]", "").replaceAll("\"", "").split(","); - IPage<AuxiliaryOutputWorkingHoursDto> auxiliaryOutputWorkingHoursDtoIPage = auxiliaryOutputWorkingHoursMapper.selectAuxiliaryOutputWorkingHours(page, + auxiliaryOutputWorkingHoursDtoIPage = auxiliaryOutputWorkingHoursMapper.selectAuxiliaryOutputWorkingHours(page, QueryWrappers.queryWrappers(auxiliaryOutputWorkingHoursDto) .ge("week", weeks[0]).le("week", weeks[1]), ids); for (AuxiliaryOutputWorkingHoursDto record : auxiliaryOutputWorkingHoursDtoIPage.getRecords()) { record.setDateTime(record.getDateTime().substring(0,10)); } - return auxiliaryOutputWorkingHoursDtoIPage ; + map.put("body", auxiliaryOutputWorkingHoursDtoIPage); } else { - IPage<AuxiliaryOutputWorkingHoursDto> auxiliaryOutputWorkingHoursDtoIPage = auxiliaryOutputWorkingHoursMapper.selectAuxiliaryOutputWorkingHours(page, QueryWrappers.queryWrappers(auxiliaryOutputWorkingHoursDto), ids); + auxiliaryOutputWorkingHoursDtoIPage = auxiliaryOutputWorkingHoursMapper.selectAuxiliaryOutputWorkingHours(page, QueryWrappers.queryWrappers(auxiliaryOutputWorkingHoursDto), ids); for (AuxiliaryOutputWorkingHoursDto record : auxiliaryOutputWorkingHoursDtoIPage.getRecords()) { record.setDateTime(record.getDateTime().substring(0,10)); } - return auxiliaryOutputWorkingHoursDtoIPage ; } + return auxiliaryOutputWorkingHoursDtoIPage; } - //缁熻浜ч噺宸ユ椂姹囨�诲拰杈呭姪宸ユ椂姹囨�� - @Override - 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())){ - 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<>(); - BigDecimal sumOutputWorkTime = BigDecimal.ZERO; - BigDecimal sumApprovedWorkingHour = BigDecimal.ZERO; - //鍒ゆ柇鏄粍闀胯繕鏄粍鍛樿繕鏄鐞嗗憳 - List<AuxiliaryOutputWorkingHours> auxiliaryOutputWorkingHours = new ArrayList<>(); - List<AuxiliaryWorkingHoursDay> auxiliaryWorkingHoursDays = new ArrayList<>(); - if (ids.size() == 0) { - ids=null; + @Override + public Map<String, Object> collectWorkingHours(AuxiliaryOutputWorkingHoursDto auxiliaryOutputWorkingHoursDto){ + // 杩斿洖鐨勭粨鏋� + Map<String, Object> map = new HashMap<>(); + + // 鍒ゆ柇褰撳墠浜虹殑鏉冮檺 鏄惁鍙煡鐪嬪浜� + List<Integer> ids = getCurrentGroupUserIds(StringUtils.isNotEmpty(auxiliaryOutputWorkingHoursDto.getName()) ? auxiliaryOutputWorkingHoursDto.getName() : ""); + + String dateTime = auxiliaryOutputWorkingHoursDto.getDateTime(); + String startTime = ""; + String endTime = ""; + if(StringUtils.isNotEmpty(dateTime)) { + List<String> list = JSONArray.parseArray(dateTime, String.class); + startTime = list.get(0)+ " 00:00:00"; + endTime = list.get(1)+ " 23:59:59"; } - if (ObjectUtils.isNotEmpty(dates)) { - String[] split = dates.replaceAll("\\[", "").replaceAll("]", "").replaceAll("\"", "").split(","); - //缁熻褰撳墠鐢ㄦ埛鐨勪骇鍝佸伐鏃� - auxiliaryOutputWorkingHours = auxiliaryOutputWorkingHoursMapper.selectLists(QueryWrappers.queryWrappers(outputWorkingHours) - .ge("date_time", split[0]) - .le("date_time", split[1] + " 23:59:59"),ids); - //缁熻褰撳墠鐢ㄦ埛鐨勮緟鍔╁伐鏃� - auxiliaryWorkingHoursDays = auxiliaryWorkingHoursDayMapper.selectLists(QueryWrappers.queryWrappers(workingHoursDay) - .eq("state","宸叉壒鍑�") - .ge("date_time", split[0]) - .le("date_time", split[1] + " 23:59:59"),ids); - }else if (ObjectUtils.isNotEmpty(auxiliaryOutputWorkingHoursDto.getWeekDay())){ - //缁熻褰撳墠鐢ㄦ埛鐨勪骇鍝佸伐鏃� - auxiliaryOutputWorkingHours = auxiliaryOutputWorkingHoursMapper.selectLists(QueryWrappers.queryWrappers(outputWorkingHours),ids); - //缁熻褰撳墠鐢ㄦ埛鐨勮緟鍔╁伐鏃� - auxiliaryWorkingHoursDays = auxiliaryWorkingHoursDayMapper.selectLists(QueryWrappers.queryWrappers(workingHoursDay).eq("state","宸叉壒鍑�"),ids); + String weekConvert = weekConvert(StringUtils.isNotEmpty(auxiliaryOutputWorkingHoursDto.getWeekDay()) ? auxiliaryOutputWorkingHoursDto.getWeekDay() : "" ); // 鍛ㄦ杞崲 + // 鏍规嵁鏉′欢鑾峰彇鏁版嵁 + List<AuxiliaryOutputWorkingHours> auxiliaryOutputWorkingHours = auxiliaryOutputWorkingHoursMapper.selectList(new QueryWrapper<AuxiliaryOutputWorkingHours>() + .in(CollectionUtils.isNotEmpty(ids), "check_id", ids) + .like(StringUtils.isNotBlank(auxiliaryOutputWorkingHoursDto.getWeekDay()), "week_day", weekConvert) + .between(StringUtils.isNotEmpty(dateTime),"date_time", startTime, endTime)); + + // 1.浜ч噺宸ユ椂姹囨�� + // 鏍规嵁濮旀墭缂栧彿銆佹牱鍝佺紪鍙枫�佸伐鏃跺垎缁� 鏉ヨ繘琛屽垎缁勭粺璁� + // 鍔犵彮鐨勫伐鏃舵眹鎬� + BigDecimal overTime = BigDecimal.ZERO; + // 杩囨护鍑哄姞鐝殑宸ユ椂 + List<AuxiliaryOutputWorkingHours> overFilter = auxiliaryOutputWorkingHours.stream() + .filter(item -> Objects.nonNull(item.getOvertimeOrderNo()) && StringUtils.isNotEmpty(item.getOvertimeOrderNo())) + .collect(Collectors.toList()); + Map<String, List<AuxiliaryOutputWorkingHours>> collect = overFilter.stream() + .collect(Collectors.groupingBy(item -> item.getOvertimeOrderNo() + "@" + item.getSample() + "@" + item.getManHourGroup())); + Iterator<Map.Entry<String, List<AuxiliaryOutputWorkingHours>>> iterator = collect.entrySet().iterator(); + while (iterator.hasNext()) { + Map.Entry<String, List<AuxiliaryOutputWorkingHours>> entry = iterator.next(); + // 鍚屼竴鍒嗙粍涓嬬殑鍙渶瑕佺畻涓�娆� + overTime = add(overTime, BigDecimal.valueOf(entry.getValue().get(0).getOvertimeWorkTime())); } - else { - auxiliaryOutputWorkingHours = auxiliaryOutputWorkingHoursMapper.selectListByIds(ids); - auxiliaryWorkingHoursDays = auxiliaryWorkingHoursDayMapper.selectListByIds(ids); + // 闈炲姞鐝殑宸ユ椂姹囨�� + BigDecimal workTime = BigDecimal.ZERO; + List<AuxiliaryOutputWorkingHours> workFilter = auxiliaryOutputWorkingHours.stream() + .filter(item -> Objects.nonNull(item.getOrderNo()) && StringUtils.isNotEmpty(item.getOrderNo())) + .collect(Collectors.toList()); + Map<String, List<AuxiliaryOutputWorkingHours>> collect1 = workFilter.stream() + .collect(Collectors.groupingBy(item -> item.getOrderNo() + "@" + item.getSample() + "@" + item.getManHourGroup())); + Iterator<Map.Entry<String, List<AuxiliaryOutputWorkingHours>>> iterator1 = collect1.entrySet().iterator(); + while (iterator1.hasNext()) { + Map.Entry<String, List<AuxiliaryOutputWorkingHours>> entry = iterator1.next(); + workTime = add(workTime, BigDecimal.valueOf(entry.getValue().get(0).getOutputWorkTime())); } - if (ObjectUtils.isNotEmpty(auxiliaryOutputWorkingHours)) { - Map<String, BigDecimal> sumMap = new HashMap<>(); - for (AuxiliaryOutputWorkingHours auxiliaryOutputWorkingHour : auxiliaryOutputWorkingHours) { - if (!sumMap.containsKey(auxiliaryOutputWorkingHour.getManHourGroup()+auxiliaryOutputWorkingHour.getOrderNo()+auxiliaryOutputWorkingHour.getSample())) { - sumMap.put(auxiliaryOutputWorkingHour.getManHourGroup()+auxiliaryOutputWorkingHour.getOrderNo()+auxiliaryOutputWorkingHour.getSample(), auxiliaryOutputWorkingHour.getOutputWorkTime()); - } - } - sumOutputWorkTime = sumMap.values().stream().reduce(BigDecimal.ZERO, BigDecimal::add); - } - map.put("浜ч噺宸ユ椂姹囨��", sumOutputWorkTime); - if (ObjectUtils.isNotEmpty(auxiliaryWorkingHoursDays)) { - for (AuxiliaryWorkingHoursDay auxiliaryWorkingHoursDay : auxiliaryWorkingHoursDays) { -// sumApprovedWorkingHour = sumApprovedWorkingHour.add(auxiliaryWorkingHoursDay.getReviewerNonproductiveTime());//澶嶆牳宸ユ椂 + BigDecimal outPutWorkTime = add(overTime, workTime); + // 2.杈呭姪宸ユ椂姹囨�� + BigDecimal dayWorkTime = BigDecimal.ZERO; + List<AuxiliaryWorkingHoursDay> dayList = auxiliaryWorkingHoursDayMapper.selectList(new QueryWrapper<AuxiliaryWorkingHoursDay>() + .in(CollectionUtils.isNotEmpty(ids), "name_user", ids) + .like(StringUtils.isNotBlank(auxiliaryOutputWorkingHoursDto.getWeekDay()), "week_day", auxiliaryOutputWorkingHoursDto.getWeekDay()) + .eq(StringUtils.isNotEmpty(auxiliaryOutputWorkingHoursDto.getState()), "state", auxiliaryOutputWorkingHoursDto.getState()) + .between(StringUtils.isNotEmpty(dateTime),"date_time", startTime, endTime)); + + for (AuxiliaryWorkingHoursDay a : dayList) { + if(ObjectUtils.isNull(a.getReviewerNonproductiveTime())) { + dayWorkTime = add(dayWorkTime, BigDecimal.ZERO); + }else { + dayWorkTime = add(dayWorkTime, BigDecimal.valueOf(a.getReviewerNonproductiveTime())); } } - map.put("杈呭姪宸ユ椂姹囨��", sumApprovedWorkingHour); - return map; + map.put("浜ч噺宸ユ椂姹囨��", outPutWorkTime); + map.put("杈呭姪宸ユ椂姹囨��", dayWorkTime); + return map; + } + + + public BigDecimal add(BigDecimal a, BigDecimal b){ + return a.add(b); + } + + // 鍛ㄦ杞崲 + public String weekConvert(String week){ + String weekDay = ""; + switch (week) { + case "1": + weekDay = "鍛ㄤ竴"; + break; + case "2": + weekDay = "鍛ㄤ簩"; + break; + case "3": + weekDay = "鍛ㄤ笁"; + break; + case "4": + weekDay = "鍛ㄥ洓"; + break; + case "5": + weekDay = "鍛ㄤ簲"; + break; + case "6": + weekDay = "鍛ㄥ叚"; + break; + case "0": + weekDay = "鍛ㄦ棩"; + break; + } + return weekDay; + } + + + /** + * 鑾峰彇褰撳墠鐢ㄦ埛缁勭粐鐨勭敤鎴穒d + * @return + */ + private List<Integer> getCurrentGroupUserIds(){ + return getCurrentGroupUserIds(""); + } + + private List<Integer> getCurrentGroupUserIds(String name){ + List<Integer> ids = new ArrayList<>(); + //鍒ゆ柇鏄粍闀胯繕鏄粍鍛樿繕鏄鐞嗗憳锛屾牴鎹畆oleId(7:妫�楠屽憳锛�8:妫�楠岀粍闀�) + Integer userId = Integer.parseInt(SecurityUtils.getLoginUser().getUser().getUserId().toString()); + User user = userMapper.selectById(userId); + + //绠$悊鍛�(涓嶆坊鍔犻檺鍒舵潯浠舵墍鏈変汉閮藉彲浠ョ湅) + //涓嶆槸缁勯暱 + + return ids; } //瀵煎嚭 @@ -172,11 +240,25 @@ public void exportWorkingHours(HttpServletResponse response) throws IOException { List<AuxiliaryOutputWorkingHoursDto> auxiliaryOutputWorkingHoursDtos = new ArrayList<>(); List<AuxiliaryWorkingHoursDayDto> auxiliaryWorkingHoursDayDtos = new ArrayList<>(); - List<Integer> ids = new ArrayList<>(); + List<Integer> ids = getCurrentGroupUserIds(); //鏌ヨ杈呭姪宸ユ椂 auxiliaryWorkingHoursDayDtos = auxiliaryWorkingHoursDayMapper.selectDataByUser(ids); //鏌ヨ缁熻宸ユ椂 - auxiliaryOutputWorkingHoursDtos = auxiliaryOutputWorkingHoursMapper.selectDataByUser(ids); + auxiliaryOutputWorkingHoursDtos = auxiliaryOutputWorkingHoursMapper.selectDataByUser(ids).stream().map(item -> { + if(Objects.isNull(item.getOvertimeWorkTime())) { + item.setOvertimeWorkTime((double)0); + } + if(Objects.isNull(item.getOvertimeAmount())) { + item.setOvertimeAmount(0); + } + if(Objects.isNull(item.getWorkTime())) { + item.setWorkTime((double)0); + } + if(Objects.isNull(item.getAmount())) { + item.setAmount(0); + } + return item; + }).collect(Collectors.toList()); response.setContentType("application/vnd.ms-excel"); response.setCharacterEncoding("UTF-8"); // 杩欓噷URLEncoder.encode鍙互闃叉涓枃涔辩爜 褰撶劧鍜宔asyexcel娌℃湁鍏崇郴 @@ -185,73 +267,11 @@ try { // 鏂板缓ExcelWriter ExcelWriter excelWriter = EasyExcel.write(response.getOutputStream()).registerWriteHandler(new LongestMatchColumnWidthStyleStrategy()).build(); - WriteSheet mainSheet = EasyExcel.writerSheet(0, "杈呭姪宸ユ椂瀵煎嚭").head(AuxiliaryWorkingHoursDayDto.class).build(); excelWriter.write(auxiliaryWorkingHoursDayDtos, mainSheet); - WriteSheet mainSheet1 = EasyExcel.writerSheet(1, "浜ч噺宸ユ椂瀵煎嚭").head(AuxiliaryOutputWorkingHoursDto.class).build(); excelWriter.write(auxiliaryOutputWorkingHoursDtos, mainSheet1); // 鍏抽棴娴� - excelWriter.finish(); - } catch (IOException e) { - throw new RuntimeException("瀵煎嚭澶辫触"); - } - } - - /** - * 瀵煎嚭浜ч噺宸ユ椂 - * @param response - */ - @Override - public void exportOutputHours(AuxiliaryOutputWorkingHoursDto auxiliaryOutputWorkingHoursDto, HttpServletResponse response) { - //鏌ヨ瀵煎嚭鐨勮垂鐢ㄧ粺璁℃暟鎹� - String dates = auxiliaryOutputWorkingHoursDto.getDateTime(); - String week = auxiliaryOutputWorkingHoursDto.getWeek(); - auxiliaryOutputWorkingHoursDto.setDateTime(null); - auxiliaryOutputWorkingHoursDto.setWeek(null); - - List<Integer> ids = new ArrayList<>(); - String name = auxiliaryOutputWorkingHoursDto.getName(); - if (ObjectUtils.isNotEmpty(name)) { - ids.addAll(userMapper.selectList(Wrappers.<User>lambdaQuery().like(User::getName, name)).stream().map(User::getId).collect(Collectors.toList())); - } - - List<AuxiliaryOutputWorkingHoursDto> auxiliaryOutputWorkingHoursDtoIPage = new ArrayList<>(); - if (ObjectUtils.isNotEmpty(dates) && ObjectUtils.isNotEmpty(week)) { - String[] split = dates.replaceAll("\\[", "").replaceAll("]", "").replaceAll("\"", "").split(","); - String[] weeks = week.replaceAll("\\[", "").replaceAll("]", "").replaceAll("\"", "").split(","); - auxiliaryOutputWorkingHoursDtoIPage = auxiliaryOutputWorkingHoursMapper.selectAuxiliaryOutputWorkingHoursList(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); - - } else if (ObjectUtils.isNotEmpty(dates) && ObjectUtils.isEmpty(week)) { - String[] split = dates.replaceAll("\\[", "").replaceAll("]", "").replaceAll("\"", "").split(","); - auxiliaryOutputWorkingHoursDtoIPage = auxiliaryOutputWorkingHoursMapper.selectAuxiliaryOutputWorkingHoursList(QueryWrappers.queryWrappers(auxiliaryOutputWorkingHoursDto) - .ge("date_time", split[0]).le("date_time", split[1] + " 23:59:59"), ids); - - } else if (ObjectUtils.isEmpty(dates) && ObjectUtils.isNotEmpty(week)) { - String[] weeks = week.replaceAll("\\[", "").replaceAll("]", "").replaceAll("\"", "").split(","); - auxiliaryOutputWorkingHoursDtoIPage = auxiliaryOutputWorkingHoursMapper.selectAuxiliaryOutputWorkingHoursList(QueryWrappers.queryWrappers(auxiliaryOutputWorkingHoursDto) - .ge("week", weeks[0]).le("week", weeks[1]), ids); - - } else { - auxiliaryOutputWorkingHoursDtoIPage = auxiliaryOutputWorkingHoursMapper.selectAuxiliaryOutputWorkingHoursList(QueryWrappers.queryWrappers(auxiliaryOutputWorkingHoursDto), ids); - } - - try { - 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"); - //鏂板缓ExcelWriter - ExcelWriter excelWriter = EasyExcel.write(response.getOutputStream()).registerWriteHandler(new LongestMatchColumnWidthStyleStrategy()).build(); - //鑾峰彇sheet0瀵硅薄 - WriteSheet mainSheet = EasyExcel.writerSheet(0, "浜ч噺宸ユ椂淇℃伅瀵煎嚭").head(AuxiliaryOutputWorkingHoursDto.class).build(); - - //鍚憇heet0鍐欏叆鏁版嵁 浼犲叆绌簂ist杩欐牱鍙鍑鸿〃澶� - excelWriter.write(auxiliaryOutputWorkingHoursDtoIPage, mainSheet); - //鍏抽棴娴� excelWriter.finish(); } catch (IOException e) { throw new RuntimeException("瀵煎嚭澶辫触"); diff --git a/performance-server/src/main/java/com/ruoyi/performance/service/impl/AuxiliaryWorkingHoursDayServiceImpl.java b/performance-server/src/main/java/com/ruoyi/performance/service/impl/AuxiliaryWorkingHoursDayServiceImpl.java index b9f48d0..ddbd8f1 100644 --- a/performance-server/src/main/java/com/ruoyi/performance/service/impl/AuxiliaryWorkingHoursDayServiceImpl.java +++ b/performance-server/src/main/java/com/ruoyi/performance/service/impl/AuxiliaryWorkingHoursDayServiceImpl.java @@ -1,41 +1,45 @@ package com.ruoyi.performance.service.impl; +import cn.hutool.core.date.DateTime; +import cn.hutool.core.date.DateUtil; -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.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; 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.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.ruoyi.common.core.domain.entity.User; -import com.ruoyi.common.exception.base.BaseException; import com.ruoyi.common.utils.QueryWrappers; import com.ruoyi.common.utils.SecurityUtils; +import com.ruoyi.framework.exception.ErrorException; import com.ruoyi.performance.dto.AuxiliaryWorkingHoursDayDto; import com.ruoyi.performance.dto.HoursDay; import com.ruoyi.performance.mapper.AuxiliaryWorkingHoursDayMapper; import com.ruoyi.performance.mapper.AuxiliaryWorkingHoursMapper; import com.ruoyi.performance.mapper.PerformanceShiftMapper; +import com.ruoyi.performance.mapper.ShiftTimeMapper; import com.ruoyi.performance.pojo.AuxiliaryWorkingHours; import com.ruoyi.performance.pojo.AuxiliaryWorkingHoursDay; import com.ruoyi.performance.pojo.PerformanceShift; +import com.ruoyi.performance.pojo.ShiftTime; import com.ruoyi.performance.service.AuxiliaryWorkingHoursDayService; +import com.ruoyi.system.mapper.SysRoleMapper; +import com.ruoyi.system.mapper.SysUserRoleMapper; import com.ruoyi.system.mapper.UserMapper; +import com.ruoyi.system.service.ISysDictTypeService; +import org.apache.commons.lang3.StringUtils; import org.apache.commons.math3.analysis.function.Power; import org.springframework.beans.BeanUtils; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import javax.annotation.Resource; -import javax.servlet.http.HttpServletResponse; -import java.io.IOException; -import java.net.URLEncoder; +import java.text.SimpleDateFormat; +import java.time.LocalDate; import java.time.LocalDateTime; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.time.LocalTime; +import java.time.format.DateTimeFormatter; +import java.util.*; import java.util.stream.Collectors; /** @@ -55,11 +59,25 @@ @Resource AuxiliaryWorkingHoursMapper auxiliaryWorkingHoursMapper; + @Resource UserMapper userMapper; @Resource + private SysRoleMapper roleMapper; + + @Resource + private SysUserRoleMapper userRoleMapper; + + + @Resource PerformanceShiftMapper performanceShiftMapper; + + @Resource + private ISysDictTypeService dictTypeService; + + @Resource + private ShiftTimeMapper shiftTimeMapper; @Override public IPage<AuxiliaryWorkingHoursDayDto> selectAuxiliaryWorkingHoursDay(Page page, AuxiliaryWorkingHoursDayDto auxiliaryWorkingHoursDayDto) { @@ -67,48 +85,45 @@ String week = auxiliaryWorkingHoursDayDto.getWeek(); auxiliaryWorkingHoursDayDto.setDateTime(null); auxiliaryWorkingHoursDayDto.setWeek(null); - Map<String, Object> map = new HashMap<>(); List<Integer> ids = new ArrayList<>(); - if (ids.size() == 0) { - ids = null; - } + IPage<AuxiliaryWorkingHoursDayDto> auxiliaryWorkingHoursDayDtoIPage = null; + if (ObjectUtils.isNotEmpty(dates) && ObjectUtils.isNotEmpty(week)) { String[] split = dates.replaceAll("\\[", "").replaceAll("]", "").replaceAll("\"", "").split(","); String[] weeks = week.replaceAll("\\[", "").replaceAll("]", "").replaceAll("\"", "").split(","); - IPage<AuxiliaryWorkingHoursDayDto> auxiliaryWorkingHoursDayDtoIPage = auxiliaryWorkingHoursDayMapper.selectAuxiliaryWorkingHoursDay(page, + 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); for (AuxiliaryWorkingHoursDayDto record : auxiliaryWorkingHoursDayDtoIPage.getRecords()) { record.setDateTime(record.getDateTime().substring(0, 10)); } - return auxiliaryWorkingHoursDayDtoIPage; + } else if (ObjectUtils.isNotEmpty(dates) && ObjectUtils.isEmpty(week)) { String[] split = dates.replaceAll("\\[", "").replaceAll("]", "").replaceAll("\"", "").split(","); - IPage<AuxiliaryWorkingHoursDayDto> auxiliaryWorkingHoursDayDtoIPage = auxiliaryWorkingHoursDayMapper.selectAuxiliaryWorkingHoursDay(page, + auxiliaryWorkingHoursDayDtoIPage = auxiliaryWorkingHoursDayMapper.selectAuxiliaryWorkingHoursDay(page, QueryWrappers.queryWrappers(auxiliaryWorkingHoursDayDto) .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)); } - return auxiliaryWorkingHoursDayDtoIPage; + } else if (ObjectUtils.isEmpty(dates) && ObjectUtils.isNotEmpty(week)) { String[] weeks = week.replaceAll("\\[", "").replaceAll("]", "").replaceAll("\"", "").split(","); - IPage<AuxiliaryWorkingHoursDayDto> auxiliaryWorkingHoursDayDtoIPage = auxiliaryWorkingHoursDayMapper.selectAuxiliaryWorkingHoursDay(page, + auxiliaryWorkingHoursDayDtoIPage = auxiliaryWorkingHoursDayMapper.selectAuxiliaryWorkingHoursDay(page, QueryWrappers.queryWrappers(auxiliaryWorkingHoursDayDto) .ge("week", weeks[0]).le("week", weeks[1]), ids); for (AuxiliaryWorkingHoursDayDto record : auxiliaryWorkingHoursDayDtoIPage.getRecords()) { record.setDateTime(record.getDateTime().substring(0, 10)); } - return auxiliaryWorkingHoursDayDtoIPage; + } else { - IPage<AuxiliaryWorkingHoursDayDto> auxiliaryWorkingHoursDayDtoIPage = auxiliaryWorkingHoursDayMapper.selectAuxiliaryWorkingHoursDay(page, QueryWrappers.queryWrappers(auxiliaryWorkingHoursDayDto), ids); + auxiliaryWorkingHoursDayDtoIPage = auxiliaryWorkingHoursDayMapper.selectAuxiliaryWorkingHoursDay(page, QueryWrappers.queryWrappers(auxiliaryWorkingHoursDayDto), ids); for (AuxiliaryWorkingHoursDayDto record : auxiliaryWorkingHoursDayDtoIPage.getRecords()) { record.setDateTime(record.getDateTime().substring(0, 10)); } - return auxiliaryWorkingHoursDayDtoIPage; } - + return auxiliaryWorkingHoursDayDtoIPage; } //鏍规嵁缂栧彿鏌ヨ杈呭姪宸ユ椂閰嶇疆淇℃伅 @@ -117,7 +132,7 @@ //鏍规嵁濉啓鐨勭紪鍙锋煡璇㈣緟鍔╁伐鏃堕厤缃� AuxiliaryWorkingHours auxiliaryWorkingHours = auxiliaryWorkingHoursMapper.selectOne(Wrappers.<AuxiliaryWorkingHours>lambdaQuery().eq(AuxiliaryWorkingHours::getNumber, number)); if (ObjectUtils.isEmpty(auxiliaryWorkingHours)) { - throw new BaseException("璇ョ紪鍙锋病鏈夊搴旂殑杈呭姪宸ユ椂閰嶇疆"); + throw new ErrorException("璇ョ紪鍙锋病鏈夊搴旂殑杈呭姪宸ユ椂閰嶇疆"); } AuxiliaryWorkingHoursDay auxiliaryWorkingHoursDay = new AuxiliaryWorkingHoursDay(); BeanUtils.copyProperties(auxiliaryWorkingHours, auxiliaryWorkingHoursDay); @@ -127,23 +142,134 @@ //褰曞叆鏁版嵁(鏂板) @Override public int insertAuxiliaryWorkingHoursDay(AuxiliaryWorkingHoursDay auxiliaryWorkingHoursDay) { - Integer userId = SecurityUtils.getUserId().intValue(); + Integer userId = Integer.parseInt(SecurityUtils.getUserId().toString()); auxiliaryWorkingHoursDay.setNameUser(userId);//濮撳悕id auxiliaryWorkingHoursDay.setState("宸叉彁浜�"); + //鏌ヨ浜哄憳褰撳墠鐨勭彮娆� + if(StringUtils.isNotBlank(auxiliaryWorkingHoursDay.getDateTime())){ + //褰曞叆鏃堕棿 + DateTimeFormatter pattern = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); + LocalDateTime saveDate = LocalDateTime.parse(auxiliaryWorkingHoursDay.getDateTime(), pattern); + + LocalDate now1 = LocalDate.now();//褰撳墠鏃ユ湡 + LocalDate dateTime = LocalDate.parse(saveDate.format(formatter));// 鐢ㄦ埛閫夋嫨鏃ユ湡 + + //鐝璁板綍 + PerformanceShift performanceShift = performanceShiftMapper.selectOne(Wrappers.<PerformanceShift>lambdaQuery() + .eq(PerformanceShift::getUserId, userId) + .eq(PerformanceShift::getWorkTime, saveDate).last("limit 1")); + if(Objects.isNull(performanceShift)) { + throw new ErrorException("璇峰厛褰曞叆鐝淇℃伅"); + } + auxiliaryWorkingHoursDay.setShift(performanceShift.getShift()); + DateTime parse = DateUtil.parse(saveDate.format(formatter)); + auxiliaryWorkingHoursDay.setWeek(String.valueOf(DateUtil.weekOfYear(DateUtil.offsetDay(parse, 1)))); // 鍛ㄦ + // 濡傛灉鏄槰澶╋紝璧嬪�煎埌涓婁竴涓彮娆� + if(now1.isAfter(dateTime)) { + }else{ + // 濡傛灉鏄粖澶╋紝骞朵笖鏄法澶╃殑鐝锛岄渶瑕佸皢鏃ユ湡鏀逛负鏄ㄥぉ + ShiftTime shiftTime = shiftTimeMapper.selectOne(new LambdaQueryWrapper<ShiftTime>() + .eq(ShiftTime::getShift, performanceShift.getShift())); + if(Objects.nonNull(shiftTime)) { + String start = shiftTime.getStartTime(); + String end = shiftTime.getEndTime(); + LocalTime startTime = LocalTime.parse(start); + LocalTime endTime = LocalTime.parse(end); + LocalTime now = LocalTime.now(); + // 璺ㄥぉ鐝 + if(startTime.isAfter(endTime)){ + // 涓嶅湪浠婂ぉ鐨勭彮娆℃椂闂村唴 + if(now.isBefore(startTime)) { + auxiliaryWorkingHoursDay = previousShift(userId, auxiliaryWorkingHoursDay); + } + }else { + // 涓嶈法澶╃殑鎯呭喌 + // 濡傛灉褰撳墠鏃堕棿涓嶅湪浠婂ぉ鐨勭彮娆℃椂闂村唴,涓斿湪寮�濮嬩箣鍓� 绠楀埌涓婁竴涓彮娆� + if(now.isBefore(startTime)){ + auxiliaryWorkingHoursDay = previousShift(userId, auxiliaryWorkingHoursDay); + } + + } + }else { + // 濡傛灉鏄紤鎭� 璇峰亣 鍑哄樊 鐨勬儏鍐碉紝闇�瑕佸皢鏃ユ湡鏀逛负鍓嶄竴涓彮娆� + // 閮界畻鍒颁笂涓�涓彮娆� + auxiliaryWorkingHoursDay = previousShift(userId, auxiliaryWorkingHoursDay); + } + } + } return auxiliaryWorkingHoursDayMapper.insert(auxiliaryWorkingHoursDay); } + // 鑾峰彇涓婁竴涓彮娆$殑鏃堕棿 + public AuxiliaryWorkingHoursDay previousShift(Integer userId,AuxiliaryWorkingHoursDay auxiliaryWorkingHoursDay) { + LocalTime time = LocalTime.of(0, 0, 0); + LocalDateTime yesterdayTime = LocalDateTime.of(LocalDate.now(), time); + DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); + // 閮界畻鍒颁笂涓�涓彮娆� + List<Integer> list = Arrays.asList(3, 4, 6); // 浼戞伅 璇峰亣 鍗婂ぉ 鍑哄樊 + List<PerformanceShift> performanceShifts = performanceShiftMapper.selectList(new LambdaQueryWrapper<PerformanceShift>() + .eq(PerformanceShift::getUserId, userId) + .lt(PerformanceShift::getWorkTime, yesterdayTime.format(dateTimeFormatter)) + .notIn(PerformanceShift::getShift, list) + .orderByDesc(PerformanceShift::getWorkTime)); + String dateTime = performanceShifts.get(0).getWorkTime().format(dateTimeFormatter); + auxiliaryWorkingHoursDay.setDateTime(dateTime);//鏃ユ湡 鍓嶄竴涓彮娆� + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); + DateTime parse = DateUtil.parse(performanceShifts.get(0).getWorkTime().format(formatter)); + auxiliaryWorkingHoursDay.setWeek(String.valueOf(DateUtil.weekOfYear(DateUtil.offsetDay(parse, 1)))); // 鍛ㄦ + auxiliaryWorkingHoursDay.setWeekDay(getWeek(dateTime));//鏄熸湡 + return auxiliaryWorkingHoursDay; + } + public static String getWeek(String dayStr) { + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + try { + Date date = sdf.parse(dayStr); + Calendar calendar = Calendar.getInstance(); + calendar.setTime(date); + int dayOfWeek = calendar.get(Calendar.DAY_OF_WEEK); + int day = calendar.get(Calendar.DAY_OF_MONTH); + return getWeekDay(dayOfWeek); + } catch (Exception e) { + e.printStackTrace(); + } + return null; + } + public static String getWeekDay(int dayOfWeek) { + switch (dayOfWeek) { + case Calendar.MONDAY: + return "1"; + case Calendar.TUESDAY: + return "2"; + case Calendar.WEDNESDAY: + return "3"; + case Calendar.THURSDAY: + return "4"; + case Calendar.FRIDAY: + return "5"; + case Calendar.SATURDAY: + return "6"; + case Calendar.SUNDAY: + return "7"; + default: + return "鏈煡"; + } + } + //瀹℃牳/鎵瑰噯 @Override public boolean checkOrApprove(HoursDay hoursDay) { List<AuxiliaryWorkingHoursDay> auxiliaryWorkingHoursDays = hoursDay.getAuxiliaryWorkingHoursDays(); for (AuxiliaryWorkingHoursDay auxiliaryWorkingHoursDay : auxiliaryWorkingHoursDays) { - Integer userId = SecurityUtils.getUserId().intValue(); - auxiliaryWorkingHoursDay.setReviewer(userMapper.selectById(userId).getName()); + if (auxiliaryWorkingHoursDay.getState().equals("宸插鏍�")) { + Integer userId = Integer.parseInt(SecurityUtils.getUserId().toString()); + auxiliaryWorkingHoursDay.setReviewer(userMapper.selectById(userId).getName()); + } if (auxiliaryWorkingHoursDay.getReviewerNumber() == null) { auxiliaryWorkingHoursDay.setReviewerNumber(auxiliaryWorkingHoursDay.getAmount());//澶嶆牳鏁伴噺 auxiliaryWorkingHoursDay.setReviewerNonproductiveTime(auxiliaryWorkingHoursDay.getNonproductiveTime());//澶嶆牳宸ユ椂 } + } return updateBatchById(auxiliaryWorkingHoursDays); } @@ -151,7 +277,7 @@ //缂栬緫 @Override public int updateAuxiliaryWorkingHoursDay(AuxiliaryWorkingHoursDay auxiliaryWorkingHoursDay) { - Integer userId = SecurityUtils.getUserId().intValue(); + Integer userId = Integer.parseInt(SecurityUtils.getUserId().toString()); auxiliaryWorkingHoursDay.setNameUser(userId);//濮撳悕id return auxiliaryWorkingHoursDayMapper.updateById(auxiliaryWorkingHoursDay); } @@ -165,67 +291,12 @@ //鏍规嵁缂栧彿褰撳墠鐢ㄦ埛淇℃伅鏌ヨ鎵�鍦ㄧ彮娆� @Override public String selectshiftByUser(LocalDateTime dateTime) { - Integer userId = SecurityUtils.getUserId().intValue(); + Integer userId = Integer.parseInt(SecurityUtils.getUserId().toString()); PerformanceShift performanceShift = performanceShiftMapper.selectOne(Wrappers.<PerformanceShift>lambdaQuery().eq(PerformanceShift::getUserId, userId).eq(PerformanceShift::getWorkTime, dateTime)); if (ObjectUtils.isEmpty(performanceShift)) { return null; } return performanceShift.getShift(); - } - - /** - * 瀵煎嚭杈呭姪宸ユ椂 - * @param - * @param response - */ - @Override - public void exportWorkingHours(AuxiliaryWorkingHoursDayDto auxiliaryWorkingHoursDayDto, HttpServletResponse response) { - String dates = auxiliaryWorkingHoursDayDto.getDateTime(); - String week = auxiliaryWorkingHoursDayDto.getWeek(); - auxiliaryWorkingHoursDayDto.setDateTime(null); - auxiliaryWorkingHoursDayDto.setWeek(null); - List<Integer> ids = new ArrayList<>(); - String name = auxiliaryWorkingHoursDayDto.getName(); - if (ObjectUtils.isNotEmpty(name)) { - ids.addAll(userMapper.selectList(Wrappers.<User>lambdaQuery().like(User::getName, name)).stream().map(User::getId).collect(Collectors.toList())); - } - List<AuxiliaryWorkingHoursDayDto> auxiliaryWorkingHoursDayDtoIPage = new ArrayList<>(); - if (ObjectUtils.isNotEmpty(dates) && ObjectUtils.isNotEmpty(week)) { - String[] split = dates.replaceAll("\\[", "").replaceAll("]", "").replaceAll("\"", "").split(","); - String[] weeks = week.replaceAll("\\[", "").replaceAll("]", "").replaceAll("\"", "").split(","); - auxiliaryWorkingHoursDayDtoIPage = auxiliaryWorkingHoursDayMapper.selectAuxiliaryWorkingHoursDayList(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); - } else if (ObjectUtils.isNotEmpty(dates) && ObjectUtils.isEmpty(week)) { - String[] split = dates.replaceAll("\\[", "").replaceAll("]", "").replaceAll("\"", "").split(","); - auxiliaryWorkingHoursDayDtoIPage = auxiliaryWorkingHoursDayMapper.selectAuxiliaryWorkingHoursDayList(QueryWrappers.queryWrappers(auxiliaryWorkingHoursDayDto) - .ge("date_time", split[0]).le("date_time", split[1] + " 23:59:59"), ids); - } else if (ObjectUtils.isEmpty(dates) && ObjectUtils.isNotEmpty(week)) { - String[] weeks = week.replaceAll("\\[", "").replaceAll("]", "").replaceAll("\"", "").split(","); - auxiliaryWorkingHoursDayDtoIPage = auxiliaryWorkingHoursDayMapper.selectAuxiliaryWorkingHoursDayList(QueryWrappers.queryWrappers(auxiliaryWorkingHoursDayDto) - .ge("week", weeks[0]).le("week", weeks[1]), ids); - } else { - auxiliaryWorkingHoursDayDtoIPage = auxiliaryWorkingHoursDayMapper.selectAuxiliaryWorkingHoursDayList( QueryWrappers.queryWrappers(auxiliaryWorkingHoursDayDto), ids); - } - - try { - 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"); - //鏂板缓ExcelWriter - ExcelWriter excelWriter = EasyExcel.write(response.getOutputStream()).registerWriteHandler(new LongestMatchColumnWidthStyleStrategy()).build(); - //鑾峰彇sheet0瀵硅薄 - WriteSheet mainSheet = EasyExcel.writerSheet(0, "杈呭姪宸ユ椂淇℃伅瀵煎嚭").head(AuxiliaryWorkingHoursDayDto.class).build(); - - //鍚憇heet0鍐欏叆鏁版嵁 浼犲叆绌簂ist杩欐牱鍙鍑鸿〃澶� - excelWriter.write(auxiliaryWorkingHoursDayDtoIPage, mainSheet); - //鍏抽棴娴� - excelWriter.finish(); - } catch (IOException e) { - throw new RuntimeException("瀵煎嚭澶辫触"); - } } diff --git a/performance-server/src/main/java/com/ruoyi/performance/service/impl/AuxiliaryWorkingHoursServiceImpl.java b/performance-server/src/main/java/com/ruoyi/performance/service/impl/AuxiliaryWorkingHoursServiceImpl.java index 9863d69..397667b 100644 --- a/performance-server/src/main/java/com/ruoyi/performance/service/impl/AuxiliaryWorkingHoursServiceImpl.java +++ b/performance-server/src/main/java/com/ruoyi/performance/service/impl/AuxiliaryWorkingHoursServiceImpl.java @@ -3,6 +3,8 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.ruoyi.common.core.domain.entity.User; +import com.ruoyi.common.core.dto.UserPageDto; import com.ruoyi.common.utils.QueryWrappers; import com.ruoyi.performance.mapper.AuxiliaryWorkingHoursMapper; import com.ruoyi.performance.pojo.AuxiliaryWorkingHours; @@ -52,4 +54,5 @@ } return auxiliaryWorkingHoursMapper.insert(auxiliaryWorkingHours); } + } diff --git a/performance-server/src/main/resources/mapper/AuxiliaryOutputWorkingHoursMapper.xml b/performance-server/src/main/resources/mapper/AuxiliaryOutputWorkingHoursMapper.xml index 9229c98..d723be8 100644 --- a/performance-server/src/main/resources/mapper/AuxiliaryOutputWorkingHoursMapper.xml +++ b/performance-server/src/main/resources/mapper/AuxiliaryOutputWorkingHoursMapper.xml @@ -17,41 +17,36 @@ <result column="date_time" property="dateTime"/> <result column="week" property="week"/> <result column="week_day" property="weekDay"/> - <result column="check" property="check"/> + <result column="check_id" property="checkId"/> <result column="create_time" property="createTime"/> <result column="update_time" property="updateTime"/> <result column="create_user" property="createUser"/> <result column="update_user" property="updateUser"/> </resultMap> - - <sql id="selectAuxiliaryOutputWorking"> + <select id="selectAuxiliaryOutputWorkingHours" resultType="com.ruoyi.performance.dto.AuxiliaryOutputWorkingHoursDto"> select * from ( select aowh.id, - aowh.inspection_item_class, - aowh.inspection_item, - aowh.inspection_item_subclass, - aowh.overtime_order_no, - aowh.overtime_work_time, - aowh.overtime_amount, - aowh.order_no, - aowh.work_time, - aowh.amount, - aowh.output_work_time, - aowh.date_time, - aowh.week, - aowh.week_day, - user.name, - aowh.sample, - aowh.price, - aowh.man_hour_group, - ip.cable_tag + inspection_item, + inspection_item_subclass, + overtime_order_no, + overtime_work_time, + overtime_amount, + order_no, + work_time, + amount, + output_work_time, + date_time, + week, + week_day, + name, + sample, + aowh.check_id FROM auxiliary_output_working_hours aowh - left join ins_product ip on ip.id = aowh.ins_product_id - left join user on user.id=aowh.`check` + left join user on user.id=aowh.check_id WHERE 1=1 - <if test="ids !=null and ids.size() > 0"> - and `check` in + <if test="ids !=null and ids.size()>0"> + and aowh.check_id in <foreach collection="ids" index="index" open="(" separator="," close=")" item="val"> #{val} </foreach> @@ -60,18 +55,14 @@ <if test="ew.customSqlSegment != null and ew.customSqlSegment != ''"> ${ew.customSqlSegment} </if> - </sql> - <select id="selectAuxiliaryOutputWorkingHours" resultType="com.ruoyi.performance.dto.AuxiliaryOutputWorkingHoursDto"> - <include refid="selectAuxiliaryOutputWorking"/> </select> <select id="selectDataByUser" resultType="com.ruoyi.performance.dto.AuxiliaryOutputWorkingHoursDto"> - select aowh.*, name, ip.cable_tag cableTag + select aowh.*,name FROM auxiliary_output_working_hours aowh - left join ins_product ip on ip.id = aowh.ins_product_id - left join user on user.id = aowh.`check` - WHERE 1 = 1 - <if test="ids !=null and ids.size() > 0"> - and `check` in + left join user on user.id=aowh.check_id + WHERE 1=1 + <if test="ids !=null and ids.size()>0"> + and aowh.check_id in <foreach collection="ids" index="index" open="(" separator="," close=")" item="val"> #{val} </foreach> @@ -80,22 +71,24 @@ <select id="totalHours" resultType="java.util.Map"> select A.name, A.month, - FORMAT(SUM(A.manHours), 4) manHours + FORMAT(SUM(A.manHours), 4) AS manHours from( select user.name, date_time as month, order_no, sample, man_hour_group, - case when #{type}='鍔犵彮宸ユ椂' then case when overtime_work_time is null then 0 else overtime_work_time end - else case when work_time is null then 0 else work_time end end as manHours + case + when #{type}='鍔犵彮宸ユ椂' then case when overtime_work_time is null then 0 else overtime_work_time end + else case when work_time is null then 0 else work_time end + end as manHours -- FORMAT(SUM(output_work_time), 4) as manHours from auxiliary_output_working_hours aowh - left join user on user.id=aowh.`check` + left join user on user.id=aowh.check_id left join department_lims dl on depart_lims_id=dl.id where date_time LIKE CONCAT('%', #{month}, '%') - <if test="ids !=null and ids != ''"> - and `check` in + <if test="ids !=null and ids.size()>0"> + and aowh.check_id in <foreach collection="ids" open="(" separator="," close=")" item="val"> #{val} </foreach> @@ -115,8 +108,8 @@ <select id="selectListByIds" resultType="com.ruoyi.performance.pojo.AuxiliaryOutputWorkingHours"> select * from auxiliary_output_working_hours where 1=1 - <if test="ids !=null and ids != ''"> - and `check` in + <if test="ids !=null and ids.size()>0"> + and check_id in <foreach collection="ids" index="index" open="(" separator="," close=")" item="val"> #{val} </foreach> @@ -126,8 +119,8 @@ <select id="selectLists" resultMap="BaseResultMap"> select * from(select * from auxiliary_output_working_hours WHERE 1=1 - <if test="ids !=null and ids != ''"> - and `check` in + <if test="ids !=null and ids.size()>0"> + and check_id in <foreach collection="ids" index="index" open="(" separator="," close=")" item="val"> #{val} </foreach> @@ -136,51 +129,5 @@ <if test="ew.customSqlSegment != null and ew.customSqlSegment != ''"> ${ew.customSqlSegment} </if> - </select> - <select id="selectAuxiliaryAllByMonth" resultType="com.ruoyi.performance.dto.AuxiliaryAllDto"> - select sum(aowh.work_time) yieldHour, - u.name userName, - aowh.`check` userId, - #{dto.month} month - from (SELECT * - FROM auxiliary_output_working_hours - GROUP BY CASE - WHEN man_hour_group IS NOT NULL AND man_hour_group != '' THEN man_hour_group - ELSE id - END - , CASE - WHEN man_hour_group IS NOT NULL AND man_hour_group != '' THEN order_id - ELSE id - END) aowh - left join user u on u.id = aowh.`check` - where aowh.date_time between #{dto.beginDate} and #{dto.endDate} - <if test="userIds !=null and userIds.size() > 0"> - and aowh.`check` in - <foreach collection="userIds" index="index" open="(" separator="," close=")" item="val"> - #{val} - </foreach> - </if> - group by aowh.`check` - </select> - <select id="selectSubsidiaryAllByMonth" resultType="com.ruoyi.performance.dto.AuxiliaryAllDto"> - select sum(awhd.reviewer_nonproductive_time) subsidiaryHour, - u.name userName, - awhd.name_user userId, - #{dto.month} month - from auxiliary_working_hours_day awhd - left join user u on u.id = awhd.name_user - where awhd.date_time between #{dto.beginDate} and #{dto.endDate} - and awhd.state = '宸叉壒鍑�' - <if test="userIds !=null and userIds.size() > 0"> - and awhd.name_user in - <foreach collection="userIds" index="index" open="(" separator="," close=")" item="val"> - #{val} - </foreach> - </if> - group by awhd.name_user - </select> - <!-- 鏌ヨ浜ч噺宸ユ椂闆嗗悎 --> - <select id="selectAuxiliaryOutputWorkingHoursList" resultType="com.ruoyi.performance.dto.AuxiliaryOutputWorkingHoursDto"> - <include refid="selectAuxiliaryOutputWorking"/> </select> </mapper> diff --git a/performance-server/src/main/resources/mapper/PerformanceShiftMapper.xml b/performance-server/src/main/resources/mapper/PerformanceShiftMapper.xml index 55779b3..b92f761 100644 --- a/performance-server/src/main/resources/mapper/PerformanceShiftMapper.xml +++ b/performance-server/src/main/resources/mapper/PerformanceShiftMapper.xml @@ -149,7 +149,7 @@ from user u left join department_lims dl on FIND_IN_SET(dl.id,u.depart_lims_id) - where dl.name in('閫氫俊浜у搧瀹為獙瀹�','鐢靛姏浜у搧瀹為獙瀹�') + where dl.name in('閫氫俊浜у搧瀹為獙瀹�','鐢靛姏浜у搧瀹為獙瀹�','妫�娴嬪姙') and u.status = 0 and u.is_custom = 0 </select> diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserRoleMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserRoleMapper.java index 3143ec8..58130ac 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserRoleMapper.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserRoleMapper.java @@ -6,14 +6,14 @@ /** * 鐢ㄦ埛涓庤鑹插叧鑱旇〃 鏁版嵁灞� - * + * * @author ruoyi */ public interface SysUserRoleMapper { /** * 閫氳繃鐢ㄦ埛ID鍒犻櫎鐢ㄦ埛鍜岃鑹插叧鑱� - * + * * @param userId 鐢ㄦ埛ID * @return 缁撴灉 */ @@ -21,7 +21,7 @@ /** * 鎵归噺鍒犻櫎鐢ㄦ埛鍜岃鑹插叧鑱� - * + * * @param ids 闇�瑕佸垹闄ょ殑鏁版嵁ID * @return 缁撴灉 */ @@ -29,7 +29,7 @@ /** * 閫氳繃瑙掕壊ID鏌ヨ瑙掕壊浣跨敤鏁伴噺 - * + * * @param roleId 瑙掕壊ID * @return 缁撴灉 */ @@ -37,7 +37,7 @@ /** * 鎵归噺鏂板鐢ㄦ埛瑙掕壊淇℃伅 - * + * * @param userRoleList 鐢ㄦ埛瑙掕壊鍒楄〃 * @return 缁撴灉 */ @@ -45,7 +45,7 @@ /** * 鍒犻櫎鐢ㄦ埛鍜岃鑹插叧鑱斾俊鎭� - * + * * @param userRole 鐢ㄦ埛鍜岃鑹插叧鑱斾俊鎭� * @return 缁撴灉 */ @@ -53,10 +53,18 @@ /** * 鎵归噺鍙栨秷鎺堟潈鐢ㄦ埛瑙掕壊 - * + * * @param roleId 瑙掕壊ID * @param userIds 闇�瑕佸垹闄ょ殑鐢ㄦ埛鏁版嵁ID * @return 缁撴灉 */ public int deleteUserRoleInfos(@Param("roleId") Long roleId, @Param("userIds") Long[] userIds); + + + /** + * 閫氳繃鐢ㄦ埛ID鏌ヨ瑙掕壊ID + * @param userId 鐢ㄦ埛ID + */ + public List<Long> selectRoleIdsByUserId(Long userId); + } diff --git a/ruoyi-system/src/main/resources/mapper/system/SysUserRoleMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysUserRoleMapper.xml index dd72689..483262d 100644 --- a/ruoyi-system/src/main/resources/mapper/system/SysUserRoleMapper.xml +++ b/ruoyi-system/src/main/resources/mapper/system/SysUserRoleMapper.xml @@ -12,33 +12,39 @@ <delete id="deleteUserRoleByUserId" parameterType="Long"> delete from sys_user_role where user_id=#{userId} </delete> - + <select id="countUserRoleByRoleId" resultType="Integer"> - select count(1) from sys_user_role where role_id=#{roleId} + select count(1) from sys_user_role where role_id=#{roleId} </select> - + <delete id="deleteUserRole" parameterType="Long"> delete from sys_user_role where user_id in <foreach collection="array" item="userId" open="(" separator="," close=")"> #{userId} - </foreach> + </foreach> </delete> - + <insert id="batchUserRole"> insert into sys_user_role(user_id, role_id) values <foreach item="item" index="index" collection="list" separator=","> (#{item.userId},#{item.roleId}) </foreach> </insert> - + <delete id="deleteUserRoleInfo" parameterType="SysUserRole"> delete from sys_user_role where user_id=#{userId} and role_id=#{roleId} </delete> - + <delete id="deleteUserRoleInfos"> delete from sys_user_role where role_id=#{roleId} and user_id in <foreach collection="userIds" item="userId" open="(" separator="," close=")"> #{userId} - </foreach> + </foreach> </delete> -</mapper> \ No newline at end of file + + <select id="selectRoleIdsByUserId" resultType="list"> + select role_id from sys_user_role where user_id=#{userId} + </select> + + +</mapper> -- Gitblit v1.9.3