四算概算,合作对象

master
OathK1per 2022-08-16 16:02:09 +08:00
parent 60209e41e1
commit dbcb55f3d6
13 changed files with 193 additions and 43 deletions

View File

@ -55,21 +55,23 @@ public class MonthlySettleController extends BaseController {
ConcurrentHashMap<String, String> searchInfo = getSearchInfo(keywords, model); ConcurrentHashMap<String, String> searchInfo = getSearchInfo(keywords, model);
model.put("pager", monthlySettleService.list(searchInfo, pageNumber, pageSize)); model.put("pager", monthlySettleService.list(searchInfo, pageNumber, pageSize));
model.put("Utils", FreeMarkerUtil.fromStaticPackage("cn.palmte.work.utils.Utils")); model.put("Utils", FreeMarkerUtil.fromStaticPackage("cn.palmte.work.utils.Utils"));
return "/admin/monthlySettle_list"; return "/admin/monthly_settle_list";
} }
@RequestMapping("/info") @RequestMapping("/info")
public String info(@RequestParam("id") int id, Map<String, Object> model) { public String info(@RequestParam("id") int id, Map<String, Object> model) {
MonthlySettle monthlySettle = monthlySettleRepository.findOne(id); MonthlySettle monthlySettle = monthlySettleRepository.findOne(id);
model.put("monthlySettle", monthlySettle); model.put("monthlySettle", monthlySettle);
return "/admin/monthlySettle_info"; model.put("Utils", FreeMarkerUtil.fromStaticPackage("cn.palmte.work.utils.Utils"));
return "/admin/monthly_settle_info";
} }
@RequestMapping("/infoByTime") @RequestMapping("/infoByTime")
public String infoByTime(@RequestParam("time") String time, @RequestParam("projectName") String projectName, Map<String, Object> model) { public String infoByTime(@RequestParam("time") String time, @RequestParam("projectName") String projectName, Map<String, Object> model) {
MonthlySettle monthlySettle = monthlySettleRepository.findByMonthAndProjectName(time, projectName); MonthlySettle monthlySettle = monthlySettleRepository.findByMonthAndProjectName(time, projectName);
model.put("monthlySettle", monthlySettle); model.put("monthlySettle", monthlySettle);
return "/admin/monthlySettle_info"; model.put("Utils", FreeMarkerUtil.fromStaticPackage("cn.palmte.work.utils.Utils"));
return "/admin/monthly_settle_info";
} }
private void setModel(@RequestParam(value = "keywords", required = false) String keywords, Map<String, Object> model) { private void setModel(@RequestParam(value = "keywords", required = false) String keywords, Map<String, Object> model) {
@ -79,7 +81,7 @@ public class MonthlySettleController extends BaseController {
@RequestMapping("/export") @RequestMapping("/export")
public void export(@RequestParam(value = "keywords", required = false) String keywords, HttpServletResponse httpServletResponse) throws IOException { public void export(@RequestParam(value = "keywords", required = false) String keywords, HttpServletResponse httpServletResponse) throws IOException {
Map<String, String> searchInfo = getSearchInfo(keywords); Map<String, String> searchInfo = getSearchInfo(keywords);
downloadHeader(httpServletResponse, Utils.generateExcelName("人员信息"), "application/octet-stream"); downloadHeader(httpServletResponse, Utils.generateExcelName("月度结算表"), "application/octet-stream");
String[] headers = {"项目编号", "项目名称", "项目类型", "合同编号", "合同方", "合同金额", "合同签订时间", "最终业主", "累计已收款", "已采购累计付款", "已采购累计未付款", "超期垫资金额", "销售累计开票金额", String[] headers = {"项目编号", "项目名称", "项目类型", "合同编号", "合同方", "合同金额", "合同签订时间", "最终业主", "累计已收款", "已采购累计付款", "已采购累计未付款", "超期垫资金额", "销售累计开票金额",
"销售经理", "项目经理", "收款节点", "收款要求时间", "收款金额", "实际收款时间", "实际收款金额", "实际欠收金额", "到货证明", "项目风险预警", "已计收金额", "未计收金额", "超期天数", "验收报告时间"}; "销售经理", "项目经理", "收款节点", "收款要求时间", "收款金额", "实际收款时间", "实际收款金额", "实际欠收金额", "到货证明", "项目风险预警", "已计收金额", "未计收金额", "超期天数", "验收报告时间"};
String[] exportColumns = {"projectNo", "projectName", "projectType", "contractNo", "contractParty", "contractAmount", "contractSignTime", "owner", "totalCollect", String[] exportColumns = {"projectNo", "projectName", "projectType", "contractNo", "contractParty", "contractAmount", "contractSignTime", "owner", "totalCollect",
@ -97,8 +99,8 @@ public class MonthlySettleController extends BaseController {
String[] exportColumns = {"month", "projectNo", "projectName", "projectType", "contractNo", "contractParty", "contractAmount", "contractSignTime", "owner", "totalCollect", String[] exportColumns = {"month", "projectNo", "projectName", "projectType", "contractNo", "contractParty", "contractAmount", "contractSignTime", "owner", "totalCollect",
"totalPurchasedPaid", "totalPurchasedUnpaid", "timeOutAmount", "totalBillAmount", "saleManager", "projectManager", "collectPoint", "collectRequiredTime", "collectAmount", "totalPurchasedPaid", "totalPurchasedUnpaid", "timeOutAmount", "totalBillAmount", "saleManager", "projectManager", "collectPoint", "collectRequiredTime", "collectAmount",
"collectActualTime", "collectActualAmount", "uncollectActualAmount", "timeOutDay", "productCertificate", "inspectionReportTime", "riskWarning", "uncalColAmount", "calColAmount"}; "collectActualTime", "collectActualAmount", "uncollectActualAmount", "timeOutDay", "productCertificate", "inspectionReportTime", "riskWarning", "uncalColAmount", "calColAmount"};
ExportUtils.exportToExcel(headers, exportColumns, 1, 10000, ExportUtils.exportToExcel2(headers, exportColumns, 1, 10000,
httpServletResponse.getOutputStream(), (pageNumber, pageSize) -> monthlySettleService.findOne(id, time, projectName)); httpServletResponse.getOutputStream(), monthlySettleService.findOne(id, time, projectName));
} }
/** /**

View File

@ -212,6 +212,20 @@ public class ExportUtils {
return workbook; return workbook;
} }
/**
* Excel
* @param pageNumber
*/
public static <T> ExportUtils exportToExcel2(String[] headers , String[] columns , int pageNumber , int pageSize , OutputStream outputStream , List<T> list) throws IOException{
ExportUtils exportUtils = new ExportUtils(headers);
int rowIndex = 1;
exportUtils.exportExcel(columns,list,"yyyy-MM-dd HH:mm:ss",rowIndex);
if( null!= outputStream) {
exportUtils.write(outputStream);
}
return exportUtils;
}
/** /**
* Excel * Excel
* @param pageNumber * @param pageNumber

View File

@ -10,4 +10,4 @@ spring.jpa.show-sql=true
admin.domain=https://dzgtest.palmte.cn admin.domain=https://dzgtest.palmte.cn
upload.path=/mnt/dzg/image upload.path=/mnt/dzg/image
upload.prefix=https://dzgtest.palmte.cn/upload upload.prefix=https://dzgtest.palmte.cn/fourcal/upload

View File

@ -10,4 +10,4 @@ spring.jpa.show-sql=true
admin.domain=https://dzgtest.palmte.cn admin.domain=https://dzgtest.palmte.cn
upload.path=/mnt/dzg/image upload.path=/mnt/dzg/image
upload.prefix=https://dzgtest.palmte.cn/upload upload.prefix=https://dzgtest.palmte.cn/fourcal/upload

View File

@ -8,4 +8,4 @@ spring.jpa.database-platform=org.hibernate.dialect.MySQLDialect
spring.jpa.show-sql=true spring.jpa.show-sql=true
upload.path=/data/file/image upload.path=/data/file/image
upload.prefix=https://dzgtest.palmte.cn/upload upload.prefix=https://dzgtest.palmte.cn/fourcal/upload

View File

@ -8,4 +8,4 @@ spring.jpa.database-platform=org.hibernate.dialect.MySQLDialect
#spring.jpa.show-sql=true #spring.jpa.show-sql=true
upload.path=/home/data/fourcal upload.path=/home/data/fourcal
upload.prefix=/upload/fourcal upload.prefix=/fourcal/upload

View File

@ -10,4 +10,4 @@ spring.jpa.show-sql=true
admin.domain=https://dzgtest.palmte.cn admin.domain=https://dzgtest.palmte.cn
upload.path=/home/data/dzg/fourcal upload.path=/home/data/dzg/fourcal
upload.prefix=https://dzgtest.palmte.cn/upload/fourcal upload.prefix=https://dzgtest.palmte.cn/fourcal/upload

View File

@ -7,7 +7,8 @@ INCOME_DETAIL={
"price":[true,"单价","price"], "price":[true,"单价","price"],
"taxRate":[true,"税率","number"], "taxRate":[true,"税率","number"],
"totalTaxInclude":[true,"含税总金额","number"], "totalTaxInclude":[true,"含税总金额","number"],
"totalTaxExclude":[true,"不含税金额","number"] "totalTaxExclude":[true,"不含税金额","number"],
"totalTax":[true,"税金","number"]
}; };
COST_DETAIL={ COST_DETAIL={
@ -20,7 +21,8 @@ COST_DETAIL={
"price":[true,"单价","price"], "price":[true,"单价","price"],
"taxRate":[true,"税率","number"], "taxRate":[true,"税率","number"],
"totalTaxInclude":[true,"含税总金额","number"], "totalTaxInclude":[true,"含税总金额","number"],
"totalTaxExclude":[true,"不含税金额","number"] "totalTaxExclude":[true,"不含税金额","number"],
"totalTax":[true,"税金","number"]
}; };
COST_PROJECT_MANAGE_DETAIL={ COST_PROJECT_MANAGE_DETAIL={
@ -702,6 +704,8 @@ function updateIncomeDataUnsubmit(incomeDetails) {
var serviceTaxInclude = 0; var serviceTaxInclude = 0;
var serviceTaxExclude = 0; var serviceTaxExclude = 0;
incomeDetails.forEach(function (t, number, ts) { incomeDetails.forEach(function (t, number, ts) {
console.log("income cost " + t["type"] + ", " + t["taxRate"] + ", " + t["totalTaxInclude"] + ", " + t["totalTaxExclud"]);
if(t["type"] == "1"){ if(t["type"] == "1"){
//设备类 //设备类
deviceTaxInclude += f2(t["totalTaxInclude"]); deviceTaxInclude += f2(t["totalTaxInclude"]);

View File

@ -12,7 +12,8 @@ COST_DETAIL={
"price":[true,"单价","price"], "price":[true,"单价","price"],
"taxRate":[true,"税率","number"], "taxRate":[true,"税率","number"],
"totalTaxInclude":[true,"含税总金额","number"], "totalTaxInclude":[true,"含税总金额","number"],
"totalTaxExclude":[true,"不含税金额","number"] "totalTaxExclude":[true,"不含税金额","number"],
"totalTax":[true,"税金","number"]
}; };
/* /*
[ [
@ -225,6 +226,7 @@ function bindDeleteBtnCost() {
updateAmount("input-changeable-amount-cost", "input-changeable-total-amount-cost"); updateAmount("input-changeable-amount-cost", "input-changeable-total-amount-cost");
updateTotal("input-changeable-total-tax-include-cost", "input-changeable-total-total-tax-include-cost"); updateTotal("input-changeable-total-tax-include-cost", "input-changeable-total-total-tax-include-cost");
updateTotal("input-changeable-total-tax-exclude-cost", "input-changeable-total-total-tax-exclude-cost"); updateTotal("input-changeable-total-tax-exclude-cost", "input-changeable-total-total-tax-exclude-cost");
updateTotal("input-changeable-total-tax-cost", "input-changeable-total-total-tax-cost");
}); });
} }
@ -237,15 +239,18 @@ function bindCostTotal() {
updateAmount("input-changeable-amount-cost", "input-changeable-total-amount-cost"); updateAmount("input-changeable-amount-cost", "input-changeable-total-amount-cost");
updateTotal("input-changeable-total-tax-include-cost", "input-changeable-total-total-tax-include-cost"); updateTotal("input-changeable-total-tax-include-cost", "input-changeable-total-total-tax-include-cost");
updateTotal("input-changeable-total-tax-exclude-cost", "input-changeable-total-total-tax-exclude-cost"); updateTotal("input-changeable-total-tax-exclude-cost", "input-changeable-total-total-tax-exclude-cost");
updateTotal("input-changeable-total-tax-cost", "input-changeable-total-total-tax-cost");
}); });
//单价改变 //单价改变
$(".input-changeable-price-cost").change(function () { $(".input-changeable-price-cost").change(function () {
updateTotal("input-changeable-total-tax-include-cost", "input-changeable-total-total-tax-include-cost"); updateTotal("input-changeable-total-tax-include-cost", "input-changeable-total-total-tax-include-cost");
updateTotal("input-changeable-total-tax-exclude-cost", "input-changeable-total-total-tax-exclude-cost"); updateTotal("input-changeable-total-tax-exclude-cost", "input-changeable-total-total-tax-exclude-cost");
updateTotal("input-changeable-total-tax-cost", "input-changeable-total-total-tax-cost");
}); });
//税率改变 //税率改变
$(".input-changeable-tax-rate-cost").change(function () { $(".input-changeable-tax-rate-cost").change(function () {
updateTotal("input-changeable-total-tax-exclude-cost", "input-changeable-total-total-tax-exclude-cost"); updateTotal("input-changeable-total-tax-exclude-cost", "input-changeable-total-total-tax-exclude-cost");
updateTotal("input-changeable-total-tax-cost", "input-changeable-total-total-tax-cost");
}); });
} }
@ -256,41 +261,53 @@ function updateCostData(data, returnData) {
var details = data.details; var details = data.details;
var deviceTaxInclude = 0; var deviceTaxInclude = 0;
var deviceTaxExclude = 0; var deviceTaxExclude = 0;
var deviceTax = 0;
var buildTaxInclude = 0; var buildTaxInclude = 0;
var buildTaxExclude = 0; var buildTaxExclude = 0;
var buildTax = 0;
var serviceTaxInclude = 0; var serviceTaxInclude = 0;
var serviceTaxExclude = 0; var serviceTaxExclude = 0;
var serviceTax = 0;
var otherTaxInclude = 0; var otherTaxInclude = 0;
var otherTaxExclude = 0; var otherTaxExclude = 0;
var otherTax = 0;
var costTaxRates = ""; var costTaxRates = "";
details.forEach(function (t, number, ts) { details.forEach(function (t, number, ts) {
if(t["type"] == "1"){ if(t["type"] == "1"){
//设备类 //设备类
deviceTaxInclude += f2(t["totalTaxInclude"]); deviceTaxInclude += f2(t["totalTaxInclude"]);
deviceTaxExclude += f2(t["totalTaxExclude"]); deviceTaxExclude += f2(t["totalTaxExclude"]);
deviceTax += f2(t["totalTax"]);
}else if(t["type"] == "2"){ }else if(t["type"] == "2"){
//施工类 //施工类
buildTaxInclude += f2(t["totalTaxInclude"]); buildTaxInclude += f2(t["totalTaxInclude"]);
buildTaxExclude += f2(t["totalTaxExclude"]); buildTaxExclude += f2(t["totalTaxExclude"]);
buildTax += f2(t["totalTax"]);
}else if(t["type"] == "3"){ }else if(t["type"] == "3"){
//服务类 //服务类
serviceTaxInclude += f2(t["totalTaxInclude"]); serviceTaxInclude += f2(t["totalTaxInclude"]);
serviceTaxExclude += f2(t["totalTaxExclude"]); serviceTaxExclude += f2(t["totalTaxExclude"]);
serviceTax += f2(t["totalTax"]);
}else if(t["type"] == "4"){ }else if(t["type"] == "4"){
//其他类 //其他类
otherTaxInclude += f2(t["totalTaxInclude"]); otherTaxInclude += f2(t["totalTaxInclude"]);
otherTaxExclude += f2(t["totalTaxExclude"]); otherTaxExclude += f2(t["totalTaxExclude"]);
otherTax += f2(t["totalTax"]);
} }
costTaxRates += t["taxRate"] + "%,"; costTaxRates += t["taxRate"] + "%,";
}); });
$("input[name='costPurchaseDeviceTaxInclude']").val(f2Fixed(deviceTaxInclude)); $("input[name='costPurchaseDeviceTaxInclude']").val(f2Fixed(deviceTaxInclude));
$("input[name='costPurchaseDeviceTaxExclude']").val(f2Fixed(deviceTaxExclude)); $("input[name='costPurchaseDeviceTaxExclude']").val(f2Fixed(deviceTaxExclude));
$("input[name='costPurchaseDeviceTax']").val(f2Fixed(deviceTax));
$("input[name='costPurchaseBuildTaxInclude']").val(f2Fixed(buildTaxInclude)); $("input[name='costPurchaseBuildTaxInclude']").val(f2Fixed(buildTaxInclude));
$("input[name='costPurchaseBuildTaxExclude']").val(f2Fixed(buildTaxExclude)); $("input[name='costPurchaseBuildTaxExclude']").val(f2Fixed(buildTaxExclude));
$("input[name='costPurchaseBuildTax']").val(f2Fixed(deviceTax));
$("input[name='costPurchaseServiceTaxInclude']").val(f2Fixed(serviceTaxInclude)); $("input[name='costPurchaseServiceTaxInclude']").val(f2Fixed(serviceTaxInclude));
$("input[name='costPurchaseServiceTaxExclude']").val(f2Fixed(serviceTaxExclude)); $("input[name='costPurchaseServiceTaxExclude']").val(f2Fixed(serviceTaxExclude));
$("input[name='costPurchaseServiceTax']").val(f2Fixed(deviceTax));
$("input[name='costPurchaseOtherTaxInclude']").val(f2Fixed(otherTaxInclude)); $("input[name='costPurchaseOtherTaxInclude']").val(f2Fixed(otherTaxInclude));
$("input[name='costPurchaseOtherTaxExclude']").val(f2Fixed(otherTaxExclude)); $("input[name='costPurchaseOtherTaxExclude']").val(f2Fixed(otherTaxExclude));
$("input[name='costPurchaseOtherTax']").val(f2Fixed(deviceTax));
//资金计划表中的 //资金计划表中的

View File

@ -11,7 +11,8 @@ INCOME_DETAIL={
"price":[true,"单价","price"], "price":[true,"单价","price"],
"taxRate":[true,"税率","number"], "taxRate":[true,"税率","number"],
"totalTaxInclude":[true,"含税总金额","number"], "totalTaxInclude":[true,"含税总金额","number"],
"totalTaxExclude":[true,"不含税金额","number"] "totalTaxExclude":[true,"不含税金额","number"],
"totalTax":[true,"税金","number"]
}; };
/*$(function () { /*$(function () {
@ -79,37 +80,49 @@ function updateIncomeData(data,returnData) {
var incomeDetails = data.details; var incomeDetails = data.details;
var deviceTaxInclude = 0; var deviceTaxInclude = 0;
var deviceTaxExclude = 0; var deviceTaxExclude = 0;
var deviceTax = 0;
var engineerTaxInclude = 0; var engineerTaxInclude = 0;
var engineerTaxExclude = 0; var engineerTaxExclude = 0;
var engineerTax = 0;
var serviceTaxInclude = 0; var serviceTaxInclude = 0;
var serviceTaxExclude = 0; var serviceTaxExclude = 0;
var serviceTax = 0;
var incomeTaxRates = ""; var incomeTaxRates = "";
incomeDetails.forEach(function (t, number, ts) { incomeDetails.forEach(function (t, number, ts) {
console.log("income income " + t["type"] + ", " + t["taxRate"] + ", " + t["totalTaxInclude"] + ", " + t["totalTaxExclude"]);
if(t["type"] == "1"){ if(t["type"] == "1"){
//设备类 //设备类
deviceTaxInclude += f2(t["totalTaxInclude"]); deviceTaxInclude += f2(t["totalTaxInclude"]);
deviceTaxExclude += f2(t["totalTaxExclude"]); deviceTaxExclude += f2(t["totalTaxExclude"]);
deviceTax += f2(t["totalTax"]);
}else if(t["type"] == "2"){ }else if(t["type"] == "2"){
//工程类 //工程类
engineerTaxInclude += f2(t["totalTaxInclude"]); engineerTaxInclude += f2(t["totalTaxInclude"]);
engineerTaxExclude += f2(t["totalTaxExclude"]); engineerTaxExclude += f2(t["totalTaxExclude"]);
engineerTax += f2(t["totalTax"]);
}else if(t["type"] == "3"){ }else if(t["type"] == "3"){
//服务类 //服务类
serviceTaxInclude += f2(t["totalTaxInclude"]); serviceTaxInclude += f2(t["totalTaxInclude"]);
serviceTaxExclude += f2(t["totalTaxExclude"]); serviceTaxExclude += f2(t["totalTaxExclude"]);
serviceTax += f2(t["totalTax"]);
} }
incomeTaxRates += t["taxRate"] + "%,"; incomeTaxRates += t["taxRate"] + "%,";
}); });
console.log("incomeTaxRates: " + incomeTaxRates); console.log("incomeTaxRates: " + incomeTaxRates);
$("input[name='incomeDeviceTaxInclude']").val(f2Fixed(deviceTaxInclude)); $("input[name='incomeDeviceTaxInclude']").val(f2Fixed(deviceTaxInclude));
$("input[name='incomeDeviceTaxExclude']").val(f2Fixed(deviceTaxExclude)); $("input[name='incomeDeviceTaxExclude']").val(f2Fixed(deviceTaxExclude));
$("input[name='incomeDeviceTax']").val(f2Fixed(deviceTax));
$("input[name='incomeEngineerTaxInclude']").val(f2Fixed(engineerTaxInclude)); $("input[name='incomeEngineerTaxInclude']").val(f2Fixed(engineerTaxInclude));
$("input[name='incomeEngineerTaxExclude']").val(f2Fixed(engineerTaxExclude)); $("input[name='incomeEngineerTaxExclude']").val(f2Fixed(engineerTaxExclude));
$("input[name='incomeEngineerTax']").val(f2Fixed(engineerTax));
$("input[name='incomeServiceTaxInclude']").val(f2Fixed(serviceTaxInclude)); $("input[name='incomeServiceTaxInclude']").val(f2Fixed(serviceTaxInclude));
$("input[name='incomeServiceTaxExclude']").val(f2Fixed(serviceTaxExclude)); $("input[name='incomeServiceTaxExclude']").val(f2Fixed(serviceTaxExclude));
$("input[name='incomeServiceTax']").val(f2Fixed(serviceTax));
$("input[name='incomeTotalTaxInclude']").val(f2Fixed(deviceTaxInclude+engineerTaxInclude+serviceTaxInclude)); $("input[name='incomeTotalTaxInclude']").val(f2Fixed(deviceTaxInclude+engineerTaxInclude+serviceTaxInclude));
$("input[name='incomeTotalTaxExclude']").val(f2Fixed(deviceTaxExclude+engineerTaxExclude+serviceTaxExclude)); $("input[name='incomeTotalTaxExclude']").val(f2Fixed(deviceTaxExclude+engineerTaxExclude+serviceTaxExclude));
$("input[name='incomeTotalTax']").val(f2Fixed(deviceTax+engineerTax+serviceTax));
$(".input-total-title-sale-income-budget-plan").val($("input[name='incomeTotalTaxInclude']").val()); $(".input-total-title-sale-income-budget-plan").val($("input[name='incomeTotalTaxInclude']").val());
@ -173,6 +186,7 @@ function bindDeleteBtnIncome() {
updateAmount("input-changeable-amount-income", "input-changeable-total-amount-income"); updateAmount("input-changeable-amount-income", "input-changeable-total-amount-income");
updateTotal("input-changeable-total-tax-include-income", "input-changeable-total-total-tax-include-income"); updateTotal("input-changeable-total-tax-include-income", "input-changeable-total-total-tax-include-income");
updateTotal("input-changeable-total-tax-exclude-income", "input-changeable-total-total-tax-exclude-income"); updateTotal("input-changeable-total-tax-exclude-income", "input-changeable-total-total-tax-exclude-income");
updateTotal("input-changeable-total-tax-income", "input-changeable-total-total-tax-income");
}); });
} }

View File

@ -2,11 +2,108 @@
<#import "../common/defaultLayout.ftl" as defaultLayout> <#import "../common/defaultLayout.ftl" as defaultLayout>
<@defaultLayout.layout> <@defaultLayout.layout>
<link rel="stylesheet" href="../assets/css/amazeui.switch.css"/> <link rel="stylesheet" href="../assets/css/amazeui.switch.css"/>
<style type="text/css">
/**让所有的模态对话框都居中*/
.am-modal.am-modal-prompt.am-modal-active {
transform: translate(-50%, -50%) scale(1);
left: 50%;
top: 50%;
margin-left: 0;
margin-top: 0 !important;
}
select[readonly] option {
display: none;
}
/**
审核通过
*/
.approve-passed{
position:absolute;
right:10px;
top:10px;
border-radius: 100%;
width: 150px;
height: 150px;
border: 3px dashed green;
color: green;
white-space: nowrap;
display: flex;
align-items: center;
justify-content: center;
transform: rotateZ(20deg);
font-size: 14px;
}
.approve-passed:after {
content:"审核通过";
}
/**
待审核
*/
.approve-topass{
position:absolute;
right:10px;
top:170px;
border-radius: 100%;
width: 150px;
height: 150px;
border: 3px dashed orange;
color: orange;
white-space: nowrap;
display: flex;
align-items: center;
justify-content: center;
transform: rotateZ(20deg);
font-size: 14px;
}
.approve-topass:after {
content:"待审核";
}
/**
审核不过
*/
.approve-nopass{
position:absolute;
right:10px;
top:10px;
border-radius: 100%;
width: 150px;
height: 150px;
border: 3px dashed red;
color: red;
white-space: nowrap;
display: flex;
align-items: center;
justify-content: center;
transform: rotateZ(20deg);
font-size: 14px;
}
.approve-nopass:after {
content:"审核不通过";
}
input {
border:0 none;
outline:none;
}
textarea {
overflow-x: hidden;
overflow-y:hidden;
}
.huanhang{
// 表格自动换行
table-layout:fixed;
word-break:break-all
}
</style>
<div class="admin-content"> <div class="admin-content">
<div class="admin-content-body"> <div class="admin-content-body">
<div class="am-cf am-padding"> <div class="am-cf am-padding">
<div style="word-wrap:break-word; word-break:break-all; " class="am-fl am-cf"><strong class="am-text-primary am-text-lg">月度结算表明细</strong> / <div style="word-wrap:break-word; word-break:break-all; " class="am-fl am-cf"><strong class="am-text-primary am-text-lg">月度结算表明细</strong> /
<small>${monthlySettle.name}</small></div> <small>${monthlySettle.projectName!}</small></div>
</div> </div>
<form method="post" class="am-form" id="pmsForm" action=""> <form method="post" class="am-form" id="pmsForm" action="">
@ -15,21 +112,21 @@
<div class="am-tabs-bd"> <div class="am-tabs-bd">
<div class="am-tab-panel am-fade am-in am-active" id="tab1"> <div class="am-tab-panel am-fade am-in am-active" id="tab1">
<input name="id" id="id" type="hidden" value="${monthlySettle.id}" /> <input name="id" id="id" type="hidden" value="${monthlySettle.id}" />
<div class="am-u-sm-10"> <#-- <div class="am-u-sm-10">-->
<div class="am-form am-form-inline"> <#-- <div class="am-form am-form-inline">-->
<div class="am-form-group am-form-icon"> <#-- <div class="am-form-group am-form-icon">-->
<input type="text" id="time" name="time" autocomplete="off" readonly value="${time!}"> <#-- <input type="text" id="time" name="time" autocomplete="off" readonly value="${time!}">-->
</div> <#-- </div>-->
</div> <#-- </div>-->
</div> <#-- </div>-->
<br/> <#-- <br/>-->
<br/> <#-- <br/>-->
<!--验证表单元素validate) begin--> <!--验证表单元素validate) begin-->
<div class="am-g am-form-group am-margin-top"> <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: 13px;" value="月份"></div>
<div class="am-u-sm-6 am-u-md-6"> <div class="am-u-sm-6 am-u-md-6">
<input readonly value="${monthlySettle.month}"></input> <input readonly id="time" name="time" value="${monthlySettle.month}"></input>
</div> </div>
<div class="am-u-sm-2 am-u-md-4 input-msg"></div> <div class="am-u-sm-2 am-u-md-4 input-msg"></div>
</div> </div>
@ -37,7 +134,7 @@
<div class="am-g am-form-group am-margin-top"> <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: 6px;" value="项目编号"></div>
<div class="am-u-sm-6 am-u-md-6"> <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.projectNo!}"> <input readonly id="projectNo" value="${monthlySettle.projectNo!}">
</div> </div>
<div class="am-u-sm-2 am-u-md-4 input-msg"></div> <div class="am-u-sm-2 am-u-md-4 input-msg"></div>
</div> </div>
@ -45,7 +142,7 @@
<div class="am-g am-form-group am-margin-top"> <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: 6px;" value="项目名称"></div>
<div class="am-u-sm-6 am-u-md-6"> <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.projectName!}"> <input readonly id="projectName" value="${monthlySettle.projectName!}">
</div> </div>
<div class="am-u-sm-2 am-u-md-4 input-msg"></div> <div class="am-u-sm-2 am-u-md-4 input-msg"></div>
</div> </div>
@ -53,7 +150,7 @@
<div class="am-g am-form-group am-margin-top"> <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"> <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.projectType!}"> <input readonly id="projectType" value="${monthlySettle.projectType!}">
</div> </div>
<div class="am-u-sm-2 am-u-md-4 input-msg"></div> <div class="am-u-sm-2 am-u-md-4 input-msg"></div>
</div> </div>
@ -61,7 +158,7 @@
<div class="am-g am-form-group am-margin-top"> <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: 6px;" value="合同编号"></div>
<div class="am-u-sm-6 am-u-md-6"> <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.contractNo!}"> <input readonly id="contractNo" value="${monthlySettle.contractNo!}">
</div> </div>
<div class="am-u-sm-2 am-u-md-4 input-msg"></div> <div class="am-u-sm-2 am-u-md-4 input-msg"></div>
</div> </div>
@ -69,7 +166,7 @@
<div class="am-g am-form-group am-margin-top"> <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: 6px;" value="合同方"></div>
<div class="am-u-sm-6 am-u-md-6"> <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.contractParty!}"> <input readonly id="contractParty" value="${monthlySettle.contractParty!}">
</div> </div>
<div class="am-u-sm-2 am-u-md-4 input-msg"></div> <div class="am-u-sm-2 am-u-md-4 input-msg"></div>
</div> </div>
@ -77,7 +174,7 @@
<div class="am-g am-form-group am-margin-top"> <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"> <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.contractAmount)}元"> <input readonly id="contractAmount" value="${Utils.format(monthlySettle.contractAmount)}元">
</div> </div>
<div class="am-u-sm-2 am-u-md-4 input-msg"></div> <div class="am-u-sm-2 am-u-md-4 input-msg"></div>
</div> </div>
@ -85,7 +182,7 @@
<div class="am-g am-form-group am-margin-top"> <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: 134px ;margin-bottom: 6px;" value="合同签订时间"></div>
<div class="am-u-sm-6 am-u-md-6"> <div class="am-u-sm-6 am-u-md-6">
<input readonly value="${monthlySettle.contractSignTime?string("yyyy-MM-dd")}"></input> <input readonly id="contractSignTime" value="${monthlySettle.contractSignTime?string("yyyy-MM-dd")}"></input>
</div> </div>
<div class="am-u-sm-2 am-u-md-4 input-msg"></div> <div class="am-u-sm-2 am-u-md-4 input-msg"></div>
</div> </div>
@ -117,7 +214,7 @@
<div class="am-g am-form-group am-margin-top"> <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: 6px;" value="已采购累计未付款"></div>
<div class="am-u-sm-6 am-u-md-6"> <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.totalPurchasedUnpaid)}元"> <input readonly value="${Utils.format(monthlySettle.totalPurchasedUnpaid)}元">
</div> </div>
<div class="am-u-sm-2 am-u-md-4 input-msg"></div> <div class="am-u-sm-2 am-u-md-4 input-msg"></div>
</div> </div>
@ -125,7 +222,7 @@
<div class="am-g am-form-group am-margin-top"> <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: 6px;" value="超期垫资金额"></div>
<div class="am-u-sm-6 am-u-md-6"> <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.timeOutAmount)}元"> <input readonly value="${Utils.format(monthlySettle.timeOutAmount)}元">
</div> </div>
<div class="am-u-sm-2 am-u-md-4 input-msg"></div> <div class="am-u-sm-2 am-u-md-4 input-msg"></div>
</div> </div>
@ -197,7 +294,7 @@
<div class="am-g am-form-group am-margin-top"> <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: 6px;" value="实际欠收金额"></div>
<div class="am-u-sm-6 am-u-md-6"> <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)}元"> <input readonly value="${Utils.format(monthlySettle.uncollectActualAmount)}元">
</div> </div>
<div class="am-u-sm-2 am-u-md-4 input-msg"></div> <div class="am-u-sm-2 am-u-md-4 input-msg"></div>
</div> </div>
@ -205,7 +302,7 @@
<div class="am-g am-form-group am-margin-top"> <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: 6px;" value="超期天数"></div>
<div class="am-u-sm-6 am-u-md-6"> <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!}"> <input readonly value="${monthlySettle.timeOutDay!}">
</div> </div>
<div class="am-u-sm-2 am-u-md-4 input-msg"></div> <div class="am-u-sm-2 am-u-md-4 input-msg"></div>
</div> </div>
@ -263,8 +360,9 @@
</div> </div>
</div> </div>
</@defaultLayout.layout> </@defaultLayout.layout>
<script> <script src="${base}/layui/layui.js"></script>
<script>
layui.use('laydate', function(){ layui.use('laydate', function(){
var laydate = layui.laydate; var laydate = layui.laydate;
@ -277,9 +375,10 @@
console.log($(this.elem).val()); console.log($(this.elem).val());
}, },
done: function() { done: function() {
var projectName = $("#projectName").val();
var time = $(this.elem).val(); var time = $(this.elem).val();
console.log("time:" + time) console.log("time:" + time)
$("#pmsForm").attr("action","${base}/monthlySettle/infoByTime?listFrom=list&projectName=${monthlySettle.projectName}$time=" + time); $("#pmsForm").attr("action","${base}/monthlySettle/infoByTime?listFrom=list&projectName=" + projectName + "$time=" + time);
$("#pmsForm").submit(); $("#pmsForm").submit();
} }
}); });

