空间管理单独做

master
OathK1per 2022-11-10 21:35:22 +08:00
parent b39bc0d8ca
commit be1f0f9719
9 changed files with 471 additions and 52 deletions

View File

@ -61,7 +61,7 @@ public class SpaceController extends BaseController {
searchInfo.putIfAbsent("certainty", String.valueOf(certainty));
searchInfo.putIfAbsent("deptName", "销售管理部");
searchInfo.putIfAbsent("estimateStatus", String.valueOf(1));
Page<Project> page = projectService.list(searchInfo, pageNumber, pageSize);
Page<Project> page = spaceService.list(searchInfo, pageNumber, pageSize);
List<Project> list = page.getList();
if(CollectionUtil.isNotEmpty(list)){
@ -82,15 +82,15 @@ public class SpaceController extends BaseController {
public void export(@RequestParam(value = "keywords", required = false) String keywords, @RequestParam(value = "certainty") int certainty, HttpServletResponse httpServletResponse) throws IOException {
Map<String, String> searchInfo = getSearchInfo(keywords);
searchInfo.putIfAbsent("certainty", String.valueOf(certainty));
searchInfo.putIfAbsent("deptName", "销售管理部");
searchInfo.putIfAbsent("estimateStatus", String.valueOf(1));
downloadHeader(httpServletResponse, Utils.generateExcelName("项目报表"), "application/octet-stream");
String[] headers = {"项目编号", "项目名称", "项目类型", "垫资模式", "垫资利息", "垫资峰值", "项目合同金额", "项目毛利", "项目毛利率", "项目把握度", "汇智产品金额", "华智产品金额",
"华三产品金额", "其他产品金额", "项目状态", "行业场景应用", "解决方案", "客户名称", "最终用户名称", "预计合同签订时间", "项目计划招标时间", "是否二次合作", "直签", "战略合作对象",
"项目负责人", "价值及风险", "主合同收款条款", "主合同具体解决方案", "计收计划", "审核状态", "当前审核人", "项目创建者", "部门名称", "项目开始时间", "项目结束时间", "最后更新时间"};
String[] exportColumns = {"projectNo", "name", "typeDesc", "underwrittenModeStr", "advanceInterestAmountRound", "advancePeakAmountRound", "contractRound", "grossProfitRound", "grossProfitMarginRound", "certaintyStr", "huizhiRound", "huazhiRound",
"huasanRound", "ziguangRound", "statusDesc", "industryScenario", "resolvePlan", "customer", "terminalCustomer", "contractTime", "bidsTime", "isSecondStr", "signTypeStr", "collaborator",
"principal", "valueRisk", "mainContractCollectionTerms", "mainContractResolvePlan", "calculationCollection", "approveStatusDesc", "approveName", "creatorName", "deptName", "startDate", "endDate", "lastUpdateTime"};
String[] headers = {"项目编号", "项目名称", "项目类型", "垫资模式", "华智产品金额", "华三产品金额", "汇智产品金额", "其他产品金额", "项目把握度", "项目计划招标时间", "预计合同签订时间",
"计收计划", "项目毛利", "合同金额(万元)", "项目解决方案", "具体解决方案", "是否二次签单", "最终用户名称", "客户名称", "紫光汇智直接投标/集成商转签", "负责人", "备注"};
String[] exportColumns = {"projectNo", "name", "typeDesc", "underwrittenModeStr", "huazhiRound", "huasanRound", "huizhiRound", "ziguangRound", "certaintyStr", "bidsTime", "contractTime",
"calculationCollection", "grossProfitRound", "contractRound", "resolvePlan", "mainContractResolvePlan", "isSecondStr", "terminalCustomer", "customer", "signTypeStr", "principal", "remark"};
ExportUtils.exportToExcel(headers, exportColumns, 1, 10000,
httpServletResponse.getOutputStream(), (pN, pS) -> projectService.list(searchInfo, pN, pS).getList());
httpServletResponse.getOutputStream(), (pN, pS) -> spaceService.list(searchInfo, pN, pS).getList());
}
/**

View File

@ -284,6 +284,9 @@ public class Project {
@Transient
private String advancePeakAmountRound;
@Transient
private String remark;
/**
*
*/
@ -882,4 +885,12 @@ public class Project {
public void setActTaskName(String actTaskName) {
this.actTaskName = actTaskName;
}
public String getRemark() {
return remark;
}
public void setRemark(String remark) {
this.remark = remark;
}
}

View File

@ -0,0 +1,163 @@
package cn.palmte.work.model;
import org.hibernate.annotations.GenericGenerator;
import javax.persistence.*;
import java.math.BigDecimal;
/**
* (
*
*/
@Entity
@Table(name = "project_extend")
public class ProjectExtend {
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;
@Column(name = "project_id")
private int projectId;
@Column(name = "is_budget")
private int isBudget;
/**
*
*/
@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 = "huazhi_product_amount")
private BigDecimal huazhiProductAmount;
/**
*
*/
@Column(name = "ziguang_other_amount")
private BigDecimal ziguangOtherAmount;
@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;
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 int getIsBudget() {
return isBudget;
}
public void setIsBudget(int isBudget) {
this.isBudget = isBudget;
}
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 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 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;
}
}

