From c594169b9e916b0efe4eb0ee819f32277b0e28cd Mon Sep 17 00:00:00 2001 From: hanbo <2608504783@qq.com> Date: Wed, 7 Dec 2022 15:58:00 +0800 Subject: [PATCH] =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E9=98=B6=E6=AE=B5=E6=9B=B4?= =?UTF-8?q?=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/backend/ProjectController.java | 14 ++ .../java/cn/palmte/work/model/Project.java | 22 +++ .../palmte/work/service/ProjectService.java | 19 +++ .../templates/admin/project_approve.ftl | 37 +++++ .../templates/admin/project_list.ftl | 140 +++++++++++++++++- .../templates/admin/project_list_approve.ftl | 2 +- 6 files changed, 232 insertions(+), 2 deletions(-) diff --git a/src/main/java/cn/palmte/work/controller/backend/ProjectController.java b/src/main/java/cn/palmte/work/controller/backend/ProjectController.java index d2f1901..cbad382 100644 --- a/src/main/java/cn/palmte/work/controller/backend/ProjectController.java +++ b/src/main/java/cn/palmte/work/controller/backend/ProjectController.java @@ -844,6 +844,14 @@ public class ProjectController extends BaseController { return "admin/project_select_role_user"; } + @ResponseBody + @RequestMapping("/info/{projectId}") + public ResponseMsg info(@PathVariable int projectId,Map<String, Object> model) { + Project project = projectService.getProject(projectId); + model.put("info",project); + return ResponseMsg.buildSuccessData(project); + } + /** * 获取当前所有的角色和角色下的用户,根据项目决定是否check */ @@ -1386,4 +1394,10 @@ public class ProjectController extends BaseController { return "admin/project_final_list"; } + + @ResponseBody + @RequestMapping("/stageRefreshSave/{projectId}") + public ResponseMsg stageRefreshSave(@RequestBody String json, @PathVariable int projectId) { + return projectService.stageRefreshSave(json,projectId); + } } diff --git a/src/main/java/cn/palmte/work/model/Project.java b/src/main/java/cn/palmte/work/model/Project.java index 6c32f3f..0ee22b2 100644 --- a/src/main/java/cn/palmte/work/model/Project.java +++ b/src/main/java/cn/palmte/work/model/Project.java @@ -257,6 +257,12 @@ public class Project { @Column(name = "calculation_collection") private String calculationCollection; + @Column(name = "stage") + private Integer stage; + + @Column(name = "stage_remark") + private String stageRemark; + @Transient private String contractRound; @@ -1003,4 +1009,20 @@ public class Project { public void setRemark(String remark) { this.remark = remark; } + + public Integer getStage() { + return stage; + } + + public void setStage(Integer stage) { + this.stage = stage; + } + + public String getStageRemark() { + return stageRemark; + } + + public void setStageRemark(String stageRemark) { + this.stageRemark = stageRemark; + } } diff --git a/src/main/java/cn/palmte/work/service/ProjectService.java b/src/main/java/cn/palmte/work/service/ProjectService.java index af65da6..6fe1798 100644 --- a/src/main/java/cn/palmte/work/service/ProjectService.java +++ b/src/main/java/cn/palmte/work/service/ProjectService.java @@ -112,6 +112,9 @@ public class ProjectService { } if(StrUtil.isNotEmpty(searchInfo.get("extend")) && "0".equals(searchInfo.get("extend"))) { + if (StrUtil.isNotEmpty(searchInfo.get("stage")) && !"-1".equals(searchInfo.get("stage"))) { + queryHelper.addCondition("p.stage=?", Integer.parseInt(searchInfo.get("stage"))); + } if (StrUtil.isNotEmpty(searchInfo.get("isSecond")) && !"-1".equals(searchInfo.get("isSecond"))) { queryHelper.addCondition("p.is_second=?", Integer.parseInt(searchInfo.get("isSecond"))); } @@ -895,4 +898,20 @@ public class ProjectService { } } + + public ResponseMsg stageRefreshSave(String json,int projectId) { + JSONObject obj = JSON.parseObject(json); + int stage = obj.getIntValue("stage"); + String stageRemark = obj.getString("stageRemark"); + + Project project = projectRepository.getOne(projectId); + if(null == project){ + return ResponseMsg.buildFailedMsg("项目不存在"); + } + + project.setStage(stage); + project.setStageRemark(stageRemark); + projectRepository.saveAndFlush(project); + return ResponseMsg.buildSuccessMsg("保存成功"); + } } diff --git a/src/main/resources/templates/admin/project_approve.ftl b/src/main/resources/templates/admin/project_approve.ftl index 2c59358..7b5760f 100644 --- a/src/main/resources/templates/admin/project_approve.ftl +++ b/src/main/resources/templates/admin/project_approve.ftl @@ -395,6 +395,43 @@ >${project.calculationCollection!}</textarea> </td> </tr> + <tr class="am-text-nowrap"> + <th class="table-title" colspan="1" ><span style="font-size: 15px">项目阶段:</span></th> + <td class="table-title" colspan="5" > + <#if project.stage??> + <#if (project.stage) =0> + <input readonly value="S0-概算立项"/> + <#elseif (project.stage) =1> + <input readonly value="S1-项目调研"/> + <#elseif (project.stage) =2> + <input readonly value="S2-方案设计"/> + <#elseif (project.stage) =3> + <input readonly value="S3-预算评估"/> + <#elseif (project.stage) =4> + <input readonly value="S4-招标期"/> + <#elseif (project.stage) =5> + <input readonly value="S5-合同期"/> + <#elseif (project.stage) =6> + <input readonly value="S6-交付期"/> + <#elseif (project.stage) =7> + <input readonly value="S7-结算期"/> + <#elseif (project.stage) =8> + <input readonly value="S8-决算期"/> + <#elseif (project.stage) =9> + <input readonly value="L-项目丢失"/> + </#if> + <#else> + <input readonly value=""/> + </#if> + </td> + </tr> + <tr class="am-text-nowrap"> + <th class="table-title" colspan="1" ><span style="font-size: 15px">当前进度描述:</span></th> + <td class="table-title" colspan="5" > + <textarea rows="3" cols="20" style="border-style:none;background-color: white;" disabled="disabled" + >${project.stageRemark!}</textarea> + </td> + </tr> </table> </div> <#-- 项目预算信息 展示内容 --> diff --git a/src/main/resources/templates/admin/project_list.ftl b/src/main/resources/templates/admin/project_list.ftl index a25d274..2be4fe9 100644 --- a/src/main/resources/templates/admin/project_list.ftl +++ b/src/main/resources/templates/admin/project_list.ftl @@ -176,7 +176,7 @@ </div> </div> <div class="st-col"> - <div class="st-col-title">项目状态</div> + <div class="st-col-title">项目当前状态</div> <div class="st-col-field"> <select data-am-selected="{btnSize: 'sm',btnWidth: '100%',maxHeight: 500,searchBox: 1}" id="status" name="status"> <option value="-1">全部</option> @@ -452,6 +452,27 @@ </div> </div> </div> + <!-- 第六行 --> + <div class="flex-row st-row"> + <div class="st-col st-col-4"> + <div class="st-col-title">项目阶段</div> + <div class="st-col-field"> + <select data-am-selected="{btnSize: 'sm',btnWidth: '100%',maxHeight: 500,searchBox: 1}" id="qstage" name="qstage"> + <option value="-1">全部</option> + <option value="0" <#if qstage?? && qstage='0'>selected</#if>>S0-概算立项</option> + <option value="1" <#if qstage?? && qstage='1'>selected</#if>>S1-项目调研</option> + <option value="2" <#if qstage?? && qstage='2'>selected</#if>>S2-方案设计</option> + <option value="3" <#if qstage?? && qstage='3'>selected</#if>>S3-预算评估</option> + <option value="4" <#if qstage?? && qstage='4'>selected</#if>>S4-招标期</option> + <option value="5" <#if qstage?? && qstage='5'>selected</#if>>S5-合同期</option> + <option value="6" <#if qstage?? && qstage='6'>selected</#if>>S6-交付期</option> + <option value="7" <#if qstage?? && qstage='7'>selected</#if>>S7-结算期</option> + <option value="8" <#if qstage?? && qstage='8'>selected</#if>>S8-决算期</option> + <option value="9" <#if qstage?? && qstage='9'>selected</#if>>L-项目丢失</option> + </select> + </div> + </div> + </div> </div> <#-- 按钮 --> <div class="flex-row tools-row"> @@ -1027,6 +1048,10 @@ </button> </#if> + <button type="button" class="am-btn am-btn-default am-btn-xs am-text-secondary" + onclick="stageRefreshModal(${list.id})"> + <span class="am-icon-pencil-square-o"></span>项目阶段更新 + </button> </div> </div> </td> @@ -1188,6 +1213,55 @@ </div><!-- /.modal-content --> </div><!-- /.modal-dialog --> </div> + + <#--项目阶段更新弹窗--> + <div class="modal fade" id="myModal4" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true"> + <div class="modal-dialog"> + <div class="modal-content" style="width: 500px"> + + <div class="modal-header"> + <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button> + <h4 class="modal-title" id="myModalLabel">项目阶段更新</h4> + </div> + <input type="hidden" id="stageProjectId" name="stageProjectId" value=''/> + + <div class="am-g am-form-group am-margin-top" style="display: flex;"> + <div class="am-u-sm-3 am-u-md-3 am-text-right"> + <span style="color: red;">*</span>项目阶段</div> + <div class="am-u-sm-6 am-u-md-6"> + <select data-am-selected="{btnSize: 'sm',btnWidth: '150px',maxHeight: 300,searchBox: 1}" + id="stage" name="stage"> + <option value="0" <#if stage?? && stage='0'>selected</#if>>S0-概算立项</option> + <option value="1" <#if stage?? && stage='1'>selected</#if>>S1-项目调研</option> + <option value="2" <#if stage?? && stage='2'>selected</#if>>S2-方案设计</option> + <option value="3" <#if stage?? && stage='3'>selected</#if>>S3-预算评估</option> + <option value="4" <#if stage?? && stage='4'>selected</#if>>S4-招标期</option> + <option value="5" <#if stage?? && stage='5'>selected</#if>>S5-合同期</option> + <option value="6" <#if stage?? && stage='6'>selected</#if>>S6-交付期</option> + <option value="7" <#if stage?? && stage='7'>selected</#if>>S7-结算期</option> + <option value="8" <#if stage?? && stage='8'>selected</#if>>S8-决算期</option> + <option value="9" <#if stage?? && stage='9'>selected</#if>>L-项目丢失</option> + </select> + </div> + <div class="am-u-sm-3 am-u-md-3 input-msg"></div> + </div> + + <div class="am-g am-form-group am-margin-top" style="display: flex;"> + <div class="am-u-sm-3 am-u-md-3 am-text-right"> + <span style="color: red;">*</span>当前进度描述</div> + <div class="am-u-sm-6 am-u-md-6"> + <textarea id="stageRemark" minlength="1" rows="3" cols="40" maxlength="1000" class="am-input"></textarea> + </div> + <div class="am-u-sm-3 am-u-md-3 input-msg"></div> + </div> + + <div class="modal-footer"> + <button type="button" class="btn btn-default" data-dismiss="modal" data-am-modal-cancel>关闭</button> + <button type="button" class="btn btn-primary" data-am-modal-confirm onclick="stageRefreshSave()">提交</button> + </div> + </div><!-- /.modal-content --> + </div><!-- /.modal-dialog --> + </div> <!-- /.modal --> @@ -1315,6 +1389,8 @@ keywordsObj.otherStart = $("#otherStart").val(); if ($("#otherEnd").val()) keywordsObj.otherEnd = $("#otherEnd").val(); + if ($("#qstage").val()) + keywordsObj.stage = $("#qstage").val(); } if ($("#customer").val()) keywordsObj.customer = $("#customer").val(); @@ -1556,6 +1632,44 @@ }); }; + /** + * 项目阶段更新保存 + */ + var stageRefreshSave = function () { + var stage = $("#stage").val(); + console.info("=============="+stage); + var stageRemark = $("#stageRemark").val(); + var projectId = $("#stageProjectId").val(); + if (stage == '') { + layer.alert("请选择项目阶段"); + return; + } + if (stageRemark == '') { + layer.alert("请填写当前进度描述"); + return; + } + + var params = { + stage: stage, + stageRemark: stageRemark + }; + $.ajax({ + url: '${base}/project/stageRefreshSave/' + projectId, + data: JSON.stringify(params), + dataType: "json", + contentType: "application/json", + type: 'post', + async: false, + success: function (data) { + if (data.status == 0) { + layer.alert(data.msg); + window.location.href=window.location.href; + } else if (data.status == 1) { + layer.alert(data.msg); + } + } + }); + }; //上传会签单 var generateFileupload = function (name) { @@ -1687,6 +1801,30 @@ }); }; + var stageRefreshModal = function(id) { + $.ajax({ + url: "${base}/project/info/" + id, + dataType: "json", + contentType: "application/json", + type: 'post', + async: false, + success: function (data) { + $("#stage").val(data.data.stage); + $("#stageRemark").val(data.data.stageRemark); + } + }); + $("#stageProjectId").val(id); + $('#myModal4').modal({ + relatedElement: this, + onConfirm: function() { + console.log("提交"); + }, + onCancel: function() { + console.log("取消"); + } + }); + }; + var projectNoCheck = function () { var newProjectNo = $("#newProjectNo").val(); var id = $("#modelId").val(); diff --git a/src/main/resources/templates/admin/project_list_approve.ftl b/src/main/resources/templates/admin/project_list_approve.ftl index 6b9d0a6..00fcf42 100644 --- a/src/main/resources/templates/admin/project_list_approve.ftl +++ b/src/main/resources/templates/admin/project_list_approve.ftl @@ -173,7 +173,7 @@ </div> </div> <div class="st-col"> - <div class="st-col-title">项目状态</div> + <div class="st-col-title">项目当前状态</div> <div class="st-col-field"> <select data-am-selected="{btnSize: 'sm',btnWidth: '100%',maxHeight: 500,searchBox: 1}" id="status" name="status"> <option value="-1">全部</option>