Compare commits

...

6 Commits

Author SHA1 Message Date
xiangZr-hhh
da70993593 /project/getwork/id接口增加负责人id返回信息;/module/get/min新增负责人名称与子系统名称返回信息
Some checks failed
JslGroup/JslDeveloper/JSL_OrganizeInternalOA/pipeline/head There was a failure building this commit
2024-03-17 17:11:45 +08:00
xiangZr-hhh
6c9a81ebf7 模块/系统详细信息接口,返回信息调整,增加projectId
All checks were successful
JslGroup/JslDeveloper/JSL_OrganizeInternalOA/pipeline/head This commit looks good
2024-03-17 15:39:05 +08:00
86fe04a895 Upload
All checks were successful
JslGroup/JslDeveloper/JSL_OrganizeInternalOA/pipeline/head This commit looks good
2024-03-17 12:45:19 +08:00
176yunxuan
21eed05bcc 查询bug
All checks were successful
JslGroup/JslDeveloper/JSL_OrganizeInternalOA/pipeline/head This commit looks good
2024-03-17 09:56:40 +08:00
176yunxuan
479d3bb421 查询bug
All checks were successful
JslGroup/JslDeveloper/JSL_OrganizeInternalOA/pipeline/head This commit looks good
2024-03-17 09:46:18 +08:00
176yunxuan
5e1da6b079 查询bug
All checks were successful
JslGroup/JslDeveloper/JSL_OrganizeInternalOA/pipeline/head This commit looks good
2024-03-17 08:35:33 +08:00
12 changed files with 140 additions and 20 deletions

View File

