This commit is contained in:
高久奇 2021-12-31 18:06:55 +08:00
parent ac9fb347b4
commit 3e830afcce
17 changed files with 308 additions and 44 deletions

View File

@ -12,8 +12,10 @@ import com.nbclass.szxgl.mapper.ListTypeMapper;
import com.nbclass.szxgl.model.ListType;
import com.nbclass.szxgl.model.ProjectTask;
import com.nbclass.szxgl.model.ProjectTaskJournal;
import com.nbclass.szxgl.model.SyUsers;
import com.nbclass.szxgl.service.ProjectService;
import com.nbclass.szxgl.service.ProjectTaskService;
import com.nbclass.szxgl.service.SyUsersService;
import com.nbclass.util.PageUtil;
import com.nbclass.util.ResultUtil;
import com.nbclass.vo.base.ResponseVo;
@ -48,6 +50,9 @@ public class ProjectTaskController extends BaseController {
@Resource
private ListTypeMapper listTypeMapper;
@Resource
private SyUsersService syUsersService;
@InitBinder
public void initBinder(WebDataBinder binder) {
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm");
@ -92,12 +97,47 @@ public class ProjectTaskController extends BaseController {
@RequestMapping("/journal/getList")
@ResponseBody
public ResponseVo selectProjectTaskJournalList(String taskId) {
User user = (User) SecurityUtils.getSubject().getPrincipal();
SyUsers syUsers = syUsersService.selectByUsername(user.getUserId());
//根据部门id上级领导
String name = syUsersService.getByIsLeader(syUsers.getDeptId());
boolean result = false;
//判断用户是否上级领导
if(user.getUsername().equals(name)){
result = true;
}
List<ProjectTaskJournal> list = service.getTaskJournalList(taskId);
JSONObject obj = new JSONObject();
obj.put("rows", list);
obj.put("result", result);
return ResultUtil.success("success", obj);
}
/**
* 更新任务评分分数和点评内容
* @param taskId 任务id
* @param score 评分分数
* @param comment 点评内容
* @return
*/
@RequestMapping("/journal/update")
@ResponseBody
public ResponseVo updateProjectTaskJournal(String taskId,Double score,String comment) {
// User user = (User) SecurityUtils.getSubject().getPrincipal();
// if(user==null && SpringContextHolder.isProd()) {
// throw new ParameterException("登录失效,请重新登录!");
// }
ProjectTaskJournal projectTaskJournal = new ProjectTaskJournal();
projectTaskJournal.setScore(score);
projectTaskJournal.setComment(comment);
projectTaskJournal.setId(taskId);
//projectTaskJournal.setCommentId(user.getUserId());
projectTaskJournal.setCommentId("85cde14893fc4c2d805a1876c0718106");
projectTaskJournal.setStatus(1);
service.updateTaskJournal(projectTaskJournal);
return ResultUtil.success("success");
}
/**
* 删除任务
*
@ -185,17 +225,18 @@ public class ProjectTaskController extends BaseController {
* 添加任务进度日志
*
* @param j
* @param listType json数组
* @param errors
* @param speed
*/
@RequestMapping("/myTask/addJournal")
@ResponseBody
public ResponseVo addJournal(@Valid ProjectTaskJournal j,Errors errors,short speed) {
public ResponseVo addJournal(@Valid ProjectTaskJournal j,String listType,Errors errors,short speed) {
if (errors.hasErrors()) {
return ResultUtil.error("参数验证失败");
}
projectTaskService.addProjectTaskJournal(j, speed);
projectTaskService.addProjectTaskJournal(j,listType, speed);
return ResultUtil.success("success");
}
@ -210,4 +251,16 @@ public class ProjectTaskController extends BaseController {
return ResultUtil.success(listTypes);
}
/**
* 获取字体类型列表
* @param name 字体类型名称名称
* @return
*/
@RequestMapping("/myTask/getFontType")
@ResponseBody
public ResponseVo getFontType(String name){
List<ListType> listTypes = listTypeMapper.getFontType(name);
return ResultUtil.success(listTypes);
}
}

View File

@ -17,4 +17,6 @@ public interface ListTypeMapper extends MyMapper<ListType> {
public String getAreaIdByName(@Param("areaName")String areaName);
List<ListType> getComboBox();
List<ListType> getFontType(String name);
}

View File

@ -3,7 +3,9 @@ package com.nbclass.szxgl.mapper;
import java.util.List;
import com.nbclass.szxgl.model.ProjectTaskJournal;
import com.nbclass.szxgl.model.ProjectTaskJournalFontType;
import com.nbclass.util.MyMapper;
import org.apache.ibatis.annotations.Param;
public interface ProjectTaskJournalMapper extends MyMapper<ProjectTaskJournal> {
@ -15,4 +17,24 @@ public interface ProjectTaskJournalMapper extends MyMapper<ProjectTaskJournal> {
public List<ProjectTaskJournal> getList(String taskId);
public void deleteByTaskId(String projectTaskId);
/**
* 更新任务评分分数和点评内容
* @return
*/
void updateTaskJournal(ProjectTaskJournal projectTaskJournal);
/**
* 点评人id获取用户姓名
* @param id
* @return
*/
String getUserName(String id);
/**
* 更新日志字体类型信息
*/
void addTaskFontType(ProjectTaskJournalFontType fontType);
}

View File

@ -11,4 +11,11 @@ public interface SyUsersMapper extends MyMapper<SyUsers> {
public SyUsers findByUserName(String userName);
public List<String> findIdByDeptId(String deptId);
/**
* 根据部门id上级领导
* @param deptId
* @return
*/
String getByIsLeader(String deptId);
}

View File

@ -54,6 +54,30 @@ public class ProjectTaskJournal {
@Column(name = "_risk")
private Integer risk;
/**
* 评分分数
*/
@Column(name = "_score")
private Double score;
/**
* 任务点评
*/
@Column(name = "_comment")
private String comment;
/**
* 点评人id
*/
@Column(name = "_comment_id")
private String commentId;
/**
* 点评状态1已点评 2未点评
*/
@Column(name = "_status")
private Integer status;
/**
* 创建时间
*/
@ -249,4 +273,36 @@ public class ProjectTaskJournal {
public void setRisk(Integer risk) {
this.risk = risk;
}
public double getScore() {
return score;
}
public void setScore(Double score) {
this.score = score;
}
public String getComment() {
return comment;
}
public void setComment(String comment) {
this.comment = comment;
}
public String getCommentId() {
return commentId;
}
public void setCommentId(String commentId) {
this.commentId = commentId;
}
public Integer getStatus() {
return status;
}
public void setStatus(Integer status) {
this.status = status;
}
}

View File

@ -0,0 +1,29 @@
package com.nbclass.szxgl.model;
import lombok.Data;
import java.util.Date;
@Data
public class ProjectTaskJournalFontType {
private String id;
/**
* 字典值id
*/
private String listValuesId;
/**
* 任务id
*/
private String projectTaskJournalId;
/**
* 创建时间
*/
private Date createdTime;
private String listValue;
}

View File

@ -153,4 +153,10 @@ public interface ProjectService {
*/
public void updateProjectStatus(String id, String contractno, String status);
/**
* 更新任务评分分数和点评内容
* @return
*/
void updateTaskJournal(ProjectTaskJournal projectTaskJournal);
}

View File

@ -50,7 +50,7 @@ public interface ProjectTaskService {
* @param j
* @return
*/
public void addProjectTaskJournal(ProjectTaskJournal j, short speed);
public void addProjectTaskJournal(ProjectTaskJournal j,String listType, short speed);
/**
* //判断当前用户是否是任务的执行人

View File

@ -15,6 +15,11 @@ public interface SyUsersService {
*/
public SyUsers selectByUsername(String username);
/**
* 根据部门id上级领导
* @param deptId
* @return
*/
String getByIsLeader(String deptId);
}

View File

@ -991,6 +991,11 @@ public class ProjectServiceImpl implements ProjectService {
mapper.updateProjectStatus(setuptime, id, contractno, Integer.parseInt(status),updatetime);
}
@Override
public void updateTaskJournal(ProjectTaskJournal projectTaskJournal) {
journalMapper.updateTaskJournal(projectTaskJournal);
}
@Override
public List<Map<String, Object>> selectZxrUserObj(String userIds) {
List<Map<String, Object>> resultMap = new ArrayList<>();

View File

@ -53,6 +53,9 @@ public class ProjectTaskServiceImpl implements ProjectTaskService {
@Resource
private ProjectTaskTermMapper projectTaskTermMapper;
@Resource
private QywxUserMapper qywxUserMapper;
@Override
public boolean deleteProjectTask(String projectId, String[] ids) {
@ -277,7 +280,7 @@ public class ProjectTaskServiceImpl implements ProjectTaskService {
@Override
public void addProjectTaskJournal(ProjectTaskJournal j, short speed) {
public void addProjectTaskJournal(ProjectTaskJournal j,String listType,short speed) {
ProjectTask t = projectTaskMapper.findById(j.getProjectTaskId());
if(t==null){
throw new ParameterException("任务不存在,可能已被删除!");
@ -312,6 +315,24 @@ public class ProjectTaskServiceImpl implements ProjectTaskService {
j.setId(UUIDUtil.uuid());
j.setCreateTime(DateUtil.currentTimestamp());
int insert = projectTaskJournalMapper.insert(j);
StringBuilder fontTypeNames = new StringBuilder();
//更新日志字体类型信息
if(StringUtils.isNoneBlank(listType)){
JSONArray jsonArray = JSONObject.parseArray(listType);
for (int i = 0; i < jsonArray.size(); i++) {
ProjectTaskJournalFontType fontType = jsonArray.getObject(i, ProjectTaskJournalFontType.class);
fontType.setId(UUIDUtil.uuid());
fontType.setProjectTaskJournalId(j.getId());
projectTaskJournalMapper.addTaskFontType(fontType);
//该步即不会第一位有也防止最后一位拼接
if(fontTypeNames.length() > 0){
fontTypeNames.append("");
}
fontTypeNames.append(fontType.getListValue());
}
}
if(insert>0){
//更新任务进度
projectTaskMapper.updateTaskSpeed(t.getId(), speed);
@ -344,13 +365,21 @@ public class ProjectTaskServiceImpl implements ProjectTaskService {
if(fzIds!=null && fzIds.size()>0)touser += (StringUtils.isBlank(touser)?"":"|") + StringUtils.join(fzIds, "|");
if(userIds!=null && userIds.size()>0)touser += (StringUtils.isBlank(touser)?"":"|") + StringUtils.join(userIds, "|");
//点评人id获取用户姓名
String name = projectTaskJournalMapper.getUserName(j.getId());
String description =
"<div class=\"gray\">"+DateUtil.date2String(new Date(), "yyyy年MM月dd日 HH:mm")+"</div><br><br>"
+ "项目名称:"+projectName+"<br>"
+ "任务名称:"+taskName
+ "<div class=\"highlight\">"+j.getJournal()+"</div><br>"
// + "操作用户:"+user.getUsername()+"<br>"
+ "进度说明:"+j.getContent();
+ "已使用字体:"+fontTypeNames+"<br>"
+ "素材是否有侵权风险?:"+""+((j.getRisk() == 1) ? "无风险":"有风险")+""
+ "进度说明:"+j.getContent()+"<br>"
+ name+"&nbsp;&nbsp;&nbsp;&nbsp;"
+ ""+((j.getStatus() == 1) ? "已点评":"未点评")+""+"<br>"
+ "点评内容:"+""+((j.getComment() == null) ? "暂无评论":""+j.getComment()+"")+"";
if(StringUtils.isNotBlank(touser)){
SendMsgUtil.sendWxMsgByNewTask(touser, t.getProjectId(), description);
}

View File

@ -26,4 +26,9 @@ public class SyUsersServiceImpl implements SyUsersService {
return result;
}
@Override
public String getByIsLeader(String deptId) {
return mapper.getByIsLeader(deptId);
}
}

View File

@ -32,4 +32,8 @@
select * from list_values WHERE parent_id = #{id} and parent_id !='' and parent_id is not null
</select>
<select id="getFontType" resultType="com.nbclass.szxgl.model.ListType">
select id,list_value from list_values where list_value like CONCAT('%',#{name},'%') and list_type = 360
</select>
</mapper>

View File

@ -28,4 +28,42 @@
delete from project_task_journal where _project_task_id = #{projectTaskId}
</delete>
<update id="updateTaskJournal">
update project_task_journal set
<if test="score!=null">
_score = #{score},
</if>
<if test="comment!=null and comment!=''">
_comment = #{comment},
</if>
<if test="commentId!=null and commentId!=''">
_comment_id = #{commentId},
</if>
<if test="status!=null">
_status = #{status}
</if>
where id = #{id}
</update>
<select id="getUserName" resultType="java.lang.String">
select su.true_name from project_task_journal j LEFT JOIN sy_users su ON j._comment_id = su.id where j.id = #{id}
</select>
<insert id="addTaskFontType" useGeneratedKeys="true" keyProperty="id" keyColumn="id">
insert into project_task_journal_font_type
(
id,
list_values_id,
project_task_journal_id,
created_time
)
values
(
#{id},
#{listValuesId},
#{projectTaskJournalId},
now()
)
</insert>
</mapper>

View File

@ -51,4 +51,3 @@
</mapper>

View File

@ -32,4 +32,8 @@
select id from SyUsers where deptId=#{deptId}
</select>
<select id="getByIsLeader" resultType="java.lang.String">
select user_name from sy_users where deptId=#{deptId} and isleader = 1
</select>
</mapper>