Преглед изворни кода

项目变更项目计划变更展示

user5 пре 5 година
родитељ
комит
8db0739310

+ 46 - 0
src/main/java/com/jeeplus/modules/projectrecord/service/ProjectRecordsAlterService.java

@@ -12,8 +12,10 @@ import com.jeeplus.modules.act.entity.Act;
 import com.jeeplus.modules.act.service.ActTaskService;
 import com.jeeplus.modules.act.utils.ProcessDefCache;
 import com.jeeplus.modules.projectrecord.dao.ProjectClientLinkmanDao;
+import com.jeeplus.modules.projectrecord.dao.ProjectPlanDao;
 import com.jeeplus.modules.projectrecord.dao.ProjectRecordsAlterDao;
 import com.jeeplus.modules.projectrecord.dao.WorkProjectUserDao;
+import com.jeeplus.modules.projectrecord.entity.ProjectPlanInfo;
 import com.jeeplus.modules.projectrecord.entity.ProjectRecords;
 import com.jeeplus.modules.projectrecord.entity.ProjectRecordsAlter;
 import com.jeeplus.modules.projectrecord.enums.AlterStatusEnum;
@@ -99,6 +101,8 @@ public class ProjectRecordsAlterService extends CrudService<ProjectRecordsAlterD
     private WorkClientAttachmentDao workClientAttachmentDao;
     @Autowired
     private WorkActivityProcessDao workActivityProcessDao;
+    @Autowired
+    private ProjectPlanDao projectPlanDao;
 
 	public ProjectRecordsAlter get(String id) {
 		return super.get(id);
@@ -175,11 +179,36 @@ public class ProjectRecordsAlterService extends CrudService<ProjectRecordsAlterD
 		List<WorkClientLinkman> constructionLinkmanList = projectRecordsAlter.getWorkConstructionLinkmanList();
 		this.saveLinkmanInfos(projectRecordsAlter.getId(), constructionLinkmanList, false);
 		this.saveAttachments(projectRecordsAlter);
+        //保存项目计划信息
+        this.saveProjectPlans(projectRecordsAlter);
 		if (AlterStatusEnum.TSTORE.getValue()== projectRecordsAlter.getProjectStatus()||AlterStatusEnum.REJECTED.getValue()==oldStatus)return;
 		//启动审批流程
 		this.startAudit(projectRecordsAlter, projectRecordsAlter.getProcessInstanceId());
 	}
 
+    private void saveProjectPlans(ProjectRecordsAlter projectRecords){
+        if (projectRecords.getProjectPlanList()!=null && !projectRecords.getProjectPlanList().isEmpty()) {
+            //保存计划信息
+            for (ProjectPlanInfo projectPlanInfo : projectRecords.getProjectPlanList()) {
+                projectPlanInfo.setOffice(projectRecords.getOffice());
+                projectPlanInfo.setCompany(projectRecords.getCompany());
+                if (ProjectPlanInfo.DEL_FLAG_NORMAL.equals(projectPlanInfo.getDelFlag())) {
+                    projectPlanInfo.setProjectId(projectRecords.getId());
+                    projectPlanInfo.setPlanUser(UserUtils.getUser().getId());
+                    if (StringUtils.isBlank(projectPlanInfo.getId()) || "null".equals(projectPlanInfo.getId())) {
+                        projectPlanInfo.preInsert();
+                        projectPlanDao.insert(projectPlanInfo);
+                    } else {
+                        projectPlanInfo.preUpdate();
+                        projectPlanDao.update(projectPlanInfo);
+                    }
+                } else {
+                    projectPlanDao.delete(projectPlanInfo);
+                }
+            }
+        }
+    }
+
     private int countAlter(String projectId) {
 	    return dao.countAlter(projectId)+1;
     }
@@ -799,6 +828,7 @@ public class ProjectRecordsAlterService extends CrudService<ProjectRecordsAlterD
             records.setCreateBy(oldRecords.getCreateBy());
             records.setCreateDate(oldRecords.getCreateDate());
             records.preUpdate();