@ -74,6 +74,7 @@ public class AuthController {
@PostMapping("/auth/login") @PostMapping("/auth/login")
public BaseResponse authLogin(@RequestBody @Validated UserLoginVO userLoginVO, @NotNull BindingResult bindingResult) { public BaseResponse authLogin(@RequestBody @Validated UserLoginVO userLoginVO, @NotNull BindingResult bindingResult) {
log.info("请求接口[POST]: /auth/login"); log.info("请求接口[POST]: /auth/login");
// 判断是否有参数错误 // 判断是否有参数错误
if (bindingResult.hasErrors()) { if (bindingResult.hasErrors()) {
return ResultUtil.error(ErrorCode.REQUEST_BODY_ERROR, Processing.getValidatedErrorList(bindingResult)); return ResultUtil.error(ErrorCode.REQUEST_BODY_ERROR, Processing.getValidatedErrorList(bindingResult));

View File

@ -5,6 +5,7 @@ import com.jsl.oa.mapper.ProjectMapper;
import com.jsl.oa.model.doData.ProjectCuttingDO; import com.jsl.oa.model.doData.ProjectCuttingDO;
import com.jsl.oa.model.doData.ProjectDO; import com.jsl.oa.model.doData.ProjectDO;
import com.jsl.oa.model.doData.ProjectUserDO; import com.jsl.oa.model.doData.ProjectUserDO;
import com.jsl.oa.model.doData.ProjectWorkDO;
import com.jsl.oa.model.doData.info.ProjectShowDO; import com.jsl.oa.model.doData.info.ProjectShowDO;
import com.jsl.oa.model.voData.ProjectEditVO; import com.jsl.oa.model.voData.ProjectEditVO;
import com.jsl.oa.model.voData.ProjectInfoVO; import com.jsl.oa.model.voData.ProjectInfoVO;
@ -46,6 +47,7 @@ public class ProjectDAO {
log.info("\t\t> 从 MySQL 更新数据"); log.info("\t\t> 从 MySQL 更新数据");
ProjectDO projectDO = new ProjectDO(); ProjectDO projectDO = new ProjectDO();
Processing.copyProperties(projectEdit,projectDO); Processing.copyProperties(projectEdit,projectDO);
projectDO.setId(projectId);
projectMapper.projectEdit(projectDO); projectMapper.projectEdit(projectDO);
log.info("\t\t> 从 MySQL 获取数据"); log.info("\t\t> 从 MySQL 获取数据");
return projectMapper.getProjectById(projectId); return projectMapper.getProjectById(projectId);
@ -238,5 +240,9 @@ public class ProjectDAO {
return projectMapper.tget(id); return projectMapper.tget(id);
} }
public ProjectWorkDO getProjectWorkerById(Long id){
return projectMapper.getProjectWorkById(id);
}
} }

View File

@ -29,4 +29,8 @@ public interface ModuleMapper {
@Select("select * from organize_oa.oa_project_work where pid=#{id} and is_delete=0 and type=1 ") @Select("select * from organize_oa.oa_project_work where pid=#{id} and is_delete=0 and type=1 ")
List<ProjectWorkDO> getAllMoudleByPid(Long id); List<ProjectWorkDO> getAllMoudleByPid(Long id);
@Select("select principal_id from organize_oa.oa_project where id=(select project_id " +
"from organize_oa.oa_project_work where oa_project_work.id = #{sysId})")
Long getPridBySysyid(Integer sysId);
} }

View File

@ -5,6 +5,7 @@ import com.jsl.oa.model.doData.ProjectDO;
import com.jsl.oa.model.doData.ProjectUserDO; import com.jsl.oa.model.doData.ProjectUserDO;
import com.jsl.oa.model.doData.ProjectWorkDO; import com.jsl.oa.model.doData.ProjectWorkDO;
import com.jsl.oa.model.voData.ProjectInfoVO; import com.jsl.oa.model.voData.ProjectInfoVO;
import com.jsl.oa.model.voData.ProjectWorkSimpleVO;
import com.jsl.oa.model.voData.ProjectWorkVO; import com.jsl.oa.model.voData.ProjectWorkVO;
import org.apache.ibatis.annotations.*; import org.apache.ibatis.annotations.*;
@ -109,7 +110,14 @@ public interface ProjectMapper {
List<ProjectDO> tgetBytags(List<String> tags,List<Integer> isFinish); List<ProjectDO> tgetBytags(List<String> tags,List<Integer> isFinish);
@Select("select * from organize_oa.oa_project_work where id=#{id}") @Select("select * from organize_oa.oa_project_work where id=#{id}")
ProjectWorkDO getWorkById(Integer id); ProjectWorkSimpleVO getWorkById(Integer id);
@Select("select principal_id from organize_oa.oa_project_work where id=#{pid}") @Select("select principal_id from organize_oa.oa_project_work where id=#{pid}")
Long getPirIdbyWorkid(Long pid); Long getPirIdbyWorkid(Long pid);
@Select("select principal_id from organize_oa.oa_project_work where id=#{id}")
Long getPid(Integer id);
@Select("select * from organize_oa.oa_project_work where id=#{id}")
ProjectWorkDO getProjectWorkById(Long id);
} }

View File

@ -30,7 +30,7 @@ public class ProjectDO {
private Integer isDelete; private Integer isDelete;
private Integer isFinish; private Integer isFinish;
private Long workLoad; private Long workLoad;
private boolean status; private Integer status;
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss", timezone = "UTC") @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss", timezone = "UTC")
private Timestamp beginTime; private Timestamp beginTime;

View File

@ -19,7 +19,8 @@ public class ProjectEditVO {
private String file; private String file;
private String description; private String description;
private Integer isFinish; private Integer isFinish;
private boolean status; private Integer status;
private Long workLoad;
private Timestamp beginTime; private Timestamp beginTime;
private Timestamp completeTime; private Timestamp completeTime;
private Timestamp deadline; private Timestamp deadline;

View File

@ -0,0 +1,35 @@
package com.jsl.oa.model.voData;
import lombok.Data;
import lombok.experimental.Accessors;
import java.sql.Timestamp;
/**
* 总体描述
*
* 在projectWorkDO上新增了负责人principalUser子系统名称childSystemName
*/
@Data
@Accessors(chain = true)
public class ProjectWorkAndNameVO {
private Long id;
private Long pid;
private String childSystemName;
private Long projectId;
private Long principalId;
private String principalUser;
private Integer cycle;
private Integer workLoad;
private Integer type;
private String name;
private String description;
private Integer isDelete;
private Integer isFinish;
private boolean status;
private Timestamp beginTime;
private Timestamp completeTime;
}

View File

@ -0,0 +1,26 @@
package com.jsl.oa.model.voData;
import com.fasterxml.jackson.annotation.JsonInclude;
import lombok.Data;
import lombok.experimental.Accessors;
import java.sql.Timestamp;
@Data
@Accessors(chain = true)
@JsonInclude(JsonInclude.Include.NON_NULL)
public class ProjectWorkSimpleVO {
private String name;
private Long principalId;
private String principalUser;
private Integer isFinish;
private String description;
private Long cycle;
private Long projectId;
private Long workLoad;
private Long id;
private String tags;
private Integer status;
private Timestamp beginTime;
private Timestamp completeTime;
}

View File

@ -1,10 +1,16 @@
package com.jsl.oa.services.impl; package com.jsl.oa.services.impl;
import ch.qos.logback.core.joran.util.beans.BeanUtil;
import com.jsl.oa.dao.ModuleDAO; import com.jsl.oa.dao.ModuleDAO;
import com.jsl.oa.dao.ProjectDAO;
import com.jsl.oa.dao.UserDAO; import com.jsl.oa.dao.UserDAO;
import com.jsl.oa.mapper.ModuleMapper; import com.jsl.oa.mapper.ModuleMapper;
import com.jsl.oa.mapper.RoleMapper; import com.jsl.oa.mapper.RoleMapper;
import com.jsl.oa.model.doData.ProjectDO;
import com.jsl.oa.model.doData.ProjectWorkDO; import com.jsl.oa.model.doData.ProjectWorkDO;
import com.jsl.oa.model.doData.UserDO;
import com.jsl.oa.model.voData.ProjectWorkAndNameVO;
import com.jsl.oa.model.voData.ProjectWorkVO;
import com.jsl.oa.services.ModuleService; import com.jsl.oa.services.ModuleService;
import com.jsl.oa.utils.BaseResponse; import com.jsl.oa.utils.BaseResponse;
import com.jsl.oa.utils.ErrorCode; import com.jsl.oa.utils.ErrorCode;
@ -16,6 +22,7 @@ import org.springframework.stereotype.Service;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import javax.xml.transform.Result; import javax.xml.transform.Result;
import java.util.ArrayList;
import java.util.List; import java.util.List;
@Slf4j @Slf4j
@ -24,6 +31,7 @@ import java.util.List;
public class ModuleServiceImpl implements ModuleService { public class ModuleServiceImpl implements ModuleService {
private final RoleMapper roleMapper; private final RoleMapper roleMapper;
private final ModuleDAO moduleDAO; private final ModuleDAO moduleDAO;
private final ProjectDAO projectDAO;
private final ModuleMapper moduleMapper; private final ModuleMapper moduleMapper;
private final UserDAO userDAO; private final UserDAO userDAO;
@ -36,12 +44,12 @@ public class ModuleServiceImpl implements ModuleService {
Long pid = moduleMapper.getPidByProjectid(projectId); Long pid = moduleMapper.getPidByProjectid(projectId);
//判断是否是项目负责人 //判断是否是项目负责人
int is = 1; int is = 1;
if(!pid.equals(userId)){ if (!pid.equals(userId)) {
log.info("不是负责人"); log.info("不是负责人");
is = 0; is = 0;
} }
List<ProjectWorkDO> projectWorkDOList= moduleMapper.getByProjectId(projectId,userId,is); List<ProjectWorkDO> projectWorkDOList = moduleMapper.getByProjectId(projectId, userId, is);
return ResultUtil.success(projectWorkDOList); return ResultUtil.success(projectWorkDOList);
} }
@ -52,14 +60,29 @@ public class ModuleServiceImpl implements ModuleService {
Long userId = Processing.getAuthHeaderToUserId(request); Long userId = Processing.getAuthHeaderToUserId(request);
//获取子系统负责人id //获取子系统负责人id
Long pid = moduleMapper.getPidBySysid(sysId); Long pid = moduleMapper.getPidBySysid(sysId);
//判断是否是子系统负责人 //获取项目负责人id
Long prid = moduleMapper.getPridBySysyid(sysId);
//判断是否是子系统/项目负责人
int is = 1; int is = 1;
if(!pid.equals(userId)){ if (!pid.equals(userId) && !prid.equals(userId)) {
is = 0; is = 0;
} }
List<ProjectWorkDO> projectWorkDOList = moduleMapper.getBySysId(sysId,userId,is); List<ProjectWorkDO> projectWorkDOList = moduleMapper.getBySysId(sysId, userId, is);
return ResultUtil.success(projectWorkDOList); // 封装VO类
List<ProjectWorkAndNameVO> projectWorkAndNameVOS = new ArrayList<>();
for (ProjectWorkDO projectWorkDO : projectWorkDOList) {
ProjectWorkAndNameVO projectWorkAndNameVO = new ProjectWorkAndNameVO();
Processing.copyProperties(projectWorkDO,projectWorkAndNameVO);
// 添加负责人和子系统名称
projectWorkAndNameVO.
setChildSystemName(projectDAO.getProjectWorkerById(projectWorkDO.getPid()).getName())
.setPrincipalUser(userDAO.getUserById(projectWorkDO.getPrincipalId()).getUsername());
projectWorkAndNameVOS.add(projectWorkAndNameVO);
}
return ResultUtil.success(projectWorkAndNameVOS);
} }
@ -67,7 +90,7 @@ public class ModuleServiceImpl implements ModuleService {
public BaseResponse deleteById(HttpServletRequest request, Long id) { public BaseResponse deleteById(HttpServletRequest request, Long id) {
// 检测是否为管理员 // 检测是否为管理员
if(!Processing.checkUserIsAdmin(request,roleMapper)){ if (!Processing.checkUserIsAdmin(request, roleMapper)) {
return ResultUtil.error(ErrorCode.NOT_PERMISSION); return ResultUtil.error(ErrorCode.NOT_PERMISSION);
} }
@ -76,12 +99,12 @@ public class ModuleServiceImpl implements ModuleService {
return ResultUtil.success("删除成功"); return ResultUtil.success("删除成功");
} }
// 删除子模块方法 // 删除子模块方法
public void deleteMoudule(Long id){ public void deleteMoudule(Long id) {
//获取所有父Id=id的子模块 //获取所有父Id=id的子模块
List<ProjectWorkDO> projectWorkDOS = moduleMapper.getAllMoudleByPid(id); List<ProjectWorkDO> projectWorkDOS = moduleMapper.getAllMoudleByPid(id);
for(ProjectWorkDO workDO: projectWorkDOS){ for (ProjectWorkDO workDO : projectWorkDOS) {
deleteMoudule(workDO.getId()); deleteMoudule(workDO.getId());
} }

View File

@ -168,8 +168,24 @@ public class ProjectServiceImpl implements ProjectService {
@Override @Override
public BaseResponse getWorkById(Integer id) { public BaseResponse getWorkById(Integer id) {
ProjectWorkDO projectWorkDO = projectMapper.getWorkById(id); ProjectWorkSimpleVO projectWorkSimpleVO = projectMapper.getWorkById(id);
return ResultUtil.success(projectWorkDO);
projectWorkSimpleVO.setPrincipalUser(userDAO.getUserById(projectMapper.getPid(id)).getUsername());
// 解析JSON字符串
JsonNode rootNode = null;
try {
rootNode = objectMapper.readTree(projectWorkSimpleVO.getDescription());
// 访问特定的key
JsonNode targetNode = rootNode.get("description");
if(targetNode != null && !rootNode.isNull()){
projectWorkSimpleVO.setDescription(targetNode.asText());
}else{
projectWorkSimpleVO.setDescription("null");
}
} catch (JsonProcessingException ignored) {
}
return ResultUtil.success(projectWorkSimpleVO);
} }
@Override @Override

View File

@ -15,7 +15,7 @@
<select id="getBySysId" resultType="com.jsl.oa.model.doData.ProjectWorkDO"> <select id="getBySysId" resultType="com.jsl.oa.model.doData.ProjectWorkDO">
select * from organize_oa.oa_project_work where pid=#{sysId} and type=1 select * from organize_oa.oa_project_work where pid=#{sysId} and type=1
<if test="is != 1 "> <if test="is != 1 ">
and principal_id=#{userId} and (principal_id=#{userId} or principal_id is null)
</if> </if>
</select> </select>
</mapper> </mapper>

View File

@ -34,13 +34,13 @@
<if test="deadline != null and deadline != ''"> <if test="deadline != null and deadline != ''">
deadline = #{deadline}, deadline = #{deadline},
</if> </if>
<if test="status != null and status != ''"> <if test="status != null">
status = #{status}, status = #{status},
</if> </if>
<if test="isFinish != null and isFinish != ''"> <if test="isFinish != null">
is_finish = #{isFinish}, is_finish = #{isFinish},
</if> </if>
<if test="isDelete != null and isDelete != ''"> <if test="isDelete != null">
is_delete = #{isDelete}, is_delete = #{isDelete},
</if> </if>
</set> </set>
@ -113,7 +113,7 @@
<if test="is != null"> <if test="is != null">
(principal_id = #{userId} and is_delete=false) or (principal_id = #{userId} and is_delete=false) or
</if> </if>
id in(select project_id from organize_oa.oa_project_work where is_delete=false and status =1 and principal_id=#{userId}) id in(select project_id from organize_oa.oa_project_work where is_delete=false and principal_id=#{userId})
</select> </select>
<select id="workget1" resultType="com.jsl.oa.model.doData.ProjectDO"> <select id="workget1" resultType="com.jsl.oa.model.doData.ProjectDO">