Enford 5 rokov pred
rodič
commit
34bf5626d4

+ 21 - 0
src/main/java/com/jeeplus/modules/projectplanweekly/dao/ProjectPlanWeeklyDao.java

@@ -0,0 +1,21 @@
+package com.jeeplus.modules.projectplanweekly.dao;
+
+import com.jeeplus.common.persistence.CrudDao;
+import com.jeeplus.common.persistence.annotation.MyBatisDao;
+import com.jeeplus.modules.projectplanweekly.entity.ProjectPlanWeekly;
+
+import java.util.List;
+
+@MyBatisDao
+public interface ProjectPlanWeeklyDao extends CrudDao<ProjectPlanWeekly> {
+
+    public List<ProjectPlanWeekly> findWeekly(ProjectPlanWeekly projectPlanWeekly);
+
+    public Integer saveRemarksReason(ProjectPlanWeekly projectPlanWeekly);
+
+    public Integer saveRemarksReasonInfo(ProjectPlanWeekly projectPlanWeekly);
+
+    public Integer sureWeekly(ProjectPlanWeekly projectPlanWeekly);
+
+    public Integer sureWeeklyInfo(ProjectPlanWeekly projectPlanWeekly);
+}

+ 97 - 0
src/main/java/com/jeeplus/modules/projectplanweekly/entity/ProjectPlanWeekly.java

@@ -0,0 +1,97 @@
+package com.jeeplus.modules.projectplanweekly.entity;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.jeeplus.common.persistence.DataEntity;
+import com.jeeplus.modules.projectrecord.entity.ProjectPlanInfo;
+import com.jeeplus.modules.projectrecord.entity.ProjectRecords;
+import com.jeeplus.modules.sys.entity.Office;
+import com.jeeplus.modules.sys.entity.User;
+import org.omg.CORBA.PRIVATE_MEMBER;
+
+import java.util.Date;
+
+public class ProjectPlanWeekly extends DataEntity<ProjectPlanWeekly> {
+    private Date beginDate; //开始时间
+    private Date endDate; //结束时间
+    private String projectId; //项目id
+    private String weeklyStatus; //0-为完成工作计划
+    private String remarksStatus; //备注状态
+    private String remarksReason; //备注原因
+    private ProjectRecords projectRecords;
+
+    public ProjectRecords getProjectRecords() {
+        return projectRecords;
+    }
+
+    public void setProjectRecords(ProjectRecords projectRecords) {
+        this.projectRecords = projectRecords;
+    }
+
+    private User user;
+    private Office office;
+
+    public Office getOffice() {
+        return office;
+    }
+
+    public void setOffice(Office office) {
+        this.office = office;
+    }
+
+    public User getUser() {
+        return user;
+    }
+
+    public void setUser(User user) {
+        this.user = user;
+    }
+
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    public Date getBeginDate() {
+        return beginDate;
+    }
+
+    public void setBeginDate(Date beginDate) {
+        this.beginDate = beginDate;
+    }
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    public Date getEndDate() {
+        return endDate;
+    }
+
+    public void setEndDate(Date endDate) {
+        this.endDate = endDate;
+    }
+
+    public String getProjectId() {
+        return projectId;
+    }
+
+    public void setProjectId(String projectId) {
+        this.projectId = projectId;
+    }
+
+    public String getWeeklyStatus() {
+        return weeklyStatus;
+    }
+
+    public void setWeeklyStatus(String weeklyStatus) {
+        this.weeklyStatus = weeklyStatus;
+    }
+
+    public String getRemarksStatus() {
+        return remarksStatus;
+    }
+
+    public void setRemarksStatus(String remarksStatus) {
+        this.remarksStatus = remarksStatus;
+    }
+
+    public String getRemarksReason() {
+        return remarksReason;
+    }
+
+    public void setRemarksReason(String remarksReason) {
+        this.remarksReason = remarksReason;
+    }
+}

+ 119 - 0
src/main/java/com/jeeplus/modules/projectplanweekly/service/ProjectPlanWeeklyService.java

