From 05504ac82b68849bd86ba0fc9f47f533b56e5d0a Mon Sep 17 00:00:00 2001 From: quyixiao <2621048238@qq.com> Date: Mon, 24 Aug 2020 19:58:10 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/lz/common/utils/BigDecimalUtil.java | 9 ++ .../controller/ResultRecordController.java | 100 ++++++++++++++++-- .../lz/modules/app/dto/DepartmentsDto.java | 3 +- .../app/service/DepartmentsService.java | 4 + .../service/impl/DepartmentsServiceImpl.java | 30 ++++++ .../service/impl/RecordAuthServiceImpl.java | 10 +- .../modules/sys/entity/app/ResultRecord.java | 2 +- .../sys/service/app/ResultDetailService.java | 8 +- .../app/impl/ResultDetailServiceImpl.java | 17 +-- .../app/impl/ResultRecordServiceImpl.java | 31 ++++-- src/main/resources/application-dev.yml | 6 +- .../mapper/app/ResultDetailMapper.xml | 1 + .../mapper/app/ResultRecordMapper.xml | 2 +- 13 files changed, 184 insertions(+), 39 deletions(-) diff --git a/src/main/java/com/lz/common/utils/BigDecimalUtil.java b/src/main/java/com/lz/common/utils/BigDecimalUtil.java index 8899b8b1..9ef042e3 100644 --- a/src/main/java/com/lz/common/utils/BigDecimalUtil.java +++ b/src/main/java/com/lz/common/utils/BigDecimalUtil.java @@ -80,6 +80,15 @@ public class BigDecimalUtil { return bigDecimal; } + + public static BigDecimal setScale(BigDecimal bigDecimal,int num){ + if(bigDecimal == null){ + bigDecimal = BigDecimal.ZERO; + } + bigDecimal = bigDecimal.setScale(num,BigDecimal.ROUND_HALF_UP); + return bigDecimal; + } + public static double sub(double v1, double v2) { BigDecimal b1 = new BigDecimal(Double.toString(v1)); BigDecimal b2 = new BigDecimal(Double.toString(v2)); diff --git a/src/main/java/com/lz/modules/app/controller/ResultRecordController.java b/src/main/java/com/lz/modules/app/controller/ResultRecordController.java index d14b3e45..be091c91 100644 --- a/src/main/java/com/lz/modules/app/controller/ResultRecordController.java +++ b/src/main/java/com/lz/modules/app/controller/ResultRecordController.java @@ -76,16 +76,53 @@ public class ResultRecordController extends AbstractController { @RequestMapping("/list") @RequiresPermissions("user:lzresultrecord:list") public R list(ResultRecordReq req) { + List departmentList2 = new ArrayList<>(); + List departmentList3 = new ArrayList<>(); + List departmentList1 = departmentsService.selectByParentDepartmentId("1"); + String department1 = ""; + String department2 = ""; + String department3 = ""; SysUserEntity user = getUser(); - if(req.getIsSelf() == 1){ + if (req.getIsSelf() == 1) { req.setStaffId(user.getUserId()); + }else{ + DepartmentsStaffRelateEntity relateEntity = departmentsStaffRelateService.selectLastDepartmentByStaffId(getUserId()); + Map map = departmentsService.selectUserAllDepartmentInFo(relateEntity.getDepartmentId()); + int i = 0; + for (Map.Entry entry : map.entrySet()) { + i++; + } + i = i / 2; + if (i == 3) { // 表示有三级部门 + departmentList2 = departmentsService.selectByParentDepartmentId(map.get("dd3")); + departmentList3 = departmentsService.selectByParentDepartmentId(map.get("dd2")); + department1 = map.get("dd3"); + department2 = map.get("dd2"); + department3 = map.get("dd1"); + req.setDepartment3(map.get("dd1")); + } else if (i == 2) { + departmentList2 = departmentsService.selectByParentDepartmentId(map.get("dd2")); + department2 = map.get("dd1"); + department1 = map.get("dd2"); + req.setDepartment2(map.get("dd1")); + } else if (i == 1) { + department1 = map.get("dd1"); + req.setDepartment1(map.get("dd1")); + } + } PageUtils page = lzResultRecordService.queryPage(req, user); - List departmentList1 = departmentsService.selectByParentDepartmentId("0"); return R.ok().put("page", page) - .put("departmentList1", departmentList1); + .put("departmentList1", departmentList1) + .put("departmentList2", departmentList2) + .put("departmentList3", departmentList3) + .put("department1",department1) + .put("department2",department2) + .put("department3",department3) + ; } + @RequestMapping("/departmentQuery") public R departmentQuery(ResultRecordReq req) { List departmentList1 = departmentsService.selectByParentDepartmentId(req.getDepartmentId()); @@ -133,6 +170,8 @@ public class ResultRecordController extends AbstractController { } List resultDetails = resultDetailService.selectByRecordId(resultRecord.getId()); + BigDecimal sumWenHuaJiaZhiGuan = BigDecimal.ZERO; + BigDecimal sumYeJi = BigDecimal.ZERO; if (CollectionUtils.isNotEmpty(resultDetails)) { Map details = resultDetails.stream().collect(Collectors.groupingBy(ResultDetail::getType, Collectors.counting())); int tempType1 = NumberUtil.objToIntDefault(details.get(new Integer(1)), 0); @@ -142,7 +181,7 @@ public class ResultRecordController extends AbstractController { if (tempType1 == 0) { yeJiCheckNum = 1; list.add(resultDetailService.getYeJi()); - list.add(resultDetailService.getYeJiKaoHe()); + list.add(resultDetailService.getYeJiKaoHe(BigDecimal.ZERO)); } int count = 0; for (ResultDetail resultDetail : resultDetails) { @@ -158,14 +197,22 @@ public class ResultRecordController extends AbstractController { resp.setIsAdd(1); } resp.setIsEdit(1); + BigDecimal checkWeight = NumberUtil.objToBigDecimalDefault(resultDetail.getCheckWeight(), BigDecimal.ZERO); + BigDecimal acquireScore = NumberUtil.objToBigDecimalDefault(resultDetail.getAcquireScore(), BigDecimal.ZERO); + BigDecimal tempSum = checkWeight.multiply(acquireScore); + if (resultDetail.getType().equals(1)) { + sumYeJi = sumYeJi.add(tempSum); + } else { + sumWenHuaJiaZhiGuan = sumWenHuaJiaZhiGuan.add(tempSum); + } if (count == yeJiCheckNum + 1 && tempType1 != 0) { - list.add(resultDetailService.getYeJiKaoHe()); + list.add(resultDetailService.getYeJiKaoHe(BigDecimalUtil.setScale(sumYeJi, 3))); } list.add(resp); } if (tempType2 == 0) { wenHuaJiaZhiGuanNum = 2; - list.add(resultDetailService.getYeJiKaoHe()); + list.add(resultDetailService.getYeJiKaoHe(BigDecimal.ZERO)); list.add(resultDetailService.getWenHuaJiaZhiGua1(auth)); list.add(resultDetailService.getWenHuaJiaZhiGua2(auth)); } @@ -173,13 +220,13 @@ public class ResultRecordController extends AbstractController { yeJiCheckNum = 1; wenHuaJiaZhiGuanNum = 2; list.add(resultDetailService.getYeJi()); - list.add(resultDetailService.getYeJiKaoHe()); + list.add(resultDetailService.getYeJiKaoHe(BigDecimal.ZERO)); list.add(resultDetailService.getWenHuaJiaZhiGua1(auth)); list.add(resultDetailService.getWenHuaJiaZhiGua2(auth)); } - list.add(resultDetailService.getWenHuaJiaZhiGuaResult1()); + list.add(resultDetailService.getWenHuaJiaZhiGuaResult1(sumWenHuaJiaZhiGuan)); list.add(resultDetailService.getWenHuaJiaZhiGuaResult2()); - list.add(resultDetailService.getLastResult()); + list.add(resultDetailService.getLastResult(resultRecord.getLastScore())); List comments = resultCommentService.selectByRecordId(resultRecord.getId()); if (CollectionUtils.isNotEmpty(comments)) { @@ -393,6 +440,19 @@ public class ResultRecordController extends AbstractController { resultDetail.setStaffId(resultRecord.getStaffId()); resultDetailService.insertResultDetail(resultDetail); } + List resultDetails = resultDetailService.selectByRecordId(resultRecord.getId()); + if (CollectionUtils.isNotEmpty(resultDetails)) { + BigDecimal sum = BigDecimal.ZERO; + for (ResultDetail resultDetail : resultDetails) { + BigDecimal checkWeight = NumberUtil.objToBigDecimalDefault(resultDetail.getCheckWeight(), BigDecimal.ZERO); + BigDecimal acquireScore = NumberUtil.objToBigDecimalDefault(resultDetail.getAcquireScore(), BigDecimal.ZERO); + sum = sum.add(checkWeight.multiply(acquireScore)); + } + sum = BigDecimalUtil.setScale(sum, 3); + resultRecord.setLastScore(sum); + resultRecord.setAllScore(sum); + resultRecordService.updateResultRecordById(resultRecord); + } return R.ok("保存成功").put("recordId", resultRecord.getId()); } @@ -427,4 +487,26 @@ public class ResultRecordController extends AbstractController { return R.ok(); } + + public static void main(String[] args) { + List departmentList1 = new ArrayList<>(); + DepartmentsDto departmentsDto1 = new DepartmentsDto(); + departmentsDto1.setDepartmentId("1"); + + DepartmentsDto departmentsDto2 = new DepartmentsDto(); + departmentsDto2.setDepartmentId("2"); + + + DepartmentsDto departmentsDto3 = new DepartmentsDto(); + departmentsDto3.setDepartmentId("3"); + departmentList1.add(departmentsDto1); + departmentList1.add(departmentsDto2); + departmentList1.add(departmentsDto3); + String compare = "3"; + departmentList1 = departmentList1.stream().sorted((p1, p2) -> p1.getDepartmentId().equals(compare) ? 1 : p2.getDepartmentId().equals(compare) ? 1 : 0).collect(Collectors.toList()); + + for (DepartmentsDto departmentsDto : departmentList1) { + System.out.println(departmentsDto.getDepartmentId()); + } + } } diff --git a/src/main/java/com/lz/modules/app/dto/DepartmentsDto.java b/src/main/java/com/lz/modules/app/dto/DepartmentsDto.java index 5118eee8..ec411f60 100644 --- a/src/main/java/com/lz/modules/app/dto/DepartmentsDto.java +++ b/src/main/java/com/lz/modules/app/dto/DepartmentsDto.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.annotation.TableField; import lombok.Data; import java.io.Serializable; +import java.util.Comparator; import java.util.List; /** @@ -14,7 +15,7 @@ import java.util.List; * @date 2020-04-30 16:59:50 */ @Data -public class DepartmentsDto implements Serializable { +public class DepartmentsDto implements Serializable{ private static final long serialVersionUID = 1L; /** diff --git a/src/main/java/com/lz/modules/app/service/DepartmentsService.java b/src/main/java/com/lz/modules/app/service/DepartmentsService.java index b235576c..629ad2c2 100644 --- a/src/main/java/com/lz/modules/app/service/DepartmentsService.java +++ b/src/main/java/com/lz/modules/app/service/DepartmentsService.java @@ -40,5 +40,9 @@ public interface DepartmentsService extends IService { void updateDepartmentInfo(DepartmentInfosBo departmentInfosBo); Map selectUserAllDepartmentIds(String departmentId); + + + + Map selectUserAllDepartmentInFo(String departmentId); } diff --git a/src/main/java/com/lz/modules/app/service/impl/DepartmentsServiceImpl.java b/src/main/java/com/lz/modules/app/service/impl/DepartmentsServiceImpl.java index 9b77cac1..e3f111cc 100644 --- a/src/main/java/com/lz/modules/app/service/impl/DepartmentsServiceImpl.java +++ b/src/main/java/com/lz/modules/app/service/impl/DepartmentsServiceImpl.java @@ -167,4 +167,34 @@ public class DepartmentsServiceImpl extends ServiceImpl selectUserAllDepartmentInFo(String departmentId) { + DepartmentInfos departmentInfos = departmentsDao.selectUserAllDepartmentIds(departmentId); + Map map = new HashMap<>(); + if (StringUtil.isNotBlank(departmentInfos.getDd1())) { + map.put("dd1", departmentInfos.getDd1()); + map.put("dn1", departmentInfos.getDn1()); + } + if (StringUtil.isNotBlank(departmentInfos.getDd2())) { + map.put("dd2", departmentInfos.getDd2()); + map.put("dn2", departmentInfos.getDn2()); + } + if (StringUtil.isNotBlank(departmentInfos.getDd3())) { + map.put("dd3", departmentInfos.getDd3()); + map.put("dn3", departmentInfos.getDn3()); + } + if (StringUtil.isNotBlank(departmentInfos.getDd4())) { + map.put("dd4", departmentInfos.getDd4()); + map.put("dn4", departmentInfos.getDn4()); + } + if (StringUtil.isNotBlank(departmentInfos.getDd5())) { + map.put("dd5", departmentInfos.getDd5()); + map.put("dn5", departmentInfos.getDn5()); + } + return map; + } + + } diff --git a/src/main/java/com/lz/modules/flow/service/impl/RecordAuthServiceImpl.java b/src/main/java/com/lz/modules/flow/service/impl/RecordAuthServiceImpl.java index a9e913f3..8bb1ba2b 100644 --- a/src/main/java/com/lz/modules/flow/service/impl/RecordAuthServiceImpl.java +++ b/src/main/java/com/lz/modules/flow/service/impl/RecordAuthServiceImpl.java @@ -132,10 +132,12 @@ public class RecordAuthServiceImpl extends ServiceImpl { ResultDetailResp getYeJi(); - ResultDetailResp getYeJiKaoHe(); + ResultDetailResp getYeJiKaoHe(BigDecimal acquireScore); ResultDetailResp getWenHuaJiaZhiGua2(Auth auth); ResultDetailResp getWenHuaJiaZhiGua1(Auth auth); - ResultDetailResp getWenHuaJiaZhiGuaResult1(); + ResultDetailResp getWenHuaJiaZhiGuaResult1(BigDecimal bigDecimal); ResultDetailResp getWenHuaJiaZhiGuaResult2(); - ResultDetailResp getLastResult(); + ResultDetailResp getLastResult(BigDecimal bigDecimal); void insertWenHuaJiaZhiGua(String s, Long id, Long userId); diff --git a/src/main/java/com/lz/modules/sys/service/app/impl/ResultDetailServiceImpl.java b/src/main/java/com/lz/modules/sys/service/app/impl/ResultDetailServiceImpl.java index 2430d348..8461e727 100644 --- a/src/main/java/com/lz/modules/sys/service/app/impl/ResultDetailServiceImpl.java +++ b/src/main/java/com/lz/modules/sys/service/app/impl/ResultDetailServiceImpl.java @@ -2,6 +2,7 @@ package com.lz.modules.sys.service.app.impl; import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.lz.common.utils.BigDecimalUtil; import com.lz.modules.app.resp.ResultDetailResp; import com.lz.modules.flow.model.Auth; import com.lz.modules.flow.model.StaffRoleDto; @@ -87,12 +88,12 @@ public class ResultDetailServiceImpl extends ServiceImpl resultRecords = pageUtils.getList(); - if(CollectionUtils.isNotEmpty(resultRecords)){ + + if (CollectionUtils.isNotEmpty(resultRecords)) { List list = new ArrayList<>(); for (ResultRecord resultRecord : resultRecords) { ResultRecordResp resp = new ResultRecordResp(); BeanUtils.copyProperties(resultRecord, resp); + Map staffRoleMap = recordAuthService.selectRoleIdByStaffRoleInfo(resultRecord.getFlowStaffIdRole()); + if (resp.getStatus().equals(1) && staffRoleMap.get(user.getUserId()) == null) { + resp.setStatus(2); // 如果不是自己审批,说明自己己经审批完成 + } list.add(resp); } pageUtils.setList(list); @@ -227,15 +238,15 @@ public class ResultRecordServiceImpl extends ServiceImpl list = new ArrayList<>(); Long flowId = flowDepartment != null ? TypeFlowDto.getFlowId(flowDepartment.getFlowIds(), Constant.SELF, type) : 0l; // 表示是部门主管自己 if (flowDepartment == null) { DepartmentsStaffRelateEntity departmentsStaffRelateEntity = departmentsStaffRelateService.selectLastDepartmentByStaffId(staffId); DepartmentsStaffRelateEntity leader = departmentsStaffRelateService.selectLeaderByDepartmentId(departmentsStaffRelateEntity.getDepartmentId()); flowDepartment = flowDepartmentService.selectByStaffId(leader.getStaffId()); flowId = TypeFlowDto.getFlowId(flowDepartment.getFlowIds(), Constant.CHILD, type);//表示是部门下的普通员工 + list.add(flowDepartment); } - List list = new ArrayList<>(); - list.add(flowDepartment); for (int i = 0; i < 10; i++) { if (flowDepartment.getParentId() != null && flowDepartment.getParentId() > 0) { flowDepartment = flowDepartmentService.selectFlowDepartmentById(flowDepartment.getParentId()); diff --git a/src/main/resources/application-dev.yml b/src/main/resources/application-dev.yml index 00e06772..16e8aaaa 100644 --- a/src/main/resources/application-dev.yml +++ b/src/main/resources/application-dev.yml @@ -3,9 +3,9 @@ spring: type: com.alibaba.druid.pool.DruidDataSource druid: driver-class-name: com.mysql.cj.jdbc.Driver - url: jdbc:mysql://rm-bp1xhc66ruz72t68p.mysql.rds.aliyuncs.com:3306/lz_manger?allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai - username: lz_manger - password: N8zfBwhOC + url: jdbc:mysql://172.16.157.238:3306/lz_management?allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai + username: ldd_biz + password: Hello1234 initial-size: 10 max-active: 100 min-idle: 10 diff --git a/src/main/resources/mapper/app/ResultDetailMapper.xml b/src/main/resources/mapper/app/ResultDetailMapper.xml index c6147055..d30cb50c 100644 --- a/src/main/resources/mapper/app/ResultDetailMapper.xml +++ b/src/main/resources/mapper/app/ResultDetailMapper.xml @@ -123,6 +123,7 @@ + diff --git a/src/main/resources/mapper/app/ResultRecordMapper.xml b/src/main/resources/mapper/app/ResultRecordMapper.xml index f84b8cbe..abd58515 100644 --- a/src/main/resources/mapper/app/ResultRecordMapper.xml +++ b/src/main/resources/mapper/app/ResultRecordMapper.xml @@ -178,7 +178,7 @@ AND DATE_FORMAT(rd.month_time, '%Y-%m-%d %H:%i:%S') = ]]> DATE_FORMAT(#{req.monthBeginDate}, '%Y-%m-%d %H:%i:%S') - AND DATE_FORMAT(rd.month_time, '%Y-%m-%d %H:%i:%S') = ]]> DATE_FORMAT(#{req.monthEndDate}, '%Y-%m-%d %H:%i:%S') + AND DATE_FORMAT(rd.month_time, '%Y-%m-%d %H:%i:%S') DATE_FORMAT(#{req.monthEndDate}, '%Y-%m-%d %H:%i:%S') and rd.status = #{req.status} From e563b33717fd00a3db0796907ab7694dc99da56b Mon Sep 17 00:00:00 2001 From: quyixiao <2621048238@qq.com> Date: Tue, 25 Aug 2020 09:00:07 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/lz/modules/app/controller/ResultRecordController.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/main/java/com/lz/modules/app/controller/ResultRecordController.java b/src/main/java/com/lz/modules/app/controller/ResultRecordController.java index be091c91..f7f524a5 100644 --- a/src/main/java/com/lz/modules/app/controller/ResultRecordController.java +++ b/src/main/java/com/lz/modules/app/controller/ResultRecordController.java @@ -118,8 +118,7 @@ public class ResultRecordController extends AbstractController { .put("departmentList3", departmentList3) .put("department1",department1) .put("department2",department2) - .put("department3",department3) - ; + .put("department3",department3); }