View File

@ -0,0 +1,11 @@
package cn.palmte.work.model;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
public interface ProjectExtendRepository extends JpaRepository<ProjectExtend, Integer> {
@Query(value = "SELECT * FROM project_extend WHERE project_id = ?1", nativeQuery = true)
ProjectExtend findByProjectId(int id);
}

View File

@ -61,6 +61,10 @@ public class ProjectBudgetService {
private SysConfigService sysConfigService;
@Autowired
private ProcurementTypeRepository procurementTypeRepository;
@Autowired
private ProjectBudgetService projectBudgetService;
@Autowired
private ProjectExtendRepository projectExtendRepository;
@Value("#{'${fourcal.fixedprojectmanagedetails}'.split('\\|')}")
private String[] fixedProjectManageDetails;
@ -910,9 +914,30 @@ public class ProjectBudgetService {
clearBudgetDetail(p);
saveBudgetDetail(p);
saveProjectExtend(p);
return p;
}
private void saveProjectExtend(Project p) {
ProjectExtend extend = projectExtendRepository.findByProjectId(p.getId());
if (extend == null) {
extend = new ProjectExtend();
extend.setProjectId(p.getId());
extend.setIsBudget(1);
}
List<ProjectBudgetPlanDetail> projectBudgetPlanDetails = projectBudgetService.getProjectBudgetPlanDetails(p);
ProjectUnderwrittenPlanStatisticBean bean = projectBudgetService.getProjectUnderwrittenPlanStatisticBean(projectBudgetPlanDetails);
extend.setAdvanceInterestAmount(bean.getCapitalInterest());
extend.setAdvancePeakAmount(bean.getAmount());
BudgetBean budgetBean = projectBudgetService.getBudget(p);
extend.setGrossProfit(budgetBean.getProjectGrossProfit());
extend.setGrossProfitMargin(budgetBean.getProjectGrossProfitRate());
}
private void saveBudgetDetail(Project p) {
//临时表中始终是最新的详情,不管是本次修改还是以前保持的
//收入明细

View File

@ -64,6 +64,7 @@ public class ProjectService {
*/
QueryHelper queryHelper = new QueryHelper("SELECT p.*, FORMAT(p.contract_amount,2) as contractRound, FORMAT(p.huazhi_product_amount,2) as huazhiRound, FORMAT(p.huizhi_product_amount,2) as huizhiRound, FORMAT(p.huasan_product_amount,2) as huasanRound, FORMAT(p.ziguang_other_amount,2) as ziguangRound" +
", FORMAT(p.gross_profit,2) as grossProfitRound, FORMAT(p.gross_profit_margin,2) as grossProfitMarginRound, FORMAT(p.advance_interest_amount,2) as advanceInterestAmountRound, FORMAT(p.advance_peak_amount,2) as advancePeakAmountRound","project","p");
queryHelper.leftJoin("project_extend pe", "p.id = pe.project_id and pe.is_budget = 1");
if(StrUtil.isNotEmpty(searchInfo.get("status")) && !"-1".equals(searchInfo.get("status"))){
queryHelper.addCondition("p.status=?", Integer.parseInt(searchInfo.get("status")));
}
@ -155,6 +156,32 @@ public class ProjectService {
String time = searchInfo.get("contractEndTime") + " 00:00:00";
queryHelper.addCondition("p.contract_time<=?", time);
}
//金额需判断是概算项目还是过了预算的项目如过了预算则从project_extend表中取数
if (StrUtil.isNotEmpty(searchInfo.get("huizhiStart"))) {
queryHelper.addCondition("(pe.is_budget = 0 and p.huizhi_product_amount >= ?) or (pe.is_budget = 1 and pe.huizhi_product_amount >= ?)", searchInfo.get("huizhiStart"), searchInfo.get("huizhiStart"));
}
if (StrUtil.isNotEmpty(searchInfo.get("huizhiEnd"))) {
queryHelper.addCondition("(pe.is_budget = 0 and p.huizhi_product_amount <= ?) or (pe.is_budget = 1 and pe.huizhi_product_amount <= ?)", searchInfo.get("huizhiEnd"), searchInfo.get("huizhiEnd"));
}
if (StrUtil.isNotEmpty(searchInfo.get("huazhiStart"))) {
queryHelper.addCondition("(pe.is_budget = 0 and p.huazhi_product_amount >= ?) or (pe.is_budget = 1 and pe.huazhi_product_amount >= ?)", searchInfo.get("huazhiStart"), searchInfo.get("huazhiStart"));
}
if (StrUtil.isNotEmpty(searchInfo.get("huazhiEnd"))) {
queryHelper.addCondition("(pe.is_budget = 0 and p.huazhi_product_amount <= ?) or (pe.is_budget = 1 and pe.huazhi_product_amount <= ?)", searchInfo.get("huazhiEnd"), searchInfo.get("huazhiEnd"));
}
if (StrUtil.isNotEmpty(searchInfo.get("huasanStart"))) {
queryHelper.addCondition("(pe.is_budget = 0 and p.huasan_product_amount >= ?) or (pe.is_budget = 1 and pe.huasan_product_amount >= ?)", searchInfo.get("huasanStart"), searchInfo.get("huasanStart"));
}
if (StrUtil.isNotEmpty(searchInfo.get("huasanEnd"))) {
queryHelper.addCondition("(pe.is_budget = 0 and p.huasan_product_amount <= ?) or (pe.is_budget = 1 and pe.huasan_product_amount <= ?)", searchInfo.get("huasanEnd"), searchInfo.get("huasanEnd"));
}
if (StrUtil.isNotEmpty(searchInfo.get("otherStart"))) {
queryHelper.addCondition("(pe.is_budget = 0 and p.ziguang_other_amount >= ?) or (pe.is_budget = 1 and pe.ziguang_other_amount >= ?)", searchInfo.get("otherStart"), searchInfo.get("otherStart"));
}
if (StrUtil.isNotEmpty(searchInfo.get("otherEnd"))) {
queryHelper.addCondition("(pe.is_budget = 0 and p.ziguang_other_amount <= ?) or (pe.is_budget = 1 and pe.ziguang_other_amount <= ?)", searchInfo.get("otherEnd"), searchInfo.get("otherEnd"));
}
}
//项目可见性根据角色和人员id

View File

@ -1,10 +1,21 @@
package cn.palmte.work.service;
import cn.palmte.work.bean.StatusEnum;
import cn.palmte.work.model.Admin;
import cn.palmte.work.model.Project;
import cn.palmte.work.model.SysRole;
import cn.palmte.work.model.SysRoleRepository;
import cn.palmte.work.pojo.SpaceVO;
import cn.palmte.work.utils.InterfaceUtil;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import top.jfunc.common.db.QueryHelper;
import top.jfunc.common.db.bean.Page;
import top.jfunc.common.db.bean.Record;
import top.jfunc.common.db.utils.Pagination;
import top.jfunc.common.utils.StrUtil;
import java.util.List;
import java.util.Map;
@ -13,10 +24,97 @@ import java.util.stream.Collectors;
@Service
public class SpaceService {
private static final Logger logger = LoggerFactory.getLogger(SpaceService.class);
@Autowired
private SysRoleRepository sysRoleRepository;
@Autowired
private Pagination pagination;
public Page<Project> list(Map<String, String> searchInfo, int pageNumber, int pageSize){
QueryHelper queryHelper = getQueryHelper(searchInfo);
return pagination.paginate(queryHelper.getSql(), Project.class,pageNumber,pageSize);
}
private QueryHelper getQueryHelper(Map<String, String> searchInfo) {
QueryHelper queryHelper = new QueryHelper("SELECT p.*, FORMAT(p.contract_amount,2) as contractRound, FORMAT(p.huazhi_product_amount,2) as huazhiRound, FORMAT(p.huizhi_product_amount,2) as huizhiRound, FORMAT(p.huasan_product_amount,2) as huasanRound, FORMAT(p.ziguang_other_amount,2) as ziguangRound" +
", FORMAT(p.gross_profit,2) as grossProfitRound, '' as remark","project","p");
queryHelper.leftJoin("project_extend pe", "p.id = pe.project_id and pe.is_budget = 1");
queryHelper.addCondition(StrUtil.isNotEmpty(searchInfo.get("name")),"p.name LIKE ?", "%"+searchInfo.get("name")+"%");
queryHelper.addCondition(StrUtil.isNotEmpty(searchInfo.get("customer")),"p.customer LIKE ?", "%"+searchInfo.get("customer")+"%");
queryHelper.addCondition(StrUtil.isNotEmpty(searchInfo.get("terminalCustomer")),"p.terminal_customer LIKE ?", "%"+searchInfo.get("terminalCustomer")+"%");
queryHelper.addCondition(StrUtil.isNotEmpty(searchInfo.get("principal")),"p.principal LIKE ?", "%"+searchInfo.get("principal")+"%");
if(StrUtil.isNotEmpty(searchInfo.get("approveStatus")) && !"-1".equals(searchInfo.get("approveStatus"))){
int approveStatus = Integer.parseInt(searchInfo.get("approveStatus"));
//四种状态满足其一即可
queryHelper.addCondition("((p.status=? AND p.approve_status_estimate=?) OR (p.status=? AND p.approve_status_budget=?) OR (p.status=? AND p.approve_status_settle=?) OR (p.status=? AND p.approve_status_final=?))",
StatusEnum.ESTIMATE_ACCOUNTS.getStatus(),approveStatus,
StatusEnum.BUDGET_ACCOUNTS.getStatus(),approveStatus,
StatusEnum.SETTLE_ACCOUNTS.getStatus(),approveStatus,
StatusEnum.FINAL_ACCOUNTS.getStatus(),approveStatus);
}
if(StrUtil.isNotEmpty(searchInfo.get("type")) && !"-1".equals(searchInfo.get("type"))){
queryHelper.addCondition("p.type=?", Integer.parseInt(searchInfo.get("type")));
}
queryHelper.addCondition(StrUtil.isNotEmpty(searchInfo.get("deptName")),"p.dept_name = ?", searchInfo.get("deptName"));
if(StrUtil.isNotEmpty(searchInfo.get("estimateStatus")) && !"-1".equals(searchInfo.get("estimateStatus"))){
queryHelper.addCondition("p.approve_status_estimate>=1 and p.approve_status_estimate<=2");
}
if(StrUtil.isNotEmpty(searchInfo.get("extend")) && "0".equals(searchInfo.get("extend"))) {
if (StrUtil.isNotEmpty(searchInfo.get("isSecond")) && !"-1".equals(searchInfo.get("isSecond"))) {
queryHelper.addCondition("p.is_second=?", Integer.parseInt(searchInfo.get("isSecond")));
}
if (StrUtil.isNotEmpty(searchInfo.get("resolvePlan")) && !"-1".equals(searchInfo.get("resolvePlan"))) {
queryHelper.addCondition("p.resolve_plan=?", Integer.parseInt(searchInfo.get("resolvePlan")));
}
/**
*
*/
if (StrUtil.isNotEmpty(searchInfo.get("startDate")) && StrUtil.isEmpty(searchInfo.get("endDate"))) {
String time = searchInfo.get("startDate") + " 00:00:00";
queryHelper.addCondition("p.start_date<=? AND p.end_date>=?", time, time);
}
if (StrUtil.isNotEmpty(searchInfo.get("endDate")) && StrUtil.isEmpty(searchInfo.get("startDate"))) {
String time = searchInfo.get("endDate") + " 00:00:00";
queryHelper.addCondition("p.start_date<=? AND p.end_date>=?", time, time);
}
/**
*
*/
if (StrUtil.isNotEmpty(searchInfo.get("startDate")) && StrUtil.isNotEmpty(searchInfo.get("endDate"))) {
String startTime = searchInfo.get("startDate") + " 00:00:00";
String endTime = searchInfo.get("endDate") + " 23:59:59";
queryHelper.addCondition("p.start_date>=? AND p.end_date<=?", startTime, endTime);
}
if (StrUtil.isNotEmpty(searchInfo.get("contractStartTime"))) {
String time = searchInfo.get("contractStartTime") + " 00:00:00";
queryHelper.addCondition("p.contract_time>=?", time);
}
if (StrUtil.isNotEmpty(searchInfo.get("contractEndTime"))) {
String time = searchInfo.get("contractEndTime") + " 00:00:00";
queryHelper.addCondition("p.contract_time<=?", time);
}
}
//项目可见性根据角色和人员id
Admin admin = InterfaceUtil.getAdmin();
int roleId = admin.getRoleId();
Integer adminId = admin.getId();
//自己创建的肯定能看见,配置的可以看见,系统管理员可以看见
SysRole sysRole = sysRoleRepository.findSysRoleById(roleId);
if(SysRole.ROLE_TYPE_SYSTEM != sysRole.getType()){
queryHelper.addCondition("(p.creator_id=? OR p.approve_id=? OR p.id in (SELECT pv1.project_id FROM project_visible pv1 WHERE pv1.type=1 AND pv1.tid=? UNION SELECT pv2.project_id FROM project_visible pv2 WHERE pv2.type=2 AND pv2.tid=?))", adminId, adminId, roleId, adminId);
}
queryHelper.addDescOrderProperty("p.last_update_time");
return queryHelper;
}
public SpaceVO getListData() {
String sql = "SELECT count(id) as sum, certainty, certainty_str as name FROM project WHERE approve_status_estimate >= 1 and approve_status_estimate <= 2 and dept_name = '销售管理部' GROUP BY certainty";

View File

@ -381,6 +381,76 @@
</div>
</div>
</div>
<!-- 扩展区域 -->
<div class="expand-section <#if extend='1'> fold</#if>">
<!-- 第五行 -->
<div class="flex-row st-row">
<div class="st-col st-col-4">
<div class="st-col-title">汇智产品金额</div>
<div class="flex-row st-col-field">
<div class="am-form-icon">
<i class="am-icon-calendar"></i>
<input type="text" class="am-form-field am-input-sm" id="huizhiStart"
value="${huizhiStart!}" placeholder="汇智产品金额" autocomplete="off" data-am-datepicker>
</div>
<div class="mid-connect">至</div>
<div class="am-form-icon">
<i class="am-icon-calendar"></i>
<input type="text" class="am-form-field am-input-sm" id="huizhiEnd"
value="${huizhiEnd!}" placeholder="汇智产品金额" autocomplete="off" data-am-datepicker>
</div>
</div>
</div>
<div class="st-col st-col-4">
<div class="st-col-title">华智产品金额</div>
<div class="flex-row st-col-field">
<div class="am-form-icon">
<i class="am-icon-calendar"></i>
<input type="text" class="am-form-field am-input-sm" id="huazhiStart"
value="${huazhiStart!}" placeholder="华智产品金额" autocomplete="off" data-am-datepicker>
</div>
<div class="mid-connect">至</div>
<div class="am-form-icon">
<i class="am-icon-calendar"></i>
<input type="text" class="am-form-field am-input-sm" id="huazhiEnd"
value="${huazhiEnd!}" placeholder="华智产品金额" autocomplete="off" data-am-datepicker>
</div>
</div>
</div>
<div class="st-col st-col-4">
<div class="st-col-title">华三产品金额</div>
<div class="flex-row st-col-field">
<div class="am-form-icon">
<i class="am-icon-calendar"></i>
<input type="text" class="am-form-field am-input-sm" id="huasanStart"
value="${huasanStart!}" placeholder="华三产品金额" autocomplete="off" data-am-datepicker>
</div>
<div class="mid-connect">至</div>
<div class="am-form-icon">
<i class="am-icon-calendar"></i>
<input type="text" class="am-form-field am-input-sm" id="huasanEnd"
value="${huasanEnd!}" placeholder="华三产品金额" autocomplete="off" data-am-datepicker>
</div>
</div>
</div>
<div class="st-col st-col-4">
<div class="st-col-title">其他产品金额</div>
<div class="flex-row st-col-field">
<div class="am-form-icon">
<i class="am-icon-calendar"></i>
<input type="text" class="am-form-field am-input-sm" id="otherStart"
value="${otherStart!}" placeholder="其他产品金额" autocomplete="off" data-am-datepicker>
</div>
<div class="mid-connect">至</div>
<div class="am-form-icon">
<i class="am-icon-calendar"></i>
<input type="text" class="am-form-field am-input-sm" id="otherEnd"
value="${otherEnd!}" placeholder="其他产品金额" autocomplete="off" data-am-datepicker>
</div>
</div>
</div>
</div>
</div>
<div class="flex-row tools-row">
<button type="button" class="am-btn am-btn-default am-btn-sm am-text-secondary"
id="extend" value="${extend!}">扩展筛选项
@ -1174,6 +1244,22 @@
keywordsObj.contractEndTime = $("#contractEndTime").val();
if ($("#industryScene").val())
keywordsObj.industryScene = $("#industryScene").val();
if ($("#huizhiStart").val())
keywordsObj.huizhiStart = $("#huizhiStart").val();
if ($("#huizhiEnd").val())
keywordsObj.huizhiEnd = $("#huizhiEnd").val();
if ($("#huazhiStart").val())
keywordsObj.huazhiStart = $("#huazhiStart").val();
if ($("#huazhiEnd").val())
keywordsObj.huazhiEnd = $("#huazhiEnd").val();
if ($("#huasanStart").val())
keywordsObj.huasanStart = $("#huasanStart").val();
if ($("#huasanEnd").val())
keywordsObj.huasanEnd = $("#huasanEnd").val();
if ($("#otherStart").val())
keywordsObj.otherStart = $("#otherStart").val();
if ($("#otherEnd").val())
keywordsObj.otherEnd = $("#otherEnd").val();
}
if ($("#customer").val())
keywordsObj.customer = $("#customer").val();
@ -1296,6 +1382,22 @@
keywordsObj.contractEndTime = $("#contractEndTime").val();
if ($("#industryScene").val())
keywordsObj.industryScene = $("#industryScene").val();
if ($("#huizhiStart").val())
keywordsObj.huizhiStart = $("#huizhiStart").val();
if ($("#huizhiEnd").val())
keywordsObj.huizhiEnd = $("#huizhiEnd").val();
if ($("#huazhiStart").val())
keywordsObj.huazhiStart = $("#huazhiStart").val();
if ($("#huazhiEnd").val())
keywordsObj.huazhiEnd = $("#huazhiEnd").val();
if ($("#huasanStart").val())
keywordsObj.huasanStart = $("#huasanStart").val();
if ($("#huasanEnd").val())
keywordsObj.huasanEnd = $("#huasanEnd").val();
if ($("#otherStart").val())
keywordsObj.otherStart = $("#otherStart").val();
if ($("#otherEnd").val())
keywordsObj.otherEnd = $("#otherEnd").val();
}
if ($("#customer").val())
keywordsObj.customer = $("#customer").val();

View File

@ -78,7 +78,7 @@
<form class="am-form" id="listForm" action="${base}/project/list" method="POST">
<input type="hidden" id="keywords" name="keywords" value='${keywords!""}'/>
<input type="hidden" id="pageNumber" name="pageNumber" value='${pageNumber!}'/>
<input type="hidden" id="orderTypeStr" name="orderTypeStr" value='${orderTypeStr!""}'/>
<input type="hidden" id="certainty" name="certainty" value='${certainty!""}'/>
<style>
.flex-row {
display: -webkit-box;
@ -297,33 +297,24 @@
<th class="table-title" width="480px">项目名称</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>
<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>
<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>
<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>
<th class="table-title">客户名称</th>
<th class="table-title">紫光汇智直接投标/集成商转签</th>
<th class="table-title">负责人</th>
<th class="table-title">备注</th>
</tr>
</thead>
<tbody style="display:block;width: 4200px;">
@ -334,33 +325,24 @@
<td class="huanhang" width="480px"><a style="cursor: pointer;text-decoration:none" onclick="approve(${list.id})">${list.name!}</a></td>
<td>${list.typeDesc!}</td>
<td>${list.underwrittenModeStr!}</td>
<td>${Utils.format(list.advanceInterestAmount, "0.00")}</td>
<td>${Utils.format(list.advancePeakAmount, "0.00")}</td>
<td>${Utils.format(list.contractAmount, "0.00")}</td>
<td>${Utils.format(list.grossProfit, "0.00")}</td>
<td>${Utils.format(list.grossProfitMargin, "0.00")}</td>
<td>${list.certaintyStr!}</td>
<td>${Utils.format(list.huizhiProductAmount, "0.00")}</td>
<td>${Utils.format(list.huazhiProductAmount, "0.00")}</td>
<td>${Utils.format(list.huasanProductAmount, "0.00")}</td>
<td>${Utils.format(list.huizhiProductAmount, "0.00")}</td>
<td>${Utils.format(list.ziguangOtherAmount, "0.00")}</td>
<td>${list.statusDesc!}</td>
<td>${list.industryScenario!}</td>
<td>${list.resolvePlanStr!}</td>
<td>${list.customer!}</td>
<td>${list.terminalCustomer!}</td>
<td>${(list.contractTime?string("yyyy-MM-dd"))!}</td>
<td>${list.certaintyStr!}</td>
<td>${(list.bidsTime?string("yyyy-MM-dd"))!}</td>
<td>${(list.contractTime?string("yyyy-MM-dd"))!}</td>
<td>${list.calculationCollection!}</td>
<td>${Utils.format(list.grossProfit, "0.00")}</td>
<td>${Utils.format(list.contractAmount, "0.00")}</td>
<td>${list.resolvePlanStr!}</td>
<td>${list.mainContractResolvePlan!}</td>
<td>${list.isSecondStr!}</td>
<td>${list.terminalCustomer!}</td>
<td>${list.customer!}</td>
<td>${list.signTypeStr!}</td>
<td>${list.collaborator!}</td>
<td>${list.principal!}</td>
<td>${list.approveStatusDesc!}</td>
<td>${list.approveName!}</td>
<td>${list.creatorName!}</td>
<td>${list.deptName!}</td>
<td>${(list.startDate?string("yyyy-MM"))!} ~ ${(list.endDate?string("yyyy-MM"))!}</td>
<td>${(list.lastUpdateTime?string("yyyy-MM-dd HH:mm:ss"))!}</td>
<td>${list.remark!}</td>
</tr>
</#list>
</tbody>