+            records.setProjectPlanList(this.getProjectPlanList(projectRecordsAlter));
             recordsService.saveProject(records,ProjectStatusEnum.SIGNED);
         }
         dao.updateSelectiveById(projectRecordsAlter);
@@ -927,6 +957,22 @@ public class ProjectRecordsAlterService extends CrudService<ProjectRecordsAlterD
         this.queryLinkmanInfos(projectRecordsAlter);
         //设置附件信息
         this.queryWorkAttachment(projectRecordsAlter);
+        //获取项目计划信息
+        this.getProjectPlanData(projectRecordsAlter);
+    }
+
+    public List<ProjectPlanInfo> getProjectPlanList(ProjectRecordsAlter projectRecordsAlter) {
+        ProjectPlanInfo projectPlanInfo = new ProjectPlanInfo();
+        projectPlanInfo.setProjectId(projectRecordsAlter.getId());
+        List<ProjectPlanInfo> getProjectPlanList = projectPlanDao.findList(projectPlanInfo);
+        return getProjectPlanList;
+    }
+
+    public void getProjectPlanData(ProjectRecordsAlter projectRecordsAlter) {
+        ProjectPlanInfo projectPlanInfo = new ProjectPlanInfo();
+        projectPlanInfo.setProjectId(projectRecordsAlter.getId());
+        List<ProjectPlanInfo> getProjectPlanList = projectPlanDao.findList(projectPlanInfo);
+        projectRecordsAlter.setProjectPlanList(getProjectPlanList);
     }
 
     @Transactional(readOnly = false)

+ 4 - 4
src/main/java/com/jeeplus/modules/projectrecord/web/ProjectRecordsAlterController.java

