package com.jpsoft.proj.kpi.controller; import java.util.HashMap; import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Set; import javax.validation.Valid; import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotNull; import javax.validation.constraints.Pattern; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; 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; @RestController @RequestMapping("/**/api") @Validated public class WorkSummaryController { @Autowired private WorkSummaryService service; @GetMapping("/getUsIdByNum") public RespVO getUsIdByNum(@NotBlank(message = "工号不能为空") String workNum) { return RespVOBuilder.ok(service.getUserId(workNum)); } /** * 加载需要自己考评的人员信息 * @param usId * @return */ @GetMapping("/loadNeedAssessUsers") public RespVO loadNeedAssessUsers(@NotBlank(message = "员工编号不能为空") String usId) { return RespVOBuilder.ok(service.loadNeedAssessUsers(usId)); } /** * 按月查询职员工作日志 * @param usId * @param workMonth * @return */ @GetMapping("/loadMonthWorkSummary") public RespVO loadMonthWorkSummary(@NotBlank(message = "员工编号不能为空") String usId,@NotNull(message = "考勤月份不能为空") @Pattern(regexp="^\\d{4}-\\d{2}$",message = "考勤月份格式不正确:yyyy-MM") String workMonth) { List> workLogs=service.loadMonthWorkLog(usId, workMonth); return RespVOBuilder.ok(workLogs); } /** * 保存每日工作小结 * @param newSummary * @return */ @PostMapping("saveDailyWorkSummary") public RespVO saveDailyWorkSummary(@Valid TaskSummary newSummary) { newSummary.updateSameUserId(newSummary.getUserid()); 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> users=service.loadNeedAssessUsers(usId); if(users==null||users.size()==0) { return RespVOBuilder.error("该用户下没有需要管理的员工"); } Set usIds=new HashSet(users.size()); for(Map us : users) { usIds.add(String.valueOf(us.get("id"))); } List> rpts=service.rptDailySubmitData(usIds,workMonth); return RespVOBuilder.ok(MapUtils.builder("total",users.size(),"rpt",rpts)); } /** * 查询某一天指定某些员工(某领导管理的员工)的工作小结提交数据 * @param usId 领导的编号 * @param workDate * @return */ @GetMapping("/loadDailySubmitData") public RespVO loadDailySubmitData(@NotBlank(message = "员工编号不能为空") String usId,@NotNull(message = "考勤日期不能为空") @Pattern(regexp="^\\d{4}-\\d{2}-\\d{2}$",message = "考勤日期格式不正确:yyyy-MM-dd") String workDate) { List> users=service.loadNeedAssessUsers(usId); if(users==null||users.size()==0) { return RespVOBuilder.error("该用户下没有需要管理的员工"); } Map> userMap=new HashMap>(users.size()); for(Map us : users) { userMap.put(String.valueOf(us.get("id")),us); } List> summarys=service.loadDailySubmitData(userMap.keySet(),workDate); if(summarys==null||summarys.size()==0) { return RespVOBuilder.ok(users); } Map itmus=null; for(Map summary : summarys) { itmus=userMap.get(String.valueOf(summary.get("userid"))); if(itmus==null) { continue; } itmus.putAll(summary); } return RespVOBuilder.ok(users); } }