Prechádzať zdrojové kódy

增加工作小结查询,统计接口

chenwen 3 rokov pred
rodič
commit
5d9a5c3cb0

+ 52 - 8
src/main/java/com/jpsoft/proj/kpi/controller/WorkSummaryController.java

@@ -1,7 +1,9 @@
 package com.jpsoft.proj.kpi.controller;
 
+import java.util.HashSet;
 import java.util.List;
 import java.util.Map;
+import java.util.Set;
 
 import javax.validation.constraints.NotBlank;
 import javax.validation.constraints.NotNull;
@@ -16,6 +18,7 @@ import org.springframework.web.bind.annotation.RestController;
 
 import com.jpsoft.proj.kpi.service.WorkSummaryService;
 import com.jpsoft.proj.model.TaskSummary;
+import com.jpsoft.proj.utils.MapUtils;
 import com.jpsoft.proj.utils.RespVO;
 import com.jpsoft.proj.utils.RespVOBuilder;
 
@@ -29,23 +32,23 @@ public class WorkSummaryController {
 	
 	/**
 	   * 加载需要自己考评的人员信息
-	 * @param workNum
+	 * @param usId
 	 * @return
 	 */
 	@GetMapping("/loadNeedAssessUsers")
-	public RespVO loadNeedAssessUsers(@NotBlank(message = "工号不能为空") String workNum) {
-		return RespVOBuilder.ok(service.loadNeedAssessUsers(workNum));
+	public RespVO loadNeedAssessUsers(@NotBlank(message = "员工编号不能为空") String usId) {
+		return RespVOBuilder.ok(service.loadNeedAssessUsers(usId));
 	}
 	
 	/**
 	   *     按月查询职员工作日志
-	 * @param workNum
+	 * @param usId
 	 * @param workMonth
 	 * @return
 	 */
 	@GetMapping("/loadMonthWorkSummary")
-	public RespVO loadMonthWorkSummary(@NotBlank(message = "工号不能为空") String workNum,@NotNull(message = "考勤月份不能为空") @Pattern(regexp="^\\d{4}-\\d{2}$",message = "考勤月份格式不正确:yyyy-MM") String workMonth) {
-		List<Map<String,Object>> workLogs=service.loadMonthWorkLog(workNum, workMonth);
+	public RespVO loadMonthWorkSummary(@NotBlank(message = "员工编号不能为空") String usId,@NotNull(message = "考勤月份不能为空") @Pattern(regexp="^\\d{4}-\\d{2}$",message = "考勤月份格式不正确:yyyy-MM") String workMonth) {
+		List<Map<String,Object>> workLogs=service.loadMonthWorkLog(usId, workMonth);
 		return RespVOBuilder.ok(workLogs);
 	}
 	
@@ -56,8 +59,49 @@ public class WorkSummaryController {
 	 */
 	@PostMapping("saveDailyWorkSummary")
 	public RespVO  saveDailyWorkSummary(TaskSummary  newSummary) {
-		service.saveDailyWorkSummary(newSummary);
 		newSummary.setSameUserId(newSummary.getUserid());
-		return RespVOBuilder.ok(newSummary.getId());
+		service.saveDailyWorkSummary(newSummary);
+		return RespVOBuilder.ok();
+	}
+	
+	/**
+	 * 查询某领导某月,旗下员工的工作小结提交统计情况
+	 * @param usId
+	 * @param workMonth
+	 * @return
+	 */
+	@GetMapping("/rptDailySubmitData")
+	public RespVO rptDailySubmitData(@NotBlank(message = "员工编号不能为空") String usId,@NotNull(message = "考勤月份不能为空") @Pattern(regexp="^\\d{4}-\\d{2}$",message = "考勤月份格式不正确:yyyy-MM") String workMonth) {
+		List<Map<String,Object>> users=service.loadNeedAssessUsers(usId);
+		if(users==null||users.size()==0) {
+			return RespVOBuilder.error("该用户下没有需要管理的员工");
+		}
+		Set<String> usIds=new HashSet<String>(users.size());
+		for(Map<String,Object> us : users) {
+			usIds.add(String.valueOf(us.get("id")));
+		}
+		List<Map<String,Object>> rpts=service.rptDailySubmitData(usIds,workMonth);
+		
+		return RespVOBuilder.ok(MapUtils.builder("total",users.size(),"rpt",rpts));
+	}
+	
+	
+	/**
+	 * 查询某一天指定某些员工(某领导管理的员工)的工作小结提交数据
+	 * @param usId  领导的编号
+	 * @param workMonth
+	 * @return
+	 */
+	@GetMapping("/loadDailySubmitData")
+	public RespVO loadDailySubmitData(@NotBlank(message = "员工编号不能为空") String usId,@NotNull(message = "考勤日期不能为空") @Pattern(regexp="^\\d{4}-\\d{2}-\\d{2}$",message = "考勤日期格式不正确:yyyy-MM") String workDate) {
+		List<Map<String,Object>> users=service.loadNeedAssessUsers(usId);
+		if(users==null||users.size()==0) {
+			return RespVOBuilder.error("该用户下没有需要管理的员工");
+		}
+		Set<String> usIds=new HashSet<String>(users.size());
+		for(Map<String,Object> us : users) {
+			usIds.add(String.valueOf(us.get("id")));
+		}
+		return RespVOBuilder.ok(service.loadDailySubmitData(usIds,workDate));
 	}
 }

+ 39 - 10
src/main/java/com/jpsoft/proj/kpi/service/WorkSummaryService.java

@@ -3,6 +3,7 @@ package com.jpsoft.proj.kpi.service;
 import java.util.Date;
 import java.util.List;
 import java.util.Map;
+import java.util.Set;
 
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -18,13 +19,41 @@ public class WorkSummaryService {
 	@Autowired
 	private SpringJdbcDAO  dao;
 	
+	/**
+	 * 查询某一天指定某些员工的工作小结提交数据
+	 * @param usIds
+	 * @param submitDate
+	 * @return
+	 */
+	public List<Map<String,Object>> loadDailySubmitData(Set<String> usIds,String submitDate){
+		String usIdStr=StringUtils.join(usIds,",");
+		StringBuilder sql=new StringBuilder(300);
+		sql.append("select summary, CONVERT(varchar(100),createtime, 20) createtime");
+		sql.append(" from tasksummary where CONVERT(varchar(100),Dates, 23)=?  and userid in ("+usIdStr+")");
+		return dao.queryForListMap(sql.toString(),submitDate);
+	}
+	
+	
+	/**
+	 * 统计每日日报提交情况(有工作小结内容才算已提交)
+	 * @return
+	 */
+	public List<Map<String,Object>>  rptDailySubmitData(Set<String> usIds,String submitMonth){
+		String usIdStr=StringUtils.join(usIds,",");
+		StringBuilder sql=new StringBuilder(300);
+		sql.append("select CONVERT(varchar(100),Dates, 23) submit_date,sum((case when Summary is null or Len(replace(Summary,' ','') )=0 then 0 else 1 end)) submit_count ");
+		sql.append(" from tasksummary where left(CONVERT(varchar(100),Dates, 23),7)=?  and userid in ("+usIdStr+")");
+		sql.append(" group by dates  order by dates desc ");
+		return dao.queryForListMap(sql.toString(),submitMonth);
+	}
+	
 	/**
 	   * 加载需要自己考评的人员信息
-	 * @param workNum
+	 * @param usId
 	 * @return
 	 */
-	public List<Map<String,Object>> loadNeedAssessUsers(String workNum){
-		Map<String,Object> user=getUserByNumber(workNum);
+	public List<Map<String,Object>> loadNeedAssessUsers(String usId){
+		Map<String,Object> user=getUser(usId);
 		if(user==null||user.size()==0||user.get("postid")==null) {
 			return null;
 		}
@@ -39,17 +68,17 @@ public class WorkSummaryService {
 	
 	/**
 	   *   按月查询职员工作日志
-	 * @param workNum	工
+	 * @param usId	员工编
 	 * @param workMonth 月份 yyyy-MM 格式
 	 * @return
 	 */
-	public List<Map<String,Object>>  loadMonthWorkLog(String workNum,String workMonth){
+	public List<Map<String,Object>>  loadMonthWorkLog(String usId,String workMonth){
 		StringBuilder sql=new StringBuilder();
 		sql.append("select CONVERT(varchar(100),Dates, 23) work_date,summary,su.Number,su.Name, ");
 		sql.append(" (case when Summary is null then 0 else Len(replace(Summary,' ','') ) end) summary_len ");
 		sql.append(" from TaskSummary  ts inner join Sys_User  su on ts.UserID=su.ID ");
-		sql.append(" where su.Number=? and left(CONVERT(varchar(100),Dates, 23),7)=? ");
-		return dao.queryForListMap(sql.toString(), workNum,workMonth);
+		sql.append(" where su.id=? and left(CONVERT(varchar(100),Dates, 23),7)=? ");
+		return dao.queryForListMap(sql.toString(), usId,workMonth);
 	}
 	
 	/**
@@ -64,9 +93,9 @@ public class WorkSummaryService {
 	}
 	
 	
-	public Map<String,Object> getUserByNumber(String workNum){
-		String sql="select *  from Sys_User where Number=?";
-		return dao.queryForSingleMap(sql, workNum);
+	public Map<String,Object> getUser(String usId){
+		String sql="select *  from Sys_User where id=?";
+		return dao.queryForSingleMap(sql, usId);
 	}
 	
 	public String getUserId(String workNum) {

+ 2 - 8
src/main/java/com/jpsoft/proj/model/TaskSummary.java

@@ -9,7 +9,7 @@ import java.util.Date;
  */
 public class TaskSummary {
 
-	private String id;
+	
 	
 	private String userid;
 	
@@ -40,13 +40,7 @@ public class TaskSummary {
 		this.cid=userId;
 	}
 
-	public String getId() {
-		return id;
-	}
-
-	public void setId(String id) {
-		this.id = id;
-	}
+	
 
 	public String getUserid() {
 		return userid;