@@ -193,10 +193,10 @@ public class ProjectRecordsAlterController extends BaseController {
 	public String view(ProjectRecordsAlter projectRecordsAlter, Model model) {
 	    ProjectRecords projectRecords = null;
         if (projectRecordsAlter.getAlterBeforeRecords()!=null&&StringUtils.isNotBlank(projectRecordsAlter.getAlterBeforeRecords().getId())){
-            projectRecords = projectRecordsService.get(projectRecordsAlter.getAlterBeforeRecords().getId());
-            //设置详细信息
-            projectRecordsService.queryProjectDetail(projectRecords);
-            projectRecordsAlter.setAlterBeforeRecords(projectRecords);
+			projectRecords = projectRecordsService.get(projectRecordsAlter.getAlterBeforeRecords().getId());
+			//设置详细信息
+			projectRecordsService.queryProjectDetail(projectRecords);
+			projectRecordsAlter.setAlterBeforeRecords(projectRecords);
         }
 		if (projectRecords!=null&&StringUtils.isNotBlank(projectRecords.getId())) {
 			//设置合同信息

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

@@ -252,7 +252,7 @@
 		left join project_records r on  a.project_id = r.id
 		left join work_project_user wpu on wpu.project_id = r.id
 		<where>
-
+			  a.del_flag=0
 			<if test="weeklyStatus !=null and weeklyStatus == 0">
 				AND a.weekly_status = #{weeklyStatus}
 				and (a.end_date &lt;= #{endDate} or #{endDate} between a.begin_date and a.end_date )
@@ -316,7 +316,7 @@
         left join project_records r on  a.project_id = r.id
         left join work_project_user wpu on wpu.project_id = r.id
         <where>
-
+			a.del_flag=0
             <if test="weeklyStatus !=null and weeklyStatus == 0">
                 AND a.weekly_status = #{weeklyStatus}
                 and ((a.end_date &lt;= #{endDate} or #{endDate} between a.begin_date and a.end_date )

+ 85 - 0
src/main/webapp/webpage/modules/projectrecord/projectRecordsAlterAudit.jsp

@@ -59,6 +59,41 @@
                 }
             });
         }
+        function addPlanRow(list, idx, tpl, row){
+            // var idx1 = $("#workClientLinkmanList tr").length;
+            bornTempletePlan(list, idx, tpl, row, idx);
+        }
+
+        function bornTempletePlan(list, idx, tpl, row, idx1){
+            $(list).append(Mustache.render(tpl, {
+                idx: idx, delBtn: true, row: row,
+                order:idx1 + 1
+            }));
+            $(list+idx).find("select").each(function(){
+                $(this).val($(this).attr("data-value"));
+            });
+            $(list+idx).find("input[type='checkbox'], input[type='radio']").each(function(){
+                var ss = $(this).attr("data-value").split(',');
+                for (var i=0; i<ss.length; i++){
+                    if($(this).val() == ss[i]){
+                        $(this).attr("checked","checked");
+                    }
+                }
+            });
+
+            laydate.render({
+                elem : (list+idx+"_beginDate"),
+                event: 'focus',
+                type : 'date',
+                trigger: 'click'
+            });
+            laydate.render({
+                elem : (list+idx+"_endDate"),
+                event: 'focus',
+                type : 'date',
+                trigger: 'click'
+            });
+        }
 	</script>
 </head>
 <body>
@@ -292,12 +327,47 @@
                         <textarea htmlEscape="false" rows="4" readonly="true" maxlength="1000" class="form-control" >${projectRecordsAlter.remarks}</textarea>
                     </div>
                 </div>
+
                 <div class="layui-item layui-col-sm12 lw6 with-textarea">
                     <label class="layui-form-label">变更原因:</label>
                     <div class="layui-input-block">
                         <textarea htmlEscape="false" rows="4" readonly="true" maxlength="1000" class="form-control" >${projectRecordsAlter.alterReason}</textarea>
                     </div>
                 </div>
+                <div class="layui-item layui-col-sm12 lw7">
+                    <label class="layui-form-label">项目计划书:</label>
+                    <div class="layui-input-block">
+                        <table id="bankinfo" class="table table-bordered table-condensed no-bottom-margin details">
+                            <thead>
+                            <tr>
+                                <th width="20%">开始时间</th>
+                                <th width="20%">结束时间</th>
+                                <th width="60%;">工作内容</th>
+                            </tr>
+                            </thead>
+                            <tbody id="projectPlanList">
+
+                            </tbody>
+                        </table>
+                        <script type="text/template" id="workClientBankTpl">//<!--
+                            <tr id="projectPlanList{{idx}}">
+                                <td class="hide">
+                                    <input id="projectPlanList{{idx}}_id" name="projectPlanList[{{idx}}].id" type="hidden" value="{{row.id}}"/>
+                                    <input id="projectPlanList{{idx}}_delFlag" name="projectPlanList[{{idx}}].delFlag" type="hidden" value="0"/>
+                                </td>
+                                <td>
+                                    {{row.beginDate}}
+                                </td>
+                                <td>
+                                    {{row.endDate}}
+                                </td>
+                                <td>
+                                    {{row.remarks}}
+                                </td>
+                            </tr>//-->
+                        </script>
+                    </div>
+                </div>
             </div>
 
             <div class="form-group layui-row">
@@ -533,5 +603,20 @@
         </div>
     </div>
 </div>
+<script type="text/javascript">
+    var workClientBankRowIdx = 0,
+        workClientBankTpl = $("#workClientBankTpl").html().replace(/(\/\/\<!\-\-)|(\/\/\-\->)/g, "");
+
+    $(document).ready(function () {
+        var data = ${fns:toJson(projectRecordsAlter.projectPlanList)};
+        if (null!=data){
+            for (var i = 0; i < data.length; i++) {
+                addPlanRow('#projectPlanList', workClientBankRowIdx, workClientBankTpl, data[i]);
+                workClientBankRowIdx = workClientBankRowIdx + 1;
+            }
+        }
+    });
+
+</script>
 </body>
 </html>

+ 103 - 1
src/main/webapp/webpage/modules/projectrecord/projectRecordsAlterForm.jsp

@@ -7,7 +7,7 @@
     <script type="text/javascript" src="${ctxStatic}/helloweba_editable-select/jquery.editable-select.min.js"></script>
     <link rel='stylesheet' type="text/css" href="${ctxStatic}/helloweba_editable-select/jquery.editable-select.min.css"/>
     <style>
-        td input{
+        #workClientLinkmanList td input{
             margin-left:-10px !important;
             height: 42px !important;
         }
@@ -314,6 +314,48 @@
             });
         }
 