@@ -0,0 +1,119 @@
+package com.jeeplus.modules.projectplanweekly.service;
+
+import com.jeeplus.common.persistence.Page;
+import com.jeeplus.common.service.CrudService;
+import com.jeeplus.modules.projectplanweekly.dao.ProjectPlanWeeklyDao;
+import com.jeeplus.modules.projectplanweekly.entity.ProjectPlanWeekly;
+import org.junit.Test;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.text.SimpleDateFormat;
+import java.util.*;
+
+@Service
+@Transactional(readOnly = true)
+public class ProjectPlanWeeklyService extends CrudService<ProjectPlanWeeklyDao, ProjectPlanWeekly> {
+    @Autowired
+    private ProjectPlanWeeklyDao projectPlanWeeklyDao;
+
+    //获取单条记录
+    public ProjectPlanWeekly get(String id){
+       return super.get(id);
+    }
+
+    @Transactional(readOnly = false)
+    public void save(ProjectPlanWeekly projectPlanWeekly){
+        super.save(projectPlanWeekly);
+    }
+
+    @Transactional(readOnly = false)
+    public void delete(ProjectPlanWeekly projectPlanWeekly){
+        super.delete(projectPlanWeekly);
+    }
+
+    public List<ProjectPlanWeekly> findWeekly(ProjectPlanWeekly projectPlanWeekly){
+       return projectPlanWeeklyDao.findWeekly(projectPlanWeekly);
+    }
+
+    /**
+     * 查询分页数据
+     * @param page 分页对象
+     * @param entity
+     * @return
+     */
+    public Page<ProjectPlanWeekly> findPageWeekly(Page<ProjectPlanWeekly> page, ProjectPlanWeekly entity) {
+        entity.setPage(page);
+        List<ProjectPlanWeekly> weekly = projectPlanWeeklyDao.findWeekly(entity);
+        page.setList(weekly);
+        return page;
+    }
+
+
+    //计算当前日期所在的星期一或者星期日
+    public Map<String,Date> getMondayAndSunday(Date nowDate){
+        //获取当前日期
+        Date time = new Date(nowDate.getYear(),nowDate.getMonth(),nowDate.getDate());
+        //设置时间格式
+
+        //获取日历
+        Calendar calendar = Calendar.getInstance();
+        calendar.setTime(time);
+        //判断是否为周日
+        int dayWeek = calendar.get(Calendar.DAY_OF_WEEK);
+        if (1==dayWeek){
+            calendar.add(Calendar.DAY_OF_MONTH,-1);
+        }
+        calendar.setFirstDayOfWeek(Calendar.MONDAY);
+        //获取当前日期市一个星期的第几天
+        int day = calendar.get(Calendar.DAY_OF_WEEK);
+        //给当前日期减去星期几与一个星期第一天的差值
+        calendar.add(Calendar.DATE,calendar.getFirstDayOfWeek()-day);
+        calendar.set(Calendar.HOUR,0);
+        calendar.set(Calendar.MINUTE,0);
+        calendar.set(Calendar.SECOND,0);
+        //所在本周星期一的日期
+        Date mondayDate = calendar.getTime();
+
+        calendar.add(Calendar.DATE, 6);
+        calendar.set(Calendar.HOUR, 23);
+        calendar.set(Calendar.MINUTE, 59);
+        calendar.set(Calendar.SECOND, 59);
+        //所在本周星期日的日期
+        Date sundayDate = calendar.getTime();
+
+        //存入map集合中
+        Map<String,Date> map = new HashMap<String, Date>();
+        map.put("mondayDate",mondayDate);
+        map.put("sundayDate",sundayDate);
+        return map;
+    }
+
+    //添加未完成原因
+    @Transactional(readOnly = false)
+    public void saveRemarksReason(ProjectPlanWeekly projectPlanWeekly){
+        projectPlanWeekly.preUpdate();
+        projectPlanWeeklyDao.saveRemarksReason(projectPlanWeekly);
+    }
+
+    @Transactional(readOnly = false)
+    public void saveRemarksReasonInfo(ProjectPlanWeekly projectPlanWeekly){
+        projectPlanWeekly.preUpdate();
+        projectPlanWeeklyDao.saveRemarksReasonInfo(projectPlanWeekly);
+    }
+
+    //修改周报表状态
+    @Transactional(readOnly = false)
+    public void sureWeekly(ProjectPlanWeekly projectPlanWeekly){
+        projectPlanWeekly.preUpdate();
+        projectPlanWeeklyDao.sureWeekly(projectPlanWeekly);
+    }
+    //修改周报表状态
+    @Transactional(readOnly = false)
+    public void sureWeeklyInfo(ProjectPlanWeekly projectPlanWeekly){
+        projectPlanWeekly.preUpdate();
+        projectPlanWeeklyDao.sureWeeklyInfo(projectPlanWeekly);
+    }
+
+}

+ 126 - 0
src/main/java/com/jeeplus/modules/projectplanweekly/web/ProjectPlanWeeklyController.java

