diff --git a/src/main/java/com/lz/config/ShiroConfig.java b/src/main/java/com/lz/config/ShiroConfig.java index 61a78ef9..555583ef 100644 --- a/src/main/java/com/lz/config/ShiroConfig.java +++ b/src/main/java/com/lz/config/ShiroConfig.java @@ -51,6 +51,7 @@ public class ShiroConfig { Map filterMap = new LinkedHashMap<>(); filterMap.put("/webjars/**", "anon"); + filterMap.put("/test/**", "anon"); filterMap.put("/druid/**", "anon"); filterMap.put("/app/**", "anon"); filterMap.put("/sys/login", "anon"); diff --git a/src/main/java/com/lz/modules/app/controller/TestController.java b/src/main/java/com/lz/modules/app/controller/TestController.java index 96845aaa..98f4fce0 100644 --- a/src/main/java/com/lz/modules/app/controller/TestController.java +++ b/src/main/java/com/lz/modules/app/controller/TestController.java @@ -15,7 +15,7 @@ public class TestController { @Autowired private ResultRecordService resultRecordService; - @RequestMapping("/test") + @RequestMapping("/test/xx") public void test(){ ResultRecord resultRecord = new ResultRecord(); resultRecord.setAllScore(new BigDecimal(10)); 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 38db2a49..63876180 100644 --- a/src/main/java/com/lz/modules/app/dao/DepartmentsStaffRelateDao.java +++ b/src/main/java/com/lz/modules/app/dao/DepartmentsStaffRelateDao.java @@ -44,4 +44,6 @@ public interface DepartmentsStaffRelateDao extends BaseMapper selectByDepartmentIds(@Param("departmentIds") List departmentIds); + + List selectByStaffIds(@Param("staffIds") List staffIds); } 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 8f8ab50d..e808c530 100644 --- a/src/main/java/com/lz/modules/app/dao/StaffDao.java +++ b/src/main/java/com/lz/modules/app/dao/StaffDao.java @@ -46,4 +46,6 @@ 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); + + List selectByIds(@Param("staffIds") List staffIds); } diff --git a/src/main/java/com/lz/modules/app/resp/ResultRecordResp.java b/src/main/java/com/lz/modules/app/resp/ResultRecordResp.java index 4ee562a1..8aca047d 100644 --- a/src/main/java/com/lz/modules/app/resp/ResultRecordResp.java +++ b/src/main/java/com/lz/modules/app/resp/ResultRecordResp.java @@ -28,6 +28,12 @@ public class ResultRecordResp { private String statusStr; + private Long staffId; + + private String staffName; + + private String departmentName; + public String getStatusStr() { if (this.status == 0) { return "新建"; 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 feb919b5..b67191d7 100644 --- a/src/main/java/com/lz/modules/app/service/StaffService.java +++ b/src/main/java/com/lz/modules/app/service/StaffService.java @@ -50,5 +50,7 @@ public interface StaffService extends IService { void enterDatabase(List> sheet12List, List> sheet3List, List> sheet4List); List selectByName(String name); + + List selectByIds(List staffIds); } 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 1da89f3e..e2004424 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 @@ -275,6 +275,12 @@ public class StaffServiceImpl extends ServiceImpl impleme return staffDao.selectByName(name); } + @Override + public List selectByIds(List staffIds) { + + return staffDao.selectByIds(staffIds); + } + 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/entity/app/ResultRecord.java b/src/main/java/com/lz/modules/sys/entity/app/ResultRecord.java index 3a7966fb..811a24f9 100644 --- a/src/main/java/com/lz/modules/sys/entity/app/ResultRecord.java +++ b/src/main/java/com/lz/modules/sys/entity/app/ResultRecord.java @@ -6,15 +6,13 @@ import lombok.Data; import java.math.BigDecimal; import java.util.Date; - /** - *

- * 菜单权限表 - *

*业绩记录表 - * - * @author quyixiao - * @since 2020-08-10 - */ +*

+* 菜单权限表 +*

*业绩记录表 +* @author quyixiao +* @since 2020-08-12 +*/ @Data @TableName("lz_result_record") @@ -38,15 +36,17 @@ public class ResultRecord implements java.io.Serializable { private BigDecimal allScore; //备注 private String remark; - + //员工id + private Long staffId; /** + * * @return */ public Long getId() { return id; } - /** + * * @param id */ public void setId(Long id) { @@ -54,17 +54,14 @@ public class ResultRecord implements java.io.Serializable { } /** - * 是否删除状态,1:删除,0:有效 - * + * 是否删除状态,1:删除,0:有效 * @return */ public Integer getIsDelete() { return isDelete; } - /** - * 是否删除状态,1:删除,0:有效 - * + * 是否删除状态,1:删除,0:有效 * @param isDelete */ public void setIsDelete(Integer isDelete) { @@ -72,17 +69,14 @@ public class ResultRecord implements java.io.Serializable { } /** - * 创建时间 - * + * 创建时间 * @return */ public Date getGmtCreate() { return gmtCreate; } - /** - * 创建时间 - * + * 创建时间 * @param gmtCreate */ public void setGmtCreate(Date gmtCreate) { @@ -90,17 +84,14 @@ public class ResultRecord implements java.io.Serializable { } /** - * 最后修改时间 - * + * 最后修改时间 * @return */ public Date getGmtModified() { return gmtModified; } - /** - * 最后修改时间 - * + * 最后修改时间 * @param gmtModified */ public void setGmtModified(Date gmtModified) { @@ -108,17 +99,14 @@ public class ResultRecord implements java.io.Serializable { } /** - * 月份 - * + * 月份 * @return */ public Date getMonthTime() { return monthTime; } - /** - * 月份 - * + * 月份 * @param monthTime */ public void setMonthTime(Date monthTime) { @@ -126,17 +114,14 @@ public class ResultRecord implements java.io.Serializable { } /** - * 0.新建,1 提交审批中,2 拒绝 - * + * 0.新建,1 提交审批中,2 拒绝 * @return */ public Integer getStatus() { return status; } - /** - * 0.新建,1 提交审批中,2 拒绝 - * + * 0.新建,1 提交审批中,2 拒绝 * @param status */ public void setStatus(Integer status) { @@ -144,17 +129,14 @@ public class ResultRecord implements java.io.Serializable { } /** - * 最后得分 - * + * 最后得分 * @return */ public BigDecimal getLastScore() { return lastScore; } - /** - * 最后得分 - * + * 最后得分 * @param lastScore */ public void setLastScore(BigDecimal lastScore) { @@ -162,17 +144,14 @@ public class ResultRecord implements java.io.Serializable { } /** - * 总分 - * + * 总分 * @return */ public BigDecimal getAllScore() { return allScore; } - /** - * 总分 - * + * 总分 * @param allScore */ public void setAllScore(BigDecimal allScore) { @@ -180,23 +159,35 @@ public class ResultRecord implements java.io.Serializable { } /** - * 备注 - * + * 备注 * @return */ public String getRemark() { return remark; } - /** - * 备注 - * + * 备注 * @param remark */ public void setRemark(String remark) { this.remark = remark; } + /** + * 员工id + * @return + */ + public Long getStaffId() { + return staffId; + } + /** + * 员工id + * @param staffId + */ + public void setStaffId(Long staffId) { + this.staffId = staffId; + } + @Override public String toString() { return "ResultRecord{" + @@ -209,6 +200,7 @@ public class ResultRecord implements java.io.Serializable { ",lastScore=" + lastScore + ",allScore=" + allScore + ",remark=" + remark + + ",staffId=" + staffId + "}"; } } \ No newline at end of file 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 c90fc758..32efb35f 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 @@ -25,6 +25,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.*; +import java.util.stream.Collectors; /** *

@@ -93,22 +94,12 @@ 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()) + List tDepartments = departmentsDao.selectAll(); + 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); - } + departmentMap = getStringListMap(tDepartments); Date expire = DateUtils.addMinute(new Date(),30); EmployeesDto newDto = new EmployeesDto(expire.getTime(),departmentMap); employeesDto = newDto; @@ -125,47 +116,68 @@ public class ResultRecordServiceImpl extends ServiceImpl 0) { - List departmentsStaffRelateEntities = departmentsStaffRelateDao.selectByDepartmentIds(departmentIds); + List departmentsStaffRelateEntities = departmentsStaffRelateDao.selectByDepartmentIds(departmentIds); if(CollectionUtils.isNotEmpty(departmentsStaffRelateEntities)){ - for(DepartmentsStaffRelateEntity departmentsStaffRelateEntity:departmentsStaffRelateEntities){ - departmentStaffIds.add(departmentsStaffRelateEntity.getStaffId()); - } + Set setStaffId = departmentsStaffRelateEntities.stream().map(p->p.getStaffId()).collect(Collectors.toSet()); + departmentStaffIds = new ArrayList<>(setStaffId); } } if(StringUtil.isNotBlank(params.getName())){ List staffEntities = staffService.selectByName(params.getName()); if(CollectionUtils.isNotEmpty(staffEntities)){ - for(StaffEntity staffEntity:staffEntities){ - staffIds.add(staffEntity.getId()); - } + staffIds = staffEntities.stream().map(p->p.getId()).collect(Collectors.toList()); } } 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); - } - }); + + PageUtils pageUtils = PageUtils.startPage(params.getPage(), params.getLimit() ).doSelect( + page -> resultRecordMapper.selectByCondition(page, params) + ); List resultRecords = pageUtils.getList(); List list = new ArrayList<>(); + + Set viewStaffIdSet = resultRecords.stream().map(p->p.getStaffId()).collect(Collectors.toSet()); + List viewStaffId = new ArrayList<>(viewStaffIdSet); + + List staffEntities = staffService.selectByIds(viewStaffId); + List staffRelateEntities = departmentsStaffRelateDao.selectByStaffIds(viewStaffId); + + Map staffEntityMap = staffEntities.stream().collect(Collectors.toMap(StaffEntity::getId, p -> p)); + Map departmentsEntityMap = tDepartments.stream().collect(Collectors.toMap(p -> p.getDepartmentId(), p -> p)); + + Map staffRelateEntityMap = staffRelateEntities.stream().collect(Collectors.toMap(p -> p.getStaffId(), p -> p)); + for (ResultRecord resultRecord : resultRecords) { ResultRecordResp resp = new ResultRecordResp(); BeanUtils.copyProperties(resultRecord, resp); + resp.setStaffName(staffEntityMap.get(resp.getStaffId()) != null ? staffEntityMap.get(resp.getStaffId()).getName() : ""); + DepartmentsStaffRelateEntity relate = staffRelateEntityMap.get(resp.getStaffId()); + resp.setDepartmentName(relate != null && departmentsEntityMap.get(relate.getDepartmentId()) != null ? + departmentsEntityMap.get(relate.getDepartmentId()).getDepartmentName() : ""); list.add(resp); } pageUtils.setList(list); return pageUtils; } - @Override - public void deleteBatchIds(List asList) { - + private Map> getStringListMap(List tDepartments) { + Map> 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); + } + return departmentMap; } public void getChildIds(List childDepartIds ,String parentId,Map> departmentMap ){ @@ -176,6 +188,11 @@ public class ResultRecordServiceImpl extends ServiceImpl asList) { } diff --git a/src/main/resources/mapper/app/ResultRecordMapper.xml b/src/main/resources/mapper/app/ResultRecordMapper.xml index 1c4b140a..55088f8e 100644 --- a/src/main/resources/mapper/app/ResultRecordMapper.xml +++ b/src/main/resources/mapper/app/ResultRecordMapper.xml @@ -13,48 +13,51 @@ + - id AS id, is_delete AS isDelete, gmt_create AS gmtCreate, gmt_modified AS gmtModified, month_time AS monthTime, status AS status, last_score AS lastScore, all_score AS allScore, remark AS remark + id AS id, is_delete AS isDelete, gmt_create AS gmtCreate, gmt_modified AS gmtModified, month_time AS monthTime, status AS status, last_score AS lastScore, all_score AS allScore, remark AS remark, staff_id AS staffId insert into lz_result_record( - month_time, - status, - last_score, - all_score, - remark, - is_delete, - gmt_create, - gmt_modified + month_time, + status, + last_score, + all_score, + remark, + staff_id, + is_delete, + gmt_create, + gmt_modified )values( - #{ monthTime}, - #{ status}, - #{ lastScore}, - #{ allScore}, - #{ remark}, - 0, - now(), - now() + #{ monthTime}, + #{ status}, + #{ lastScore}, + #{ allScore}, + #{ remark}, + #{ staffId}, + 0, + now(), + now() ) update - lz_result_record + lz_result_record is_delete = #{isDelete}, gmt_create = #{gmtCreate}, @@ -62,7 +65,8 @@ status = #{status}, last_score = #{lastScore}, all_score = #{allScore}, - remark = #{remark} + remark = #{remark}, + staff_id = #{staffId} ,gmt_modified = now() where id = #{id} @@ -71,15 +75,16 @@ update - lz_result_record - set + lz_result_record + set is_delete = #{isDelete}, gmt_create = #{gmtCreate}, month_time = #{monthTime}, status = #{status}, last_score = #{lastScore}, all_score = #{allScore}, - remark = #{remark} + remark = #{remark}, + staff_id = #{staffId} ,gmt_modified = now() where id = #{id} @@ -89,20 +94,38 @@ update lz_result_record set is_delete = 1 where id=#{id} limit 1 + + - select * from lz_departments_staff_relate where department_id in + select * from lz_departments_staff_relate where is_delete=0 and department_id in #{item} + + diff --git a/src/main/resources/mapper/generator/StaffDao.xml b/src/main/resources/mapper/generator/StaffDao.xml index efe7a16f..7e1f4b58 100644 --- a/src/main/resources/mapper/generator/StaffDao.xml +++ b/src/main/resources/mapper/generator/StaffDao.xml @@ -273,5 +273,12 @@ select * from lz_staff where is_delete=0 AND name LIKE CONCAT('%',#{name},'%') + + diff --git a/src/test/java/com/lz/mysql/MysqlMain.java b/src/test/java/com/lz/mysql/MysqlMain.java index 8e550d87..450f96be 100644 --- a/src/test/java/com/lz/mysql/MysqlMain.java +++ b/src/test/java/com/lz/mysql/MysqlMain.java @@ -43,7 +43,6 @@ public class MysqlMain { public static String mysql_username = "ldd_biz"; public static String mysql_password = "Hello1234"; - /** * @param args */ @@ -61,8 +60,6 @@ public class MysqlMain { file.mkdirs(); } List list = new ArrayList(); - list.add(new TablesBean("lz_result_comment")); - list.add(new TablesBean("lz_result_detail")); list.add(new TablesBean("lz_result_record")); List list2 = new ArrayList();