+        function addPlanRow(list, idx, tpl, row){
+            // var idx1 = $("#workClientLinkmanList tr").length;
+            bornTempletePlan(list, idx, tpl, row, idx);
+        }
+        function delPlanRow(obj, prefix){
+            var id = $(prefix+"_id");
+            var delFlag = $(prefix+"_delFlag");
+            $(prefix+"_delFlag").val(1);
+            $(obj).parent().parent().hide();
+        }
+
+        function bornTempletePlan(list, idx, tpl, row, idx1){
+            $(list).append(Mustache.render(tpl, {
+                idx: idx, delBtn: true, row: row,
+                order:idx1 + 1
+            }));
+            $(list+idx).find("select").each(function(){
+                $(this).val($(this).attr("data-value"));
+            });
+            $(list+idx).find("input[type='checkbox'], input[type='radio']").each(function(){
+                var ss = $(this).attr("data-value").split(',');
+                for (var i=0; i<ss.length; i++){
+                    if($(this).val() == ss[i]){
+                        $(this).attr("checked","checked");
+                    }
+                }
+            });
+
+            laydate.render({
+                elem : (list+idx+"_beginDate"),
+                event: 'focus',
+                type : 'date',
+                trigger: 'click'
+            });
+            laydate.render({
+                elem : (list+idx+"_endDate"),
+                event: 'focus',
+                type : 'date',
+                trigger: 'click'
+            });
+        }
+
         function delRow(obj, prefix){
             var id = $(prefix+"_id");
             var delFlag = $(prefix+"_delFlag");
@@ -638,6 +680,50 @@
                         <form:textarea path="remarks" htmlEscape="false" rows="4"  maxlength="255"  class="form-control "/>
                     </div>
                 </div>
+                <div class="layui-item layui-col-sm12 lw7">
+                    <label class="layui-form-label"><span class="require-item">*</span>项目计划书:</label>
+                    <div class="layui-input-block">
+                        <div class="layui-item nav-btns" style="padding-left:0px;">
+                            <a class="nav-btn nav-btn-add"
+                               onclick="addPlanRow('#projectPlanList', workClientBankRowIdx, workClientBankTpl);workClientBankRowIdx = workClientBankRowIdx + 1;"
+                               title="新增"><i class="fa fa-plus"></i> 新增</a>
+                        </div>
+                        <table id="bankinfo" class="table table-bordered table-condensed can-edit">
+                            <thead>
+                            <tr>
+                                <th width="15%">开始时间</th>
+                                <th width="15%">结束时间</th>
+                                <th width="50%;">工作内容</th>
+                                <th width="20%">操作</th>
+                            </tr>
+                            </thead>
+                            <tbody id="projectPlanList">
+
+                            </tbody>
+                        </table>
+                        <script type="text/template" id="workClientBankTpl">//<!--
+                            <tr id="projectPlanList{{idx}}">
+                                <td class="hide">
+                                    <input id="projectPlanList{{idx}}_id" name="projectPlanList[{{idx}}].id" type="hidden" value="{{row.id}}"/>
+                                    <input id="projectPlanList{{idx}}_delFlag" name="projectPlanList[{{idx}}].delFlag" type="hidden" value="0"/>
+                                </td>
+                                <td>
+                                    <input lay-verify="date" placeholder="yyyy-MM-dd" autocomplete="off" id="projectPlanList{{idx}}_beginDate" name="projectPlanList[{{idx}}].beginDate" type="text" value="{{row.beginDate}}"  class="form-control required datetime"/>
+                                </td>
+                                <td>
+                                    <input lay-verify="date" placeholder="yyyy-MM-dd" autocomplete="off" id="projectPlanList{{idx}}_endDate" name="projectPlanList[{{idx}}].endDate" type="text" value="{{row.endDate}}"  class="form-control required datetime"/>
+                                </td>
+                                <td>
+                                    <input id="projectPlanList{{idx}}_remarks" name="projectPlanList[{{idx}}].remarks" type="text" value="{{row.remarks}}"    class="form-control required"/>
+                                </td>
+
+                                <td class="text-center op-td" width="10">
+                                    {{#delBtn}}<span class="op-btn op-btn-delete" onclick="delPlanRow(this, '#projectPlanList{{idx}}')" title="删除"><i class="fa fa-trash"></i>&nbsp;删除</span>{{/delBtn}}
+                                </td>
+                            </tr>//-->
+                        </script>
+                    </div>
+                </div>
                 <div class="layui-item layui-col-sm12 lw6 with-textarea">
                     <label class="layui-form-label"><font color="red">*</font>变更原因:</label>
                     <div class="layui-input-block">
@@ -901,5 +987,21 @@
         </form:form>
     </div>
 </div>
+<script type="text/javascript">
+    var workClientLinkmanRowIdx = 0,
+        workClientLinkmanTpl = $("#workClientLinkmanTpl").html().replace(/(\/\/\<!\-\-)|(\/\/\-\->)/g, "");
+    var workClientBankRowIdx = 0,
+        workClientBankTpl = $("#workClientBankTpl").html().replace(/(\/\/\<!\-\-)|(\/\/\-\->)/g, "");
+    $(document).ready(function () {
+        var data = ${fns:toJson(projectRecordsAlter.projectPlanList)};
+        if (null!=data){
+            for (var i = 0; i < data.length; i++) {
+                addPlanRow('#projectPlanList', workClientBankRowIdx, workClientBankTpl, data[i]);
+                workClientBankRowIdx = workClientBankRowIdx + 1;
+            }
+        }
+    });
+
+</script>
 </body>
 </html>

+ 130 - 0
src/main/webapp/webpage/modules/projectrecord/projectRecordsAlterView.jsp

@@ -27,6 +27,41 @@
                 }
             });
         }