@@ -0,0 +1,126 @@
+package com.jeeplus.modules.projectplanweekly.web;
+
+import com.jeeplus.common.config.Global;
+import com.jeeplus.common.json.AjaxJson;
+import com.jeeplus.common.persistence.Page;
+import com.jeeplus.common.utils.StringUtils;
+import com.jeeplus.common.web.BaseController;
+import com.jeeplus.modules.projectplanweekly.entity.ProjectPlanWeekly;
+import com.jeeplus.modules.projectplanweekly.service.ProjectPlanWeeklyService;
+import com.jeeplus.modules.sys.utils.UserUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
+import org.springframework.web.bind.annotation.ModelAttribute;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.servlet.mvc.support.RedirectAttributes;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
+@Controller
+@RequestMapping(value = "${adminPath}/projectplan/weekly")
+public class ProjectPlanWeeklyController extends BaseController {
+    @Autowired
+    private ProjectPlanWeeklyService projectPlanWeeklyService;
+
+//    @ModelAttribute
+//    public ProjectPlanWeekly get(@RequestParam(required = false) String id){
+//        ProjectPlanWeekly entity = null;
+//        if (StringUtils.isNotBlank(id)){
+//            entity = projectPlanWeeklyService.get(id);
+//        }
+//        if (entity == null){
+//            entity = new ProjectPlanWeekly();
+//        }
+//        return entity;
+//    }
+
+    @RequestMapping(value = {"list",""})
+    public String list(ProjectPlanWeekly projectPlanWeekly, HttpServletRequest request, HttpServletResponse response, Model model){
+        if (null==projectPlanWeekly.getBeginDate()&&null==projectPlanWeekly.getEndDate()){
+            //获取周一 和 周日 的集合
+            Map<String, Date> mondayAndSunday = projectPlanWeeklyService.getMondayAndSunday(new Date());
+            Date mondayDate = mondayAndSunday.get("mondayDate");//本周周一时间
+            Date sundayDate = mondayAndSunday.get("sundayDate");//本周周日时间
+            projectPlanWeekly.setBeginDate(mondayDate);
+            projectPlanWeekly.setEndDate(sundayDate);
+        }
+        Page<ProjectPlanWeekly> page = projectPlanWeeklyService.findPageWeekly(new Page<ProjectPlanWeekly>(request,response),projectPlanWeekly);
+        List<ProjectPlanWeekly> list = page.getList();
+        model.addAttribute("page", page);
+        return "modules/projectplanweekly/projectPlanWeeklyList";
+    }
+
+    @RequestMapping(value = "form")
+    public String form(ProjectPlanWeekly projectPlanWeekly, HttpServletRequest request,Model model) {
+        projectPlanWeekly.setUser(UserUtils.getUser());
+        projectPlanWeekly.setOffice(UserUtils.getUser().getOffice());
+        Map<String, Date> mondayAndSunday = projectPlanWeeklyService.getMondayAndSunday(new Date());
+        Date mondayDate = mondayAndSunday.get("mondayDate");//本周周一时间
+        Date sundayDate = mondayAndSunday.get("sundayDate");//本周周日时间
+        projectPlanWeekly.setBeginDate(mondayDate);
+        projectPlanWeekly.setEndDate(sundayDate);
+        model.addAttribute("projectControlTable", projectPlanWeekly);
+        return "modules/projectplanweekly/projectPlanWeeklyForm";
+    }
+
+    @RequestMapping("/save")
+    public String save(ProjectPlanWeekly projectPlanWeekly, Model model, RedirectAttributes redirectAttributes){
+        projectPlanWeekly.setWeeklyStatus("0");
+        projectPlanWeekly.setRemarksStatus("0");
+        projectPlanWeeklyService.save(projectPlanWeekly);
+        return "redirect:"+ Global.getAdminPath()+"/projectplan/weekly/?repage";
+    }
+
+    //添加未完成备注
+    @ResponseBody
+    @RequestMapping("/saveRemarksReason")
+    public AjaxJson getSaveRemarksReason(ProjectPlanWeekly projectPlanWeekly){
+        AjaxJson j = new AjaxJson();
+        try {
+            if (projectPlanWeekly.getProjectId().equals("")){
+                projectPlanWeeklyService.saveRemarksReason(projectPlanWeekly);
+            }else {
+                projectPlanWeeklyService.saveRemarksReasonInfo(projectPlanWeekly);
+            }
+            j.setMsg("填写原因成功");
+            j.setSuccess(true);
+            return j;
+        }catch (Exception e){
+            e.printStackTrace();
+        }
+        j.setMsg("填写原因失败");
+        j.setSuccess(false);
+        return j;
+    }
+
+    //确认完成周报
+    @ResponseBody
+    @RequestMapping("/sureWeeklyStatus")
+    public AjaxJson getSureWeeklyStatus(ProjectPlanWeekly projectPlanWeekly){
+        AjaxJson ajaxJson = new AjaxJson();
+        projectPlanWeekly.setWeeklyStatus("1");
+        projectPlanWeekly.setRemarksReason("");
+        try {
+            if (projectPlanWeekly.getProjectId().equals("")){
+                projectPlanWeeklyService.sureWeekly(projectPlanWeekly);
+            }else {
+                projectPlanWeeklyService.sureWeeklyInfo(projectPlanWeekly);
+            }
+            ajaxJson.setSuccess(true);
+            ajaxJson.setMsg("确认完成成功");
+            return ajaxJson;
+        }catch (Exception e){
+            e.printStackTrace();
+        }
+        ajaxJson.setSuccess(false);
+        ajaxJson.setMsg("确认完成失败");
+        return ajaxJson;
+    }
+}