决算审批

master
pengqiang 2021-11-17 14:49:11 +08:00
parent 3f31cc5986
commit f1670578cc
6 changed files with 85 additions and 31 deletions

View File

@ -1,15 +1,10 @@
package cn.palmte.work.controller.backend;
import cn.palmte.work.bean.ApproveStatusEnum;
import cn.palmte.work.bean.BudgetBean;
import cn.palmte.work.bean.EstimateBean;
import cn.palmte.work.bean.FinalBean;
import cn.palmte.work.bean.*;
import cn.palmte.work.model.Project;
import cn.palmte.work.model.ProjectBudgetPlanDetail;
import cn.palmte.work.service.ProjectBudgetService;
import cn.palmte.work.service.ProjectEstimateService;
import cn.palmte.work.service.ProjectFinalSevice;
import cn.palmte.work.service.ProjectService;
import cn.palmte.work.model.ProjectRepository;
import cn.palmte.work.service.*;
import cn.palmte.work.utils.FreeMarkerUtil;
import cn.palmte.work.utils.InterfaceUtil;
import org.springframework.beans.factory.annotation.Autowired;
@ -17,6 +12,7 @@ import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import java.util.Date;
import java.util.List;
import java.util.Map;
@ -36,6 +32,9 @@ public class ProjectFinalController extends BaseController{
@Autowired
private ProjectBudgetService projectBudgetService;
@Autowired
private ProjectInstanceService projectInstanceService;
@RequestMapping("/edit")
public String budget(@RequestParam("id") int id, Map<String, Object> model) {
Project project = projectService.getProject(id);
@ -54,6 +53,27 @@ public class ProjectFinalController extends BaseController{
@RequestMapping("/save")
public String estimateAddSave(Project project, FinalBean finalBean, Map<String, Object> model) {
projectFinalSevice.save(project,finalBean);
projectService.updateStatusAndApproveStatus(project.getId(), StatusEnum.FINAL_ACCOUNTS, ApproveStatusEnum.APPROVAL_UNCOMMIT);
return "redirect:/project/list";
}
/**
*
*
* @param project
* @param finalBean
* @param model
* @return
* @throws Exception
*/
@RequestMapping("/saveAndApprove")
public String saveAndApprove(Project project, FinalBean finalBean, Map<String, Object> model) throws Exception{
//保存
projectFinalSevice.save(project,finalBean);
//更新项目和审批状态
projectService.updateStatusAndApproveStatus(project.getId(), StatusEnum.FINAL_ACCOUNTS, ApproveStatusEnum.APPROVAL_PENDING);
//发起流程
projectInstanceService.startFinalProcessInstance(project.getId(), InterfaceUtil.getAdmin());
return "redirect:/project/list";
}

View File

@ -71,7 +71,8 @@ public class ProjectInstanceService {
/**
*
*/
public void startFinalProcessInstance(Project project, Admin admin) throws Exception {
public void startFinalProcessInstance(int projectId, Admin admin) throws Exception {
Project project = projectRepository.findOne(projectId);
startProcess(project, admin, ActConstant.PROCESS_DEFKEY_FINAL);
}
/**

View File

@ -298,4 +298,38 @@ public class ProjectService {
return ResponseMsg.buildSuccessMsg("审核成功");
}
/**
*
*
* @param projectId
* @param statusEnum
* @param approveStatusEnum
*/
public void updateStatusAndApproveStatus(int projectId, StatusEnum statusEnum, ApproveStatusEnum approveStatusEnum) {
Project one = projectRepository.findOne(projectId);
one.setStatus(statusEnum.getStatus());
one.setStatusDesc(statusEnum.getStatusDesc());
int approveStatus = approveStatusEnum.getApproveStatus();
switch (statusEnum) {
case ESTIMATE_ACCOUNTS:
one.setApproveStatusEstimate(approveStatus);
break;
case BUDGET_ACCOUNTS:
one.setApproveStatusBudget(approveStatus);
break;
case SETTLE_ACCOUNTS:
one.setApproveStatusSettle(approveStatus);
break;
case FINAL_ACCOUNTS:
one.setApproveStatusFinal(approveStatus);
break;
default:
}
one.setLastUpdateTime(new Date());
projectRepository.saveAndFlush(one);
}
}

View File

@ -40,7 +40,7 @@ public class ProjectSettleService {
private ProjectInstanceService projectInstanceService;
@Autowired
private ProjectRepository projectRepository;
private ProjectService projectService;
public void save(Project project, SettleBean settleBean, BudgetSettleBean budgetBean, EstimateSettleBean estimateBean, String time) {
@ -55,13 +55,7 @@ public class ProjectSettleService {
//资金流量记录
cashFlow(project, settleBean, budgetBean, time);
Project one = projectRepository.findOne(project.getId());
one.setStatus(StatusEnum.SETTLE_ACCOUNTS.getStatus());
one.setStatusDesc(StatusEnum.SETTLE_ACCOUNTS.getStatusDesc());
one.setApproveStatusSettle(ApproveStatusEnum.APPROVAL_UNCOMMIT.getApproveStatus());
one.setLastUpdateTime(new Date());
projectRepository.saveAndFlush(one);
projectService.updateStatusAndApproveStatus(project.getId(), StatusEnum.SETTLE_ACCOUNTS, ApproveStatusEnum.APPROVAL_UNCOMMIT);
}
public void saveAndApprove(Project project, SettleBean settleBean, BudgetSettleBean budgetBean, EstimateSettleBean estimateBean, String time) throws Exception{
@ -76,12 +70,7 @@ public class ProjectSettleService {
//资金流量记录
cashFlow(project, settleBean, budgetBean, time);
Project one = projectRepository.findOne(project.getId());
one.setStatus(StatusEnum.SETTLE_ACCOUNTS.getStatus());
one.setStatusDesc(StatusEnum.SETTLE_ACCOUNTS.getStatusDesc());
one.setApproveStatusSettle(ApproveStatusEnum.APPROVAL_PENDING.getApproveStatus());
one.setLastUpdateTime(new Date());
projectRepository.saveAndFlush(one);
projectService.updateStatusAndApproveStatus(project.getId(), StatusEnum.SETTLE_ACCOUNTS, ApproveStatusEnum.APPROVAL_PENDING);
//发起结算流程
projectInstanceService.startSettleProcessInstance(project, InterfaceUtil.getAdmin());

View File

@ -350,6 +350,7 @@
<div class="am-margin">
<button type="button" class="am-btn am-btn-warning am-btn-xs" onclick="javascript:history.go(-1);">返回上一级</button>
<button type="submit" class="am-btn am-btn-primary am-btn-xs" id="saveFinal">保存</button>
<button type="submit" class="am-btn am-btn-primary am-btn-xs" id="saveApprove">提交审核</button>
</div>
</form>
@ -367,6 +368,11 @@
$("#pmsForm").attr("action","${base}/project/final/save");
$("#pmsForm").submit();
});
$("#saveApprove").click(function () {
$("#pmsForm").attr("action",base+"/project/final/saveAndApprove");
$("#pmsForm").submit();
});
});
</script>

View File

@ -200,6 +200,7 @@
<div class="am-btn-toolbar">
<div class="am-btn-group am-btn-group-xs">
<#--<@shiro.hasPermission name="PROJECT_EDIT">-->
<#--概算状态 并且概算审批状态为草稿和不通过-->
<#if list.status==1 && (list.approveStatusEstimate==0 || list.approveStatusEstimate==3)>
<button type="button"
class="am-btn am-btn-default am-btn-xs am-text-secondary"
@ -210,7 +211,7 @@
<#-- </@shiro.hasPermission>
<@shiro.hasPermission name="PROJECT_EDIT">-->
<#--概算审核通过 才可以发起预算-->
<#-- 概算审核通过 并且预算审批状态为草稿和不通过 -->
<#if list.approveStatusEstimate=2 && (list.approveStatusBudget==0 || list.approveStatusBudget==3) >
<button type="button"
class="am-btn am-btn-default am-btn-xs am-text-secondary"
@ -220,8 +221,8 @@
</#if>
<#-- </@shiro.hasPermission>-->
<#--预算审核通过 才可以发起结算-->
<#if list.approveStatusBudget=2 >
<#-- 预算审核通过 并且结算审核不等于审批状态 决算审批未通过 才可以发起结算-->
<#if list.approveStatusBudget=2 && list.approveStatusSettle!=1 && list.approveStatusFinal !=2>
<button type="button"
class="am-btn am-btn-default am-btn-xs am-text-secondary"
onclick="location.href='${base}/project/settle/add?id=${list.id}'"><span
@ -229,11 +230,14 @@
</button>
</#if>
<button type="button"
class="am-btn am-btn-default am-btn-xs am-text-secondary"
onclick="location.href='${base}/project/final/edit?id=${list.id}'"><span
class="am-icon-pencil-square-o"></span>发起决算
</button>
<#-- 项目为结算状态 并且结算审批通过 才能发起决算-->
<#if list.status== 10 && list.approveStatusSettle== 2 >
<button type="button"
class="am-btn am-btn-default am-btn-xs am-text-secondary"
onclick="location.href='${base}/project/final/edit?id=${list.id}'"><span
class="am-icon-pencil-square-o"></span>发起决算
</button>
</#if>
<button type="button"
class="am-btn am-btn-default am-btn-xs am-text-secondary"