+        function addPlanRow(list, idx, tpl, row){
+            // var idx1 = $("#workClientLinkmanList tr").length;
+            bornTempletePlan(list, idx, tpl, row, idx);
+        }
+
+        function bornTempletePlan(list, idx, tpl, row, idx1){
+            $(list).append(Mustache.render(tpl, {
+                idx: idx, delBtn: true, row: row,
+                order:idx1 + 1
+            }));
+            $(list+idx).find("select").each(function(){
+                $(this).val($(this).attr("data-value"));
+            });
+            $(list+idx).find("input[type='checkbox'], input[type='radio']").each(function(){
+                var ss = $(this).attr("data-value").split(',');
+                for (var i=0; i<ss.length; i++){
+                    if($(this).val() == ss[i]){
+                        $(this).attr("checked","checked");
+                    }
+                }
+            });
+
+            laydate.render({
+                elem : (list+idx+"_beginDate"),
+                event: 'focus',
+                type : 'date',
+                trigger: 'click'
+            });
+            laydate.render({
+                elem : (list+idx+"_endDate"),
+                event: 'focus',
+                type : 'date',
+                trigger: 'click'
+            });
+        }
 	</script>
 </head>
 <body>
@@ -257,12 +292,47 @@
                                     <textarea htmlEscape="false" rows="4" readonly="true" maxlength="1000" class="form-control" >${projectRecordsAlter.remarks}</textarea>
                                 </div>
                             </div>
+
                             <div class="layui-item layui-col-sm12 lw6 with-textarea">
                                 <label class="layui-form-label">变更原因:</label>
                                 <div class="layui-input-block">
                                     <textarea htmlEscape="false" rows="4" readonly="true" maxlength="1000" class="form-control" >${projectRecordsAlter.alterReason}</textarea>
                                 </div>
                             </div>
