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) { // 正常上班 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) { // 正常上班 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); } 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); } } 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 { // 将温度循环id过滤 productIds = productIds.stream().filter(item -> !item.equals(productId)).collect(Collectors.toList()); // 撤销的是检验项 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)) { // 得判断一下 是否含有温度循环项目 // 如果撤销的项目是温度循环 那么相应的子项需要全部撤销 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)) { 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) { //如果批准不通过 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)); } 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); } } 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); } } 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)); } } 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); } } 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); } 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 = "月份") 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; } 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); } 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> @@ -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 = "月份") 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("创建人id") @TableField(fill = FieldFill.INSERT) @ExcelIgnore private Integer createUser; @ApiModelProperty("修改人id") @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; } 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; } 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); } 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); } 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); } 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); } if (ids.size() == 0) { }else { // 为空 进行新增 ids.addAll(users.stream().map(User::getId).distinct().collect(Collectors.toList())); } } } if (ids.isEmpty()) { ids = null; } IPage<AuxiliaryOriginalHoursDto> originalHoursDtoIPage = new Page<>(); @@ -109,23 +133,9 @@ } //总工时=产量工时+辅助工时+加班工时 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())); } // 解析输入的时间字符串 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,42 +487,129 @@ } 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; } //合并 @@ -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); } } } } 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 ; } } //统计产量工时汇总和辅助工时汇总 @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; // 判断当前人的权限 是否可查看多人 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()); 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())); } } 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());//复核工时 } } map.put("辅助工时汇总", sumApprovedWorkingHour); 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; } /** * 获取当前用户组织的用户id * @return */ private List<Integer> getCurrentGroupUserIds(){ return getCurrentGroupUserIds(""); } private List<Integer> getCurrentGroupUserIds(String name){ List<Integer> ids = new ArrayList<>(); //判断是组长还是组员还是管理员,根据roleId(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可以防止中文乱码 当然和easyexcel没有关系 @@ -185,72 +267,10 @@ 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可以防止中文乱码 当然和easyexcel没有关系 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(); //向sheet0写入数据 传入空list这样只导出表头 excelWriter.write(auxiliaryOutputWorkingHoursDtoIPage, mainSheet); //关闭流 excelWriter.finish(); } catch (IOException e) { 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(); 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可以防止中文乱码 当然和easyexcel没有关系 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(); //向sheet0写入数据 传入空list这样只导出表头 excelWriter.write(auxiliaryWorkingHoursDayDtoIPage, mainSheet); //关闭流 excelWriter.finish(); } catch (IOException e) { throw new RuntimeException("导出失败"); } } 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); } } 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 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` left join user on user.id=aowh.check_id WHERE 1 = 1 <if test="ids !=null and ids.size() > 0"> and `check` in 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> 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> ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserRoleMapper.java
@@ -59,4 +59,12 @@ * @return 结果 */ public int deleteUserRoleInfos(@Param("roleId") Long roleId, @Param("userIds") Long[] userIds); /** * 通过用户ID查询角色ID * @param userId 用户ID */ public List<Long> selectRoleIdsByUserId(Long userId); } ruoyi-system/src/main/resources/mapper/system/SysUserRoleMapper.xml
@@ -41,4 +41,10 @@ #{userId} </foreach> </delete> <select id="selectRoleIdsByUserId" resultType="list"> select role_id from sys_user_role where user_id=#{userId} </select> </mapper>