四算预算修改
parent
f1b65c5966
commit
099271cad6
|
@ -0,0 +1,47 @@
|
|||
package cn.palmte.work.bean;
|
||||
|
||||
/**
|
||||
* @author xiongshiyan at 2021/11/1 , contact me with email yanshixiong@126.com or phone 15208384257
|
||||
*/
|
||||
public enum CertaintyEnum {
|
||||
PLAN_A(1,"A:基本确定中标,待签合同,合同签订中"),
|
||||
PLAN_B(2,"B:客户产品参数、商务评分、商务资质引导成功"),
|
||||
PLAN_C(3,"C:项目初期引导阶段");
|
||||
|
||||
private int certainty;
|
||||
private String certaintyStr;
|
||||
|
||||
private CertaintyEnum(int certainty, String certaintyStr) {
|
||||
this.certainty = certainty;
|
||||
this.certaintyStr = certaintyStr;
|
||||
}
|
||||
|
||||
public int getCertainty() {
|
||||
return certainty;
|
||||
}
|
||||
|
||||
public void setCertainty(int certainty) {
|
||||
this.certainty = certainty;
|
||||
}
|
||||
|
||||
public String getCertaintyStr() {
|
||||
return certaintyStr;
|
||||
}
|
||||
|
||||
public void setCertaintyStr(String certaintyStr) {
|
||||
this.certaintyStr = certaintyStr;
|
||||
}
|
||||
|
||||
public static CertaintyEnum parseCertainty(int certainty){
|
||||
if(certainty == 1){
|
||||
return PLAN_A;
|
||||
}
|
||||
if(certainty == 2){
|
||||
return PLAN_B;
|
||||
}
|
||||
if(certainty == 3){
|
||||
return PLAN_C;
|
||||
}
|
||||
throw new IllegalArgumentException("Unkown certainty:"+certainty);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,43 @@
|
|||
package cn.palmte.work.bean;
|
||||
|
||||
/**
|
||||
* @author xiongshiyan at 2021/11/1 , contact me with email yanshixiong@126.com or phone 15208384257
|
||||
*/
|
||||
public enum IsSecondEnum {
|
||||
PLAN_A(1,"是"),
|
||||
PLAN_B(2,"否");
|
||||
|
||||
private int isSecond;
|
||||
private String isSecondStr;
|
||||
|
||||
private IsSecondEnum(int isSecond, String isSecondStr) {
|
||||
this.isSecond = isSecond;
|
||||
this.isSecondStr = isSecondStr;
|
||||
}
|
||||
|
||||
public int getIsSecond() {
|
||||
return isSecond;
|
||||
}
|
||||
|
||||
public void setIsSecond(int isSecond) {
|
||||
this.isSecond = isSecond;
|
||||
}
|
||||
|
||||
public String getIsSecondStr() {
|
||||
return isSecondStr;
|
||||
}
|
||||
|
||||
public void setIsSecondStr(String isSecondStr) {
|
||||
this.isSecondStr = isSecondStr;
|
||||
}
|
||||
|
||||
public static IsSecondEnum parseIsSecond(int isSecond){
|
||||
if(isSecond == 1){
|
||||
return PLAN_A;
|
||||
}
|
||||
if(isSecond == 2){
|
||||
return PLAN_B;
|
||||
}
|
||||
throw new IllegalArgumentException("Unkown isSecond:"+isSecond);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,47 @@
|
|||
package cn.palmte.work.bean;
|
||||
|
||||
/**
|
||||
* @author xiongshiyan at 2021/11/1 , contact me with email yanshixiong@126.com or phone 15208384257
|
||||
*/
|
||||
public enum ResolvePlanEnum {
|
||||
PLAN_A(1,"公共服务(智慧交通、雪亮工程、治安防控体系等)"),
|
||||
PLAN_B(2,"泛行业(智慧园区、智慧医疗、智慧工地等)"),
|
||||
PLAN_C(3,"其他生态");
|
||||
|
||||
private int resolvePlan;
|
||||
private String resolvePlanStr;
|
||||
|
||||
private ResolvePlanEnum(int resolvePlan, String resolvePlanStr) {
|
||||
this.resolvePlan = resolvePlan;
|
||||
this.resolvePlanStr = resolvePlanStr;
|
||||
}
|
||||
|
||||
public int getResolvePlan() {
|
||||
return resolvePlan;
|
||||
}
|
||||
|
||||
public void setResolvePlan(int resolvePlan) {
|
||||
this.resolvePlan = resolvePlan;
|
||||
}
|
||||
|
||||
public String getResolvePlanStr() {
|
||||
return resolvePlanStr;
|
||||
}
|
||||
|
||||
public void setResolvePlanStr(String resolvePlanStr) {
|
||||
this.resolvePlanStr = resolvePlanStr;
|
||||
}
|
||||
|
||||
public static ResolvePlanEnum parseResolvePlan(int resolvePlan){
|
||||
if(resolvePlan == 1){
|
||||
return PLAN_A;
|
||||
}
|
||||
if(resolvePlan == 2){
|
||||
return PLAN_B;
|
||||
}
|
||||
if(resolvePlan == 3){
|
||||
return PLAN_C;
|
||||
}
|
||||
throw new IllegalArgumentException("Unkown resolvePlan:"+resolvePlan);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,39 @@
|
|||
package cn.palmte.work.bean;
|
||||
|
||||
/**
|
||||
* @author xiongshiyan at 2021/11/1 , contact me with email yanshixiong@126.com or phone 15208384257
|
||||
*/
|
||||
public enum SignTypeEnum {
|
||||
PLAN_A(1,"紫光汇智直接投标");
|
||||
|
||||
private int signType;
|
||||
private String signTypeStr;
|
||||
|
||||
private SignTypeEnum(int signType, String signTypeStr) {
|
||||
this.signType = signType;
|
||||
this.signTypeStr = signTypeStr;
|
||||
}
|
||||
|
||||
public int getSignType() {
|
||||
return signType;
|
||||
}
|
||||
|
||||
public void setSignType(int signType) {
|
||||
this.signType = signType;
|
||||
}
|
||||
|
||||
public String getSignTypeStr() {
|
||||
return signTypeStr;
|
||||
}
|
||||
|
||||
public void setSignTypeStr(String signTypeStr) {
|
||||
this.signTypeStr = signTypeStr;
|
||||
}
|
||||
|
||||
public static SignTypeEnum parseSignType(int signType){
|
||||
if(signType == 1){
|
||||
return PLAN_A;
|
||||
}
|
||||
throw new IllegalArgumentException("Unkown signType:"+signType);
|
||||
}
|
||||
}
|
|
@ -6,7 +6,7 @@ package cn.palmte.work.bean;
|
|||
public enum TypeEnum {
|
||||
PROJECT_INTEGRATION(1,"工程集成类"),
|
||||
DEVICE_INTEGRATION(2,"设备集成类"),
|
||||
STRATEGIC_PARTNER(3,"战略合作类");
|
||||
STRATEGIC_PARTNER(3,"工程集成类");
|
||||
|
||||
private int type;
|
||||
private String typeDesc;
|
||||
|
|
|
@ -0,0 +1,51 @@
|
|||
package cn.palmte.work.bean;
|
||||
|
||||
/**
|
||||
* @author xiongshiyan at 2021/11/1 , contact me with email yanshixiong@126.com or phone 15208384257
|
||||
*/
|
||||
public enum UnderwrittenModeEnum {
|
||||
PLAN_A(1,"A类-不垫资(战略合作)"),
|
||||
PLAN_B(2,"B类-不垫资(背靠背)"),
|
||||
PLAN_C(3,"C类-垫资(账期覆盖)"),
|
||||
PLAN_D(4,"D类-垫资(账期不覆盖");
|
||||
|
||||
private int underwrittenMode;
|
||||
private String underwrittenModeStr;
|
||||
|
||||
private UnderwrittenModeEnum(int underwrittenMode, String underwrittenModeStr) {
|
||||
this.underwrittenMode = underwrittenMode;
|
||||
this.underwrittenModeStr = underwrittenModeStr;
|
||||
}
|
||||
|
||||
public int getUnderwrittenMode() {
|
||||
return underwrittenMode;
|
||||
}
|
||||
|
||||
public void setUnderwrittenMode(int underwrittenMode) {
|
||||
this.underwrittenMode = underwrittenMode;
|
||||
}
|
||||
|
||||
public String getUnderwrittenModeStr() {
|
||||
return underwrittenModeStr;
|
||||
}
|
||||
|
||||
public void setUnderwrittenModeStr(String underwrittenModeStr) {
|
||||
this.underwrittenModeStr = underwrittenModeStr;
|
||||
}
|
||||
|
||||
public static UnderwrittenModeEnum parseUnderwrittenMode(int underwrittenMode){
|
||||
if(underwrittenMode == 1){
|
||||
return PLAN_A;
|
||||
}
|
||||
if(underwrittenMode == 2){
|
||||
return PLAN_B;
|
||||
}
|
||||
if(underwrittenMode == 3){
|
||||
return PLAN_C;
|
||||
}
|
||||
if(underwrittenMode == 4){
|
||||
return PLAN_D;
|
||||
}
|
||||
throw new IllegalArgumentException("Unkown underwrittenMode:"+underwrittenMode);
|
||||
}
|
||||
}
|
|
@ -1,8 +1,11 @@
|
|||
package cn.palmte.work.controller.backend;
|
||||
|
||||
import cn.palmte.work.bean.ResponseMsg;
|
||||
import cn.palmte.work.model.MonthlySettle;
|
||||
import cn.palmte.work.model.MonthlySettleRepository;
|
||||
import cn.palmte.work.service.MonthlySettleService;
|
||||
import cn.palmte.work.utils.Utils;
|
||||
import cn.palmte.work.utils.excel.AppendMore;
|
||||
import cn.palmte.work.utils.excel.ExcelLogs;
|
||||
import cn.palmte.work.utils.excel.ExcelUtil;
|
||||
import cn.palmte.work.utils.excel.ExportUtils;
|
||||
|
@ -22,6 +25,7 @@ import org.springframework.web.multipart.MultipartFile;
|
|||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.io.IOException;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
|
||||
|
@ -37,6 +41,9 @@ public class MonthlySettleController extends BaseController {
|
|||
@Autowired
|
||||
private MonthlySettleService monthlySettleService;
|
||||
|
||||
@Autowired
|
||||
private MonthlySettleRepository monthlySettleRepository;
|
||||
|
||||
@RequestMapping("/list")
|
||||
public String list(@RequestParam(value = KEYWORDS, required = false) String keywords,
|
||||
@RequestParam(value = PAGE_NUMBER, defaultValue = DEFAULT_PAGE_NUMBER) int pageNumber,
|
||||
|
@ -46,7 +53,14 @@ public class MonthlySettleController extends BaseController {
|
|||
setModel(keywords, model);
|
||||
ConcurrentHashMap<String, String> searchInfo = getSearchInfo(keywords, model);
|
||||
model.put("pager", monthlySettleService.list(searchInfo, pageNumber, pageSize));
|
||||
return "/admin/account_list";
|
||||
return "/admin/monthlySettle_list";
|
||||
}
|
||||
|
||||
@RequestMapping("/info")
|
||||
public String list(@RequestParam("id") int id, Map<String, Object> model) {
|
||||
MonthlySettle monthlySettle = monthlySettleRepository.findOne(id);
|
||||
model.put("monthlySettle", monthlySettle);
|
||||
return "/admin/monthlySettle_info";
|
||||
}
|
||||
|
||||
private void setModel(@RequestParam(value = "keywords", required = false) String keywords, Map<String, Object> model) {
|
||||
|
@ -57,18 +71,32 @@ public class MonthlySettleController 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 = {"userName", "telephone", "realName", "workLocation", "deptName", "directManager", "positionName", "roleName", "companyEmail"};
|
||||
String[] headers = {"项目编号", "项目名称", "项目类型", "合同编号", "合同方", "合同金额", "合同签订时间", "最终业主", "累计已收款", "已采购累计付款", "已采购累计未付款", "超期垫资金额", "销售累计开票金额",
|
||||
"销售经理", "项目经理", "收款节点", "收款要求时间", "收款金额", "实际收款时间", "实际收款金额", "实际欠收金额", "到货证明", "项目风险预警", "已计收金额", "未计收金额", "超期天数", "验收报告时间"};
|
||||
String[] exportColumns = {"projectNo", "projectName", "projectType", "contractNo", "contractParty", "contractAmount", "contractSignTime", "owner", "totalCollect",
|
||||
"totalPurchasedPaid", "totalPurchasedUnpaid", "timeOutAmount", "totalBillAmount", "saleManager", "projectManager", "collectPoint", "collectRequiredTime", "collectAmount",
|
||||
"collectActualTime", "collectActualAmount", "uncollectActualAmount", "productCertificate", "riskWarning", "uncalColAmount", "calColAmount", "timeOutDay", "inspectionReportTime"};
|
||||
ExportUtils.exportToExcel(headers, exportColumns, 1, 10000,
|
||||
httpServletResponse.getOutputStream(), (pN, pS) -> monthlySettleService.list(searchInfo, pN, pS).getList());
|
||||
}
|
||||
|
||||
@RequestMapping("/exportSingle")
|
||||
public void exportSingle(@RequestParam String id, @RequestParam String time, @RequestParam String projectName, HttpServletResponse httpServletResponse) throws IOException {
|
||||
downloadHeader(httpServletResponse, Utils.generateExcelName("月度结算表明细"), "application/octet-stream");
|
||||
String[] headers = {"月份", "项目编号", "项目名称", "项目类型", "合同编号", "合同方", "合同金额", "合同签订时间", "最终业主", "累计已收款", "已采购累计付款", "已采购累计未付款", "超期垫资金额", "销售累计开票金额",
|
||||
"销售经理", "项目经理", "收款节点", "收款要求时间", "收款金额", "实际收款时间", "实际收款金额", "实际欠收金额", "超期天数", "到货证明", "验收报告时间", "项目风险预警", "已计收金额", "未计收金额"};
|
||||
String[] exportColumns = {"month", "projectNo", "projectName", "projectType", "contractNo", "contractParty", "contractAmount", "contractSignTime", "owner", "totalCollect",
|
||||
"totalPurchasedPaid", "totalPurchasedUnpaid", "timeOutAmount", "totalBillAmount", "saleManager", "projectManager", "collectPoint", "collectRequiredTime", "collectAmount",
|
||||
"collectActualTime", "collectActualAmount", "uncollectActualAmount", "timeOutDay", "productCertificate", "inspectionReportTime", "riskWarning", "uncalColAmount", "calColAmount"};
|
||||
ExportUtils.exportToExcel(headers, exportColumns, 1, 10000,
|
||||
httpServletResponse.getOutputStream(), (pageNumber, pageSize) -> monthlySettleService.findOne(id, time, projectName));
|
||||
}
|
||||
|
||||
/**
|
||||
* 模板下载
|
||||
*/
|
||||
@RequestMapping("/template")
|
||||
public void template(HttpServletResponse response) throws Exception {
|
||||
|
||||
String[] headers = new String[]{"项目编号", "最终业主", "合同方", "项目名称", "合同金额", "累计已收款", "已采购累计付款", "已采购累计未付款", "超期垫资金额", "销售累计开票金额", "合同编号", "项目类型", "合同签订时间", "销售经理", "项目经理", "收款节点", "收款要求时间", "收款金额",
|
||||
"实际收款时间", "实际收款金额", "实际欠收金额", "超期天数", "到货证明", "验收报告时间", "项目风险预警", "已计收金额", "未计收金额"};
|
||||
downloadHeader(response, Utils.generateExcelName("月度结算表导入模板"));
|
||||
|
|
|
@ -119,8 +119,11 @@ 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 = {"projectNo", "name", "typeDesc", "contractRound", "huazhiRound", "ziguangRound", "statusDesc", "approveStatusDesc", "approveName", "creatorName", "deptName", "startDateYM", "endDateYM", "lastUpdateTime"};
|
||||
String[] headers = {"项目编号", "项目名称", "项目类型", "项目合同金额", "华智产品金额", "汇智产品金额", "华三产品金额", "其他产品金额", "项目状态", "垫资模式", "合作对象", "项目把握度", "行业场景应用", "客户名称", "终端客户名称",
|
||||
"项目毛利", "项目毛利率", "项目负责人", "预计合同签订时间", "项目计划招标时间", "是否二次合作", "签单方式", "垫资利息", "垫资峰值", "审核状态", "当前审核人", "项目创建者", "部门名称", "项目开始时间", "项目结束时间", "最后更新时间"};
|
||||
String[] exportColumns = {"projectNo", "name", "typeDesc", "contractRound", "huazhiRound", "huizhiRound", "huasanRound", "ziguangRound", "statusDesc", "underwrittenModeDesc", "collaborator",
|
||||
"certaintyStr", "industryScenario", "customer", "terminalCustomer", "grossProfit", "grossProfitMargin", "principal", "contractTime", "bidsTime", "isSecondStr", "signTypeStr",
|
||||
"advanceInterestAmount", "advancePeakAmount", "approveStatusDesc", "approveName", "creatorName", "deptName", "startDateYM", "endDateYM", "lastUpdateTime"};
|
||||
ExportUtils.exportToExcel(headers, exportColumns, 1, 10000,
|
||||
httpServletResponse.getOutputStream(), (pN, pS) -> projectService.list(searchInfo, pN, pS).getList());
|
||||
}
|
||||
|
@ -205,8 +208,6 @@ public class ProjectController extends BaseController {
|
|||
@RequestMapping("/add")
|
||||
public String add(Map<String, Object> model) {
|
||||
Dept one = deptService.findUserDept(InterfaceUtil.getAdmin());
|
||||
String projectNo = numSeqService.generate();
|
||||
model.put("projectNo", projectNo);
|
||||
model.put("dept", one);
|
||||
model.put("projectId",-1);
|
||||
return "admin/project_estimate_add";
|
||||
|
|
|
@ -3,6 +3,7 @@ package cn.palmte.work.model;
|
|||
import org.hibernate.annotations.GenericGenerator;
|
||||
|
||||
import javax.persistence.*;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* @author Yuanping Zhang
|
||||
|
@ -79,7 +80,8 @@ public class MonthlySettle {
|
|||
* 合同签订时间
|
||||
*/
|
||||
@Column(name = "contract_sign_time")
|
||||
private String contractSignTime;
|
||||
@Temporal(TemporalType.DATE)
|
||||
private Date contractSignTime;
|
||||
/**
|
||||
* 销售经理
|
||||
*/
|
||||
|
@ -99,7 +101,8 @@ public class MonthlySettle {
|
|||
* 收款要求时间
|
||||
*/
|
||||
@Column(name = "collect_required_time")
|
||||
private String collectRequiredTime;
|
||||
@Temporal(TemporalType.DATE)
|
||||
private Date collectRequiredTime;
|
||||
/**
|
||||
* 收款金额
|
||||
*/
|
||||
|
@ -109,7 +112,8 @@ public class MonthlySettle {
|
|||
* 实际收款时间
|
||||
*/
|
||||
@Column(name = "collect_actual_time")
|
||||
private String collectActualTime;
|
||||
@Temporal(TemporalType.DATE)
|
||||
private Date collectActualTime;
|
||||
/**
|
||||
* 实际收款金额
|
||||
*/
|
||||
|
@ -134,7 +138,8 @@ public class MonthlySettle {
|
|||
* 验收报告时间
|
||||
*/
|
||||
@Column(name = "inspection_report_time")
|
||||
private String inspectionReportTime;
|
||||
@Temporal(TemporalType.DATE)
|
||||
private Date inspectionReportTime;
|
||||
/**
|
||||
* 项目风险预警
|
||||
*/
|
||||
|
@ -255,11 +260,11 @@ public class MonthlySettle {
|
|||
this.projectType = projectType;
|
||||
}
|
||||
|
||||
public String getContractSignTime() {
|
||||
public Date getContractSignTime() {
|
||||
return contractSignTime;
|
||||
}
|
||||
|
||||
public void setContractSignTime(String contractSignTime) {
|
||||
public void setContractSignTime(Date contractSignTime) {
|
||||
this.contractSignTime = contractSignTime;
|
||||
}
|
||||
|
||||
|
@ -287,11 +292,11 @@ public class MonthlySettle {
|
|||
this.collectPoint = collectPoint;
|
||||
}
|
||||
|
||||
public String getCollectRequiredTime() {
|
||||
public Date getCollectRequiredTime() {
|
||||
return collectRequiredTime;
|
||||
}
|
||||
|
||||
public void setCollectRequiredTime(String collectRequiredTime) {
|
||||
public void setCollectRequiredTime(Date collectRequiredTime) {
|
||||
this.collectRequiredTime = collectRequiredTime;
|
||||
}
|
||||
|
||||
|
@ -303,11 +308,11 @@ public class MonthlySettle {
|
|||
this.collectAmount = collectAmount;
|
||||
}
|
||||
|
||||
public String getCollectActualTime() {
|
||||
public Date getCollectActualTime() {
|
||||
return collectActualTime;
|
||||
}
|
||||
|
||||
public void setCollectActualTime(String collectActualTime) {
|
||||
public void setCollectActualTime(Date collectActualTime) {
|
||||
this.collectActualTime = collectActualTime;
|
||||
}
|
||||
|
||||
|
@ -343,11 +348,11 @@ public class MonthlySettle {
|
|||
this.productCertificate = productCertificate;
|
||||
}
|
||||
|
||||
public String getInspectionReportTime() {
|
||||
public Date getInspectionReportTime() {
|
||||
return inspectionReportTime;
|
||||
}
|
||||
|
||||
public void setInspectionReportTime(String inspectionReportTime) {
|
||||
public void setInspectionReportTime(Date inspectionReportTime) {
|
||||
this.inspectionReportTime = inspectionReportTime;
|
||||
}
|
||||
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
package cn.palmte.work.model;
|
||||
|
||||
import org.springframework.data.jpa.repository.JpaRepository;
|
||||
import org.springframework.data.jpa.repository.Query;
|
||||
|
||||
/**
|
||||
* @author Yuanping Zhang
|
||||
|
@ -8,4 +9,6 @@ import org.springframework.data.jpa.repository.JpaRepository;
|
|||
*/
|
||||
public interface MonthlySettleRepository extends JpaRepository<MonthlySettle, Integer> {
|
||||
|
||||
// @Query(value = "select * from monthly_settle where id = ?1 order by month desc limit 1", nativeQuery = true)
|
||||
// MonthlySettle findLatest(int id);
|
||||
}
|
||||
|
|
|
@ -118,16 +118,16 @@ public class Project {
|
|||
*/
|
||||
@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 = "advance_interest_amount")
|
||||
private BigDecimal advanceInterestAmount;
|
||||
/**
|
||||
* 垫资峰值
|
||||
*/
|
||||
@Column(name = "advance_peak_amount")
|
||||
private BigDecimal advancePeakAmount;
|
||||
/**
|
||||
* 合同金额
|
||||
*/
|
||||
|
@ -192,13 +192,13 @@ public class Project {
|
|||
@Column(name = "plan_end_str")
|
||||
private String planEndStr;
|
||||
|
||||
@Transient
|
||||
private String underwrittenModeDesc;
|
||||
@Column(name = "underwritten_mode_str")
|
||||
private String underwrittenModeStr;
|
||||
|
||||
@Column(name = "certainty")
|
||||
private String certainty;
|
||||
private Integer certainty;
|
||||
|
||||
@Transient
|
||||
@Column(name = "certainty_str")
|
||||
private String certaintyStr;
|
||||
|
||||
@Column(name = "gross_profit")
|
||||
|
@ -223,21 +223,21 @@ public class Project {
|
|||
private Date bidsTime;
|
||||
|
||||
@Column(name = "is_second")
|
||||
private int isSecond;
|
||||
private Integer isSecond;
|
||||
|
||||
@Transient
|
||||
@Column(name = "is_second_str")
|
||||
private String isSecondStr;
|
||||
|
||||
@Column(name = "sign_type")
|
||||
private int signType;
|
||||
private Integer signType;
|
||||
|
||||
@Transient
|
||||
@Column(name = "sign_type_str")
|
||||
private String signTypeStr;
|
||||
|
||||
@Column(name = "resolve_plan")
|
||||
private int resolvePlan;
|
||||
private Integer resolvePlan;
|
||||
|
||||
@Transient
|
||||
@Column(name = "resolve_plan_str")
|
||||
private String resolvePlanStr;
|
||||
|
||||
@Column(name = "main_contract_resolve_plan")
|
||||
|
@ -255,6 +255,24 @@ public class Project {
|
|||
@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;
|
||||
|
||||
public int getId() {
|
||||
return id;
|
||||
}
|
||||
|
@ -344,6 +362,46 @@ public class Project {
|
|||
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;
|
||||
}
|
||||
|
@ -440,6 +498,22 @@ public class Project {
|
|||
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;
|
||||
}
|
||||
|
@ -528,53 +602,6 @@ public class Project {
|
|||
this.lastUpdateTime = lastUpdateTime;
|
||||
}
|
||||
|
||||
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 getStartDateYM(){
|
||||
return DatetimeUtils.toStr(this.startDate,"yyyy-MM");
|
||||
}
|
||||
public String getEndDateYM(){
|
||||
return DatetimeUtils.toStr(this.endDate,"yyyy-MM");
|
||||
}
|
||||
|
||||
public String getPlanStartStr() {
|
||||
return planStartStr;
|
||||
}
|
||||
|
@ -591,19 +618,19 @@ public class Project {
|
|||
this.planEndStr = planEndStr;
|
||||
}
|
||||
|
||||
public String getUnderwrittenModeDesc() {
|
||||
return underwrittenModeDesc;
|
||||
public String getUnderwrittenModeStr() {
|
||||
return underwrittenModeStr;
|
||||
}
|
||||
|
||||
public void setUnderwrittenModeDesc(String underwrittenModeDesc) {
|
||||
this.underwrittenModeDesc = underwrittenModeDesc;
|
||||
public void setUnderwrittenModeStr(String underwrittenModeStr) {
|
||||
this.underwrittenModeStr = underwrittenModeStr;
|
||||
}
|
||||
|
||||
public String getCertainty() {
|
||||
public Integer getCertainty() {
|
||||
return certainty;
|
||||
}
|
||||
|
||||
public void setCertainty(String certainty) {
|
||||
public void setCertainty(Integer certainty) {
|
||||
this.certainty = certainty;
|
||||
}
|
||||
|
||||
|
@ -671,6 +698,14 @@ public class Project {
|
|||
this.bidsTime = bidsTime;
|
||||
}
|
||||
|
||||
public Integer getIsSecond() {
|
||||
return isSecond;
|
||||
}
|
||||
|
||||
public void setIsSecond(Integer isSecond) {
|
||||
this.isSecond = isSecond;
|
||||
}
|
||||
|
||||
public String getIsSecondStr() {
|
||||
return isSecondStr;
|
||||
}
|
||||
|
@ -679,6 +714,14 @@ public class Project {
|
|||
this.isSecondStr = isSecondStr;
|
||||
}
|
||||
|
||||
public Integer getSignType() {
|
||||
return signType;
|
||||
}
|
||||
|
||||
public void setSignType(Integer signType) {
|
||||
this.signType = signType;
|
||||
}
|
||||
|
||||
public String getSignTypeStr() {
|
||||
return signTypeStr;
|
||||
}
|
||||
|
@ -687,6 +730,14 @@ public class Project {
|
|||
this.signTypeStr = signTypeStr;
|
||||
}
|
||||
|
||||
public Integer getResolvePlan() {
|
||||
return resolvePlan;
|
||||
}
|
||||
|
||||
public void setResolvePlan(Integer resolvePlan) {
|
||||
this.resolvePlan = resolvePlan;
|
||||
}
|
||||
|
||||
public String getResolvePlanStr() {
|
||||
return resolvePlanStr;
|
||||
}
|
||||
|
@ -735,27 +786,51 @@ public class Project {
|
|||
this.ziguangRound = ziguangRound;
|
||||
}
|
||||
|
||||
public int getIsSecond() {
|
||||
return isSecond;
|
||||
public String getHuizhiRound() {
|
||||
return huizhiRound;
|
||||
}
|
||||
|
||||
public void setIsSecond(int isSecond) {
|
||||
this.isSecond = isSecond;
|
||||
public void setHuizhiRound(String huizhiRound) {
|
||||
this.huizhiRound = huizhiRound;
|
||||
}
|
||||
|
||||
public int getSignType() {
|
||||
return signType;
|
||||
public String getHuasanRound() {
|
||||
return huasanRound;
|
||||
}
|
||||
|
||||
public void setSignType(int signType) {
|
||||
this.signType = signType;
|
||||
public void setHuasanRound(String huasanRound) {
|
||||
this.huasanRound = huasanRound;
|
||||
}
|
||||
|
||||
public int getResolvePlan() {
|
||||
return resolvePlan;
|
||||
public String getGrossProfitRound() {
|
||||
return grossProfitRound;
|
||||
}
|
||||
|
||||
public void setResolvePlan(int resolvePlan) {
|
||||
this.resolvePlan = resolvePlan;
|
||||
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;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -122,4 +122,14 @@ public class ProjectBudgetCostDetailBase {
|
|||
//不含税总金额=含税总金额/(1+税率)
|
||||
return totalTaxInclude.divide(taxRate.divide(new BigDecimal(100), 2, BigDecimal.ROUND_HALF_UP).add(new BigDecimal(1)), 2, BigDecimal.ROUND_HALF_UP);
|
||||
}
|
||||
|
||||
public BigDecimal getTotalTax(){
|
||||
BigDecimal totalTaxInclude = getTotalTaxInclude();
|
||||
if(null == totalTaxInclude || taxRate == null){
|
||||
return null;
|
||||
}
|
||||
|
||||
//不含税总金额=含税总金额/(1+税率)
|
||||
return totalTaxInclude.multiply(taxRate.divide(new BigDecimal(100), 2, BigDecimal.ROUND_HALF_UP)).divide(taxRate.divide(new BigDecimal(100), 2, BigDecimal.ROUND_HALF_UP).add(new BigDecimal(1)), 2, BigDecimal.ROUND_HALF_UP);
|
||||
}
|
||||
}
|
|
@ -113,4 +113,15 @@ public class ProjectBudgetIncomeDetailBase {
|
|||
BigDecimal bigDecimal = taxRate.divide(new BigDecimal(100), 2, BigDecimal.ROUND_HALF_UP).add(new BigDecimal(1));
|
||||
return totalTaxInclude.divide(bigDecimal, 2, BigDecimal.ROUND_HALF_UP);
|
||||
}
|
||||
|
||||
public BigDecimal getTotalTax(){
|
||||
BigDecimal totalTaxInclude = getTotalTaxInclude();
|
||||
if(null == totalTaxInclude || taxRate == null){
|
||||
return null;
|
||||
}
|
||||
|
||||
//不含税总金额=含税总金额/(1+税率)
|
||||
BigDecimal bigDecimal = taxRate.divide(new BigDecimal(100), 2, BigDecimal.ROUND_HALF_UP).add(new BigDecimal(1));
|
||||
return totalTaxInclude.multiply(taxRate.divide(new BigDecimal(100), 2, BigDecimal.ROUND_HALF_UP)).divide(bigDecimal, 2, BigDecimal.ROUND_HALF_UP);
|
||||
}
|
||||
}
|
|
@ -8,6 +8,7 @@ import org.springframework.stereotype.Service;
|
|||
import top.jfunc.common.db.bean.Page;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
|
||||
|
@ -26,4 +27,8 @@ public class MonthlySettleService {
|
|||
public String check(Collection<Map> maps) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public List<MonthlySettle> findOne(String id, String time, String projectName) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -46,13 +46,16 @@ public class ProjectService {
|
|||
private ProjectInstanceService projectInstanceService;
|
||||
@Autowired
|
||||
private ProjectBudgetService projectBudgetService;
|
||||
@Autowired
|
||||
private NumSeqService numSeqService;
|
||||
|
||||
private QueryHelper getQueryHelper(Map<String, String> searchInfo) {
|
||||
/*"CASE p.type WHEN 1 THEN '工程集成类' WHEN 2 THEN '设备集成类' WHEN 3 THEN '战略合作类' ELSE '未知' AS typeDesc," +
|
||||
"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.*, 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");
|
||||
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");
|
||||
if(StrUtil.isNotEmpty(searchInfo.get("status")) && !"-1".equals(searchInfo.get("status"))){
|
||||
queryHelper.addCondition("p.status=?", Integer.parseInt(searchInfo.get("status")));
|
||||
}
|
||||
|
@ -151,7 +154,14 @@ public class ProjectService {
|
|||
|
||||
|
||||
public Project addProject(Project project, Admin admin, ApproveStatusEnum approveStatusEnum) {
|
||||
String projectNo = numSeqService.generate();
|
||||
project.setProjectNo(projectNo);
|
||||
project.setTypeDesc(TypeEnum.parseType(project.getType()).getTypeDesc());
|
||||
project.setUnderwrittenModeStr(UnderwrittenModeEnum.parseUnderwrittenMode(project.getUnderwrittenMode()).getUnderwrittenModeStr());
|
||||
project.setCertaintyStr(CertaintyEnum.parseCertainty(project.getCertainty()).getCertaintyStr());
|
||||
project.setIsSecondStr(IsSecondEnum.parseIsSecond(project.getIsSecond()).getIsSecondStr());
|
||||
project.setSignTypeStr(SignTypeEnum.parseSignType(project.getSignType()).getSignTypeStr());
|
||||
project.setResolvePlanStr(ResolvePlanEnum.parseResolvePlan(project.getResolvePlan()).getResolvePlanStr());
|
||||
project.setStatus(StatusEnum.ESTIMATE_ACCOUNTS.getStatus());
|
||||
project.setStatusDesc(StatusEnum.ESTIMATE_ACCOUNTS.getStatusDesc());
|
||||
project.setApproveStatusEstimate(approveStatusEnum.getApproveStatus());
|
||||
|
@ -188,6 +198,7 @@ public class ProjectService {
|
|||
projectInDb.setType(project.getType());
|
||||
projectInDb.setTypeDesc(TypeEnum.parseType(project.getType()).getTypeDesc());
|
||||
projectInDb.setUnderwrittenMode(project.getUnderwrittenMode());
|
||||
projectInDb.setUnderwrittenModeStr(UnderwrittenModeEnum.parseUnderwrittenMode(project.getUnderwrittenMode()).getUnderwrittenModeStr());
|
||||
|
||||
projectInDb.setStartDate(project.getStartDate());
|
||||
projectInDb.setEndDate(project.getEndDate());
|
||||
|
|
|
@ -515,6 +515,7 @@ function bindChangeableInput() {
|
|||
|
||||
$(this).parent().parent().find(".input-changeable-total-tax-include").val(f2Fixed(amount * price));
|
||||
$(this).parent().parent().find(".input-changeable-total-tax-exclude").val(f2Fixed(amount * price / (1 + taxRate / 100)));
|
||||
$(this).parent().parent().find(".input-changeable-total-tax").val(f2Fixed(amount * price * taxRate /(100 + taxRate)));
|
||||
});
|
||||
//单价改变
|
||||
$(".input-changeable-price").change(function () {
|
||||
|
@ -526,6 +527,7 @@ function bindChangeableInput() {
|
|||
|
||||
$(this).parent().parent().find(".input-changeable-total-tax-include").val(f2Fixed(amount * price));
|
||||
$(this).parent().parent().find(".input-changeable-total-tax-exclude").val(f2Fixed(amount * price / (1 + taxRate / 100)));
|
||||
$(this).parent().parent().find(".input-changeable-total-tax").val(f2Fixed(amount * price * taxRate /(100 + taxRate)));
|
||||
$(this).val(f5Price(price));
|
||||
console.log("单价:" + $(this).val());
|
||||
});
|
||||
|
@ -538,6 +540,7 @@ function bindChangeableInput() {
|
|||
console.log(amount, price, taxRate);
|
||||
|
||||
$(this).parent().parent().find(".input-changeable-total-tax-exclude").val(f2Fixed(amount * price / (1 + taxRate / 100)));
|
||||
$(this).parent().parent().find(".input-changeable-total-tax").val(f2Fixed(amount * price * taxRate /(100 + taxRate)));
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -673,6 +676,9 @@ function updateCostDataIfUnsubmit(details) {
|
|||
|
||||
calCostExclude();
|
||||
calCostInclude();
|
||||
var costTotalTaxInclude = inputVal("costTotalTaxInclude");
|
||||
var costTotalTaxExclude = inputVal("costTotalTaxExclude");
|
||||
$("input[name='costTotalTax']").val(f2Fixed(f2(costTotalTaxInclude) - f2(costTotalTaxExclude)));
|
||||
|
||||
updateProjectContributionProfitRate();
|
||||
}
|
||||
|
@ -712,6 +718,8 @@ function updateIncomeDataUnsubmit(incomeDetails) {
|
|||
|
||||
$("input[name='incomeTotalTaxInclude']").val(f2Fixed(deviceTaxInclude+engineerTaxInclude+serviceTaxInclude));
|
||||
$("input[name='incomeTotalTaxExclude']").val(f2Fixed(deviceTaxExclude+engineerTaxExclude+serviceTaxExclude));
|
||||
$("input[name='incomeTotalTax']").val(f2Fixed(deviceTaxInclude+engineerTaxInclude+serviceTaxInclude-(deviceTaxExclude+engineerTaxExclude+serviceTaxExclude)));
|
||||
$("input[name='costCompanyManageTaxExclude']").val(f2Fixed(0.028*(deviceTaxInclude+engineerTaxInclude+serviceTaxInclude)));
|
||||
|
||||
|
||||
$(".input-total-title-sale-income-budget-plan").val($("input[name='incomeTotalTaxInclude']").val());
|
||||
|
|
|
@ -143,6 +143,7 @@ function appendTrIncome() {
|
|||
' <td><input type="text" min="0.00" max="99.99" step="0.01" maxlength="5" class="number am-modal-prompt-input am-modal-prompt-input-income input-changeable-tax-rate input-changeable-tax-rate-income"></td>\n' +
|
||||
' <td><input type="text" class="am-modal-prompt-input am-modal-prompt-input-income input-changeable-total-tax-include input-changeable-total-tax-include-income" readonly></td>\n' +
|
||||
' <td><input type="text" class="am-modal-prompt-input am-modal-prompt-input-income input-changeable-total-tax-exclude input-changeable-total-tax-exclude-income" readonly></td>\n' +
|
||||
' <td><input type="text" class="am-modal-prompt-input am-modal-prompt-input-income input-changeable-total-tax-exclude input-changeable-total-tax-income" readonly></td>\n' +
|
||||
' <td><button type="button" style="margin-top: 10px" class="am-btn am-btn-danger am-btn-xs am-round am-modal-line-delete"><span class="am-icon-minus"></span></button></td>\n' +
|
||||
' </tr>';
|
||||
$("#incomeTotal").before(template);
|
||||
|
|
|
@ -27,17 +27,17 @@
|
|||
<!--验证表单元素(validate) begin-->
|
||||
|
||||
<div class="am-g am-form-group am-margin-top">
|
||||
<div class="am-u-sm-4 am-u-md-2 am-text-right"><input readonly style="text-align: right;width: 69px;margin-bottom: 6px;" value="项目编号"></div>
|
||||
<div class="am-u-sm-4 am-u-md-2 am-text-right"><input readonly style="text-align: right;width: 69px; margin-bottom: 13px;" value="月份"></div>
|
||||
<div class="am-u-sm-6 am-u-md-6">
|
||||
<input readonly type="text" style="word-break: break-word; border:0 none;outline:none;" readonly value="${monthlySettle.projectNo!}">
|
||||
<input readonly value="${monthlySettle.month}"></input>
|
||||
</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"><input readonly style="text-align: right;width: 69px; margin-bottom: 13px;" value="部门名称"></div>
|
||||
<div class="am-u-sm-4 am-u-md-2 am-text-right"><input readonly style="text-align: right;width: 69px;margin-bottom: 6px;" value="项目编号"></div>
|
||||
<div class="am-u-sm-6 am-u-md-6">
|
||||
<input readonly value="${monthlySettle.deptName}"></input>
|
||||
<input readonly type="text" style="word-break: break-word; border:0 none;outline:none;" value="${monthlySettle.projectNo!}">
|
||||
</div>
|
||||
<div class="am-u-sm-2 am-u-md-4 input-msg"></div>
|
||||
</div>
|
||||
|
@ -45,7 +45,7 @@
|
|||
<div class="am-g am-form-group am-margin-top">
|
||||
<div class="am-u-sm-4 am-u-md-2 am-text-right"><input readonly style="text-align: right;width: 69px;margin-bottom: 6px;" value="项目名称"></div>
|
||||
<div class="am-u-sm-6 am-u-md-6">
|
||||
<input readonly type="text" style="word-break: break-word; border:0 none;outline:none;" value="${monthlySettle.name}">
|
||||
<input readonly type="text" style="word-break: break-word; border:0 none;outline:none;" value="${monthlySettle.projectName!}">
|
||||
</div>
|
||||
<div class="am-u-sm-2 am-u-md-4 input-msg"></div>
|
||||
</div>
|
||||
|
@ -53,180 +53,199 @@
|
|||
<div class="am-g am-form-group am-margin-top">
|
||||
<div class="am-u-sm-4 am-u-md-2 am-text-right"><input readonly style="text-align: right;width: 69px ;margin-bottom: 12px;" value="项目类型"></div>
|
||||
<div class="am-u-sm-6 am-u-md-6">
|
||||
<input readonly type="text" style="word-break: break-word; border:0 none;outline:none;" value="${monthlySettle.name}">
|
||||
<input readonly type="text" style="word-break: break-word; border:0 none;outline:none;" value="${monthlySettle.projectType!}">
|
||||
</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"><input readonly style="text-align: right;width: 134px ;margin-bottom: 6px;" value="项目计划开始时间"></div>
|
||||
<div class="am-u-sm-4 am-u-md-2 am-text-right"><input readonly style="text-align: right;width: 69px;margin-bottom: 6px;" value="合同编号"></div>
|
||||
<div class="am-u-sm-6 am-u-md-6">
|
||||
<input readonly value="${project.startDate?string("yyyy-MM-dd")}"></input>
|
||||
<input readonly type="text" style="word-break: break-word; border:0 none;outline:none;" value="${monthlySettle.contractNo!}">
|
||||
</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"><input readonly style="text-align: right;width: 134px ;margin-bottom: 6px;" value="项目计划结束时间"></div>
|
||||
<div class="am-u-sm-4 am-u-md-2 am-text-right"><input readonly style="text-align: right;width: 69px;margin-bottom: 6px;" value="合同方"></div>
|
||||
<div class="am-u-sm-6 am-u-md-6">
|
||||
<input readonly value="${project.endDate?string("yyyy-MM-dd")}"></input>
|
||||
<input readonly type="text" style="word-break: break-word; border:0 none;outline:none;" value="${monthlySettle.contractParty!}">
|
||||
</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"><input readonly style="text-align: right;width: 69px ;margin-bottom: 12px;" value="垫资模式"></div>
|
||||
<div class="am-u-sm-4 am-u-md-2 am-text-right"><input readonly style="text-align: right;width: 69px ;margin-bottom: 12px;" value="合同金额"></div>
|
||||
<div class="am-u-sm-6 am-u-md-6">
|
||||
<span>
|
||||
<#if (project.underwrittenMode) =1>
|
||||
<input readonly value="A类-不垫资(战略合作)">
|
||||
<#elseif (project.underwrittenMode) =2>
|
||||
<input readonly value="B类-不垫资(背靠背)">
|
||||
<#elseif (project.underwrittenMode) =3>
|
||||
<input readonly value="C类-垫资(账期覆盖)">
|
||||
<#elseif (project.underwrittenMode) =4>
|
||||
<input readonly value="D类-垫资(账期不覆盖)">
|
||||
</#if>
|
||||
</span>
|
||||
<input readonly type="text" style="word-break: break-word; border:0 none;outline:none;" value="${Utils.format(monthlySettle.contractAmount)}元">
|
||||
</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"><input readonly style="text-align: right;width: 69px ;margin-bottom: 12px;" value="合作对象"></div>
|
||||
<div class="am-u-sm-4 am-u-md-2 am-text-right"><input readonly style="text-align: right;width: 134px ;margin-bottom: 6px;" value="合同签订时间"></div>
|
||||
<div class="am-u-sm-6 am-u-md-6">
|
||||
<input readonly value="${project.collaborator!}" />
|
||||
</div>
|
||||
|
||||
<div class="am-form-file am-text-xs">
|
||||
<button type="button" class="am-btn am-btn-primary am-btn-sm">
|
||||
<i class="am-icon-cloud-upload"></i> 下载附件
|
||||
</button>
|
||||
<input id="fileupload_button_icon" type="file" name="files[]" multiple>
|
||||
</div>
|
||||
<!-- The global progress bar -->
|
||||
<div id="progress-area-icon" class="am-margin-top-sm am-hide">
|
||||
<div id="progress-text-icon" class="am-text-xs am-text-right"></div>
|
||||
<div id="progress" class="am-progress am-progress-xs">
|
||||
<div class="am-progress-bar" style="width: 0%"></div>
|
||||
</div>
|
||||
</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"><input readonly style="text-align: right;width: 69px ;margin-bottom: 12px;" value="项目把握度"></div>
|
||||
<div class="am-u-sm-6 am-u-md-6">
|
||||
<span>
|
||||
<#if (project.certainty) =1>
|
||||
<input readonly value="A:基本确定中标,待签合同,合同签订中">
|
||||
<#elseif (project.certainty) =2>
|
||||
<input readonly value="B:客户产品参数、商务评分、商务资质引导成功">
|
||||
<#elseif (project.certainty) =3>
|
||||
<input readonly value="C:项目初期引导阶段">
|
||||
</#if>
|
||||
</span>
|
||||
<input readonly value="${monthlySettle.contractSignTime?string("yyyy-MM-dd")}"></input>
|
||||
</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"><input readonly style="text-align: right;width: 100px;margin-bottom: 12px;" value="行业场景应用"></div>
|
||||
<div class="am-u-sm-4 am-u-md-2 am-text-right"><input readonly style="text-align: right;width: 134px ;margin-bottom: 6px;" value="最终业主"></div>
|
||||
<div class="am-u-sm-6 am-u-md-6">
|
||||
<input readonly value="${project.industryScenario}"></input>
|
||||
<input readonly value="${monthlySettle.owner!}"></input>
|
||||
</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"><input readonly style="text-align: right;width: 69px ;margin-bottom: 6px;" value="客户名称"></div>
|
||||
<div class="am-u-sm-4 am-u-md-2 am-text-right"><input readonly style="text-align: right;width: 69px ;margin-bottom: 12px;" value="累计已收款"></div>
|
||||
<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.customer}</textarea>-->
|
||||
<input readonly type="text" style="word-break: break-word; border:0 none;outline:none;" value="${project.customer}">
|
||||
<input readonly value="${Utils.format(monthlySettle.totalCollect)}元"></input>
|
||||
</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"><input readonly style="text-align: right;width: 100px ;margin-bottom: 6px;" value="终端客户名称"></div>
|
||||
<div class="am-u-sm-4 am-u-md-2 am-text-right"><input readonly style="text-align: right;width: 100px;margin-bottom: 12px;" value="已采购累计付款"></div>
|
||||
<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.terminalCustomer}</textarea>-->
|
||||
<input readonly type="text" style="word-break: break-word; border:0 none;outline:none;" value="${project.terminalCustomer}">
|
||||
<input readonly value="${Utils.format(monthlySettle.totalPurchasedPaid)}元"></input>
|
||||
</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"><input readonly style="text-align: right;width: 69px;margin-bottom: 12px;" value="合同金额"></div>
|
||||
<div class="am-u-sm-4 am-u-md-2 am-text-right"><input readonly style="text-align: right;width: 69px ;margin-bottom: 6px;" value="已采购累计未付款"></div>
|
||||
<div class="am-u-sm-6 am-u-md-6">
|
||||
<input readonly value="${Utils.format(project.contractAmount)}元"></input>
|
||||
<input readonly type="text" style="word-break: break-word; border:0 none;outline:none;" value="${Utils.format(monthlySettle.totalPurchasedUnpaid)}元">
|
||||
</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"><input readonly style="text-align: right;width: 69px ;margin-bottom: 12px;" value="项目毛利"></div>
|
||||
<div class="am-u-sm-4 am-u-md-2 am-text-right"><input readonly style="text-align: right;width: 100px ;margin-bottom: 6px;" value="超期垫资金额"></div>
|
||||
<div class="am-u-sm-6 am-u-md-6">
|
||||
<input readonly value="${Utils.format(project.grossProfit)}" />
|
||||
<input readonly type="text" style="word-break: break-word; border:0 none;outline:none;" value="${Utils.format(monthlySettle.timeOutAmount)}元">
|
||||
</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><input readonly style="text-align: right;width: 69px ;margin-bottom: 12px;" value="项目毛利率"></div>
|
||||
<div class="am-u-sm-4 am-u-md-2 am-text-right"><input readonly style="text-align: right;width: 69px;margin-bottom: 12px;" value="销售累计开票金额"></div>
|
||||
<div class="am-u-sm-6 am-u-md-6">
|
||||
<input readonly value="${Utils.format(project.grossProfitMargin)}" />
|
||||
<input readonly value="${Utils.format(monthlySettle.totalBillAmount)}元"></input>
|
||||
</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"><input readonly style="text-align: right;margin-left: 10px;margin-left: -15px" value="华智产品金额"></div>
|
||||
<div class="am-u-sm-4 am-u-md-2 am-text-right"><input readonly style="text-align: right;width: 69px ;margin-bottom: 12px;" value="销售经理"></div>
|
||||
<div class="am-u-sm-6 am-u-md-6">
|
||||
<input readonly value="${Utils.format(project.huazhiProductAmount, '0.00')}元"></input>
|
||||
<input readonly value="${monthlySettle.saleManager!}" />
|
||||
</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"><input readonly style="text-align: right;margin-left: -15px" value="汇智产品金额"></div>
|
||||
<div class="am-u-sm-4 am-u-md-2 am-text-right"><input readonly style="text-align: right;width: 69px ;margin-bottom: 12px;" value="项目经理"></div>
|
||||
<div class="am-u-sm-6 am-u-md-6">
|
||||
<input readonly value="${Utils.format(project.huizhiProductAmount, '0.00')}元"></input>
|
||||
<input readonly value="${monthlySettle.projectManager!}" />
|
||||
</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"><input readonly style="text-align: right;margin-left: 10px;margin-left: -15px" value="华三产品金额"></div>
|
||||
<div class="am-u-sm-4 am-u-md-2 am-text-right"><input readonly style="text-align: right;margin-left: 10px;margin-left: -15px" value="收款节点"></div>
|
||||
<div class="am-u-sm-6 am-u-md-6">
|
||||
<input readonly value="${Utils.format(project.huasanProductAmount, '0.00')}元"></input>
|
||||
<input readonly value="${monthlySettle.collectPoint!}"></input>
|
||||
</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"><input readonly style="text-align: right;margin-left: -15px" value="其他产品金额"></div>
|
||||
<div class="am-u-sm-4 am-u-md-2 am-text-right"><input readonly style="text-align: right;margin-left: -15px" value="收款要求时间"></div>
|
||||
<div class="am-u-sm-6 am-u-md-6">
|
||||
<input readonly value="${Utils.format(project.ziguangOtherAmount, '0.00')}元"></input>
|
||||
<input readonly value="${monthlySettle.contractSignTime?string("yyyy-MM-dd")}"></input>
|
||||
</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><input readonly style="text-align: right;width: 116px;margin-top: -6px;" value="主合同收款条款"></div>
|
||||
<div class="am-u-sm-4 am-u-md-2 am-text-right"><input readonly style="text-align: right;margin-left: 10px;margin-left: -15px" value="收款金额"></div>
|
||||
<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.mainContractCollectionTerms!}</textarea>
|
||||
<input readonly value="${Utils.format(monthlySettle.collectAmount)}元"></input>
|
||||
</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><input readonly style="text-align: right;width: 90px;margin-top: -6px;" value="价值及风险"></div>
|
||||
<div class="am-u-sm-4 am-u-md-2 am-text-right"><input readonly style="text-align: right;margin-left: -15px" value="实际收款时间"></div>
|
||||
<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.valueRisk!}</textarea>
|
||||
<input readonly value="${monthlySettle.collectActualTime?string("yyyy-MM-dd")}"></input>
|
||||
</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"><input readonly style="text-align: right;width: 100px;margin-bottom: 12px;" value="实际收款金额"></div>
|
||||
<div class="am-u-sm-6 am-u-md-6">
|
||||
<input readonly value="${Utils.format(monthlySettle.collectActualAmount)}元"></input>
|
||||
</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"><input readonly style="text-align: right;width: 69px ;margin-bottom: 6px;" value="实际欠收金额"></div>
|
||||
<div class="am-u-sm-6 am-u-md-6">
|
||||
<input readonly type="text" style="word-break: break-word; border:0 none;outline:none;" value="${Utils.format(monthlySettle.uncollectActualAmount)}元">
|
||||
</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"><input readonly style="text-align: right;width: 100px ;margin-bottom: 6px;" value="超期天数"></div>
|
||||
<div class="am-u-sm-6 am-u-md-6">
|
||||
<input readonly type="text" style="word-break: break-word; border:0 none;outline:none;" value="${monthlySettle.timeOutDay!}">
|
||||
</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"><input readonly style="text-align: right;width: 69px;margin-bottom: 12px;" value="到货证明"></div>
|
||||
<div class="am-u-sm-6 am-u-md-6">
|
||||
<input readonly value="${monthlySettle.productCertificate!}"></input>
|
||||
</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"><input readonly style="text-align: right;width: 69px ;margin-bottom: 12px;" value="验收报告时间"></div>
|
||||
<div class="am-u-sm-6 am-u-md-6">
|
||||
<input readonly value="${monthlySettle.inspectionReportTime?string("yyyy-MM-dd")}" />
|
||||
</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"><input readonly style="text-align: right;width: 69px;margin-bottom: 12px;" value="项目风险预警"></div>
|
||||
<div class="am-u-sm-6 am-u-md-6">
|
||||
<input readonly value="${monthlySettle.riskWarning!}"></input>
|
||||
</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"><input readonly style="text-align: right;width: 69px ;margin-bottom: 12px;" value="已计收金额"></div>
|
||||
<div class="am-u-sm-6 am-u-md-6">
|
||||
<input readonly value="${Utils.format(monthlySettle.calColAmount)}元" />
|
||||
</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"><input readonly style="text-align: right;margin-left: 10px;margin-left: -15px" value="未计收金额"></div>
|
||||
<div class="am-u-sm-6 am-u-md-6">
|
||||
<input readonly value="${Utils.format(monthlySettle.uncalColAmount)}元"></input>
|
||||
</div>
|
||||
<div class="am-u-sm-2 am-u-md-4 input-msg"></div>
|
||||
</div>
|
||||
|
@ -234,9 +253,29 @@
|
|||
<!--验证表单元素(validate end-->
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!--选项卡(tabs)end-->
|
||||
<div class="am-margin">
|
||||
<button type="button" class="am-btn am-btn-warning am-btn-xs" onclick="javascript:history.go(-1);">返回上一级</button>
|
||||
<button type="button" class="am-btn am-btn-primary am-btn-xs" id="exportSingle">导出</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</@defaultLayout.layout>
|
||||
<script>
|
||||
|
||||
/**
|
||||
*导出数据
|
||||
*/
|
||||
$("#exportSingle").on('click', function(event) {
|
||||
var time = $("#time").val();
|
||||
var id = $("#id").val();
|
||||
var projectName = $("#projectName").val();
|
||||
location.href = "${base}/monthlySettle/exportSingle?id=" + id + "&time=" + time + "&projectName=" + projectName;
|
||||
});
|
||||
|
||||
</script>
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -140,13 +140,9 @@
|
|||
<div class="am-btn-toolbar" style="padding-left:.5rem;">
|
||||
<div class="am-btn-group am-btn-group-xs">
|
||||
<div class="am-btn-group am-btn-group-xs am-form-file">
|
||||
<button type="button" id="bt_import" class="am-btn am-btn-default">
|
||||
<span class="am-icon-archive"></span>
|
||||
批量导入
|
||||
<button type="button" id="importAccount" onclick="windows()" class="am-btn am-btn-default"><span
|
||||
class="am-icon-archive"></span> 批量导入
|
||||
</button>
|
||||
<input id="doc-form-file" type="file" name="file"
|
||||
onChange="ajaxUploadFile('doc-form-file','${base}/monthlySettle/batchImport')"
|
||||
multiple>
|
||||
</div>
|
||||
<button type="button" class="am-btn am-btn-default"
|
||||
onclick="location.href='${base}/monthlySettle/template'">
|
||||
|
@ -257,40 +253,47 @@
|
|||
<script src="${base}/common/jQuery-File-Upload/js/jquery.fileupload-validate.js"></script>
|
||||
<script src="../assets/js/amazeui.switch.js"></script>
|
||||
<script type="text/javascript">
|
||||
// $(function () {
|
||||
// layui.use('laydate', function(){
|
||||
// var laydate = layui.laydate;
|
||||
//
|
||||
// var keywordsObj = {};
|
||||
// $("#submit-btn").on("click", function () {
|
||||
// if ($("#realName").val())
|
||||
// keywordsObj.realName = $("#realName").val();
|
||||
// if ($("#telephone").val())
|
||||
// keywordsObj.telephone = $("#telephone").val();
|
||||
// if ($("#userName").val())
|
||||
// keywordsObj.userName = $("#userName").val();
|
||||
// if ($("#deptId").val())
|
||||
// keywordsObj.deptId = $("#deptId").val();
|
||||
// if ($("#roleId").val())
|
||||
// keywordsObj.roleId = $("#roleId").val();
|
||||
// if ($("#workLocation").val())
|
||||
// keywordsObj.workLocation = $("#workLocation").val();
|
||||
// if ($("#startTime").val())
|
||||
// keywordsObj.startTime = $("#startTime").val();
|
||||
// if ($("#endTime").val())
|
||||
// keywordsObj.endTime = $("#endTime").val();
|
||||
// var startTime = $("#startTime").val();
|
||||
// var endTime = $("#endTime").val();
|
||||
// if(startTime > endTime){
|
||||
// window.confirm('开始日期应早于结束日期');
|
||||
// laydate.render({
|
||||
// elem: '#time',
|
||||
// type: 'month',
|
||||
// btns: ['confirm'],
|
||||
// trigger: 'click',
|
||||
// ready: function(date){
|
||||
// console.log(date);
|
||||
// }
|
||||
// var keywords = "";
|
||||
// if (!$.isEmptyObject(keywordsObj)) {
|
||||
// keywords = JSON.stringify(keywordsObj);
|
||||
// }
|
||||
// $("#keywords").val(keywords);
|
||||
// $("#listForm").submit();
|
||||
// });
|
||||
// });
|
||||
|
||||
function windows() {
|
||||
layui.use('layer', function(){
|
||||
var layer = layui.layer;
|
||||
var html = '<input type="text" name="layTime" id="layTime" class="form-control layer-date" readonly required value="${time!}">\n' +
|
||||
'<input id="doc-form-file" type="file" name="file" onChange="ajaxUploadFile(\'doc-form-file\',\'${base}/monthlySettle/batchImport\')">'
|
||||
layer.open({
|
||||
type: 1,
|
||||
title: "请选择导入的月份",
|
||||
offset: '0px',
|
||||
id: 'layerDemo',
|
||||
content: html,
|
||||
area: ['400px', '400px'],
|
||||
success: function (layero, index) {
|
||||
layui.laydate.render({
|
||||
elem: "#layTime",
|
||||
type: 'month',
|
||||
btns: ['confirm'],
|
||||
trigger: 'click',
|
||||
ready: function(date){
|
||||
console.log(date);
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
});
|
||||
};
|
||||
|
||||
function ajaxUploadFile(id, url) {
|
||||
$.ajaxFileUpload({
|
||||
url: url,
|
||||
|
|
|
@ -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>
|
||||
|
@ -104,7 +104,7 @@
|
|||
<i class="am-icon-calendar"></i>
|
||||
<input type="text" class="am-form-field am-input-sm" id="startDate"
|
||||
name="startDate" autocomplete="off"
|
||||
value="${project.startDate?string("yyyy-MM-dd")}" placeholder="项目计划开始时间"
|
||||
value="${(project.startDate?string("yyyy-MM-dd"))!}" placeholder="项目计划开始时间"
|
||||
data-am-datepicker>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -117,7 +117,7 @@
|
|||
<i class="am-icon-calendar"></i>
|
||||
<input type="text" class="am-form-field am-input-sm" id="endDate"
|
||||
name="endDate" autocomplete="off"
|
||||
value="${project.endDate?string("yyyy-MM-dd")}" placeholder="项目计划结束时间"
|
||||
value="${(project.endDate?string("yyyy-MM-dd"))!}" placeholder="项目计划结束时间"
|
||||
data-am-datepicker>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -137,36 +137,42 @@
|
|||
<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" class="am-input" data-validate-async data-validation-message="请输入合作对象"
|
||||
name="collaborator" id="collaborator" placeholder="请输入合作对象" maxlength="20"
|
||||
value="${project.collaborator!}" />
|
||||
</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" class="am-input" data-validate-async data-validation-message="请输入合作对象"-->
|
||||
<#-- name="collaborator" id="collaborator" placeholder="请输入合作对象" maxlength="20"-->
|
||||
<#-- value="${project.collaborator!}" />-->
|
||||
<#-- </div>-->
|
||||
|
||||
<div class="am-form-file am-text-xs">
|
||||
<button type="button" class="am-btn am-btn-primary am-btn-sm">
|
||||
<i class="am-icon-cloud-upload"></i> 上传附件
|
||||
</button>
|
||||
<input id="fileupload_button_icon" type="file" name="files[]" multiple>
|
||||
</div>
|
||||
<!-- The global progress bar -->
|
||||
<div id="progress-area-icon" class="am-margin-top-sm am-hide">
|
||||
<div id="progress-text-icon" class="am-text-xs am-text-right"></div>
|
||||
<div id="progress" class="am-progress am-progress-xs">
|
||||
<div class="am-progress-bar" style="width: 0%"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<#-- <div class="am-form-file am-text-xs">-->
|
||||
<#-- <button type="button" class="am-btn am-btn-primary am-btn-sm">-->
|
||||
<#-- <i class="am-icon-cloud-upload"></i> 上传附件-->
|
||||
<#-- </button>-->
|
||||
<#-- <input id="fileupload_button_icon" type="file" name="files[]" multiple>-->
|
||||
<#-- </div>-->
|
||||
<#-- <!-- The global progress bar –>-->
|
||||
<#-- <div id="progress-area-icon" class="am-margin-top-sm am-hide">-->
|
||||
<#-- <div id="progress-text-icon" class="am-text-xs am-text-right"></div>-->
|
||||
<#-- <div id="progress" class="am-progress am-progress-xs">-->
|
||||
<#-- <div class="am-progress-bar" style="width: 0%"></div>-->
|
||||
<#-- </div>-->
|
||||
<#-- </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">
|
||||
<select data-am-selected id="certainty" name="certainty">
|
||||
<option value="1" <#if project.certainty=1>selected</#if>>A:基本确定中标,待签合同,合同签订中</option>
|
||||
<option value="2" <#if project.certainty=2>selected</#if>>B:客户产品参数、商务评分、商务资质引导成功</option>
|
||||
<option value="3" <#if project.certainty=3>selected</#if>>C:项目初期引导阶段</option>
|
||||
<#if project.certainty??>
|
||||
<option value="1" <#if project.certainty=1>selected</#if>>A:基本确定中标,待签合同,合同签订中</option>
|
||||
<option value="2" <#if project.certainty=2>selected</#if>>B:客户产品参数、商务评分、商务资质引导成功</option>
|
||||
<option value="3" <#if project.certainty=3>selected</#if>>C:项目初期引导阶段</option>
|
||||
<#else>
|
||||
<option value="1" >A:基本确定中标,待签合同,合同签订中</option>
|
||||
<option value="2" >B:客户产品参数、商务评分、商务资质引导成功</option>
|
||||
<option value="3" >C:项目初期引导阶段</option>
|
||||
</#if>
|
||||
</select>
|
||||
</div>
|
||||
<div class="am-u-sm-2 am-u-md-4 input-msg"></div>
|
||||
|
@ -187,7 +193,7 @@
|
|||
<div class="am-u-sm-6 am-u-md-6">
|
||||
<input type="text" class="am-input" data-validate-async data-validation-message="请输入客户名称(1000字符以内)"
|
||||
name="customer" placeholder="请输入客户名称(1000字符以内)" maxlength="1000"
|
||||
value="${project.customer}" required/>
|
||||
value="${project.customer!}" required/>
|
||||
</div>
|
||||
<div class="am-u-sm-2 am-u-md-4 input-msg"></div>
|
||||
</div>
|
||||
|
@ -197,7 +203,7 @@
|
|||
<div class="am-u-sm-6 am-u-md-6">
|
||||
<input type="text" class="am-input" data-validate-async data-validation-message="请输入终端客户名称(1000字符以内)"
|
||||
name="terminalCustomer" placeholder="请输入终端客户名称(1000字符以内)" maxlength="1000"
|
||||
value="${project.terminalCustomer}" required/>
|
||||
value="${project.terminalCustomer!}" required/>
|
||||
</div>
|
||||
<div class="am-u-sm-2 am-u-md-4 input-msg"></div>
|
||||
</div>
|
||||
|
@ -307,7 +313,7 @@
|
|||
<i class="am-icon-calendar"></i>
|
||||
<input type="text" class="am-form-field am-input-sm" id="contractTime"
|
||||
name="contractTime" autocomplete="off"
|
||||
value="${project.contractTime?string("yyyy-MM-dd")}" placeholder="预计合同签订时间"
|
||||
value="${(project.contractTime?string("yyyy-MM-dd"))!}" placeholder="预计合同签订时间"
|
||||
data-am-datepicker required>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -320,7 +326,7 @@
|
|||
<i class="am-icon-calendar"></i>
|
||||
<input type="text" class="am-form-field am-input-sm" id="bidsTime"
|
||||
name="bidsTime" autocomplete="off"
|
||||
value="${project.bidsTime?string("yyyy-MM-dd")}" placeholder="项目计划招标时间"
|
||||
value="${(project.bidsTime?string("yyyy-MM-dd"))!}" placeholder="项目计划招标时间"
|
||||
data-am-datepicker required>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -331,8 +337,13 @@
|
|||
<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">
|
||||
<select data-am-selected id="isSecond" name="isSecond">
|
||||
<option value="1" <#if project.isSecond=1>selected</#if>>是</option>
|
||||
<option value="2" <#if project.isSecond=2>selected</#if>>否</option>
|
||||
<#if project.isSecond??>
|
||||
<option value="1" <#if project.isSecond=1>selected</#if>>是</option>
|
||||
<option value="2" <#if project.isSecond=2>selected</#if>>否</option>
|
||||
<#else>
|
||||
<option value="1" >是</option>
|
||||
<option value="2" >否</option>
|
||||
</#if>
|
||||
</select>
|
||||
</div>
|
||||
<div class="am-u-sm-2 am-u-md-4 input-msg"></div>
|
||||
|
@ -342,7 +353,11 @@
|
|||
<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">
|
||||
<select data-am-selected id="signType" name="signType">
|
||||
<option value="1" <#if project.signType=1>selected</#if>>紫光汇智直接投标</option>
|
||||
<#if project.signType??>
|
||||
<option value="1" <#if project.signType=1>selected</#if>>紫光汇智直接投标</option>
|
||||
<#else>
|
||||
<option value="1" >紫光汇智直接投标</option>
|
||||
</#if>
|
||||
</select>
|
||||
</div>
|
||||
<div class="am-u-sm-2 am-u-md-4 input-msg"></div>
|
||||
|
@ -352,9 +367,15 @@
|
|||
<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">
|
||||
<select data-am-selected id="resolvePlan" name="resolvePlan">
|
||||
<option value="1" <#if project.resolvePlan=1>selected</#if>>公共服务(智慧交通、雪亮工程、治安防控体系等)</option>
|
||||
<option value="2" <#if project.resolvePlan=2>selected</#if>>泛行业(智慧园区、智慧医疗、智慧工地等)</option>
|
||||
<option value="3" <#if project.resolvePlan=3>selected</#if>>其他生态</option>
|
||||
<#if project.resolvePlan??>
|
||||
<option value="1" <#if project.resolvePlan=1>selected</#if>>公共服务(智慧交通、雪亮工程、治安防控体系等)</option>
|
||||
<option value="2" <#if project.resolvePlan=2>selected</#if>>泛行业(智慧园区、智慧医疗、智慧工地等)</option>
|
||||
<option value="3" <#if project.resolvePlan=3>selected</#if>>其他生态</option>
|
||||
<#else>
|
||||
<option value="1" >公共服务(智慧交通、雪亮工程、治安防控体系等)</option>
|
||||
<option value="2" >泛行业(智慧园区、智慧医疗、智慧工地等)</option>
|
||||
<option value="3" >其他生态</option>
|
||||
</#if>
|
||||
</select>
|
||||
</div>
|
||||
<div class="am-u-sm-2 am-u-md-4 input-msg"></div>
|
||||
|
@ -611,7 +632,7 @@
|
|||
<td></td>
|
||||
<td><input type="text" class="am-modal-prompt-input am-modal-prompt-input-income input-changeable-total-total-tax-include-income" value="${Utils.format(budgetBean.incomeTotalTaxInclude,'0')}" readonly></td>
|
||||
<td><input type="text" class="am-modal-prompt-input am-modal-prompt-input-income input-changeable-total-total-tax-exclude-income" value="${Utils.format(budgetBean.incomeTotalTaxExclude,'0')}" readonly></td>
|
||||
<td><input type="text" class="am-modal-prompt-input am-modal-prompt-input-income input-changeable-total-total-tax" value="${Utils.format(incomeDetail.incomeTotalTax,'0')}" readonly></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
</tr>
|
||||
|
||||
|
@ -696,7 +717,7 @@
|
|||
<td></td>
|
||||
<td><input type="text" class="am-modal-prompt-input am-modal-prompt-input-cost input-changeable-total-total-tax-include-cost" value="${Utils.format(budgetBean.costPurchaseTotalTaxInclude,'0')}" readonly></td>
|
||||
<td><input type="text" class="am-modal-prompt-input am-modal-prompt-input-cost input-changeable-total-total-tax-exclude-cost" value="${Utils.format(budgetBean.costPurchaseTotalTaxExclude,'0')}" readonly></td>
|
||||
<td><input type="text" class="am-modal-prompt-input am-modal-prompt-input-cost input-changeable-total-total-tax-cost" value="${Utils.format(budgetBean.costPurchaseTotalTax,'0')}" readonly></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
</tr>
|
||||
|
||||
|
@ -965,7 +986,7 @@
|
|||
<td><input type="text" class="number" name="incomeTotalTax" value="${Utils.format(budgetBean.incomeTotalTax,'0')}" required readonly title="此列累计"></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
备注:本表所用税率分别为:
|
||||
备注:本表所用税率分别为:${Utils.format(budgetBean.incomeTaxRates,'0')}
|
||||
</table>
|
||||
<span>成本</span>
|
||||
<#-- <span class="am-text-primary"><a style="cursor: pointer" id="cost-detail">采购成本明细表</a></span>
|
||||
|
@ -1038,7 +1059,7 @@
|
|||
<td><input type="text" class="number" name="costTotalTax" value="${Utils.format(budgetBean.costTotalTax,'0')}" readonly required title="此列累计"></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
备注:本表所用税率分别为:
|
||||
备注:本表所用税率分别为:${Utils.format(budgetBean.costTaxRates,'0')}
|
||||
</table>
|
||||
<span>管理</span>
|
||||
<#--<span class="am-text-primary budget-plan-detail"><a style="cursor: pointer">资金计划表</a></span>-->
|
||||
|
|
|
@ -30,9 +30,7 @@
|
|||
<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="${projectNo!}" readonly required />
|
||||
<span>保存后默认提供</span>
|
||||
</div>
|
||||
<div class="am-u-sm-2 am-u-md-4 input-msg"></div>
|
||||
</div>
|
||||
|
@ -99,28 +97,28 @@
|
|||
<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" class="am-input" data-validate-async data-validation-message="请输入合作对象"
|
||||
name="collaborator" id="collaborator" placeholder="请输入合作对象" maxlength="20"
|
||||
value="" />
|
||||
</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" class="am-input" data-validate-async data-validation-message="请输入合作对象"-->
|
||||
<#-- name="collaborator" id="collaborator" placeholder="请输入合作对象" maxlength="20"-->
|
||||
<#-- value="" />-->
|
||||
<#-- </div>-->
|
||||
|
||||
<div class="am-form-file am-text-xs">
|
||||
<button type="button" class="am-btn am-btn-primary am-btn-sm">
|
||||
<i class="am-icon-cloud-upload"></i> 上传附件
|
||||
</button>
|
||||
<input id="fileupload_button_icon" type="file" name="files[]" multiple>
|
||||
</div>
|
||||
<!-- The global progress bar -->
|
||||
<div id="progress-area-icon" class="am-margin-top-sm am-hide">
|
||||
<div id="progress-text-icon" class="am-text-xs am-text-right"></div>
|
||||
<div id="progress" class="am-progress am-progress-xs">
|
||||
<div class="am-progress-bar" style="width: 0%"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<#-- <div class="am-form-file am-text-xs">-->
|
||||
<#-- <button type="button" class="am-btn am-btn-primary am-btn-sm">-->
|
||||
<#-- <i class="am-icon-cloud-upload"></i> 上传附件-->
|
||||
<#-- </button>-->
|
||||
<#-- <input id="fileupload_button_icon" type="file" name="files[]" multiple>-->
|
||||
<#-- </div>-->
|
||||
<#-- <!-- The global progress bar –>-->
|
||||
<#-- <div id="progress-area-icon" class="am-margin-top-sm am-hide">-->
|
||||
<#-- <div id="progress-text-icon" class="am-text-xs am-text-right"></div>-->
|
||||
<#-- <div id="progress" class="am-progress am-progress-xs">-->
|
||||
<#-- <div class="am-progress-bar" style="width: 0%"></div>-->
|
||||
<#-- </div>-->
|
||||
<#-- </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>
|
||||
|
|
|
@ -107,28 +107,28 @@
|
|||
<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" class="am-input" data-validate-async data-validation-message="请输入合作对象"
|
||||
name="collaborator" id="collaborator" placeholder="请输入合作对象" maxlength="20"
|
||||
value="${project.collaborator!}" />
|
||||
</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" class="am-input" data-validate-async data-validation-message="请输入合作对象"-->
|
||||
<#-- name="collaborator" id="collaborator" placeholder="请输入合作对象" maxlength="20"-->
|
||||
<#-- value="${project.collaborator!}" />-->
|
||||
<#-- </div>-->
|
||||
|
||||
<div class="am-form-file am-text-xs">
|
||||
<button type="button" class="am-btn am-btn-primary am-btn-sm">
|
||||
<i class="am-icon-cloud-upload"></i> 上传附件
|
||||
</button>
|
||||
<input id="fileupload_button_icon" type="file" name="files[]" multiple>
|
||||
</div>
|
||||
<!-- The global progress bar -->
|
||||
<div id="progress-area-icon" class="am-margin-top-sm am-hide">
|
||||
<div id="progress-text-icon" class="am-text-xs am-text-right"></div>
|
||||
<div id="progress" class="am-progress am-progress-xs">
|
||||
<div class="am-progress-bar" style="width: 0%"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<#-- <div class="am-form-file am-text-xs">-->
|
||||
<#-- <button type="button" class="am-btn am-btn-primary am-btn-sm">-->
|
||||
<#-- <i class="am-icon-cloud-upload"></i> 上传附件-->
|
||||
<#-- </button>-->
|
||||
<#-- <input id="fileupload_button_icon" type="file" name="files[]" multiple>-->
|
||||
<#-- </div>-->
|
||||
<#-- <!-- The global progress bar –>-->
|
||||
<#-- <div id="progress-area-icon" class="am-margin-top-sm am-hide">-->
|
||||
<#-- <div id="progress-text-icon" class="am-text-xs am-text-right"></div>-->
|
||||
<#-- <div id="progress" class="am-progress am-progress-xs">-->
|
||||
<#-- <div class="am-progress-bar" style="width: 0%"></div>-->
|
||||
<#-- </div>-->
|
||||
<#-- </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>
|
||||
|
@ -277,7 +277,7 @@
|
|||
<i class="am-icon-calendar"></i>
|
||||
<input type="text" class="am-form-field am-input-sm" id="contractTime"
|
||||
name="contractTime" autocomplete="off"
|
||||
value="${project.contractTime?string("yyyy-MM-dd")}" placeholder="预计合同签订时间"
|
||||
value="${(project.contractTime?string("yyyy-MM-dd"))!}" placeholder="预计合同签订时间"
|
||||
data-am-datepicker required>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -290,7 +290,7 @@
|
|||
<i class="am-icon-calendar"></i>
|
||||
<input type="text" class="am-form-field am-input-sm" id="bidsTime"
|
||||
name="bidsTime" autocomplete="off"
|
||||
value="${project.bidsTime?string("yyyy-MM-dd")}" placeholder="项目计划招标时间"
|
||||
value="${(project.bidsTime?string("yyyy-MM-dd"))!}" placeholder="项目计划招标时间"
|
||||
data-am-datepicker required>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -377,7 +377,7 @@
|
|||
<textarea rows="3" cols="20" id="CalculationCollection" name="CalculationCollection" maxlength="1000"
|
||||
class="am-input" data-validate-async data-validation-message="按照开票金额及时间罗列计收计划"
|
||||
placeholder="按照开票金额及时间罗列计收计划" required
|
||||
>${project.CalculationCollection!}</textarea>
|
||||
>${project.calculationCollection!}</textarea>
|
||||
</div>
|
||||
<div class="am-u-sm-2 am-u-md-4 input-msg"></div>
|
||||
</div>
|
||||
|
|
|
@ -338,8 +338,8 @@
|
|||
<td>${Utils.format(list.grossProfit, "0.00")}</td>
|
||||
<td>${Utils.format(list.grossProfitMargin, "0.00")}</td>
|
||||
<td>${list.principal!}</td>
|
||||
<td>${list.contractTime?string("yyyy-MM-dd HH:mm:ss")}</td>
|
||||
<td>${list.bidsTime?string("yyyy-MM-dd HH:mm:ss")}</td>
|
||||
<td>${(list.contractTime?string("yyyy-MM-dd HH:mm:ss"))!}</td>
|
||||
<td>${(list.bidsTime?string("yyyy-MM-dd HH:mm:ss"))!}</td>
|
||||
<td>${list.isSecondStr!}</td>
|
||||
<td>${list.signTypeStr!}</td>
|
||||
<td>${Utils.format(list.advanceInterestAmount, "0.00")}</td>
|
||||
|
@ -348,8 +348,8 @@
|
|||
<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.startDate?string("yyyy-MM"))!} ~ ${(list.endDate?string("yyyy-MM"))!}</td>
|
||||
<td>${(list.lastUpdateTime?string("yyyy-MM-dd HH:mm:ss"))!}</td>
|
||||
<td>
|
||||
<div class="am-btn-toolbar">
|
||||
<div class="am-btn-group am-btn-group-xs">
|
||||
|
|
Loading…
Reference in New Issue