+                            <div class="layui-item layui-col-sm12 lw7">
+                                <label class="layui-form-label">项目计划书:</label>
+                                <div class="layui-input-block">
+                                    <table id="bankinfo" class="table table-bordered table-condensed no-bottom-margin details">
+                                        <thead>
+                                        <tr>
+                                            <th width="20%">开始时间</th>
+                                            <th width="20%">结束时间</th>
+                                            <th width="60%;">工作内容</th>
+                                        </tr>
+                                        </thead>
+                                        <tbody id="projectPlanList">
+
+                                        </tbody>
+                                    </table>
+                                    <script type="text/template" id="workClientBankTpl">//<!--
+                            <tr id="projectPlanList{{idx}}">
+                                <td class="hide">
+                                    <input id="projectPlanList{{idx}}_id" name="projectPlanList[{{idx}}].id" type="hidden" value="{{row.id}}"/>
+                                    <input id="projectPlanList{{idx}}_delFlag" name="projectPlanList[{{idx}}].delFlag" type="hidden" value="0"/>
+                                </td>
+                                <td>
+                                    {{row.beginDate}}
+                                </td>
+                                <td>
+                                    {{row.endDate}}
+                                </td>
+                                <td>
+                                    {{row.remarks}}
+                                </td>
+                            </tr>//-->
+                                    </script>
+                                </div>
+                            </div>
                         </div>
 
                         <div class="form-group layui-row">
@@ -552,6 +622,40 @@
                                 <textarea htmlEscape="false" rows="4" readonly="true" maxlength="1000" class="form-control" >${projectRecordsAlter.alterBeforeRecords.remarks}</textarea>
                             </div>
                         </div>
+                        <div class="layui-item layui-col-sm12 lw7">
+                            <label class="layui-form-label"><span class="require-item">*</span>项目计划书:</label>
+                            <div class="layui-input-block">
+                                <table id="BeforeBankinfo" class="table table-bordered table-condensed no-bottom-margin details">
+                                    <thead>
+                                    <tr>
+                                        <th width="20%">开始时间</th>
+                                        <th width="20%">结束时间</th>
+                                        <th width="60%;">工作内容</th>
+                                    </tr>
+                                    </thead>
+                                    <tbody id="beforeProjectPlanList">
+
+                                    </tbody>
+                                </table>
+                                <script type="text/template" id="beforeWorkClientBankTpl">//<!--
+                            <tr id="projectPlanList{{idx}}">
+                                <td class="hide">
+                                    <input id="projectPlanList{{idx}}_id" name="projectPlanList[{{idx}}].id" type="hidden" value="{{row.id}}"/>
+                                    <input id="projectPlanList{{idx}}_delFlag" name="projectPlanList[{{idx}}].delFlag" type="hidden" value="0"/>
+                                </td>
+                                <td>
+                                    {{row.beginDate}}
+                                </td>
+                                <td>
+                                    {{row.endDate}}
+                                </td>
+                                <td>
+                                    {{row.remarks}}
+                                </td>
+                            </tr>//-->
+                                </script>
+                            </div>
+                        </div>
                     </div>
 
                     <div class="form-group layui-row">
@@ -753,5 +857,31 @@
 	    </form:form>
     </div>
 </div>
+<script type="text/javascript">
+    var workClientBankRowIdx = 0,
+        workClientBankTpl = $("#workClientBankTpl").html().replace(/(\/\/\<!\-\-)|(\/\/\-\->)/g, "");
+
+    var beforeWorkClientBankRowIdx = 0,
+        beforeWorkClientBankTpl = $("#beforeWorkClientBankTpl").html().replace(/(\/\/\<!\-\-)|(\/\/\-\->)/g, "");
+    $(document).ready(function () {
+        var data = ${fns:toJson(projectRecordsAlter.projectPlanList)};
+        if (null!=data){
+            for (var i = 0; i < data.length; i++) {
+                addPlanRow('#projectPlanList', workClientBankRowIdx, workClientBankTpl, data[i]);
+                workClientBankRowIdx = workClientBankRowIdx + 1;
+            }
+        }
+    });
+    $(document).ready(function () {
+        var beforeData = ${fns:toJson(projectRecordsAlter.alterBeforeRecords.projectPlanList)};
+        if (null!=beforeData){
+            for (var i = 0; i < beforeData.length; i++) {
+                addPlanRow('#beforeProjectPlanList', beforeWorkClientBankRowIdx, beforeWorkClientBankTpl, beforeData[i]);
+                beforeWorkClientBankRowIdx = beforeWorkClientBankRowIdx + 1;
+            }
+        }
+    });
+
+</script>
 </body>
 </html>