From 7b122dc5eb8e649f0808872f1cdd35dceab76bdd Mon Sep 17 00:00:00 2001 From: quyixiao <2621048238@qq.com> Date: Tue, 11 Aug 2020 20:03:54 +0800 Subject: [PATCH] =?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 --- .../java/com/lz/common/utils/DateUtils.java | 16 +++ .../controller/ResultRecordController.java | 15 ++- .../controller/StaffOccupationController.java | 46 ++++----- .../lz/modules/app/dao/DepartmentsDao.java | 1 + .../app/dao/DepartmentsStaffRelateDao.java | 1 + .../java/com/lz/modules/app/dao/StaffDao.java | 1 + .../lz/modules/app/dto/DepartmentsDto.java | 4 +- .../com/lz/modules/app/dto/EmployeesDto.java | 24 +++++ .../lz/modules/app/req/ResultRecordReq.java | 16 +++ .../app/service/DepartmentsService.java | 1 + .../lz/modules/app/service/StaffService.java | 2 + .../service/impl/DepartmentsServiceImpl.java | 5 + .../app/service/impl/StaffServiceImpl.java | 5 + .../app/impl/ResultRecordServiceImpl.java | 98 ++++++++++++++++++- .../mapper/generator/DepartmentsDao.xml | 7 ++ .../generator/DepartmentsStaffRelateDao.xml | 9 ++ .../resources/mapper/generator/StaffDao.xml | 5 + 17 files changed, 227 insertions(+), 29 deletions(-) create mode 100644 src/main/java/com/lz/modules/app/dto/EmployeesDto.java diff --git a/src/main/java/com/lz/common/utils/DateUtils.java b/src/main/java/com/lz/common/utils/DateUtils.java index 2d6e395c..49fd6858 100644 --- a/src/main/java/com/lz/common/utils/DateUtils.java +++ b/src/main/java/com/lz/common/utils/DateUtils.java @@ -229,4 +229,20 @@ public class DateUtils { } + /** + * 计算 minute 分钟后的时间 + * + * @param date + * @param minute + * @return + */ + public static Date addMinute(Date date, int minute) { + Calendar calendar = Calendar.getInstance(); + calendar.setTime(date); + calendar.add(Calendar.MINUTE, minute); + return calendar.getTime(); + } + + + } 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 ce4cf869..ced2088d 100644 --- a/src/main/java/com/lz/modules/app/controller/ResultRecordController.java +++ b/src/main/java/com/lz/modules/app/controller/ResultRecordController.java @@ -3,11 +3,14 @@ package com.lz.modules.app.controller; import java.math.BigDecimal; import java.util.Arrays; import java.util.Date; +import java.util.List; import java.util.Map; import com.lz.common.utils.PageUtils; import com.lz.common.utils.R; +import com.lz.modules.app.dto.DepartmentsDto; import com.lz.modules.app.req.ResultRecordReq; +import com.lz.modules.app.service.DepartmentsService; import com.lz.modules.sys.entity.app.ResultRecord; import com.lz.modules.sys.service.app.ResultRecordService; import org.apache.shiro.authz.annotation.RequiresPermissions; @@ -33,6 +36,8 @@ import org.springframework.web.bind.annotation.RestController; public class ResultRecordController { @Autowired private ResultRecordService lzResultRecordService; + @Autowired + private DepartmentsService departmentsService; /** * 列表 @@ -41,9 +46,17 @@ public class ResultRecordController { @RequiresPermissions("user:lzresultrecord:list") public R list(ResultRecordReq req){ PageUtils page = lzResultRecordService.queryPage(req); - return R.ok().put("page", page); + List departmentList1 = departmentsService.selectByParentDepartmentId("0"); + return R.ok().put("page", page) + .put("departmentList1",departmentList1); } + @RequestMapping("/departmentQuery") + public R departmentQuery(ResultRecordReq req){ + List departmentList1 = departmentsService.selectByParentDepartmentId(req.getDepartmentId()); + return R.ok() + .put("departmentList",departmentList1); + } /** * 信息 diff --git a/src/main/java/com/lz/modules/app/controller/StaffOccupationController.java b/src/main/java/com/lz/modules/app/controller/StaffOccupationController.java index 192cece9..a5ec5b85 100644 --- a/src/main/java/com/lz/modules/app/controller/StaffOccupationController.java +++ b/src/main/java/com/lz/modules/app/controller/StaffOccupationController.java @@ -1,21 +1,19 @@ package com.lz.modules.app.controller; -import java.util.Arrays; -import java.util.Map; - -import org.apache.shiro.authz.annotation.RequiresPermissions; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.RestController; - -import com.lz.modules.app.entity.StaffOccupationEntity; -import com.lz.modules.app.service.StaffOccupationService; import com.lz.common.utils.PageUtils; import com.lz.common.utils.R; +import com.lz.modules.app.dto.DepartmentsDto; +import com.lz.modules.app.entity.DepartmentsEntity; +import com.lz.modules.app.entity.StaffOccupationEntity; +import com.lz.modules.app.service.DepartmentsService; +import com.lz.modules.app.service.StaffOccupationService; +import org.apache.shiro.authz.annotation.RequiresPermissions; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; +import java.util.Arrays; +import java.util.List; +import java.util.Map; /** @@ -31,25 +29,27 @@ public class StaffOccupationController { @Autowired private StaffOccupationService staffOccupationService; + @Autowired + private DepartmentsService departmentsService; + /** * 列表 */ @RequestMapping("/list") @RequiresPermissions("generator:staffoccupation:list") - public R list(@RequestParam Map params){ + public R list(@RequestParam Map params) { PageUtils page = staffOccupationService.queryPage(params); return R.ok().put("page", page); } - /** * 信息 */ @RequestMapping("/info/{id}") @RequiresPermissions("generator:staffoccupation:info") - public R info(@PathVariable("id") Long id){ - StaffOccupationEntity staffOccupation = staffOccupationService.getById(id); + public R info(@PathVariable("id") Long id) { + StaffOccupationEntity staffOccupation = staffOccupationService.getById(id); return R.ok().put("staffOccupation", staffOccupation); } @@ -59,8 +59,8 @@ public class StaffOccupationController { */ @RequestMapping("/save") @RequiresPermissions("generator:staffoccupation:save") - public R save(@RequestBody StaffOccupationEntity staffOccupation){ - staffOccupationService.save(staffOccupation); + public R save(@RequestBody StaffOccupationEntity staffOccupation) { + staffOccupationService.save(staffOccupation); return R.ok(); } @@ -70,8 +70,8 @@ public class StaffOccupationController { */ @RequestMapping("/update") @RequiresPermissions("generator:staffoccupation:update") - public R update(@RequestBody StaffOccupationEntity staffOccupation){ - staffOccupationService.updateById(staffOccupation); + public R update(@RequestBody StaffOccupationEntity staffOccupation) { + staffOccupationService.updateById(staffOccupation); return R.ok(); } @@ -81,8 +81,8 @@ public class StaffOccupationController { */ @RequestMapping("/delete") @RequiresPermissions("generator:staffoccupation:delete") - public R delete(@RequestBody Long[] ids){ - staffOccupationService.removeByIds(Arrays.asList(ids)); + public R delete(@RequestBody Long[] ids) { + staffOccupationService.removeByIds(Arrays.asList(ids)); return R.ok(); } diff --git a/src/main/java/com/lz/modules/app/dao/DepartmentsDao.java b/src/main/java/com/lz/modules/app/dao/DepartmentsDao.java index 6fc31469..06724b0f 100644 --- a/src/main/java/com/lz/modules/app/dao/DepartmentsDao.java +++ b/src/main/java/com/lz/modules/app/dao/DepartmentsDao.java @@ -29,4 +29,5 @@ public interface DepartmentsDao extends BaseMapper { List getDepartmentsByparentId(@Param("parentId") String parentId); + List selectAll(); } diff --git a/src/main/java/com/lz/modules/app/dao/DepartmentsStaffRelateDao.java b/src/main/java/com/lz/modules/app/dao/DepartmentsStaffRelateDao.java index 0c6e86ff..38db2a49 100644 --- a/src/main/java/com/lz/modules/app/dao/DepartmentsStaffRelateDao.java +++ b/src/main/java/com/lz/modules/app/dao/DepartmentsStaffRelateDao.java @@ -43,4 +43,5 @@ public interface DepartmentsStaffRelateDao extends BaseMapper selectByDepartmentIds(@Param("departmentIds") List departmentIds); } diff --git a/src/main/java/com/lz/modules/app/dao/StaffDao.java b/src/main/java/com/lz/modules/app/dao/StaffDao.java index bf80b75a..8f8ab50d 100644 --- a/src/main/java/com/lz/modules/app/dao/StaffDao.java +++ b/src/main/java/com/lz/modules/app/dao/StaffDao.java @@ -45,4 +45,5 @@ public interface StaffDao extends BaseMapper { List getEducationData(@Param("departmentId") String departmentId, @Param("beginDate") String beginDate, @Param("endDate") String endDate); + List selectByName(@Param("name") String name); } 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 3de7ab64..5118eee8 100644 --- a/src/main/java/com/lz/modules/app/dto/DepartmentsDto.java +++ b/src/main/java/com/lz/modules/app/dto/DepartmentsDto.java @@ -36,10 +36,10 @@ public class DepartmentsDto implements Serializable { /** * ztree属性 */ - @TableField(exist=false) + @TableField(exist = false) private Boolean open; - @TableField(exist=false) + @TableField(exist = false) private List list; } diff --git a/src/main/java/com/lz/modules/app/dto/EmployeesDto.java b/src/main/java/com/lz/modules/app/dto/EmployeesDto.java new file mode 100644 index 00000000..04ad4ef7 --- /dev/null +++ b/src/main/java/com/lz/modules/app/dto/EmployeesDto.java @@ -0,0 +1,24 @@ +package com.lz.modules.app.dto; + +import com.lz.modules.app.entity.DepartmentsEntity; +import lombok.Data; + +import java.util.List; +import java.util.Map; + +@Data +public class EmployeesDto { + + private Long expire ; + + private Map> cacheMap; + + public EmployeesDto() { + + } + + public EmployeesDto(Long expire, Map> cacheMap) { + this.expire = expire; + this.cacheMap = cacheMap; + } +} diff --git a/src/main/java/com/lz/modules/app/req/ResultRecordReq.java b/src/main/java/com/lz/modules/app/req/ResultRecordReq.java index fdfe3572..4962769e 100644 --- a/src/main/java/com/lz/modules/app/req/ResultRecordReq.java +++ b/src/main/java/com/lz/modules/app/req/ResultRecordReq.java @@ -2,11 +2,27 @@ package com.lz.modules.app.req; import lombok.Data; +import java.util.List; + @Data public class ResultRecordReq { private Integer page; private Integer limit; private String monthBeginDate; private String monthEndDate; + //0.新建,1 提交审批中,2 拒绝 + private Integer status; + private String departmentId; + + private String department1; + private String department2; + private String department3; + + private String name; + private String remark; + + private List departmentStaffIds; + private List staffIds; + } 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 fbcb1cea..e7fa5ff1 100644 --- a/src/main/java/com/lz/modules/app/service/DepartmentsService.java +++ b/src/main/java/com/lz/modules/app/service/DepartmentsService.java @@ -26,5 +26,6 @@ public interface DepartmentsService extends IService { List getDepartmentTree(); + List selectByParentDepartmentId(String deparentId); } diff --git a/src/main/java/com/lz/modules/app/service/StaffService.java b/src/main/java/com/lz/modules/app/service/StaffService.java index 1bbec75f..feb919b5 100644 --- a/src/main/java/com/lz/modules/app/service/StaffService.java +++ b/src/main/java/com/lz/modules/app/service/StaffService.java @@ -48,5 +48,7 @@ public interface StaffService extends IService { void enterDatabase(List> sheet12List, List> sheet3List, List> sheet4List); + + List selectByName(String name); } 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 157f65ee..8ba8f8e4 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 @@ -58,6 +58,11 @@ public class DepartmentsServiceImpl extends ServiceImpl selectByParentDepartmentId(String deparentId) { + return departmentsDao.getDepartmentsByparentId(deparentId+""); + } + private List getDepartmentTreeList(List departmentList) { List DepartmentsList = Lists.newArrayList(); for (DepartmentsDto departmentsDto : departmentList) { diff --git a/src/main/java/com/lz/modules/app/service/impl/StaffServiceImpl.java b/src/main/java/com/lz/modules/app/service/impl/StaffServiceImpl.java index 9a6bb58b..1da89f3e 100644 --- a/src/main/java/com/lz/modules/app/service/impl/StaffServiceImpl.java +++ b/src/main/java/com/lz/modules/app/service/impl/StaffServiceImpl.java @@ -270,6 +270,11 @@ public class StaffServiceImpl extends ServiceImpl impleme } } + @Override + public List selectByName(String name) { + return staffDao.selectByName(name); + } + private void createDepartmentInfo(StaffEntity staffEntity, String departmentName) { DepartmentsEntity departmentsEntity = departmentsService.getOne(new QueryWrapper().eq("department_name", departmentName)); if (departmentsEntity != null) { diff --git a/src/main/java/com/lz/modules/sys/service/app/impl/ResultRecordServiceImpl.java b/src/main/java/com/lz/modules/sys/service/app/impl/ResultRecordServiceImpl.java index 97ac9b82..c90fc758 100644 --- a/src/main/java/com/lz/modules/sys/service/app/impl/ResultRecordServiceImpl.java +++ b/src/main/java/com/lz/modules/sys/service/app/impl/ResultRecordServiceImpl.java @@ -1,21 +1,30 @@ package com.lz.modules.sys.service.app.impl; 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.lz.common.utils.DateUtils; import com.lz.common.utils.ISelect; import com.lz.common.utils.PageUtils; +import com.lz.common.utils.StringUtil; +import com.lz.modules.app.dao.DepartmentsDao; +import com.lz.modules.app.dao.DepartmentsStaffRelateDao; +import com.lz.modules.app.dto.EmployeesDto; +import com.lz.modules.app.entity.DepartmentsEntity; +import com.lz.modules.app.entity.DepartmentsStaffRelateEntity; +import com.lz.modules.app.entity.StaffEntity; import com.lz.modules.app.req.ResultRecordReq; import com.lz.modules.app.resp.ResultRecordResp; +import com.lz.modules.app.service.StaffService; import com.lz.modules.sys.dao.app.ResultRecordMapper; import com.lz.modules.sys.entity.app.ResultRecord; import com.lz.modules.sys.service.app.ResultRecordService; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections.CollectionUtils; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import java.util.ArrayList; -import java.util.List; +import java.util.*; /** *

@@ -27,6 +36,7 @@ import java.util.List; */ @Service +@Slf4j public class ResultRecordServiceImpl extends ServiceImpl implements ResultRecordService { @@ -34,6 +44,20 @@ public class ResultRecordServiceImpl extends ServiceImpl departmentStaffIds = new ArrayList<>(); + List staffIds = new ArrayList<>(); + List departmentIds = new ArrayList<>(); + if (StringUtil.isNotBlank(params.getDepartment1()) + || StringUtil.isNotBlank(params.getDepartment2()) + || StringUtil.isNotBlank(params.getDepartment3())) { + Map> departmentMap = null; + if(employeesDto == null || employeesDto.getExpire() < new Date().getTime()){ + List tDepartments = departmentsDao.selectAll(); + departmentMap = new HashMap<>(); + for(DepartmentsEntity department : tDepartments) { + List list = new ArrayList<>(); + for(DepartmentsEntity child : tDepartments) { + if(child.getDepartmentId().equals(department.getDepartmentParentId())){ + list.add(child); + } + } + departmentMap.put(department.getDepartmentId(), list); + } + Date expire = DateUtils.addMinute(new Date(),30); + EmployeesDto newDto = new EmployeesDto(expire.getTime(),departmentMap); + employeesDto = newDto; + log.info("使用新数据"); + }else{ + log.info("使用缓存"); + departmentMap = employeesDto.getCacheMap(); + } + if (StringUtil.isNotBlank(params.getDepartment3())) { + getChildIds(departmentIds, params.getDepartment3(), departmentMap); + } else if (StringUtil.isNotBlank(params.getDepartment2())) { + getChildIds(departmentIds, params.getDepartment2(), departmentMap); + } else if (StringUtil.isNotBlank(params.getDepartment1())) { + getChildIds(departmentIds, params.getDepartment1(), departmentMap); + } + } + if (departmentIds != null && departmentIds.size() > 0) { + List departmentsStaffRelateEntities = departmentsStaffRelateDao.selectByDepartmentIds(departmentIds); + if(CollectionUtils.isNotEmpty(departmentsStaffRelateEntities)){ + for(DepartmentsStaffRelateEntity departmentsStaffRelateEntity:departmentsStaffRelateEntities){ + departmentStaffIds.add(departmentsStaffRelateEntity.getStaffId()); + } + } + } + + if(StringUtil.isNotBlank(params.getName())){ + List staffEntities = staffService.selectByName(params.getName()); + if(CollectionUtils.isNotEmpty(staffEntities)){ + for(StaffEntity staffEntity:staffEntities){ + staffIds.add(staffEntity.getId()); + } + } + } + + params.setDepartmentStaffIds(departmentStaffIds); + params.setStaffIds(staffIds); PageUtils pageUtils = PageUtils.startPage(params.getPage(), params.getLimit() ).doSelect(new ISelect() { @Override public List doSelect(IPage page) { return resultRecordMapper.selectByCondition(page, params); } }); + List resultRecords = pageUtils.getList(); List list = new ArrayList<>(); for (ResultRecord resultRecord : resultRecords) { @@ -88,4 +168,16 @@ public class ResultRecordServiceImpl extends ServiceImpl childDepartIds ,String parentId,Map> departmentMap ){ + childDepartIds.add(parentId); + List tDepartments = departmentMap.get(parentId); + if(CollectionUtils.isNotEmpty(tDepartments)){ + for(DepartmentsEntity tDepartment:tDepartments){ + getChildIds(childDepartIds,tDepartment.getDepartmentId(),departmentMap); + } + } + + } + + } diff --git a/src/main/resources/mapper/generator/DepartmentsDao.xml b/src/main/resources/mapper/generator/DepartmentsDao.xml index 348c3e3b..53b1cac7 100644 --- a/src/main/resources/mapper/generator/DepartmentsDao.xml +++ b/src/main/resources/mapper/generator/DepartmentsDao.xml @@ -70,4 +70,11 @@ + + + + + diff --git a/src/main/resources/mapper/generator/DepartmentsStaffRelateDao.xml b/src/main/resources/mapper/generator/DepartmentsStaffRelateDao.xml index 5fb0aadb..56edfc15 100644 --- a/src/main/resources/mapper/generator/DepartmentsStaffRelateDao.xml +++ b/src/main/resources/mapper/generator/DepartmentsStaffRelateDao.xml @@ -33,8 +33,17 @@ select department_id from lz_departments_staff_relate where is_delete=0 and staff_id = #{staffId} and department_id=#{departmentId} + update lz_departments_staff_relate set is_delete=0 and update_time=now(), department_id=#{departmentId} where is_delete=0 and staff_id = #{staffId} + + + diff --git a/src/main/resources/mapper/generator/StaffDao.xml b/src/main/resources/mapper/generator/StaffDao.xml index 500093d7..efe7a16f 100644 --- a/src/main/resources/mapper/generator/StaffDao.xml +++ b/src/main/resources/mapper/generator/StaffDao.xml @@ -269,4 +269,9 @@ + + +