Merge remote-tracking branch 'origin/master'

# Conflicts:
#	src/main/java/cn/palmte/work/model/Project.java
master
OathK1per 2022-08-04 17:01:32 +08:00
commit e9c81f41e9
9 changed files with 45 additions and 129 deletions

View File

@ -103,6 +103,7 @@ public class ProjectController extends BaseController {
}
}
model.put("pager", page);
model.put("Utils", FreeMarkerUtil.fromStaticPackage("cn.palmte.work.utils.Utils"));
///
/*Page<Project> myApproveProjects = projectService.findMyApproveProjects(searchInfo, InterfaceUtil.getAdminId(), 1, Integer.MAX_VALUE);
model.put("hasApproveProjects", CollectionUtil.isNotEmpty(myApproveProjects.getList()) ? "1" : "0");*/
@ -116,8 +117,8 @@ public class ProjectController extends BaseController {
public void export(@RequestParam(value = "keywords", required = false) String keywords, HttpServletResponse httpServletResponse) throws IOException {
Map<String, String> searchInfo = getSearchInfo(keywords);
downloadHeader(httpServletResponse, Utils.generateExcelName("项目报表"), "application/octet-stream");
String[] headers = {"项目名称", "项目类型", "项目状态", "审核状态", "当前审核人", "项目创建者", "部门名称", "项目开始时间", "项目结束时间", "最后更新时间"};
String[] exportColumns = {"name", "typeDesc", "statusDesc", "approveStatusDesc", "approveName", "creatorName", "deptName", "startDateYM", "endDateYM", "lastUpdateTime"};
String[] headers = {"项目编号", "项目名称", "项目类型", "项目合同金额", "华智产品金额", "其他产品金额", "项目状态", "审核状态", "当前审核人", "项目创建者", "部门名称", "项目开始时间", "项目结束时间", "最后更新时间"};
String[] exportColumns = {"projectNo", "name", "typeDesc", "contractRound", "huazhiRound", "ziguangRound", "statusDesc", "approveStatusDesc", "approveName", "creatorName", "deptName", "startDateYM", "endDateYM", "lastUpdateTime"};
ExportUtils.exportToExcel(headers, exportColumns, 1, 10000,
httpServletResponse.getOutputStream(), (pN, pS) -> projectService.list(searchInfo, pN, pS).getList());
}
@ -417,6 +418,7 @@ public class ProjectController extends BaseController {
model.put("deptList", deptService.findAll());
ConcurrentHashMap<String, String> searchInfo = getSearchInfo(keywords, model);
model.put("pager", projectService.findMyApproveProjects(searchInfo, InterfaceUtil.getAdminId(), pageNumber, pageSize));
model.put("Utils", FreeMarkerUtil.fromStaticPackage("cn.palmte.work.utils.Utils"));
return "admin/project_list_approve";
}
@ -427,8 +429,8 @@ public class ProjectController extends BaseController {
public void exportApprove(@RequestParam(value = "keywords", required = false) String keywords, HttpServletResponse httpServletResponse) throws IOException {
Map<String, String> searchInfo = getSearchInfo(keywords);
downloadHeader(httpServletResponse, Utils.generateExcelName("待我审核项目报表"), "application/octet-stream");
String[] headers = {"项目名称", "项目类型", "项目状态", "审核状态", "当前审核人", "项目创建者", "部门名称", "项目开始时间", "项目结束时间", "最后更新时间"};
String[] exportColumns = {"name", "typeDesc", "statusDesc", "approveStatusDesc", "approveName", "creatorName", "deptName", "startDate", "endDate", "lastUpdateTime"};
String[] headers = {"项目编号", "项目名称", "项目类型", "项目合同金额", "华智产品金额", "其他产品金额", "项目状态", "审核状态", "当前审核人", "项目创建者", "部门名称", "项目开始时间", "项目结束时间", "最后更新时间"};
String[] exportColumns = {"projectNo", "name", "typeDesc", "contractRound", "huazhiRound", "ziguangRound", "statusDesc", "approveStatusDesc", "approveName", "creatorName", "deptName", "startDate", "endDate", "lastUpdateTime"};
ExportUtils.exportToExcel(headers, exportColumns, 1, 10000,
httpServletResponse.getOutputStream(), (pN, pS) -> projectService.findMyApproveProjects(searchInfo, InterfaceUtil.getAdminId(), pN, pS).getList());
}

View File

@ -224,6 +224,15 @@ public class Project {
@Transient
private String CalculationCollection;
@Transient
private String contractRound;
@Transient
private String huazhiRound;
@Transient
private String ziguangRound;
public int getId() {
return id;
}
@ -543,116 +552,4 @@ public class Project {
public void setPlanEndStr(String planEndStr) {
this.planEndStr = planEndStr;
}
public String getUnderwrittenModeDesc() {
return underwrittenModeDesc;
}
public void setUnderwrittenModeDesc(String underwrittenModeDesc) {
this.underwrittenModeDesc = underwrittenModeDesc;
}
public String getCertainty() {
return certainty;
}
public void setCertainty(String certainty) {
this.certainty = certainty;
}
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 String getIsSecondStr() {
return isSecondStr;
}
public void setIsSecondStr(String isSecondStr) {
this.isSecondStr = isSecondStr;
}
public String getSignTypeStr() {
return signTypeStr;
}
public void setSignTypeStr(String signTypeStr) {
this.signTypeStr = signTypeStr;
}
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) {
CalculationCollection = calculationCollection;
}
}

View File

@ -52,7 +52,7 @@ public class ProjectService {
"CASE p.status WHEN 0 THEN '草稿' WHEN 1 THEN '项目创建' WHEN 5 THEN '概算完成' WHEN 10 THEN '预算完成' WHEN 15 THEN '结算中' WHEN 20 THEN '决算完成' ELSE '未知' AS statusDesc," +
"CASE p.approve_status WHEN 0 THEN '待审核' WHEN 1 THEN '审核通过' WHEN 2 THEN '审核不通过' ELSE '未知' AS approveStatusDesc," +
*/
QueryHelper queryHelper = new QueryHelper("SELECT p.*","project","p");
QueryHelper queryHelper = new QueryHelper("SELECT p.*, FORMAT(p.contract_amount,2) as contractRound, FORMAT(p.huazhi_product_amount,2) as huazhiRound, FORMAT(p.ziguang_other_amount,2) as ziguangRound","project","p");
if(StrUtil.isNotEmpty(searchInfo.get("status")) && !"-1".equals(searchInfo.get("status"))){
queryHelper.addCondition("p.status=?", Integer.parseInt(searchInfo.get("status")));
}
@ -181,6 +181,7 @@ public class ProjectService {
//只有如下可以修改
projectInDb.setName(project.getName());
projectInDb.setProjectNo(project.getProjectNo());
projectInDb.setCustomer(project.getCustomer());
projectInDb.setTerminalCustomer(project.getTerminalCustomer());
projectInDb.setIndustryScenario(project.getIndustryScenario());

View File

@ -116,7 +116,7 @@
<ul class="am-tabs-nav am-nav am-nav-tabs">
<li id="jiben" <#if check==1>class="am-active"</#if>><a href="#tab1">项目基本信息</a></li>
<#if project.status==1 || project.status==5 || project.status==10 || project.status==15>
<li><a href="#tab2">项目概算信息</a></li>
<li><a href="#tab2">项目立项(概算)信息</a></li>
</#if>
<#if project.status==5 || project.status==10 || project.status==15>
<li><a href="#tab3">项目预算信息</a></li>
@ -164,7 +164,7 @@
<div class="am-u-sm-6 am-u-md-6">
<#--<textarea style="overflow:auto; background-attachment: fixed;
background-repeat: no-repeat; border-style: solid;border-color: #FFFFFF">${project.name}</textarea>-->
<input type="text" style="word-break: break-word; border:0 none;outline:none;" value="${project.projectNo}">
<input type="text" style="word-break: break-word; border:0 none;outline:none;" readonly value="${project.projectNo!}">
</div>
<div class="am-u-sm-2 am-u-md-4 input-msg"></div>
</div>

View File

@ -44,7 +44,7 @@
<div class="am-tabs am-margin" data-am-tabs>
<ul class="am-tabs-nav am-nav am-nav-tabs">
<li class="am-active"><a href="#tab1">项目基本信息</a></li>
<li><a href="#tab2">项目概算信息</a></li>
<li><a href="#tab2">项目立项(概算)信息</a></li>
<li><a href="#tab3">收入明细表</a></li>
<li><a href="#tab4">采购成本明细表</a></li>
<li><a href="#tab5">项目管理成本表</a></li>
@ -92,7 +92,15 @@
<div class="am-u-sm-2 am-u-md-4 input-msg"></div>
</div>
<div class="am-g am-form-group am-margin-top">
<div class="am-u-sm-4 am-u-md-2 am-text-right"><span style="color: red;">*</span>项目编号</div>
<div class="am-u-sm-6 am-u-md-6">
<input type="text" id="projectNo" class="am-input" data-validate-async data-validation-message="请输入项目编号50字符以内"
name="projectNo" placeholder="请输入项目编号50字符以内" maxlength="50"
value="${project.projectNo!}" required />
</div>
<div class="am-u-sm-2 am-u-md-4 input-msg"></div>
</div>
<div class="am-g am-form-group am-margin-top">
<div class="am-u-sm-4 am-u-md-2 am-text-right"><span style="color: red;">*</span>项目名称</div>

View File

@ -4,7 +4,7 @@
<div class="admin-content">
<div class="admin-content-body">
<div class="am-cf am-padding">
<div class="am-fl am-cf"><strong class="am-text-primary am-text-lg">项目概算表</strong></div>
<div class="am-fl am-cf"><strong class="am-text-primary am-text-lg">项目立项(概算)表</strong></div>
</div>
<form method="post" class="am-form" id="pmsForm" action="${base}/project/estimateAddSave" data-am-validator>

View File

@ -12,7 +12,7 @@
<div class="admin-content">
<div class="admin-content-body">
<div class="am-cf am-padding">
<div style="word-wrap:break-word; word-break:break-all;" class="am-fl am-cf"><strong class="am-text-primary am-text-lg">项目概算表</strong> / <small>${project.name}</small></div>
<div style="word-wrap:break-word; word-break:break-all;" class="am-fl am-cf"><strong class="am-text-primary am-text-lg">项目立项(概算)表</strong> / <small>${project.name}</small></div>
</div>
<form method="post" class="am-form" id="pmsForm" action="${base}/project/estimateEditSave" data-am-validator>
@ -67,7 +67,7 @@
<div class="am-u-sm-6 am-u-md-6">
<input type="text" id="projectNo" class="am-input" data-validate-async data-validation-message="请输入项目编号50字符以内"
name="projectNo" placeholder="请输入项目编号50字符以内" maxlength="50"
value="${project.projectNo}" required />
value="${project.projectNo!}" required />
</div>
<div class="am-u-sm-2 am-u-md-4 input-msg"></div>
</div>

View File

@ -197,12 +197,12 @@
<#list pager.list as list>
<tr>
<td>${list.tempId!}</td>
<td>${list.projectNo!}</td>
<td class="huanhang">${list.projectNo!}</td>
<td class="huanhang"><a style="cursor: pointer;text-decoration:none" onclick="location.href='${base}/project/approve?listFrom=list&type=1&id=${list.id}'">${list.name!}</a></td>
<td>${list.typeDesc!}</td>
<td>${list.contractAmount!}</td>
<td>${list.huazhiProductAmount!}</td>
<td>${list.ziguangOtherAmount!}</td>
<td>${Utils.format(list.contractAmount, "0.00")}</td>
<td>${Utils.format(list.huazhiProductAmount, "0.00")}</td>
<td>${Utils.format(list.ziguangOtherAmount, "0.00")}</td>
<td>${list.statusDesc!}</td>
<td>${list.approveStatusDesc!}</td>
<td>${list.approveName!}</td>
@ -387,7 +387,7 @@
<h4 class="modal-title" id="myModalLabel">您正在编辑项目编号</h4>
</div>
<div>
<input type="text" id="newProjectNo" class="am-modal-prompt-input" placeholder="请输入项目编号"/>
<input type="text" id="newProjectNo" class="am-modal-prompt-input" placeholder="请输入项目编号" maxlength="50"/>
<input type="hidden" id="modelId" name="keywords" value=''/>
</div>
<div class="modal-footer">

View File

@ -174,8 +174,12 @@
<thead>
<tr class="am-text-nowrap">
<th class="table-title">序号</th>
<th class="table-title">项目编号</th>
<th class="table-title">项目名称</th>
<th class="table-title">项目类型</th>
<th class="table-title">项目合同金额</th>
<th class="table-title">华智产品金额</th>
<th class="table-title">其他产品金额</th>
<th class="table-title">项目状态</th>
<th class="table-title">审核状态</th>
<th class="table-title">当前审核人</th>
@ -190,8 +194,12 @@
<#list pager.list as list>
<tr>
<td>${list.id!}</td>
<td>${list.projectNo!}</td>
<td class="huanhang"><a style="cursor: pointer;text-decoration:none" onclick="location.href='${base}/project/approve?listFrom=list&type=1&id=${list.id}'">${list.name!}</a></td>
<td>${list.typeDesc!}</td>
<td>${Utils.format(list.contractAmount, "0.00")}</td>
<td>${Utils.format(list.huazhiProductAmount, "0.00")}</td>
<td>${Utils.format(list.ziguangOtherAmount, "0.00")}</td>
<td>${list.statusDesc!}</td>
<td>${list.approveStatusDesc!}</td>
<td>${list.approveName!}</td>