diff --git a/src/main/java/com/xqopen/kehui/Api.java b/src/main/java/com/xqopen/kehui/Api.java index de04475..13e0178 100644 --- a/src/main/java/com/xqopen/kehui/Api.java +++ b/src/main/java/com/xqopen/kehui/Api.java @@ -700,7 +700,9 @@ public class Api { public static final String PROJECT_DEPARTMENT = PROJECT_PREFIX + "/departmentWeekly"; public static final String PROJECT_DEPARTMENT_EDIT= PROJECT_DEPARTMENT+"/update"; public static final String PROJECT_DEPARTMENT_SHOW= PROJECT_DEPARTMENT+"/showById"; + public static final String PROJECT_DEPARTMENT_PERMISSION= PROJECT_DEPARTMENT+"/insertPermission"; public static final String PROJECT_DEPARTMENT_UPDATE= PROJECT_DEPARTMENT_SHOW+"/{id}"; + public static final String PROJECT_DEPARTMENT_INSERTPERMISSION= PROJECT_DEPARTMENT_PERMISSION+"/{id}"; diff --git a/src/main/java/com/xqopen/kehui/mapper/ProjectInfoDao.java b/src/main/java/com/xqopen/kehui/mapper/ProjectInfoDao.java index 548fef7..d898d1d 100644 --- a/src/main/java/com/xqopen/kehui/mapper/ProjectInfoDao.java +++ b/src/main/java/com/xqopen/kehui/mapper/ProjectInfoDao.java @@ -39,4 +39,6 @@ public interface ProjectInfoDao extends BaseMapper { List getListByIds(Page page,@Param("list") List list); ProjectInfo getInfoByProName(@Param("projectName") String projectName); + + String getProId(@Param("projectName") String projectName); } diff --git a/src/main/java/com/xqopen/kehui/mapper/xml/ProjectInfoDao.xml b/src/main/java/com/xqopen/kehui/mapper/xml/ProjectInfoDao.xml index 6527de9..9f80e91 100644 --- a/src/main/java/com/xqopen/kehui/mapper/xml/ProjectInfoDao.xml +++ b/src/main/java/com/xqopen/kehui/mapper/xml/ProjectInfoDao.xml @@ -160,6 +160,11 @@ from project_info where project_name = #{projectName} + AND ( diff --git a/src/main/java/com/xqopen/kehui/mapper/xml/ProjectWeeklyDao.xml b/src/main/java/com/xqopen/kehui/mapper/xml/ProjectWeeklyDao.xml index a5e623b..38a2dfa 100644 --- a/src/main/java/com/xqopen/kehui/mapper/xml/ProjectWeeklyDao.xml +++ b/src/main/java/com/xqopen/kehui/mapper/xml/ProjectWeeklyDao.xml @@ -61,6 +61,12 @@ where pw.is_complete='0' and pw.id_=#{projectWeekly.id} + + + and pw.project_id=#{projectWeekly.projectId} + + + and pw.week=#{projectWeekly.week} and pw.dept_id=#{projectWeekly.deptId} and pw.weekly_type = '1' diff --git a/src/main/java/com/xqopen/kehui/project/action/ProjectDepartmentController.java b/src/main/java/com/xqopen/kehui/project/action/ProjectDepartmentController.java index 0a99746..4b0eb6b 100644 --- a/src/main/java/com/xqopen/kehui/project/action/ProjectDepartmentController.java +++ b/src/main/java/com/xqopen/kehui/project/action/ProjectDepartmentController.java @@ -75,6 +75,11 @@ public class ProjectDepartmentController implements ProjectDepartmentApi { projectWeekly.setWeeklyType("0"); if (!StringUtils.isEmpty(projectWeeklyFindReq.getId() != null)) projectWeekly.setId(projectWeeklyFindReq.getId()); + // 判断周数和项目id是否存在 作条件查询 + if (!StringUtils.isEmpty(projectWeeklyFindReq.getProjectName() != null)) + projectWeekly.setProjectId(projectInfoService.getProId(projectWeeklyFindReq.getProjectName())); + if (!StringUtils.isEmpty(projectWeeklyFindReq.getWeek() != null)) + projectWeekly.setWeek(projectWeeklyFindReq.getWeek()); List list = projectDepartmentService.getListByDeptId(page, projectWeekly); //判断当前账号是否是项目专员/负责人 //因为json里面存的是人事id,通过账号找不到,先把账号id转为人事id @@ -119,4 +124,19 @@ public class ProjectDepartmentController implements ProjectDepartmentApi { public String edit(@RequestHeader("userId") Long userId, @RequestBody ProjectWeeklyAddReq projectWeeklyAddReq) throws XQException { return null; } + + // 汇总 + @Override + @GetMapping(Api.PROJECT_DEPARTMENT_INSERTPERMISSION) + public void insertPermission(@PathVariable Long id) throws XQException { + //根据项目id获取proId和week + EntityWrapper Wrapper = new EntityWrapper<>(); + Wrapper.eq("parent_id",id.toString()); + List list = projectWeeklyService.selectList(Wrapper); + for (ProjectWeekly weekly : list) { + JSONObject ext = weekly.getExt(); + ext.put("promission","1"); + projectWeeklyService.update(weekly,Wrapper); + } + } } diff --git a/src/main/java/com/xqopen/kehui/project/action/ProjectWholeFirmController.java b/src/main/java/com/xqopen/kehui/project/action/ProjectWholeFirmController.java new file mode 100644 index 0000000..e8dc89d --- /dev/null +++ b/src/main/java/com/xqopen/kehui/project/action/ProjectWholeFirmController.java @@ -0,0 +1,112 @@ +package com.xqopen.kehui.project.action; + +import com.alibaba.fastjson.JSONObject; +import com.alibaba.fastjson.support.spring.FastJsonJsonView; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.xqopen.kehui.Api; +import com.xqopen.kehui.common.entity.SystemUserLogin; +import com.xqopen.kehui.common.service.ISystemUserLoginService; +import com.xqopen.kehui.exception.XQException; +import com.xqopen.kehui.project.api.ProjectWholeFirmApi; +import com.xqopen.kehui.project.dto.ProjectWeeklyAddReq; +import com.xqopen.kehui.project.dto.ProjectWeeklyDto; +import com.xqopen.kehui.project.dto.ProjectWeeklyFindReq; +import com.xqopen.kehui.project.dto.ProjectWeeklyListResp; +import com.xqopen.kehui.project.entity.ProjectWeekly; +import com.xqopen.kehui.project.service.IProjectDepartmentService; +import com.xqopen.kehui.project.service.IProjectInfoService; +import com.xqopen.kehui.project.service.IProjectWeeklyService; +import com.xqopen.kehui.project.service.IProjectWholeFirmService; +import com.xqopen.kehui.util.ApiResponse; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.util.ObjectUtils; +import org.springframework.util.StringUtils; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; + +@Slf4j +@RestController +@RequestMapping(produces = FastJsonJsonView.DEFAULT_CONTENT_TYPE) +public class ProjectWholeFirmController implements ProjectWholeFirmApi { + + @Autowired + IProjectWholeFirmService projectWholeFirmService; + @Autowired + IProjectWeeklyService projectWeeklyService; + @Autowired + IProjectInfoService projectInfoService; + @Autowired + ISystemUserLoginService systemUserLoginService; + + @Override + public String list(Long userId, ProjectWeeklyFindReq projectWeeklyFindReq) throws XQException { + if (!ObjectUtils.isEmpty(projectWeeklyFindReq)) { + if (!ObjectUtils.isEmpty(userId)) projectWeeklyFindReq.setUserId(String.valueOf(userId)); + if (projectWeeklyFindReq.getPageNo() == null || projectWeeklyFindReq.getPageNo() == 0) { + projectWeeklyFindReq.setPageNo(1); + } + if (projectWeeklyFindReq.getPageSize() == null || projectWeeklyFindReq.getPageSize() == 0) { + projectWeeklyFindReq.setPageSize(10); + } + Page page = new Page<>(projectWeeklyFindReq.getPageNo(), projectWeeklyFindReq.getPageSize()); + ProjectWeekly projectWeekly = new ProjectWeekly(); + projectWeekly.setIsDeleted("0"); + projectWeekly.setUserId(String.valueOf(userId)); + projectWeekly.setWeeklyType("0"); + if (!StringUtils.isEmpty(projectWeeklyFindReq.getId() != null)) + projectWeekly.setId(projectWeeklyFindReq.getId()); + // 判断周数和项目id是否存在 作条件查询 + if (!StringUtils.isEmpty(projectWeeklyFindReq.getProjectName() != null)) + projectWeekly.setProjectId(projectInfoService.getProId(projectWeeklyFindReq.getProjectName())); + if (!StringUtils.isEmpty(projectWeeklyFindReq.getWeek() != null)) + projectWeekly.setWeek(projectWeeklyFindReq.getWeek()); + List list = projectWholeFirmService.getListByDeptId(page, projectWeekly); + //判断当前账号是否是项目专员/负责人 + //因为json里面存的是人事id,通过账号找不到,先把账号id转为人事id + EntityWrapper userLoginEntityWrapper = new EntityWrapper<>(); + userLoginEntityWrapper.eq("id_",userId); + SystemUserLogin systemUserLogin = systemUserLoginService.selectOne(userLoginEntityWrapper); + EntityWrapper weeklyEntityWrapper = new EntityWrapper<>(); + weeklyEntityWrapper.eq("user_id",String.valueOf(systemUserLogin.getUserinfoId())); + weeklyEntityWrapper.eq("weekly_type","1"); + weeklyEntityWrapper.eq("dept_id",""); + weeklyEntityWrapper.eq("is_deleted","1"); + ProjectWeekly weekly = projectWeeklyService.selectOne(weeklyEntityWrapper); + if (!ObjectUtils.isEmpty(weekly)) {//如果查到确实是项目专员/负责人,通过项目ID拿到所有人的专项填报 + ProjectWeekly projectWeekly1 = new ProjectWeekly(); + projectWeekly1.setIsDeleted("0"); + projectWeekly1.setWeeklyType("0"); + projectWeekly1.setProjectId(weekly.getProjectId()); + JSONObject ext = projectWeekly1.getExt(); + projectWeekly1.setExt((JSONObject) ext.put("userId", String.valueOf(systemUserLogin.getUserinfoId()))); + if(!StringUtils.isEmpty(projectWeeklyFindReq.getId()!=null))projectWeekly1.setId(projectWeeklyFindReq.getId()); + if(!StringUtils.isEmpty(projectWeeklyFindReq.getDeptId()!=null))projectWeekly.setDeptId(projectWeeklyFindReq.getDeptId()); + list.addAll(projectWeeklyService.getList(page, projectWeekly1)); + } + + //组装结果集 + ProjectWeeklyListResp listResp = new ProjectWeeklyListResp(); + listResp.setLs(list); + listResp.setPages(page.getPages()); + listResp.setTotal(page.getTotal()); + listResp.setUserId(String.valueOf(systemUserLogin.getUserinfoId())); + return ApiResponse.fillSuccess(listResp); + } + return null; + } + + @Override + public String edit(Long userId, ProjectWeeklyAddReq projectWeeklyAddReq) throws XQException { + return null; + } + + @Override + public void insertPermission(Long id) throws XQException { + + } +} diff --git a/src/main/java/com/xqopen/kehui/project/api/ProjectDepartmentApi.java b/src/main/java/com/xqopen/kehui/project/api/ProjectDepartmentApi.java index c2e51c1..5fc6eac 100644 --- a/src/main/java/com/xqopen/kehui/project/api/ProjectDepartmentApi.java +++ b/src/main/java/com/xqopen/kehui/project/api/ProjectDepartmentApi.java @@ -30,4 +30,11 @@ public interface ProjectDepartmentApi { @ApiImplicitParam(name = "userId", value = "用户id", required = true, paramType = "header", dataType = "Long"), }) String edit(Long userId, ProjectWeeklyAddReq projectWeeklyAddReq) throws XQException; + + @ApiOperation(value = "部门周报汇总", notes = "部门周报汇总", response = ApiResponse.class) + @ApiImplicitParams({ + @ApiImplicitParam(name = "token", value = "登录标识符", required = true, paramType = "header", dataType = "String"), + @ApiImplicitParam(name = "userId", value = "用户id", required = true, paramType = "header", dataType = "Long"), + }) + void insertPermission(Long id) throws XQException; } diff --git a/src/main/java/com/xqopen/kehui/project/api/ProjectWholeFirmApi.java b/src/main/java/com/xqopen/kehui/project/api/ProjectWholeFirmApi.java new file mode 100644 index 0000000..630de95 --- /dev/null +++ b/src/main/java/com/xqopen/kehui/project/api/ProjectWholeFirmApi.java @@ -0,0 +1,36 @@ +package com.xqopen.kehui.project.api; + +import com.xqopen.kehui.exception.XQException; +import com.xqopen.kehui.project.dto.ProjectWeeklyAddReq; +import com.xqopen.kehui.project.dto.ProjectWeeklyFindReq; +import com.xqopen.kehui.util.ApiResponse; +import com.xqopen.kehui.util.Constants; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiImplicitParams; +import io.swagger.annotations.ApiOperation; + +@Api(value = "全所周报填报管理", tags = Constants.MODULE_PROJECT, description = "项目模块") +public interface ProjectWholeFirmApi { + + @ApiOperation(value = "全所周报列表", notes = "全所周报列表", response = ApiResponse.class) + @ApiImplicitParams({ + @ApiImplicitParam(name = "token", value = "登录标识符", required = true, paramType = "header", dataType = "String"), + @ApiImplicitParam(name = "userId", value = "用户id", required = true, paramType = "header", dataType = "Long"), + }) + String list(Long userId, ProjectWeeklyFindReq projectWeeklyFindReq) throws XQException; + + @ApiOperation(value = "修改全所周报", notes = "修改全所周报", response = ApiResponse.class) + @ApiImplicitParams({ + @ApiImplicitParam(name = "token", value = "登录标识符", required = true, paramType = "header", dataType = "String"), + @ApiImplicitParam(name = "userId", value = "用户id", required = true, paramType = "header", dataType = "Long"), + }) + String edit(Long userId, ProjectWeeklyAddReq projectWeeklyAddReq) throws XQException; + + @ApiOperation(value = "全所周报汇总", notes = "全所周报汇总", response = ApiResponse.class) + @ApiImplicitParams({ + @ApiImplicitParam(name = "token", value = "登录标识符", required = true, paramType = "header", dataType = "String"), + @ApiImplicitParam(name = "userId", value = "用户id", required = true, paramType = "header", dataType = "Long"), + }) + void insertPermission(Long id) throws XQException; +} diff --git a/src/main/java/com/xqopen/kehui/project/dto/ProjectWeeklyFindReq.java b/src/main/java/com/xqopen/kehui/project/dto/ProjectWeeklyFindReq.java index ba78b63..4361ad5 100644 --- a/src/main/java/com/xqopen/kehui/project/dto/ProjectWeeklyFindReq.java +++ b/src/main/java/com/xqopen/kehui/project/dto/ProjectWeeklyFindReq.java @@ -7,4 +7,5 @@ import lombok.Data; public class ProjectWeeklyFindReq extends ProjectWeekly { private Integer pageNo; private Integer pageSize; + private String projectName; } diff --git a/src/main/java/com/xqopen/kehui/project/service/IProjectInfoService.java b/src/main/java/com/xqopen/kehui/project/service/IProjectInfoService.java index 3e52afb..b0670b1 100644 --- a/src/main/java/com/xqopen/kehui/project/service/IProjectInfoService.java +++ b/src/main/java/com/xqopen/kehui/project/service/IProjectInfoService.java @@ -26,4 +26,6 @@ public interface IProjectInfoService extends IService { List getListByIds(Page page,List list); ProjectInfo getInfoByProName(String projectName); + + String getProId(String projectName); } diff --git a/src/main/java/com/xqopen/kehui/project/service/IProjectWholeFirmService.java b/src/main/java/com/xqopen/kehui/project/service/IProjectWholeFirmService.java new file mode 100644 index 0000000..8842d03 --- /dev/null +++ b/src/main/java/com/xqopen/kehui/project/service/IProjectWholeFirmService.java @@ -0,0 +1,13 @@ +package com.xqopen.kehui.project.service; + +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.service.IService; +import com.xqopen.kehui.project.dto.ProjectWeeklyDto; +import com.xqopen.kehui.project.entity.ProjectWeekly; + +import java.util.List; + +public interface IProjectWholeFirmService extends IService { + + List getListByDeptId(Page page, ProjectWeekly projectWeekly); +} diff --git a/src/main/java/com/xqopen/kehui/project/service/impl/ProjectInfoServiceImpl.java b/src/main/java/com/xqopen/kehui/project/service/impl/ProjectInfoServiceImpl.java index 7e7b9c5..e2b3414 100644 --- a/src/main/java/com/xqopen/kehui/project/service/impl/ProjectInfoServiceImpl.java +++ b/src/main/java/com/xqopen/kehui/project/service/impl/ProjectInfoServiceImpl.java @@ -48,4 +48,9 @@ public class ProjectInfoServiceImpl extends ServiceImpl