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 323ada4..cbad382 100644 --- a/src/main/java/cn/palmte/work/controller/backend/ProjectController.java +++ b/src/main/java/cn/palmte/work/controller/backend/ProjectController.java @@ -168,7 +168,7 @@ public class ProjectController extends BaseController { String[] columns0 = {"deptName", "projectNo", "name", "typeDesc", "startDate", "endDate", "underwrittenModeStr", "collaborator", "advanceInterestAmountRound", "advancePeakAmountRound", "contractRound", "grossProfitRound", "grossProfitMarginRound", "huazhiRound", "huizhiRound", "huasanRound", "ziguangRound", "certaintyStr", "industryScenario", "resolvePlanStr", "customer", "terminalCustomer", "valueRisk", "principal", "contractTime", "bidsTime", "isSecondStr", "signTypeStr", "mainContractCollectionTerms", "mainContractResolvePlan", "calculationCollection"}; - exportExcelUtils.exportProjectExcel(headers0, columns0, project, "yyyy-MM-dd", 0, "项目立项(概算)基本信息", outputStream); + exportExcelUtils.exportProjectExcel(headers0, columns0, project, "yyyy-MM-dd", 0, "项目立项(概算)信息", outputStream); // String[] headers1 = {"项目负责人", "预计合同签订时间", "项目计划招标时间", "是否二次合作", "直签", "主合同收款条款", "主合同具体解决方案", "计收计划"}; // String[] columns1 = {"principal", "contractTime", "bidsTime", "isSecondStr", "signTypeStr", "mainContractCollectionTerms", "mainContractResolvePlan", "calculationCollection"}; // exportExcelUtils.exportProjectExcel(headers1, columns1, project, "yyyy-MM-dd", 0, "项目立项(概算)其他信息", outputStream); @@ -194,9 +194,9 @@ public class ProjectController extends BaseController { } else { incomeTaxRates = incomeTaxSb.toString(); } - String[] headers2 = {"序号", "类别", "名称", "单位", "数量", "单价", "税率(%)", "含税总金额(元)", "不含税金额(元)", "税金(元)"}; - String[] columns2 = {"tempId", "type", "name", "unit", "amount", "price", "taxRate", "totalTaxInclude", "totalTaxExclude", "totalTax"}; - exportExcelUtils.exportIncomeDetailExcel(headers2, columns2, project, budgetBean, budgetIncomeDetail, incomeTotalAmount, "yyyy-MM-dd", 0, "收款明细表", outputStream); + String[] headers2 = {"序号", "类别", "名称", "规格类型", "参数", "单位", "数量", "单价", "税率(%)", "含税总金额(元)", "不含税金额(元)", "税金(元)"}; + String[] columns2 = {"tempId", "type", "name", "spec", "param", "unit", "amount", "price", "taxRate", "totalTaxInclude", "totalTaxExclude", "totalTax"}; + exportExcelUtils.exportIncomeDetailExcel(headers2, columns2, project, budgetBean, budgetIncomeDetail, incomeTotalAmount, "yyyy-MM-dd", 0, "收入明细表", outputStream); //收入计划 List budgetIncomePlanDetail = projectBudgetService.getBudgetIncomePlanDetail(project); BigDecimal incomePlanTotalReceiveAmount = projectBudgetService.getBudgetIncomePlanReceiveAmount(project); @@ -224,7 +224,7 @@ public class ProjectController extends BaseController { } else { costTaxRates = costTaxSb.toString(); } - String[] headers3 = {"序号", "大类", "类别", "名称", "单位", "数量", "单价", "税率(%)", "含税总金额(元)", "不含税金额(元)", "税金(元)", "签约方", "是否垫资", "预估垫资金额(元)", "支出时间", "支出金额(元)", "付款方式", "备注"}; + String[] headers3 = {"序号", "费用项目", "采购类别", "名称", "单位", "数量", "单价", "税率(%)", "含税总金额(元)", "不含税金额(元)", "税金(元)", "签约方", "是否垫资", "预估垫资金额(元)", "支出时间", "支出金额(元)", "付款方式", "备注"}; String[] columns3 = {"tempId", "type", "category", "name", "unit", "amount", "price", "taxRate", "totalTaxInclude", "totalTaxExclude", "totalTax", "contractParty", "isUnderwritten", "underwrittenAmount", "payTime", "payAmount", "payWay", "remark"}; exportExcelUtils.exportCostDetailExcel(headers3, columns3, project, budgetBean, budgetCostDetail, costTotalAmount, costUnderwrittenAmountTotal, costPayAmountTotal, procurementMap, "yyyy-MM-dd", 0, "采购成本明细表", outputStream); //项目管理成本明细 @@ -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 model) { + Project project = projectService.getProject(projectId); + model.put("info",project); + return ResponseMsg.buildSuccessData(project); + } + /** * 获取当前所有的角色和角色下的用户,根据项目决定是否check */ @@ -1046,8 +1054,8 @@ public class ProjectController extends BaseController { @RequestMapping("/incomeTemplate") public void incomeTemplate(HttpServletResponse response) throws Exception{ - String[] headers = new String[]{"类别", "名称", "单位", "数量", "单价", "税率(%)"}; - downloadHeader(response , Utils.generateExcelName("收款明细表批量导入模板")); + String[] headers = new String[]{"类别", "名称", "规格类型", "参数", "单位", "数量", "单价", "税率(%)"}; + downloadHeader(response , Utils.generateExcelName("收入明细表批量导入模板")); ExportUtils exportUtils = new ExportUtils(headers); exportUtils.write(response.getOutputStream()); } @@ -1081,7 +1089,7 @@ public class ProjectController extends BaseController { @RequestMapping("/costTemplate") public void costTemplate(HttpServletResponse response) throws Exception{ - String[] headers = new String[]{"大类", "类别", "名称", "单位", "数量", "单价", "税率(%)", "签约方", "是否垫资", "预估垫资金额(元)", "支出时间", "支出金额(元)", "付款方式", "备注"}; + String[] headers = new String[]{"费用项目", "采购类别", "名称", "单位", "数量", "单价", "税率(%)", "签约方", "是否垫资", "预估垫资金额(元)", "支出时间", "支出金额(元)", "付款方式", "备注"}; downloadHeader(response , Utils.generateExcelName("采购成本明细表批量导入模板")); ExportUtils exportUtils = new ExportUtils(headers); exportUtils.write(response.getOutputStream()); @@ -1114,7 +1122,7 @@ public class ProjectController extends BaseController { @RequestMapping("/estimateMainExport") public void estimateMainExport(HttpServletResponse response, @RequestParam int id) throws Exception{ Project project = projectService.findById(id); - response.setHeader("Content-Disposition", "attachment;filename=".concat(new String((Utils.generateExcelName(project.getName() + "-项目立项(概算)基本信息")).getBytes(), StandardCharsets.ISO_8859_1))); + response.setHeader("Content-Disposition", "attachment;filename=".concat(new String((Utils.generateExcelName(project.getName() + "-项目立项(概算)信息")).getBytes(), StandardCharsets.ISO_8859_1))); response.setHeader("Connection", "close"); response.setHeader("Content-Type", "application/vnd.ms-excel"); ServletOutputStream outputStream = response.getOutputStream(); @@ -1125,7 +1133,7 @@ public class ProjectController extends BaseController { String[] columns0 = {"deptName", "projectNo", "name", "typeDesc", "startDate", "endDate", "underwrittenModeStr", "collaborator", "advanceInterestAmountRound", "advancePeakAmountRound", "contractRound", "grossProfitRound", "grossProfitMarginRound", "huazhiRound", "huizhiRound", "huasanRound", "ziguangRound", "certaintyStr", "industryScenario", "resolvePlanStr", "customer", "terminalCustomer", "valueRisk", "principal", "contractTime", "bidsTime", "isSecondStr", "signTypeStr", "mainContractCollectionTerms", "mainContractResolvePlan", "calculationCollection"}; - exportExcelUtils.exportProjectExcel(headers0, columns0, project, "yyyy-MM-dd", 0, "项目立项(概算)基本信息", outputStream); + exportExcelUtils.exportProjectExcel(headers0, columns0, project, "yyyy-MM-dd", 0, "项目立项(概算)信息", outputStream); exportExcelUtils.end(outputStream); } @@ -1155,7 +1163,7 @@ public class ProjectController extends BaseController { @RequestMapping("/incomeExport") public void incomeExport(HttpServletResponse response, @RequestParam int id) throws Exception{ Project project = projectService.findById(id); - response.setHeader("Content-Disposition", "attachment;filename=".concat(new String((Utils.generateExcelName(project.getName() + "-收款明细表")).getBytes(), StandardCharsets.ISO_8859_1))); + response.setHeader("Content-Disposition", "attachment;filename=".concat(new String((Utils.generateExcelName(project.getName() + "-收入明细表")).getBytes(), StandardCharsets.ISO_8859_1))); response.setHeader("Connection", "close"); response.setHeader("Content-Type", "application/vnd.ms-excel"); ServletOutputStream outputStream = response.getOutputStream(); @@ -1164,9 +1172,9 @@ public class ProjectController extends BaseController { //收入明细 List budgetIncomeDetail = projectBudgetService.getBudgetIncomeDetail(project); BigDecimal incomeTotalAmount = projectBudgetService.getBudgetIncomeAmount(project); - String[] headers2 = {"序号", "类别", "名称", "单位", "数量", "单价", "税率(%)", "含税总金额(元)", "不含税金额(元)", "税金(元)"}; - String[] columns2 = {"tempId", "type", "name", "unit", "amount", "price", "taxRate", "totalTaxInclude", "totalTaxExclude", "totalTax"}; - exportExcelUtils.exportIncomeDetailExcel(headers2, columns2, project, budgetBean, budgetIncomeDetail, incomeTotalAmount, "yyyy-MM-dd", 0, "收款明细表", outputStream); + String[] headers2 = {"序号", "类别", "名称", "规格类型", "参数", "单位", "数量", "单价", "税率(%)", "含税总金额(元)", "不含税金额(元)", "税金(元)"}; + String[] columns2 = {"tempId", "type", "name", "spec", "param", "unit", "amount", "price", "taxRate", "totalTaxInclude", "totalTaxExclude", "totalTax"}; + exportExcelUtils.exportIncomeDetailExcel(headers2, columns2, project, budgetBean, budgetIncomeDetail, incomeTotalAmount, "yyyy-MM-dd", 0, "收入明细表", outputStream); exportExcelUtils.end(outputStream); } @@ -1212,7 +1220,7 @@ public class ProjectController extends BaseController { BigDecimal costPayAmountTotal = projectBudgetService.getBudgetCostPayAmountTotal(project); List procurementTypes = procurementTypeService.allProcurementTypeList(); Map procurementMap = procurementTypes.stream().collect(Collectors.toMap(ProcurementType::getId, ProcurementType::getName)); - String[] headers3 = {"序号", "大类", "类别", "名称", "单位", "数量", "单价", "税率(%)", "含税总金额(元)", "不含税金额(元)", "税金(元)", "签约方", "是否垫资", "预估垫资金额(元)", "支出时间", "支出金额(元)", "付款方式", "备注"}; + String[] headers3 = {"序号", "费用项目", "采购类别", "名称", "单位", "数量", "单价", "税率(%)", "含税总金额(元)", "不含税金额(元)", "税金(元)", "签约方", "是否垫资", "预估垫资金额(元)", "支出时间", "支出金额(元)", "付款方式", "备注"}; String[] columns3 = {"tempId", "type", "category", "name", "unit", "amount", "price", "taxRate", "totalTaxInclude", "totalTaxExclude", "totalTax", "contractParty", "isUnderwritten", "underwrittenAmount", "payTime", "payAmount", "payWay", "remark"}; exportExcelUtils.exportCostDetailExcel(headers3, columns3, project, budgetBean, budgetCostDetail, costTotalAmount, costUnderwrittenAmountTotal, costPayAmountTotal, procurementMap, "yyyy-MM-dd", 0, "采购成本明细表", outputStream); @@ -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/model/ProjectBudget.java b/src/main/java/cn/palmte/work/model/ProjectBudget.java new file mode 100644 index 0000000..aab494d --- /dev/null +++ b/src/main/java/cn/palmte/work/model/ProjectBudget.java @@ -0,0 +1,1005 @@ +package cn.palmte.work.model; + +import cn.palmte.work.bean.ApproveStatusEnum; +import org.hibernate.annotations.GenericGenerator; + +import javax.persistence.*; +import java.math.BigDecimal; +import java.util.Date; + +/** + * 项目预算中的概算信息 + * @author Yuanping Zhang + */ +@Entity +@Table(name = "project_budget") +public class ProjectBudget { + public static final int STATUS_ESTIMATE = 1; + public static final int STATUS_BUDGET = 5; + public static final int STATUS_SETTLE = 10; + public static final int STATUS_FINAL = 15; + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @GenericGenerator(name = "persistenceGenerator", strategy = "increment") + private int id; + /** + * 关联项目id + */ + @Column(name = "project_id") + private int projectId; + /** + * 项目编号 + */ + private String projectNo; + /** + * 项目名称 + */ + private String name; + /** + * 项目类型:1工程集成类、2设备集成类、3战略合作类 + */ + private int type; + @Column(name = "type_desc") + private String typeDesc; + /** + * 项目状态:1项目创建(概算),5预算,10结算,15决算 + */ + private int status; + @Column(name = "status_desc") + private String statusDesc; + /** + * 概算、预算、结算、决算:审核状态:0草稿,1待审核,2审核通过,3审核不通过 + */ + @Column(name = "approve_status_estimate") + private int approveStatusEstimate = -1; + @Column(name = "approve_status_budget") + private int approveStatusBudget = -1; + @Column(name = "approve_status_settle") + private int approveStatusSettle = -1; + @Column(name = "approve_status_final") + private int approveStatusFinal = -1; + + /** + * 审核人id + */ + @Column(name = "approve_id") + private int approveId = 0; + @Column(name = "approve_name") + private String approveName; + /** + * 项目创建者id + */ + @Column(name = "creator_id") + private int creatorId; + @Column(name = "creator_name") + private String creatorName; + /** + * 项目部门id + */ + @Column(name = "dept_id") + private int deptId; + @Column(name = "dept_name") + private String deptName; + /** + * 项目开始时间,精确到月 + */ + @Column(name = "start_date") + @Temporal(TemporalType.TIMESTAMP) + private Date startDate; + /** + * 项目结束时间,精确到月 + */ + @Column(name = "end_date") + @Temporal(TemporalType.TIMESTAMP) + private Date endDate; + /** + * 垫资模式:1A类-不垫资(战略合作),2B类-不垫资(背靠背),3C类-垫资(账期覆盖),4D类-垫资(账期不覆盖) + */ + @Column(name = "underwritten_mode") + private int underwrittenMode; + /** + * 合作对象 + */ + @Column(name = "collaborator") + private String collaborator; + /** + * 合作对象url + */ + @Column(name = "collaborator_url") + private String collaboratorUrl; + /** + * 客户名称 + */ + @Column(name = "customer") + private String customer; + /** + * 最终用户名称 + */ + @Column(name = "terminal_customer") + private String terminalCustomer; + /** + * 垫资利息(元为单位) + */ + @Column(name = "advance_interest_amount") + private BigDecimal advanceInterestAmount; + /** + * 垫资峰值 + */ + @Column(name = "advance_peak_amount") + private BigDecimal advancePeakAmount; + /** + * 合同金额 + */ + @Column(name = "contract_amount") + private BigDecimal contractAmount; + /** + * 行业场景应用 + */ + @Column(name = "industry_scene") + private Integer industryScene; + /** + * 行业场景应用 + */ + @Column(name = "industry_scenario") + private String industryScenario; + /** + *华智产品金额 + */ + @Column(name = "huazhi_product_amount") + private BigDecimal huazhiProductAmount; + /** + *其他产品金额 + */ + @Column(name = "ziguang_other_amount") + private BigDecimal ziguangOtherAmount; + /** + * 主合同收款条款 + */ + @Column(name = "main_contract_collection_terms") + private String mainContractCollectionTerms; + /** + * 价值及风险 + */ + @Column(name = "value_risk") + private String valueRisk; + /** + * 其他中的小类名称 + */ + @Column(name = "other_name") + private String otherName; + /** + * 项目创建时的配置的阀值 + */ + @Column(name = "project_contribution_profit_rate_threshold") + private BigDecimal projectContributionProfitRateThreshold; + /** + * 项目创建配置的年利率 + */ + @Column(name = "underwritten_tax_rate") + private BigDecimal underwrittenTaxRate; + /** + * 创建时间 + */ + @Column(name = "create_time") + @Temporal(TemporalType.TIMESTAMP) + private Date createTime; + /** + * 最后更新时间 + */ + @Column(name = "last_update_time") + @Temporal(TemporalType.TIMESTAMP) + private Date lastUpdateTime; + + @Column(name = "plan_start_str") + private String planStartStr; + + @Column(name = "plan_end_str") + private String planEndStr; + + @Column(name = "underwritten_mode_str") + private String underwrittenModeStr; + + @Column(name = "cooperate_type") + private Integer cooperateType; + + @Column(name = "cooperate_type_str") + private String cooperateTypeStr; + + @Column(name = "certainty") + private Integer certainty; + + @Column(name = "certainty_str") + private String certaintyStr; + + @Column(name = "gross_profit") + private BigDecimal grossProfit; + + @Column(name = "gross_profit_margin") + private BigDecimal grossProfitMargin; + + @Column(name = "huizhi_product_amount") + private BigDecimal huizhiProductAmount; + + @Column(name = "huasan_product_amount") + private BigDecimal huasanProductAmount; + + @Column(name = "principal") + private String principal; + + @Column(name = "contract_time") + private Date contractTime; + + @Column(name = "bids_time") + private Date bidsTime; + + @Column(name = "is_second") + private Integer isSecond; + + @Column(name = "is_second_str") + private String isSecondStr; + + @Column(name = "sign_type") + private Integer signType; + + @Column(name = "sign_type_str") + private String signTypeStr; + + @Column(name = "resolve_plan") + private Integer resolvePlan; + + @Column(name = "resolve_plan_str") + private String resolvePlanStr; + + @Column(name = "main_contract_resolve_plan") + private String mainContractResolvePlan; + + @Column(name = "calculation_collection") + private String calculationCollection; + + @Transient + private String contractRound; + + @Transient + private String huazhiRound; + + @Transient + private String ziguangRound; + + @Transient + private String huizhiRound; + + @Transient + private String huasanRound; + + @Transient + private String grossProfitRound; + + @Transient + private String grossProfitMarginRound; + + @Transient + private String advanceInterestAmountRound; + + @Transient + private String advancePeakAmountRound; + + @Transient + private String contractRound2; + + @Transient + private String huazhiRound2; + + @Transient + private String ziguangRound2; + + @Transient + private String huizhiRound2; + + @Transient + private String huasanRound2; + + @Transient + private String grossProfitRound2; + + @Transient + private String grossProfitMarginRound2; + + @Transient + private String advanceInterestAmountRound2; + + @Transient + private String advancePeakAmountRound2; + + @Transient + private int isBudget; + + @Transient + private String remark; + + /** + * 审批任务节点 + */ + @Transient + private String actTaskName; + + public int getId() { + return id; + } + + public void setId(int id) { + this.id = id; + } + + public int getProjectId() { + return projectId; + } + + public void setProjectId(int projectId) { + this.projectId = projectId; + } + + public String getProjectNo() { + return projectNo; + } + + public void setProjectNo(String projectNo) { + this.projectNo = projectNo; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public int getType() { + return type; + } + + public void setType(int type) { + this.type = type; + } + + public String getTypeDesc() { + return typeDesc; + } + + public void setTypeDesc(String typeDesc) { + this.typeDesc = typeDesc; + } + + public int getStatus() { + return status; + } + + public void setStatus(int status) { + this.status = status; + } + + public String getStatusDesc() { + return statusDesc; + } + + public void setStatusDesc(String statusDesc) { + this.statusDesc = statusDesc; + } + + + public int getApproveStatus() { + if(status == STATUS_ESTIMATE){ + return approveStatusEstimate; + } + if(status == STATUS_BUDGET){ + return approveStatusBudget; + } + if(status == STATUS_SETTLE){ + return approveStatusSettle; + } + if(status == STATUS_FINAL){ + return approveStatusFinal; + } + return -1; + } + + public String getApproveStatusDesc() { + int approveStatus = getApproveStatus(); + if(-1 == approveStatus){ + return "未知"; + } + return ApproveStatusEnum.parseApproveStatus(approveStatus).getApproveStatusDesc(); + } + + public int getApproveStatusEstimate() { + return approveStatusEstimate; + } + + public void setApproveStatusEstimate(int approveStatusEstimate) { + this.approveStatusEstimate = approveStatusEstimate; + } + + public int getApproveStatusBudget() { + return approveStatusBudget; + } + + public void setApproveStatusBudget(int approveStatusBudget) { + this.approveStatusBudget = approveStatusBudget; + } + + public int getApproveStatusSettle() { + return approveStatusSettle; + } + + public void setApproveStatusSettle(int approveStatusSettle) { + this.approveStatusSettle = approveStatusSettle; + } + + public int getApproveStatusFinal() { + return approveStatusFinal; + } + + public void setApproveStatusFinal(int approveStatusFinal) { + this.approveStatusFinal = approveStatusFinal; + } + + public int getApproveId() { + return approveId; + } + + public void setApproveId(int approveId) { + this.approveId = approveId; + } + + public String getApproveName() { + return approveName; + } + + public void setApproveName(String approveName) { + this.approveName = approveName; + } + + public int getCreatorId() { + return creatorId; + } + + public void setCreatorId(int creatorId) { + this.creatorId = creatorId; + } + + public String getCreatorName() { + return creatorName; + } + + public void setCreatorName(String creatorName) { + this.creatorName = creatorName; + } + + public int getDeptId() { + return deptId; + } + + public void setDeptId(int deptId) { + this.deptId = deptId; + } + + public String getDeptName() { + return deptName; + } + + public void setDeptName(String deptName) { + this.deptName = deptName; + } + + public Date getStartDate() { + return startDate; + } + + public void setStartDate(Date startDate) { + this.startDate = startDate; + } + + public Date getEndDate() { + return endDate; + } + + public void setEndDate(Date endDate) { + this.endDate = endDate; + } + + public int getUnderwrittenMode() { + return underwrittenMode; + } + + public void setUnderwrittenMode(int underwrittenMode) { + this.underwrittenMode = underwrittenMode; + } + + public String getCollaborator() { + return collaborator; + } + + public void setCollaborator(String collaborator) { + this.collaborator = collaborator; + } + + public String getCollaboratorUrl() { + return collaboratorUrl; + } + + public void setCollaboratorUrl(String collaboratorUrl) { + this.collaboratorUrl = collaboratorUrl; + } + + public String getCustomer() { + return customer; + } + + public void setCustomer(String customer) { + this.customer = customer; + } + + public String getTerminalCustomer() { + return terminalCustomer; + } + + public void setTerminalCustomer(String terminalCustomer) { + this.terminalCustomer = terminalCustomer; + } + + public BigDecimal getAdvanceInterestAmount() { + return advanceInterestAmount; + } + + public void setAdvanceInterestAmount(BigDecimal advanceInterestAmount) { + this.advanceInterestAmount = advanceInterestAmount; + } + + public BigDecimal getAdvancePeakAmount() { + return advancePeakAmount; + } + + public void setAdvancePeakAmount(BigDecimal advancePeakAmount) { + this.advancePeakAmount = advancePeakAmount; + } + + public BigDecimal getContractAmount() { + return contractAmount; + } + + public void setContractAmount(BigDecimal contractAmount) { + this.contractAmount = contractAmount; + } + + public Integer getIndustryScene() { + return industryScene; + } + + public void setIndustryScene(Integer industryScene) { + this.industryScene = industryScene; + } + + public String getIndustryScenario() { + return industryScenario; + } + + public void setIndustryScenario(String industryScenario) { + this.industryScenario = industryScenario; + } + + public BigDecimal getHuazhiProductAmount() { + return huazhiProductAmount; + } + + public void setHuazhiProductAmount(BigDecimal huazhiProductAmount) { + this.huazhiProductAmount = huazhiProductAmount; + } + + public BigDecimal getZiguangOtherAmount() { + return ziguangOtherAmount; + } + + public void setZiguangOtherAmount(BigDecimal ziguangOtherAmount) { + this.ziguangOtherAmount = ziguangOtherAmount; + } + + public String getMainContractCollectionTerms() { + return mainContractCollectionTerms; + } + + public void setMainContractCollectionTerms(String mainContractCollectionTerms) { + this.mainContractCollectionTerms = mainContractCollectionTerms; + } + + public String getValueRisk() { + return valueRisk; + } + + public void setValueRisk(String valueRisk) { + this.valueRisk = valueRisk; + } + + public String getOtherName() { + return otherName; + } + + public void setOtherName(String otherName) { + this.otherName = otherName; + } + + public BigDecimal getProjectContributionProfitRateThreshold() { + return projectContributionProfitRateThreshold; + } + + public void setProjectContributionProfitRateThreshold(BigDecimal projectContributionProfitRateThreshold) { + this.projectContributionProfitRateThreshold = projectContributionProfitRateThreshold; + } + + public BigDecimal getUnderwrittenTaxRate() { + return underwrittenTaxRate; + } + + public void setUnderwrittenTaxRate(BigDecimal underwrittenTaxRate) { + this.underwrittenTaxRate = underwrittenTaxRate; + } + + public Date getCreateTime() { + return createTime; + } + + public void setCreateTime(Date createTime) { + this.createTime = createTime; + } + + public Date getLastUpdateTime() { + return lastUpdateTime; + } + + public void setLastUpdateTime(Date lastUpdateTime) { + this.lastUpdateTime = lastUpdateTime; + } + + public String getPlanStartStr() { + return planStartStr; + } + + public void setPlanStartStr(String planStartStr) { + this.planStartStr = planStartStr; + } + + public String getPlanEndStr() { + return planEndStr; + } + + public void setPlanEndStr(String planEndStr) { + this.planEndStr = planEndStr; + } + + public String getUnderwrittenModeStr() { + return underwrittenModeStr; + } + + public void setUnderwrittenModeStr(String underwrittenModeStr) { + this.underwrittenModeStr = underwrittenModeStr; + } + + public Integer getCooperateType() { + return cooperateType; + } + + public void setCooperateType(Integer cooperateType) { + this.cooperateType = cooperateType; + } + + public String getCooperateTypeStr() { + return cooperateTypeStr; + } + + public void setCooperateTypeStr(String cooperateTypeStr) { + this.cooperateTypeStr = cooperateTypeStr; + } + + public Integer getCertainty() { + return certainty; + } + + public void setCertainty(Integer certainty) { + this.certainty = certainty; + } + + public String getCertaintyStr() { + return certaintyStr; + } + + public void setCertaintyStr(String certaintyStr) { + this.certaintyStr = certaintyStr; + } + + public BigDecimal getGrossProfit() { + return grossProfit; + } + + public void setGrossProfit(BigDecimal grossProfit) { + this.grossProfit = grossProfit; + } + + public BigDecimal getGrossProfitMargin() { + return grossProfitMargin; + } + + public void setGrossProfitMargin(BigDecimal grossProfitMargin) { + this.grossProfitMargin = grossProfitMargin; + } + + public BigDecimal getHuizhiProductAmount() { + return huizhiProductAmount; + } + + public void setHuizhiProductAmount(BigDecimal huizhiProductAmount) { + this.huizhiProductAmount = huizhiProductAmount; + } + + public BigDecimal getHuasanProductAmount() { + return huasanProductAmount; + } + + public void setHuasanProductAmount(BigDecimal huasanProductAmount) { + this.huasanProductAmount = huasanProductAmount; + } + + public String getPrincipal() { + return principal; + } + + public void setPrincipal(String principal) { + this.principal = principal; + } + + public Date getContractTime() { + return contractTime; + } + + public void setContractTime(Date contractTime) { + this.contractTime = contractTime; + } + + public Date getBidsTime() { + return bidsTime; + } + + public void setBidsTime(Date bidsTime) { + this.bidsTime = bidsTime; + } + + public Integer getIsSecond() { + return isSecond; + } + + public void setIsSecond(Integer isSecond) { + this.isSecond = isSecond; + } + + public String getIsSecondStr() { + return isSecondStr; + } + + public void setIsSecondStr(String isSecondStr) { + this.isSecondStr = isSecondStr; + } + + public Integer getSignType() { + return signType; + } + + public void setSignType(Integer signType) { + this.signType = signType; + } + + public String getSignTypeStr() { + return signTypeStr; + } + + public void setSignTypeStr(String signTypeStr) { + this.signTypeStr = signTypeStr; + } + + public Integer getResolvePlan() { + return resolvePlan; + } + + public void setResolvePlan(Integer resolvePlan) { + this.resolvePlan = resolvePlan; + } + + public String getResolvePlanStr() { + return resolvePlanStr; + } + + public void setResolvePlanStr(String resolvePlanStr) { + this.resolvePlanStr = resolvePlanStr; + } + + public String getMainContractResolvePlan() { + return mainContractResolvePlan; + } + + public void setMainContractResolvePlan(String mainContractResolvePlan) { + this.mainContractResolvePlan = mainContractResolvePlan; + } + + public String getCalculationCollection() { + return calculationCollection; + } + + public void setCalculationCollection(String calculationCollection) { + this.calculationCollection = calculationCollection; + } + + public String getContractRound() { + return contractRound; + } + + public void setContractRound(String contractRound) { + this.contractRound = contractRound; + } + + public String getHuazhiRound() { + return huazhiRound; + } + + public void setHuazhiRound(String huazhiRound) { + this.huazhiRound = huazhiRound; + } + + public String getZiguangRound() { + return ziguangRound; + } + + public void setZiguangRound(String ziguangRound) { + this.ziguangRound = ziguangRound; + } + + public String getHuizhiRound() { + return huizhiRound; + } + + public void setHuizhiRound(String huizhiRound) { + this.huizhiRound = huizhiRound; + } + + public String getHuasanRound() { + return huasanRound; + } + + public void setHuasanRound(String huasanRound) { + this.huasanRound = huasanRound; + } + + public String getGrossProfitRound() { + return grossProfitRound; + } + + public void setGrossProfitRound(String grossProfitRound) { + this.grossProfitRound = grossProfitRound; + } + + public String getGrossProfitMarginRound() { + return grossProfitMarginRound; + } + + public void setGrossProfitMarginRound(String grossProfitMarginRound) { + this.grossProfitMarginRound = grossProfitMarginRound; + } + + public String getAdvanceInterestAmountRound() { + return advanceInterestAmountRound; + } + + public void setAdvanceInterestAmountRound(String advanceInterestAmountRound) { + this.advanceInterestAmountRound = advanceInterestAmountRound; + } + + public String getAdvancePeakAmountRound() { + return advancePeakAmountRound; + } + + public void setAdvancePeakAmountRound(String advancePeakAmountRound) { + this.advancePeakAmountRound = advancePeakAmountRound; + } + + public String getContractRound2() { + return contractRound2; + } + + public void setContractRound2(String contractRound2) { + this.contractRound2 = contractRound2; + } + + public String getHuazhiRound2() { + return huazhiRound2; + } + + public void setHuazhiRound2(String huazhiRound2) { + this.huazhiRound2 = huazhiRound2; + } + + public String getZiguangRound2() { + return ziguangRound2; + } + + public void setZiguangRound2(String ziguangRound2) { + this.ziguangRound2 = ziguangRound2; + } + + public String getHuizhiRound2() { + return huizhiRound2; + } + + public void setHuizhiRound2(String huizhiRound2) { + this.huizhiRound2 = huizhiRound2; + } + + public String getHuasanRound2() { + return huasanRound2; + } + + public void setHuasanRound2(String huasanRound2) { + this.huasanRound2 = huasanRound2; + } + + public String getGrossProfitRound2() { + return grossProfitRound2; + } + + public void setGrossProfitRound2(String grossProfitRound2) { + this.grossProfitRound2 = grossProfitRound2; + } + + public String getGrossProfitMarginRound2() { + return grossProfitMarginRound2; + } + + public void setGrossProfitMarginRound2(String grossProfitMarginRound2) { + this.grossProfitMarginRound2 = grossProfitMarginRound2; + } + + public String getAdvanceInterestAmountRound2() { + return advanceInterestAmountRound2; + } + + public void setAdvanceInterestAmountRound2(String advanceInterestAmountRound2) { + this.advanceInterestAmountRound2 = advanceInterestAmountRound2; + } + + public String getAdvancePeakAmountRound2() { + return advancePeakAmountRound2; + } + + public void setAdvancePeakAmountRound2(String advancePeakAmountRound2) { + this.advancePeakAmountRound2 = advancePeakAmountRound2; + } + + public int getIsBudget() { + return isBudget; + } + + public void setIsBudget(int isBudget) { + this.isBudget = isBudget; + } + + public String getActTaskName() { + return actTaskName; + } + + public void setActTaskName(String actTaskName) { + this.actTaskName = actTaskName; + } + + public String getRemark() { + return remark; + } + + public void setRemark(String remark) { + this.remark = remark; + } +} diff --git a/src/main/java/cn/palmte/work/model/ProjectBudgetIncomeDetail.java b/src/main/java/cn/palmte/work/model/ProjectBudgetIncomeDetail.java index 131e1b1..6882f88 100644 --- a/src/main/java/cn/palmte/work/model/ProjectBudgetIncomeDetail.java +++ b/src/main/java/cn/palmte/work/model/ProjectBudgetIncomeDetail.java @@ -3,7 +3,7 @@ package cn.palmte.work.model; import javax.persistence.*; /** - * 项目预算收款明细表 + * 项目预算收入明细表 */ @Entity @Table(name = "project_budget_income_detail") diff --git a/src/main/java/cn/palmte/work/model/ProjectBudgetIncomeDetailBase.java b/src/main/java/cn/palmte/work/model/ProjectBudgetIncomeDetailBase.java index b8890e8..5760faf 100644 --- a/src/main/java/cn/palmte/work/model/ProjectBudgetIncomeDetailBase.java +++ b/src/main/java/cn/palmte/work/model/ProjectBudgetIncomeDetailBase.java @@ -26,6 +26,10 @@ public class ProjectBudgetIncomeDetailBase { private String name; + private String spec; + + private String param; + private String unit; private BigDecimal amount; private BigDecimal price; @@ -65,6 +69,22 @@ public class ProjectBudgetIncomeDetailBase { this.name = name; } + public String getSpec() { + return spec; + } + + public void setSpec(String spec) { + this.spec = spec; + } + + public String getParam() { + return param; + } + + public void setParam(String param) { + this.param = param; + } + public String getUnit() { return unit; } diff --git a/src/main/java/cn/palmte/work/model/ProjectBudgetIncomeDetailTemp.java b/src/main/java/cn/palmte/work/model/ProjectBudgetIncomeDetailTemp.java index a4f7f88..d03a47c 100644 --- a/src/main/java/cn/palmte/work/model/ProjectBudgetIncomeDetailTemp.java +++ b/src/main/java/cn/palmte/work/model/ProjectBudgetIncomeDetailTemp.java @@ -14,6 +14,8 @@ public class ProjectBudgetIncomeDetailTemp extends ProjectBudgetIncomeDetailBase projectBudgetIncomeDetail.setProjectId(getProjectId()); projectBudgetIncomeDetail.setName(getName()); projectBudgetIncomeDetail.setType(getType()); + projectBudgetIncomeDetail.setSpec(getSpec()); + projectBudgetIncomeDetail.setParam(getParam()); projectBudgetIncomeDetail.setUnit(getUnit()); projectBudgetIncomeDetail.setAmount(getAmount()); projectBudgetIncomeDetail.setPrice(getPrice()); diff --git a/src/main/java/cn/palmte/work/model/ProjectBudgetIncomePlanDetail.java b/src/main/java/cn/palmte/work/model/ProjectBudgetIncomePlanDetail.java index a373f45..8a23619 100644 --- a/src/main/java/cn/palmte/work/model/ProjectBudgetIncomePlanDetail.java +++ b/src/main/java/cn/palmte/work/model/ProjectBudgetIncomePlanDetail.java @@ -4,7 +4,7 @@ import javax.persistence.Entity; import javax.persistence.Table; /** - * 项目预算收款明细表 + * 项目预算收入明细表 */ @Entity @Table(name = "project_budget_income_plan_detail") diff --git a/src/main/java/cn/palmte/work/model/ProjectBudgetIncomePlanDetailTemp.java b/src/main/java/cn/palmte/work/model/ProjectBudgetIncomePlanDetailTemp.java index cbbfbac..4b47ae9 100644 --- a/src/main/java/cn/palmte/work/model/ProjectBudgetIncomePlanDetailTemp.java +++ b/src/main/java/cn/palmte/work/model/ProjectBudgetIncomePlanDetailTemp.java @@ -4,7 +4,7 @@ import javax.persistence.Entity; import javax.persistence.Table; /** - * 项目预算收款明细表 + * 项目预算收入明细表 */ @Entity @Table(name = "project_budget_income_plan_detail_temp") diff --git a/src/main/java/cn/palmte/work/model/ProjectBudgetRepository.java b/src/main/java/cn/palmte/work/model/ProjectBudgetRepository.java new file mode 100644 index 0000000..cef7a8e --- /dev/null +++ b/src/main/java/cn/palmte/work/model/ProjectBudgetRepository.java @@ -0,0 +1,6 @@ +package cn.palmte.work.model; + +import org.springframework.data.jpa.repository.JpaRepository; + +public interface ProjectBudgetRepository extends JpaRepository { +} diff --git a/src/main/java/cn/palmte/work/service/ProjectBudgetService.java b/src/main/java/cn/palmte/work/service/ProjectBudgetService.java index 8921c10..851bb39 100644 --- a/src/main/java/cn/palmte/work/service/ProjectBudgetService.java +++ b/src/main/java/cn/palmte/work/service/ProjectBudgetService.java @@ -1070,6 +1070,12 @@ public class ProjectBudgetService { key = "名称"; o1 = m.get(key); temp.setName((String) o1); + key = "规格类型"; + o1 = m.get(key); + temp.setName((String) o1); + key = "参数"; + o1 = m.get(key); + temp.setName((String) o1); key = "单位"; o1 = m.get(key); temp.setUnit((String) o1); @@ -1130,7 +1136,7 @@ public class ProjectBudgetService { String key; Object o1; temp.setProjectId(id); - key = "大类"; + key = "费用项目"; o1 = m.get(key); String type = (String) o1; if ("设备".equals(type)) { @@ -1142,16 +1148,16 @@ public class ProjectBudgetService { } else if ("其他".equals(type)) { temp.setType(4); } else { - throw new Exception("该大类不存在"); + throw new Exception("该费用项目不存在"); } - key = "类别"; + key = "采购类别"; o1 = m.get(key); String category = (String) o1; ProcurementType procurementType = procurementTypeRepository.findByName(category); if (procurementType != null && procurementType.getType() == temp.getType()) { temp.setCategory(procurementType.getId()); } else { - throw new Exception("该类别不存在或者与大类不匹配"); + throw new Exception("该采购类别不存在或者与费用项目不匹配"); } key = "名称"; o1 = m.get(key); 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/sql/fourcal-purge.sql b/src/main/resources/sql/fourcal-purge.sql index a45cdf3..f9fe31e 100644 --- a/src/main/resources/sql/fourcal-purge.sql +++ b/src/main/resources/sql/fourcal-purge.sql @@ -5753,7 +5753,7 @@ CREATE TABLE `project_budget_income_detail` ( `price` decimal(16,2) NOT NULL COMMENT '单价', `tax_rate` decimal(16,2) NOT NULL COMMENT '税率', PRIMARY KEY (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='收款明细表'; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='收入明细表'; -- ---------------------------- -- Records of project_budget_income_detail @@ -5773,7 +5773,7 @@ CREATE TABLE `project_budget_income_detail_temp` ( `price` decimal(16,2) NOT NULL COMMENT '单价', `tax_rate` decimal(16,2) NOT NULL COMMENT '税率', PRIMARY KEY (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='收款明细表'; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='收入明细表'; -- ---------------------------- -- Records of project_budget_income_detail_temp diff --git a/src/main/resources/sql/fourcal.sql b/src/main/resources/sql/fourcal.sql index a47de97..bb9e5bc 100644 --- a/src/main/resources/sql/fourcal.sql +++ b/src/main/resources/sql/fourcal.sql @@ -8268,7 +8268,7 @@ CREATE TABLE `project_budget_income_detail` ( `price` decimal(16,2) NOT NULL COMMENT '单价', `tax_rate` decimal(16,2) NOT NULL COMMENT '税率', PRIMARY KEY (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=711 DEFAULT CHARSET=utf8mb4 COMMENT='收款明细表'; +) ENGINE=InnoDB AUTO_INCREMENT=711 DEFAULT CHARSET=utf8mb4 COMMENT='收入明细表'; -- ---------------------------- -- Records of project_budget_income_detail @@ -8393,7 +8393,7 @@ CREATE TABLE `project_budget_income_detail_temp` ( `price` decimal(16,2) NOT NULL COMMENT '单价', `tax_rate` decimal(16,2) NOT NULL COMMENT '税率', PRIMARY KEY (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=701 DEFAULT CHARSET=utf8mb4 COMMENT='收款明细表'; +) ENGINE=InnoDB AUTO_INCREMENT=701 DEFAULT CHARSET=utf8mb4 COMMENT='收入明细表'; -- ---------------------------- -- Records of project_budget_income_detail_temp diff --git a/src/main/resources/static/assets/js/project_budget.js b/src/main/resources/static/assets/js/project_budget.js index 152e3ec..38d7778 100644 --- a/src/main/resources/static/assets/js/project_budget.js +++ b/src/main/resources/static/assets/js/project_budget.js @@ -92,12 +92,12 @@ $(function () { var dataIncome = collectData("am-modal-prompt-input-income"); if (dataIncome.length <= 0) { - window.confirm('请填写收款明细表'); + window.confirm('请填写收入明细表'); $("#saveDraft").attr('disabled', false); return; } - var dataIncomeCheck = convertDetailVerifyCheck(dataIncome, INCOME_DETAIL2, "收款明细表"); + var dataIncomeCheck = convertDetailVerifyCheck(dataIncome, INCOME_DETAIL2, "收入明细表"); if (dataIncomeCheck == null) { $("#saveDraft").attr('disabled', false); return; @@ -205,12 +205,12 @@ $(function () { var dataIncome = collectData("am-modal-prompt-input-income"); if (dataIncome.length <= 5) { - window.confirm('请填写收款明细表'); + window.confirm('请填写收入明细表'); $("#saveApprove").attr('disabled', false); return; } - var dataIncomeCheck = convertDetailVerifyCheck(dataIncome, INCOME_DETAIL, "收款明细表"); + var dataIncomeCheck = convertDetailVerifyCheck(dataIncome, INCOME_DETAIL, "收入明细表"); if (dataIncomeCheck == null) { $("#saveApprove").attr('disabled', false); return; diff --git a/src/main/resources/static/assets/js/project_budget_cost.js b/src/main/resources/static/assets/js/project_budget_cost.js index b505764..cfb6ad0 100644 --- a/src/main/resources/static/assets/js/project_budget_cost.js +++ b/src/main/resources/static/assets/js/project_budget_cost.js @@ -4,8 +4,8 @@ //COST_DETAIL_ARR=["type","category","name","unit","amount","price","taxRate","totalTaxInclude","totalTaxExclude"]; COST_DETAIL2={ "num":[false,"序号","string"], - "type":[false,"大类","string"], - "category":[false,"类别","string"], + "type":[false,"费用项目","string"], + "category":[false,"采购类别","string"], "name":[false,"名称","string"], "unit":[false,"单位","string"], "amount":[false,"数量","number"], @@ -25,8 +25,8 @@ COST_DETAIL2={ COST_DETAIL={ "num":[false,"序号","string"], - "type":[true,"大类","string"], - "category":[true,"类别","string"], + "type":[true,"费用项目","string"], + "category":[true,"采购类别","string"], "name":[true,"名称","string"], "unit":[true,"单位","string"], "amount":[true,"数量","number"], diff --git a/src/main/resources/static/assets/js/project_budget_income.js b/src/main/resources/static/assets/js/project_budget_income.js index 0cf7863..5c606fe 100644 --- a/src/main/resources/static/assets/js/project_budget_income.js +++ b/src/main/resources/static/assets/js/project_budget_income.js @@ -6,6 +6,8 @@ INCOME_DETAIL2={ "num":[false,"序号","string"], "type":[false,"类别","string"], "name":[false,"名称","string"], + "spec":[false,"规格类型","string"], + "param":[false,"参数","string"], "unit":[false,"单位","string"], "amount":[false,"数量","number"], "price":[false,"单价","price"], @@ -19,6 +21,8 @@ INCOME_DETAIL={ "num":[false,"序号","string"], "type":[true,"类别","string"], "name":[true,"名称","string"], + "spec":[true,"规格类型","string"], + "param":[true,"参数","string"], "unit":[true,"单位","string"], "amount":[true,"数量","number"], "price":[true,"单价","price"], @@ -71,7 +75,7 @@ $(function () { }); }); -//保存收款明细表 +//保存收入明细表 $(function () { $("#incomeTableSave").click(function () { var data = collectData("am-modal-prompt-input-income"); @@ -176,6 +180,8 @@ function appendTrIncome() { ' \n' + ' \n' + ' \n' + + ' \n' + + ' \n' + ' \n' + ' \n' + ' \n' + diff --git a/src/main/resources/static/assets/js/project_budget_plan.js b/src/main/resources/static/assets/js/project_budget_plan.js index 39a31e6..2663df1 100644 --- a/src/main/resources/static/assets/js/project_budget_plan.js +++ b/src/main/resources/static/assets/js/project_budget_plan.js @@ -352,12 +352,12 @@ function verifyBudgetPlan(){ //从采购成本明细中取“设备”大类下的总计---设备支出 if(costPurchaseDeviceTaxInclude != input_total_device_cost_budget_plan){ - return "采购成本明细中取“设备”大类下的总计["+costPurchaseDeviceTaxInclude+"]与设备支出["+input_total_device_cost_budget_plan+"]不等"; + return "采购成本明细中取“设备”费用项目下的总计["+costPurchaseDeviceTaxInclude+"]与设备支出["+input_total_device_cost_budget_plan+"]不等"; } //从采购成本明细中取“服务+施工+其他”大类的总计---工程支出 var t = f2(f2(costPurchaseBuildTaxInclude)+f2(costPurchaseServiceTaxInclude)+f2(costPurchaseOtherTaxInclude)); if(t != f2(input_total_engineer_cost_budget_plan)){ - return "采购成本明细中取“服务+施工+其他”大类的总计["+t+"]与工程支出["+input_total_engineer_cost_budget_plan+"]不等"; + return "采购成本明细中取“服务+施工+其他”费用项目的总计["+t+"]与工程支出["+input_total_engineer_cost_budget_plan+"]不等"; } //从项目管理成本取总计金额--经营性开支 if(costProjectManageTaxInclude != input_total_project_manage_budget_plan){ diff --git a/src/main/resources/templates/admin/project_approve.ftl b/src/main/resources/templates/admin/project_approve.ftl index a85fef0..d3db35a 100644 --- a/src/main/resources/templates/admin/project_approve.ftl +++ b/src/main/resources/templates/admin/project_approve.ftl @@ -155,7 +155,7 @@
- <#-- 项目立项(概算)基本信息 展示内容 --> + <#-- 项目立项(概算)信息 展示内容 -->
class="am-tab-panel am-fade am-in am-active" <#else> class="am-tab-panel am-fade am-in" id="tab1"> @@ -193,7 +193,7 @@ - + @@ -396,6 +396,43 @@ >${project.calculationCollection!} + + + + + + + +
项目立项(概算)基本信息项目立项(概算)信息
项目阶段: + <#if project.stage??> + <#if (project.stage) =0> + + <#elseif (project.stage) =1> + + <#elseif (project.stage) =2> + + <#elseif (project.stage) =3> + + <#elseif (project.stage) =4> + + <#elseif (project.stage) =5> + + <#elseif (project.stage) =6> + + <#elseif (project.stage) =7> + + <#elseif (project.stage) =8> + + <#elseif (project.stage) =9> + + + <#else> + + +
当前进度描述: + +
<#-- 项目预算信息 展示内容 --> @@ -406,7 +443,7 @@
- <#--收款明细表--> + <#--收入明细表-->
@@ -436,6 +473,8 @@ 序号 类别 名称 + 规格类型 + 参数 单位 数量 单价 @@ -472,6 +511,12 @@ + + @@ -509,6 +554,8 @@ + + > @@ -524,7 +571,7 @@
- <#--收款明细表--> + <#--收入明细表-->
@@ -597,8 +644,8 @@ 序号 - 大类 - 类别 + 费用项目 + 采购类别 名称 单位 数量 @@ -1033,7 +1080,7 @@
- <#--收款明细表 + <#--收入明细表 采购成本明细表 项目管理成本表 资金计划表--> @@ -2138,11 +2185,11 @@
- <#--收款明细表弹窗--> + <#--收入明细表弹窗-->
-
销售收款明细表——${project.name}
+
销售收入明细表——${project.name}
diff --git a/src/main/resources/templates/admin/project_budget_edit.ftl b/src/main/resources/templates/admin/project_budget_edit.ftl index ec6c609..56815fa 100644 --- a/src/main/resources/templates/admin/project_budget_edit.ftl +++ b/src/main/resources/templates/admin/project_budget_edit.ftl @@ -93,9 +93,9 @@
- + @@ -341,6 +341,8 @@ + + @@ -364,6 +366,8 @@ + + @@ -380,6 +384,8 @@ + + @@ -471,8 +477,8 @@ - - + + @@ -804,7 +810,7 @@
收入 - <#-- 收款明细表--> + <#-- 收入明细表-->
项目立项(概算)基本信息项目立项(概算)信息
序号 类别 名称规格类型参数 单位 数量 单价 > >
序号大类类别费用项目采购类别 名称 单位 数量
diff --git a/src/main/resources/templates/admin/project_estimate_add.ftl b/src/main/resources/templates/admin/project_estimate_add.ftl index 3f5db75..dc87a67 100644 --- a/src/main/resources/templates/admin/project_estimate_add.ftl +++ b/src/main/resources/templates/admin/project_estimate_add.ftl @@ -39,7 +39,7 @@
- + diff --git a/src/main/resources/templates/admin/project_estimate_edit.ftl b/src/main/resources/templates/admin/project_estimate_edit.ftl index 630bfde..573ce9b 100644 --- a/src/main/resources/templates/admin/project_estimate_edit.ftl +++ b/src/main/resources/templates/admin/project_estimate_edit.ftl @@ -44,7 +44,7 @@
项目立项(概算)基本信息项目立项(概算)信息
- + diff --git a/src/main/resources/templates/admin/project_list.ftl b/src/main/resources/templates/admin/project_list.ftl index 46cb330..bcedf80 100644 --- a/src/main/resources/templates/admin/project_list.ftl +++ b/src/main/resources/templates/admin/project_list.ftl @@ -176,7 +176,7 @@
-
项目状态
+
项目当前状态
+ + + + + + + + + + + + +
+
+ <#-- 按钮 -->
@@ -1027,6 +1048,10 @@ +
@@ -1188,6 +1213,55 @@ + + <#--项目阶段更新弹窗--> + @@ -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 @@
-
项目状态
+
项目当前状态
项目立项(概算)基本信息项目立项(概算)信息