View File

@ -221,11 +221,11 @@
</div> </div>
<div class="am-form-file am-text-xs"> <div class="am-form-file am-text-xs">
<button type="button" class="am-btn am-btn-primary am-btn-sm"> <#-- <button type="button" class="am-btn am-btn-primary am-btn-sm">-->
<a href="${project.collaboratorUrl!}" download> <a href="${project.collaboratorUrl!}" download>
<i class="am-icon-cloud-upload"></i> 下载附件 <i class="am-icon-cloud-upload"></i> 下载附件
</a> </a>
</button> <#-- </button>-->
</div> </div>
</div> </div>

View File

@ -286,13 +286,13 @@
<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>
@ -323,13 +323,13 @@
<td class="huanhang">${list.projectNo!}</td> <td class="huanhang">${list.projectNo!}</td>
<td class="huanhang"><a style="cursor: pointer;text-decoration:none" onclick="location.href='${base}/project/approve?listFrom=list&type=1&id=${list.id}'">${list.name!}</a></td> <td class="huanhang"><a style="cursor: pointer;text-decoration:none" onclick="location.href='${base}/project/approve?listFrom=list&type=1&id=${list.id}'">${list.name!}</a></td>
<td>${list.typeDesc!}</td> <td>${list.typeDesc!}</td>
<td>${list.underwrittenModeStr!}</td>
<td>${Utils.format(list.contractAmount, "0.00")}</td> <td>${Utils.format(list.contractAmount, "0.00")}</td>
<td>${Utils.format(list.huazhiProductAmount, "0.00")}</td> <td>${Utils.format(list.huazhiProductAmount, "0.00")}</td>
<td>${Utils.format(list.huizhiProductAmount, "0.00")}</td> <td>${Utils.format(list.huizhiProductAmount, "0.00")}</td>
<td>${Utils.format(list.huasanProductAmount, "0.00")}</td> <td>${Utils.format(list.huasanProductAmount, "0.00")}</td>
<td>${Utils.format(list.ziguangOtherAmount, "0.00")}</td> <td>${Utils.format(list.ziguangOtherAmount, "0.00")}</td>
<td>${list.statusDesc!}</td> <td>${list.statusDesc!}</td>
<td>${list.underwrittenModeStr!}</td>
<td>${list.collaborator!}</td> <td>${list.collaborator!}</td>
<td>${list.certaintyStr!}</td> <td>${list.certaintyStr!}</td>
<td>${list.industryScenario!}</td> <td>${list.industryScenario!}</td>