Ver código fonte

Merge remote-tracking branch 'origin/master'

user5 5 anos atrás
pai
commit
1c9b1e2233

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

@@ -9,6 +9,8 @@ import java.util.List;
 @MyBatisDao
 public interface ProjectPlanWeeklyDao extends CrudDao<ProjectPlanWeekly> {
 
+    public Integer updateWeekly(ProjectPlanWeekly projectPlanWeekly);
+
     public List<ProjectPlanWeekly> findWeekly(ProjectPlanWeekly projectPlanWeekly);
 
     public Integer saveRemarksReason(ProjectPlanWeekly projectPlanWeekly);
@@ -18,4 +20,6 @@ public interface ProjectPlanWeeklyDao extends CrudDao<ProjectPlanWeekly> {
     public Integer sureWeekly(ProjectPlanWeekly projectPlanWeekly);
 
     public Integer sureWeeklyInfo(ProjectPlanWeekly projectPlanWeekly);
+
+    public ProjectPlanWeekly getPlanWeekly(String id);
 }

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

@@ -17,6 +17,21 @@ public class ProjectPlanWeekly extends DataEntity<ProjectPlanWeekly> {
     private String weeklyStatus; //0-为完成工作计划
     private String remarksStatus; //备注状态
     private String remarksReason; //备注原因
+    private String officeId;
+    private String companyId;
+
+    public String getOfficeId() {
+        return officeId;
+    }
+
+    public void setOfficeId(String officeId) {
+        this.officeId = officeId;
+    }
+
+    public void setCompanyId(String companyId) {
+        this.companyId = companyId;
+    }
+
     private ProjectRecords projectRecords;
     private Office company;
 
@@ -38,6 +53,19 @@ public class ProjectPlanWeekly extends DataEntity<ProjectPlanWeekly> {
 
     private User user;
     private Office office;
+    private Office company;
+
+    public String getCompanyId() {
+        return companyId;
+    }
+
+    public Office getCompany() {
+        return company;
+    }
+
+    public void setCompany(Office company) {
+        this.company = company;
+    }
 
     public Office getOffice() {
         return office;

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

@@ -36,10 +36,19 @@ public class ProjectPlanWeeklyService extends CrudService<ProjectPlanWeeklyDao,
         super.delete(projectPlanWeekly);
     }
 
+    @Transactional(readOnly = false)
+    public void updateWeekly(ProjectPlanWeekly projectPlanWeekly){
+        projectPlanWeekly.preUpdate();
+        projectPlanWeeklyDao.updateWeekly(projectPlanWeekly);
+    }
+
     public List<ProjectPlanWeekly> findWeekly(ProjectPlanWeekly projectPlanWeekly){
        return projectPlanWeeklyDao.findWeekly(projectPlanWeekly);
     }
 
+    public ProjectPlanWeekly getPlanWeekly(String id){
+        return  projectPlanWeeklyDao.getPlanWeekly(id);
+    }
     /**
      * 查询分页数据
      * @param page 分页对象

+ 43 - 9
src/main/java/com/jeeplus/modules/projectplanweekly/web/ProjectPlanWeeklyController.java

@@ -59,22 +59,56 @@ public class ProjectPlanWeeklyController extends BaseController {
 
     @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);
+        if (null!=projectPlanWeekly.getId()&&!projectPlanWeekly.getId().equals("")){
+            ProjectPlanWeekly projectPlanWeeklyUpdate = projectPlanWeeklyService.get(projectPlanWeekly.getId());
+            projectPlanWeeklyUpdate.setUser(UserUtils.getUser());
+            projectPlanWeeklyUpdate.setOffice(UserUtils.getUser().getOffice());
+            model.addAttribute("projectPlanWeekly", projectPlanWeeklyUpdate);
+        }else {
+            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("projectPlanWeekly", projectPlanWeekly);
+        }
         return "modules/projectplanweekly/projectPlanWeeklyForm";
     }
 
+    @RequestMapping(value = "view")
+    public String view(ProjectPlanWeekly projectPlanWeekly, HttpServletRequest request,Model model){
+        if (null!=projectPlanWeekly&&!projectPlanWeekly.getProjectId().equals("")){
+            ProjectPlanWeekly planWeekly = projectPlanWeeklyService.getPlanWeekly(projectPlanWeekly.getId());
+            planWeekly.setUser(UserUtils.getUser());
+            planWeekly.setOffice(UserUtils.getUser().getOffice());
+            model.addAttribute("projectPlanWeekly", planWeekly);
+        }else {
+            ProjectPlanWeekly projectPlanWeeklyUpdate = projectPlanWeeklyService.get(projectPlanWeekly.getId());
+            projectPlanWeeklyUpdate.setUser(UserUtils.getUser());
+            projectPlanWeeklyUpdate.setOffice(UserUtils.getUser().getOffice());
+            model.addAttribute("projectPlanWeekly", projectPlanWeeklyUpdate);
+        }
+        return "modules/projectplanweekly/projectPlanWeeklyView";
+    }
+
     @RequestMapping("/save")
     public String save(ProjectPlanWeekly projectPlanWeekly, Model model, RedirectAttributes redirectAttributes){
         projectPlanWeekly.setWeeklyStatus("0");
         projectPlanWeekly.setRemarksStatus("0");
-        projectPlanWeeklyService.save(projectPlanWeekly);
+        try{
+            if (null!=projectPlanWeekly.getId()&&!"".equals(projectPlanWeekly.getId())){
+                projectPlanWeekly.setRemarksReason("");
+                projectPlanWeeklyService.updateWeekly(projectPlanWeekly);
+            }else {
+                projectPlanWeekly.setOfficeId(UserUtils.getUser().getOffice().getId());
+                projectPlanWeekly.setCompanyId(UserUtils.getUser().getCompany().getId());
+                projectPlanWeeklyService.save(projectPlanWeekly);
+            }
+        }catch (Exception e){
+            e.printStackTrace();
+        }
         return "redirect:"+ Global.getAdminPath()+"/projectplan/weekly/?repage";
     }
 

+ 31 - 2
src/main/resources/mappings/modules/projectplanweekly/ProjectPlanWeeklyDao.xml

@@ -66,8 +66,17 @@
 		SELECT 
 			<include refid="projectPlanWeeklyColumns"/>
 		FROM project_plan_weekly a
+		left join project_records r on  a.project_id = r.id
 		WHERE a.id = #{id}
 	</select>
+
+	<select id="getPlanWeekly" resultType="com.jeeplus.modules.projectplanweekly.entity.ProjectPlanWeekly" >
+		SELECT
+		<include refid="projectPlan"/>
+		FROM project_plan_info i
+		left join project_records r on  i.project_id = r.id
+		WHERE i.id = #{id}
+	</select>
 	
 	<select id="findList" resultType="com.jeeplus.modules.projectplanweekly.entity.ProjectPlanWeekly" >
 		SELECT 
@@ -130,6 +139,8 @@
 			begin_date,
 			end_date,
 			project_id,
+			office_id,
+			company_id,
 			weekly_status,
 			remarks_status,
 			remarks_reason
@@ -144,6 +155,8 @@
 			#{beginDate},
 			#{endDate},
 			#{projectId},
+			#{officeId},
+			#{companyId},
 			#{weeklyStatus},
 			#{remarksStatus},
 			#{remarksReason}
@@ -157,10 +170,26 @@
 			remarks = #{remarks},
 			begin_date = #{beginDate},
 			end_date = #{endDate},
-			project_id = #{projectId}
+			project_id = #{projectId},
+			weekly_status = #{weeklyStatus},
+			remarks_status = #{remarksStatus},
+			remarks_reason = #{remarksReason}
+		WHERE id = #{id}
+	</update>
+
+	<update id="updateWeekly">
+		UPDATE project_plan_weekly SET
+			update_by = #{updateBy.id},
+			update_date = #{updateDate},
+			remarks = #{remarks},
+			begin_date = #{beginDate},
+			end_date = #{endDate},
+			project_id = #{projectId},
+			weekly_status = #{weeklyStatus},
+			remarks_status = #{remarksStatus},
+			remarks_reason = #{remarksReason}
 		WHERE id = #{id}
 	</update>
-	
 	
 	<!--物理删除-->
 	<update id="delete">

+ 1 - 0
src/main/webapp/webpage/modules/projectplanweekly/projectPlanWeeklyForm.jsp

@@ -84,6 +84,7 @@
                 <div class="layui-item layui-col-sm6">
                     <label class="layui-form-label"><span class="require-item">*</span>创建人:</label>
                     <div class="layui-input-block">
+                        <input path="id" type="hidden"  id="id"  class="form-control required layui-input" value="${projectPlanWeekly.id}"/>
                         <input path="user.name" htmlEscape="false" readonly="readonly"   id="userId"  class="form-control required layui-input" value="${projectPlanWeekly.user.name}"/>
                     </div>
                 </div>

+ 22 - 14
src/main/webapp/webpage/modules/projectplanweekly/projectPlanWeeklyList.jsp

@@ -231,7 +231,22 @@
             ,page: false
             ,cols: [[
                 {field:'index',align:'center', title: '序号',width:40}
-                ,{field:'remarks',align:'center',title:'周报内容',width:200}
+                ,{align:'center',title:'周报内容',width:200,templet:function(d){
+                    var xml = "";
+                    if (d.remarks != undefined && d.remarks != '' && d.remarks != null) {
+                      xml+= "<a class=\"attention-info\" title=\"" + d.remarks + "\" href=\"javascript:void(0);\" onclick=\"openDialogView('查看项目', '${ctx}/projectplan/weekly/view?id=" + d.id +"&projectId="+d.projectId+"','95%', '95%')\">" + d.remarks + "</a>";
+                    }
+					return xml;
+				}}
+                ,{align:'center',width:150, title: '项目信息',templet:function(d){
+                        var xml = "";
+                        if (d.projectId != undefined && d.projectId != '' && d.projectId != null ){
+                            xml = "<a class=\"attention-info\" title=\"" + d.projectName + "\" href=\"javascript:void(0);\" onclick=\"openDialogView('查看项目', '${ctx}/project/projectRecords/view?id=" + d.projectId +"','95%', '95%')\">" + d.projectName + "</a>";
+                        }else {
+                            xml = "<span>无项目</span>";
+                        }
+                        return xml;
+                    }}
                 ,{field:'beginDate',align:'center', title: '开始日期',width:100}
                 ,{field:'endDate',align:'center', title: '结束日期',width:100}
                 ,{align:'center',width:100, title: '状态' ,templet:function(d){
@@ -242,15 +257,6 @@
                             var xml = "<span style=\"cursor:default;\" class=\"status-label status-label-" + st.label + "\" >" + st.status + "</span>";
                         return xml;
                 }}
-                ,{align:'center',width:150, title: '项目信息',templet:function(d){
-					var xml = "";
-					if (d.projectId != undefined && d.projectId != '' && d.projectId != null ){
-						xml = '<span>'+d.projectName+'</span>';
-					}else {
-                        xml = "<span>暂无项目</span>";
-					}
-					return xml;
-                }}
                 ,{align:'center',width:150, title: '备注信息',templet:function(d){
                     var xml = "";
                     if (d.remarksReason != undefined){
@@ -260,14 +266,16 @@
                     }
                     return xml;
 				}}
-                ,{field:'op',align:'center',title:"操作",templet:function(d){
+                ,{field:'op',align:'center',width:300,title:"操作",templet:function(d){
                         ////对操作进行初始化
                         var xml="";
                         if(d.weeklyStatus != undefined && d.weeklyStatus =="0")
                         {
-                            xml+="<a href=\"#\" onclick=\"openDialogre('修改项目评估', '${ctx}/project/projectAssess/form?id=" + d.id +"','95%', '95%','','送审,暂存,关闭')\" class=\"op-btn op-btn-edit\" ><i class=\"fa fa-edit\"></i> 修改</a>";
-                            xml+="<a href=\"#\" onclick=\"weeklySure('" + d.id+"','"+d.projectId+"')\" class=\"op-btn op-btn-edit\" ><i class=\"fa fa-edit\"></i> 确认完成</a>";
-                            xml+="<a href=\"#\" onclick=\"weeklyText('" + d.id+"','"+d.projectId+"')\" class=\"op-btn op-btn-edit\" ><i class=\"fa fa-edit\"></i> 备注</a>";
+                            if (d.projectId == undefined || d.projectId == ''){
+                                xml+="<a href=\"#\" onclick=\"openDialog('修改周报信息', '${ctx}/projectplan/weekly/form?id=" + d.id +"','95%', '95%')\" class=\"op-btn op-btn-edit\" ><i class=\"fa fa-edit\"></i> 修改</a>";
+                            }
+                            xml+="<a href=\"#\" onclick=\"weeklySure('" + d.id+"','"+d.projectId+"')\" class=\"op-btn op-btn-op-btn-revert\" style=\"color: white;background: darkseagreen\"><i class=\"fa fa-check\"></i> 确认完成</a>";
+                            xml+="<a href=\"#\" onclick=\"weeklyText('" + d.id+"','"+d.projectId+"')\" class=\"op-btn op-btn-op-btn-revert\" style=\"color: white;background: #ffa44e\" ><i class=\"fa fa-plus-square-o\"></i> 备注</a>";
                             // xml+="<a href='javascript:void(0)' class='op-btn  op-btn-edit' title='备注' onclick='projectText()'><i class='fa fa-edit'></i>备注</a>";
                         }
                         return xml;

+ 123 - 0
src/main/webapp/webpage/modules/projectplanweekly/projectPlanWeeklyView.jsp

@@ -0,0 +1,123 @@
+<%@ page contentType="text/html;charset=UTF-8" %>
+<%@ include file="/webpage/include/taglib.jsp"%>
+<html>
+<head>
+    <title>新增个人周报</title>
+    <meta name="decorator" content="default"/>
+    <script type="text/javascript">
+        $(document).ready(function() {
+            laydate.render({
+                elem: '#beginDate', //目标元素。由于laydate.js封装了一个轻量级的选择器引擎,因此elem还允许你传入class、tag但必须按照这种方式 '#id .class'
+                format: 'yyyy-MM-dd',
+                type : 'date'
+            });
+
+            laydate.render({
+                elem: '#endDate', //目标元素。由于laydate.js封装了一个轻量级的选择器引擎,因此elem还允许你传入class、tag但必须按照这种方式 '#id .class'
+                format: 'yyyy-MM-dd',
+                type : 'date'
+            });
+        });
+        function doSubmit(){//回调函数,在编辑和保存动作时,供openDialog调用提交表单。
+            if(validateForm.form()){
+                $("#inputForm").submit();
+                return true;
+            }
+            return false;
+        }
+        var validateForm;
+        $(document).ready(function() {
+            validateForm = $("#inputForm").validate({
+                submitHandler: function(form){
+                    loading('正在提交,请稍等...');
+                    form.submit();
+                },
+                rules:{
+                },
+                messages:{
+                },
+                errorContainer: "#messageBox",
+                errorPlacement: function(error, element) {
+                    $("#messageBox").text("输入有误,请先更正。");
+                    if (element.is(":checkbox")||element.is(":radio")||element.parent().is(".input-append")){
+                        error.appendTo(element.parent().parent());
+                    } else {
+                        error.insertAfter(element);
+                    }
+                }
+            });
+        });
+
+        function isNumber(val){
+            if(val === "" || val ==null){
+                return false;
+            }
+            var regPos = /^\d+(\.\d+)?$/; //非负浮点数
+            var regNeg = /^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$/; //负浮点数
+            if(regPos.test(val) || regNeg.test(val)){
+                return true;
+            }else{
+                return false;
+            }
+
+        }
+
+    </script>
+    <style>
+        /*超过5个汉字,调整label的长度,以下是配套的*/
+        .layui-item .layui-form-label{
+            width:90px;
+        }
+        .form-group .layui-item .layui-input-block,
+        .query .layui-input-block {
+            margin-left: 116px;
+        }
+    </style>
+</head>
+<body>
+<div class="single-form">
+    <div class="container">
+        <form:form id="inputForm" modelAttribute="projectPlanWeekly" action="${ctx}/projectplan/weekly/save" method="post" class="form-horizontal" >
+            <form:hidden path="id"/>
+            <div class="form-group layui-row first">
+                <div class="form-group-label"><h2>个人周报</h2></div>
+                <div class="layui-item layui-col-sm6">
+                    <label class="layui-form-label"><span class="require-item">*</span>创建人:</label>
+                    <div class="layui-input-block">
+                        <input path="id" type="hidden"  id="id"  class="form-control required layui-input" value="${projectPlanWeekly.id}"/>
+                        <input path="user.name" htmlEscape="false" readonly="readonly"   id="userId"  class="form-control required layui-input" value="${projectPlanWeekly.user.name}"/>
+                    </div>
+                </div>
+                <div class="layui-item layui-col-sm6">
+                    <label class="layui-form-label"><span class="require-item">*</span>所属公司:</label>
+                    <div class="layui-input-block">
+                        <input path="office.name" htmlEscape="false" readonly="readonly"   id="officeId"  class="form-control required layui-input" value="${projectPlanWeekly.office.name}"/>
+                    </div>
+                </div>
+                <div class="layui-item layui-col-sm6">
+                    <label class="layui-form-label"><span class="require-item">*</span>开始时间:</label>
+                    <div class="layui-input-block">
+                        <input id="beginDate" name="beginDate" type="text" readonly="readonly" maxlength="20" class="laydate-icondate form-control layer-date required layui-input"
+                               value="<fmt:formatDate value="${projectPlanWeekly.beginDate}" pattern="yyyy-MM-dd"/>"/>
+                    </div>
+                </div>
+                <div class="layui-item layui-col-sm6">
+                    <label class="layui-form-label"><span class="require-item">*</span>结束时间:</label>
+                    <div class="layui-input-block">
+                        <input id="endDate" name="endDate" type="text" readonly="readonly" maxlength="20" class="laydate-icondate form-control layer-date required layui-input"
+                               value="<fmt:formatDate value="${projectPlanWeekly.endDate}" pattern="yyyy-MM-dd"/>"/>
+                    </div>
+                </div>
+                <div class="layui-item layui-col-sm12  with-textarea">
+                    <label class="layui-form-label"><span class="require-item">*</span>周报内容:</label>
+                    <div class="layui-input-block">
+                        <form:textarea path="remarks"  htmlEscape="false" rows="5" maxlength="127" readonly="true" class="form-control"/>
+                    </div>
+                </div>
+            </div>
+            <div class="form-group layui-row page-end"></div>
+        </form:form>
+    </div>
+</div>
+</body>
+</html>