From 18d586ce9f0f0018868d90e42fe6055144cd1b02 Mon Sep 17 00:00:00 2001 From: chenhao <852066789@qq.com> Date: Tue, 10 Jun 2025 16:44:04 +0800 Subject: [PATCH] =?UTF-8?q?feat(project):=20=E4=BC=98=E5=8C=96=E9=A1=B9?= =?UTF-8?q?=E7=9B=AE=E4=BF=A1=E6=81=AF=E9=A1=B5=E9=9D=A2=E5=B8=83=E5=B1=80?= =?UTF-8?q?=E5=92=8C=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 调整表格布局,增加合并单元格 - 优化金额输入格式,添加格式化显示 - 修复部分字段显示和计算问题 - 优化页面样式,调整字体大小和颜色 --- .../main/resources/static/ruoyi/js/common.js | 12 ++ .../resources/templates/project/info/add.html | 178 +++++++++++---- .../templates/project/info/edit.html | 203 +++++++++++++----- .../templates/project/info/project.html | 58 ++--- .../project/info/selectCustomer.html | 10 +- .../templates/project/order/add.html | 178 +++++++++++---- .../templates/project/order/edit.html | 193 +++++++++++++---- .../templates/project/order/order.html | 63 ++++-- .../com/ruoyi/sip/domain/ProjectInfo.java | 63 ++++-- .../ruoyi/sip/domain/ProjectOrderInfo.java | 177 ++++++++------- .../service/impl/ProjectInfoServiceImpl.java | 18 +- .../mapper/sip/ProjectInfoMapper.xml | 9 +- .../mapper/sip/ProjectOrderInfoMapper.xml | 7 +- 13 files changed, 840 insertions(+), 329 deletions(-) diff --git a/ruoyi-admin/src/main/resources/static/ruoyi/js/common.js b/ruoyi-admin/src/main/resources/static/ruoyi/js/common.js index e5515145..d4d5e17b 100644 --- a/ruoyi-admin/src/main/resources/static/ruoyi/js/common.js +++ b/ruoyi-admin/src/main/resources/static/ruoyi/js/common.js @@ -404,6 +404,18 @@ function endOfTime(date) { return $.common.sprintf("%s 23:59:59", date); } } +function formatAmountNumber(num) { + let str = num.toString(); + let result = ""; + while (str.length > 3) { + result = "," + str.slice(-3) + result; + str = str.slice(0, str.length - 3); + } + if (str) { + result = str + result; + } + return result; +} /** 重置日期/年月日 */ function resetDate() { diff --git a/ruoyi-admin/src/main/resources/templates/project/info/add.html b/ruoyi-admin/src/main/resources/templates/project/info/add.html index fc8d581a..e15b5aa1 100644 --- a/ruoyi-admin/src/main/resources/templates/project/info/add.html +++ b/ruoyi-admin/src/main/resources/templates/project/info/add.html @@ -30,20 +30,25 @@ .section-title { font-weight: bold; - font-size: 18px; + font-size: 30px; padding: 10px 0; + color: #0075ff; } .checkbox-group label { margin-right: 20px; } - + .add-btn-div{ + display: flex; + justify-content: space-between; + } .add-btn { background: #409eff; color: #fff; border: none; padding: 5px 10px; cursor: pointer; + margin-bottom: 5px; } .checkbox-box { @@ -60,7 +65,10 @@ } .shortTd { - width: 100px; + width: 112px; + } + .inputTd{ + width: 27vw; } input, textarea, .productTable td { @@ -87,21 +95,20 @@
项目信息
- +
- - - - + - - - - - - + - + + + + + + + - + - - + -
项目编码* 项目名称*预计金额(元)*
BG* + 行业* + 代表处 * + @@ -155,7 +162,7 @@ 联系人 + 联系方式 @@ -163,8 +170,8 @@
合作渠道 + 合作渠道* 代理商* +
代理商联系人*Email 联系方式
预计下单时间 + 预计金额(元)* + + 预计发货时间 POC测试 @@ -207,7 +226,7 @@ - +
其它: @@ -245,13 +264,16 @@
配置信息
-

软件

- +
+

软件产品

+ +
+ - + @@ -268,13 +290,15 @@
序号产品编号产品编码 产品型号 描述 数量
-

硬件

- +
+

终端产品

+ +
- + @@ -291,13 +315,17 @@
序号产品编号产品编码 产品型号 描述 数量
-

维保

- + +
+

服务产品

+ +
+ - + @@ -321,7 +349,10 @@
- +
+ +
+
序号产品编号产品编码 产品型号 描述 数量
@@ -354,20 +385,36 @@ var maintenanceProjectProductInfoList = [] function initProductList() { - let softwareProjectProductInfoListAll = [[${projectInfo.softwareProjectProductInfoList}]] || [] + let softwareProjectProductInfoListAll = [] softwareProjectProductInfoListAll.forEach((ele) => { addProduct(ele) }) - let hardwareProjectProductInfoListAll = [[${projectInfo.hardwareProjectProductInfoList}]] || [] + let hardwareProjectProductInfoListAll = [] hardwareProjectProductInfoListAll.forEach((ele) => { addProduct2(ele) }) - let maintenanceProjectProductInfoListAll = [[${projectInfo.maintenanceProjectProductInfoList}]] || [] + let maintenanceProjectProductInfoListAll = [] maintenanceProjectProductInfoListAll.forEach((ele) => { addProduct3(ele) }) } + function updateRawValue() { + // 获取显示用的输入框 + const displayInput = document.getElementById('displayEstimatedAmount'); + // 获取隐藏字段 + const rawInput = document.getElementById('estimatedAmount'); + // 去除逗号并过滤非数字字符 + let rawValue = displayInput.value.replace(/[^0-9]/g, ''); + + // 更新隐藏字段的值 + rawInput.value = rawValue; + + // 格式化显示(可选) + if (rawValue) { + displayInput.value = Number(rawValue).toLocaleString('en-US'); + } + } function submitHandler() { if ($.validate.form()) { @@ -472,7 +519,7 @@ $('[name="customerCode"]').val(rows[0].customerCode); $('[name="customerName"]').val(rows[0].customerName); $('[name="customerUserName"]').val(rows[0].contactPerson); - $('[name="contactPhone"]').val(rows[0].contactPhone); + $('[name="customerPhone"]').val(rows[0].contactPhone); $.modal.close(index); } @@ -485,6 +532,9 @@ } $('[name="partnerCode"]').val(rows[0].partnerCode); $('[name="partnerName"]').val(rows[0].partnerName); + $('[name="partnerUserName"]').val(rows[0].contactPerson); + // $('[name="partnerEmail"]').val(rows[0].concactEmail); + $('[name="contactWay"]').val(rows[0].contactPhone); $.modal.close(index); } @@ -526,9 +576,18 @@ - - - + + + @@ -550,11 +609,20 @@ - - - + + + - +`) $('#productTable2 tbody').append(tr) @@ -574,9 +642,18 @@ - - - + + + @@ -625,9 +702,12 @@ let cateVal = $(this).parent().parent().find('.cataloguePrice').val() if (priceVal && num) { $(this).parent().parent().find('.allPrice').val((num * priceVal).toFixed(2)) + $(this).parent().parent().find('.allPrice-formmat').val(Number((num * priceVal).toFixed(2)).toLocaleString("en-US")) + } if (cateVal && num) { $(this).parent().parent().find('.catalogueAllPrice').val((num * cateVal).toFixed(2)) + $(this).parent().parent().find('.catalogueAllPrice-formmat').val(Number((num * cateVal).toFixed(2)).toLocaleString("en-US")) } }) $('.productTable .cataloguePrice').on('input', function () { @@ -636,27 +716,37 @@ let quantity = $(this).parent().parent().find('.quantity').val() if (quantity && val) $(this).parent().parent().find('.catalogueAllPrice').val((val * quantity).toFixed(2)) + $(this).parent().parent().find('.catalogueAllPrice-formmat').val(Number((val * quantity).toFixed(2)).toLocaleString("en-US")) }) $('.productTable .guidanceDiscount').on('input', function () { let val = $(this).val() let cataloguePrice = $(this).parent().parent().find('.cataloguePrice').val() $(this).parent().parent().find('.discount').val(val) $(this).parent().parent().find('.price').val((cataloguePrice * val).toFixed(2)) + $(this).parent().parent().find('.price-formmat').val(Number((cataloguePrice * val).toFixed(2)).toLocaleString("en-US")) let price = $(this).parent().parent().find('.price').val() let quantity = $(this).parent().parent().find('.quantity').val() if (price && quantity) { $(this).parent().parent().find('.allPrice').val((price * quantity).toFixed(2)) + $(this).parent().parent().find('.allPrice-formmat').val(Number((price * quantity).toFixed(2)).toLocaleString("en-US")) } }) $('.productTable .discount').on('input', function () { let discount = $(this).val() let val = $(this).parent().parent().find('.cataloguePrice').val() $(this).parent().parent().find('.price').val((val * discount).toFixed(2)) + let price= $(this).parent().parent().find('.price').val() + $(this).parent().parent().find('.price-formmat').val(Number(price).toLocaleString("en-US")) + let num = $(this).parent().parent().find('.quantity').val() + $(this).parent().parent().find('.allPrice').val((price* num).toFixed(2)) + let allPrice= $(this).parent().parent().find('.allPrice').val() + $(this).parent().parent().find('.allPrice-formmat').val(Number(allPrice).toLocaleString("en-US")) }) $('.productTable .price').change('input', function () { let val = $(this).val() let num = $(this).parent().parent().find('.quantity').val() $(this).parent().parent().find('.allPrice').val((val * num).toFixed(2)) + $(this).parent().parent().find('.allPrice-formmat').val(Number((val * num).toFixed(2)).toLocaleString("en-US")) }) } diff --git a/ruoyi-admin/src/main/resources/templates/project/info/edit.html b/ruoyi-admin/src/main/resources/templates/project/info/edit.html index 79dc9b2c..b661a06d 100644 --- a/ruoyi-admin/src/main/resources/templates/project/info/edit.html +++ b/ruoyi-admin/src/main/resources/templates/project/info/edit.html @@ -30,20 +30,26 @@ .section-title { font-weight: bold; - font-size: 18px; + font-size: 30px; padding: 10px 0; + color: #0075ff; } .checkbox-group label { margin-right: 20px; } + .add-btn-div { + display: flex; + justify-content: space-between; + } .add-btn { background: #409eff; color: #fff; border: none; padding: 5px 10px; cursor: pointer; + margin-bottom: 5px; } .checkbox-box { @@ -60,7 +66,11 @@ } .shortTd { - width: 100px; + width: 112px; + } + + .inputTd { + width: 27vw; } input, textarea, .productTable td { @@ -91,20 +101,17 @@
+ + + + + + + + + 删除 + + + + + + + + + 删除删除
+ + + + + + + + + 删除
- - - - - - - - - - - - + + + + + + + + + + - -
项目编码* 项目名称*预计金额(RMB)*
BG* + 行业* + 代表处 * + @@ -161,7 +168,7 @@ onclick="selectCustomer()"> 联系人 + 联系方式 @@ -169,7 +176,7 @@
合作渠道 + 代理商* + 联系方式
代理商联系人*Email联系方式
预计金额(元)* + - 预计下单时间 + 预计发货时间 POC测试 @@ -214,7 +232,7 @@ - +
其它: @@ -252,13 +270,15 @@
配置信息
-

软件

- +
+

软件产品

+ +
- + @@ -275,13 +295,16 @@
序号产品编号产品编码 产品型号 描述 数量
-

硬件

- +
+

终端产品

+ +
+ - + @@ -298,13 +321,15 @@
序号产品编号产品编码 产品型号 描述 数量
-

维保

- +
+

服务产品

+ +
- + @@ -324,12 +349,15 @@
  • 工作进度
  • -
  • 操作日志
  • +
  • POC测试
  • +
  • 操作日志
- +
+ +
序号产品编号产品编码 产品型号 描述 数量
@@ -342,23 +370,23 @@
+
+
+
- - + + - +
序号操作人员序号操作人员 操作内容操作时间操作时间
-
- -
@@ -378,18 +406,49 @@ function initProductList() { let softwareProjectProductInfoListAll = [[${projectInfo.softwareProjectProductInfoList}]] || [] softwareProjectProductInfoListAll.forEach((ele) => { + ele.cataloguePriceFormmat = ele.cataloguePrice ? ele.cataloguePrice.toLocaleString("en-US") : "" + + ele.priceFormmat = ele.price ? ele.price.toLocaleString("en-US") : "" + ele.catalogueAllPriceFormmat = ele.catalogueAllPrice ? ele.catalogueAllPrice.toLocaleString("en-US") : "" + ele.allPriceFormmat = ele.allPrice ? ele.allPrice.toLocaleString("en-US") : "" addProduct(ele) }) let hardwareProjectProductInfoListAll = [[${projectInfo.hardwareProjectProductInfoList}]] || [] hardwareProjectProductInfoListAll.forEach((ele) => { + ele.cataloguePriceFormmat = ele.cataloguePrice ? ele.cataloguePrice.toLocaleString("en-US") : "" + ele.priceFormmat = ele.price ? ele.price.toLocaleString("en-US") : "" + ele.catalogueAllPriceFormmat = ele.catalogueAllPrice ? ele.catalogueAllPrice.toLocaleString("en-US") : "" + ele.allPriceFormmat = ele.allPrice ? ele.allPrice .toLocaleString("en-US") : "" addProduct2(ele) }) let maintenanceProjectProductInfoListAll = [[${projectInfo.maintenanceProjectProductInfoList}]] || [] maintenanceProjectProductInfoListAll.forEach((ele) => { + ele.cataloguePriceFormmat = ele.cataloguePrice ? ele.cataloguePrice.toLocaleString("en-US") : "" + ele.priceFormmat = ele.price ? ele.price.toLocaleString("en-US") : "" + ele.catalogueAllPriceFormmat = ele.catalogueAllPrice ? ele.catalogueAllPrice.toLocaleString("en-US") : "" + ele.allPriceFormmat = ele.allPrice ? ele.allPrice.toLocaleString("en-US") : "" addProduct3(ele) }) } + function updateRawValue() { + // 获取显示用的输入框 + const displayInput = document.getElementById('displayEstimatedAmount'); + // 获取隐藏字段 + const rawInput = document.getElementById('estimatedAmount'); + // 去除逗号并过滤非数字字符 + let rawValue = displayInput.value.replace(/[^0-9.]/g, '').replace(/(\..*)\./g, '$1'); + + // 更新隐藏字段的值 + rawInput.value = rawValue; + + // 格式化显示(可选) + if (rawValue) { + displayInput.value = Number(rawValue).toLocaleString('en-US'); + } else { + displayInput.value = ""; + } + } function submitHandler() { if ($.validate.form()) { $.operate.save(prefix + "/edit", $('#form-product-add').serialize()); @@ -399,6 +458,10 @@ } $(function () { + let amount = [[${projectInfo.estimatedAmount}]] || '' + if (amount) { + document.getElementById('displayEstimatedAmount').value=amount.toLocaleString('en-US'); + } initProductList() $("input[name='estimatedOrderTime']").datetimepicker({ format: "yyyy-mm-dd", @@ -471,7 +534,7 @@ $('[name="customerCode"]').val(rows[0].customerCode); $('[name="customerName"]').val(rows[0].customerName); $('[name="customerUserName"]').val(rows[0].contactPerson); - $('[name="contactPhone"]').val(rows[0].contactPhone); + $('[name="customerPhone"]').val(rows[0].contactPhone); $.modal.close(index); } @@ -483,7 +546,9 @@ } $('[name="partnerCode"]').val(rows[0].partnerCode); $('[name="partnerName"]').val(rows[0].partnerName); - + $('[name="partnerUserName"]').val(rows[0].contactPerson); + // $('[name="partnerEmail"]').val(rows[0].concactEmail); + $('[name="contactWay"]').val(rows[0].contactPhone); $.modal.close(index); } @@ -549,9 +614,18 @@ - - - + + + + + + + + + + + + 删除 @@ -573,9 +647,18 @@ - - - + + + + + + + + + + + + 删除 @@ -597,11 +680,20 @@ - - - + + + + + + + + + + + + -删除 +删除 `) $('#productTable3 tbody').append(tr) @@ -649,9 +741,11 @@ let cateVal = $(this).parent().parent().find('.cataloguePrice').val() if (priceVal && num) { $(this).parent().parent().find('.allPrice').val((num * priceVal).toFixed(2)) + $(this).parent().parent().find('.allPrice-formmat').val(Number((num * priceVal).toFixed(2)).toLocaleString("en-US")) } if (cateVal && num) { $(this).parent().parent().find('.catalogueAllPrice').val((num * cateVal).toFixed(2)) + $(this).parent().parent().find('.catalogueAllPrice-formmat').val(Number((num * cateVal).toFixed(2)).toLocaleString("en-US")) } }) $('.productTable .cataloguePrice').on('input', function () { @@ -660,6 +754,7 @@ let quantity = $(this).parent().parent().find('.quantity').val() if (quantity && val) $(this).parent().parent().find('.catalogueAllPrice').val((val * quantity).toFixed(2)) + $(this).parent().parent().find('.catalogueAllPrice-formmat').val(Number((val * quantity).toFixed(2)).toLocaleString("en-US")) }) $('.productTable .guidanceDiscount').on('input', function () { let val = $(this).val() @@ -670,17 +765,25 @@ let quantity = $(this).parent().parent().find('.quantity').val() if (price && quantity) { $(this).parent().parent().find('.allPrice').val((price * quantity).toFixed(2)) + $(this).parent().parent().find('.allPrice-formmat').val(Number((price * quantity).toFixed(2)).toLocaleString("en-US")) } }) $('.productTable .discount').on('input', function () { let discount = $(this).val() let val = $(this).parent().parent().find('.cataloguePrice').val() $(this).parent().parent().find('.price').val((val * discount).toFixed(2)) + let price = $(this).parent().parent().find('.price').val() + $(this).parent().parent().find('.price-formmat').val(Number(price).toLocaleString("en-US")) + let num = $(this).parent().parent().find('.quantity').val() + $(this).parent().parent().find('.allPrice').val((price * num).toFixed(2)) + let allPrice = $(this).parent().parent().find('.allPrice').val() + $(this).parent().parent().find('.allPrice-formmat').val(Number(allPrice).toLocaleString("en-US")) }) $('.productTable .price').change('input', function () { let val = $(this).val() let num = $(this).parent().parent().find('.quantity').val() $(this).parent().parent().find('.allPrice').val((val * num).toFixed(2)) + $(this).parent().parent().find('.allPrice-formmat').val(Number((price * quantity).toFixed(2)).toLocaleString("en-US")) }) } diff --git a/ruoyi-admin/src/main/resources/templates/project/info/project.html b/ruoyi-admin/src/main/resources/templates/project/info/project.html index 92975eaf..c246aff5 100644 --- a/ruoyi-admin/src/main/resources/templates/project/info/project.html +++ b/ruoyi-admin/src/main/resources/templates/project/info/project.html @@ -38,9 +38,13 @@ .disableBtnfalse { color: #ccc; } + .select-list li p, .select-list li label:not(.radio-box){ + width: 80px; + }
+
@@ -58,15 +62,6 @@ -
  • - - -
  • +
  • - - + +
  • - - + +
  • +
  • @@ -185,7 +191,7 @@ }, { field: 'projectCode', - title: '项目编码', + title: '项目编号', escape: true, formatter: (value, row, index) => { if (row.highlight) { @@ -214,10 +220,10 @@ field: 'industryType', title: '行业', formatter: function (value, row, index) { - if (row.bgProperty == 'YYS') { + if (row.bgProperty === 'YYS') { return $.table.selectDictLabel([[${@dict.getType('bg_yys')}]], value); } else { - return $.table.selectDictLabel([[${@dict.getType('bg_hsys')}]], value); + return $.table.selectDictLabel([[${@dict.getType('bg_hysy')}]], value); } } @@ -242,9 +248,17 @@ field: 'hzSupportUserName', title: '汇智负责人' }, + { + field: 'poc', + title: 'poc' + }, + { field: 'estimatedAmount', - title: '预计金额(元)' + title: '预计金额(元)', + formatter: function (value, row, index) { + return value?formatAmountNumber(value):''; + } }, { field: 'estimatedOrderTime', @@ -252,21 +266,16 @@ class: 'time1', width: 140 }, - { - field: 'estimatedDeliverTime', - title: '预计发货时间', - class: 'time2', - width: 140 - }, { field: 'updateTime', - title: '最后一次更新时间', + title: '更新时间', class: 'time3', width: 160 }, { title: '操作', align: 'center', + titleTooltip:true, formatter: function (value, row, index) { var actions = []; actions.push('项目详情 '); @@ -325,7 +334,6 @@ }); function initHighlight() { - console.log($('.highlight'), 11) $('span.highlight').parent().parent().addClass('highlightRow') } diff --git a/ruoyi-admin/src/main/resources/templates/project/info/selectCustomer.html b/ruoyi-admin/src/main/resources/templates/project/info/selectCustomer.html index 7a2e77ed..e8c95239 100644 --- a/ruoyi-admin/src/main/resources/templates/project/info/selectCustomer.html +++ b/ruoyi-admin/src/main/resources/templates/project/info/selectCustomer.html @@ -31,10 +31,7 @@
  • -
  • - - -
  • +
  • 出货金额* - + + + + 实际进货金额* - + + 执行单有效截止时间* @@ -274,14 +291,16 @@
    配置信息
    -

    软件

    - +
    +

    软件产品

    + +
    - - + + @@ -297,13 +316,16 @@
    序号产品编号产品型号产品编码产品型号 描述 数量 目录单价(RMB)
    -

    硬件

    - +
    +

    终端产品

    + +
    + - + @@ -320,13 +342,16 @@
    序号产品编号产品编码 产品型号 描述 数量
    -

    维保

    - +
    +

    服务产品

    + +
    + - + @@ -423,6 +448,24 @@ } + function updateShipmentAmountValue(key) { + // 获取显示用的输入框 + const displayInput = document.getElementById('display'+key); + // 获取隐藏字段 + const rawInput = document.getElementById(key); + // 去除逗号并过滤非数字字符 + let rawValue = displayInput.value.replace(/[^0-9.]/g, '').replace(/(\..*)\./g, '$1'); + + // 更新隐藏字段的值 + rawInput.value = rawValue; + + // 格式化显示(可选) + if (rawValue) { + displayInput.value = Number(rawValue).toLocaleString('en-US'); + } else { + displayInput.value = ""; + } + } function saveSelect() { var options = { title: "确认并提交订单", @@ -487,6 +530,9 @@ $('[name="bgProperty"]').val(data.bgProperty); $('[name="agentName"]').val(data.agentName); $('[name="agentCode"]').val(data.agentCode); + $('[name="businessPerson"]').val(data.contactPerson); + $('[name="businessEmail"]').val(data.contactEmail); + $('[name="businessPhone"]').val(data.contactPhone); changeBg() $('[name="industryType"]').val(data.industryType); initProjectList(data) @@ -584,6 +630,10 @@ $('[name="agentCode"]').val(rows[0].agentCode); changeBg() $('[name="industryType"]').val(rows[0].industryType); + + $('[name="businessPerson"]').val(rows[0].contactPerson); + $('[name="businessEmail"]').val(rows[0].contactEmail); + $('[name="businessPhone"]').val(rows[0].contactPhone); initProjectList() $.modal.close(index); } @@ -620,7 +670,6 @@ } - // 添加软件 function addProduct(data) { let length = $('#productTable tbody').find('tr').length let tr = $(` @@ -628,23 +677,25 @@ - - - - + + + - - +`) $('#productTable tbody').append(tr) @@ -664,12 +715,20 @@ ${softwareProjectProductInfoList.map((ele) => { - - - + + + - - +`) $('#productTable2 tbody').append(tr) @@ -685,16 +744,24 @@ ${softwareProjectProductInfoList.map((ele) => { - + - - - + + + - - +`) $('#productTable3 tbody').append(tr) @@ -741,9 +808,11 @@ ${softwareProjectProductInfoList.map((ele) => { let cateVal = $(this).parent().parent().find('.cataloguePrice').val() if (priceVal && num) { $(this).parent().parent().find('.allPrice').val((num * priceVal).toFixed(2)) + $(this).parent().parent().find('.allPrice-formmat').val(Number((num * priceVal).toFixed(2)).toLocaleString("en-US")) } if (cateVal && num) { $(this).parent().parent().find('.catalogueAllPrice').val((num * cateVal).toFixed(2)) + $(this).parent().parent().find('.catalogueAllPrice-formmat').val(Number((num * cateVal).toFixed(2)).toLocaleString("en-US")) } }) $('.productTable .cataloguePrice').on('input', function () { @@ -752,6 +821,7 @@ ${softwareProjectProductInfoList.map((ele) => { let quantity = $(this).parent().parent().find('.quantity').val() if (quantity && val) $(this).parent().parent().find('.catalogueAllPrice').val((val * quantity).toFixed(2)) + $(this).parent().parent().find('.catalogueAllPrice-formmat').val(Number((val * quantity).toFixed(2)).toLocaleString("en-US")) }) $('.productTable .guidanceDiscount').on('input', function () { let val = $(this).val() @@ -762,17 +832,25 @@ ${softwareProjectProductInfoList.map((ele) => { let quantity = $(this).parent().parent().find('.quantity').val() if (price && quantity) { $(this).parent().parent().find('.allPrice').val((price * quantity).toFixed(2)) + $(this).parent().parent().find('.allPrice-formmat').val(Number((price * quantity).toFixed(2)).toLocaleString("en-US")) } }) $('.productTable .discount').on('input', function () { let discount = $(this).val() let val = $(this).parent().parent().find('.cataloguePrice').val() $(this).parent().parent().find('.price').val((val * discount).toFixed(2)) + let price = $(this).parent().parent().find('.price').val() + $(this).parent().parent().find('.price-formmat').val(Number(price).toLocaleString("en-US")) + let num = $(this).parent().parent().find('.quantity').val() + $(this).parent().parent().find('.allPrice').val((price * num).toFixed(2)) + let allPrice = $(this).parent().parent().find('.allPrice').val() + $(this).parent().parent().find('.allPrice-formmat').val(Number(allPrice).toLocaleString("en-US")) }) $('.productTable .price').change('input', function () { let val = $(this).val() let num = $(this).parent().parent().find('.quantity').val() $(this).parent().parent().find('.allPrice').val((val * num).toFixed(2)) + $(this).parent().parent().find('.allPrice-formmat').val(Number((price * quantity).toFixed(2)).toLocaleString("en-US")) }) } @@ -882,12 +960,26 @@ ${ $('#productTable2 tbody').html('') $('#productTable3 tbody').html('') data.softwareProjectProductInfoList ? data.softwareProjectProductInfoList.forEach((ele) => { + ele.cataloguePriceFormmat = ele.cataloguePrice ? ele.cataloguePrice.toLocaleString("en-US") : "" + ele.priceFormmat = ele.price ? ele.price.toLocaleString("en-US") : "" + ele.catalogueAllPriceFormmat = ele.catalogueAllPrice ? ele.catalogueAllPrice.toLocaleString("en-US") : "" + ele.allPriceFormmat = ele.allPrice ? ele.allPrice.toLocaleString("en-US") : "" addProduct(ele) }) : '' data.hardwareProjectProductInfoList ? data.hardwareProjectProductInfoList.forEach((ele) => { + ele.cataloguePriceFormmat = ele.cataloguePrice ? ele.cataloguePrice.toLocaleString("en-US") : "" + + ele.priceFormmat = ele.price ? ele.price.toLocaleString("en-US") : "" + ele.catalogueAllPriceFormmat = ele.catalogueAllPrice ? ele.catalogueAllPrice.toLocaleString("en-US") : "" + ele.allPriceFormmat = ele.allPrice ? ele.allPrice.toLocaleString("en-US") : "" addProduct2(ele) }) : '' data.maintenanceProjectProductInfoList ? data.maintenanceProjectProductInfoList.forEach((ele) => { + ele.cataloguePriceFormmat = ele.cataloguePrice ? ele.cataloguePrice.toLocaleString("en-US") : "" + + ele.priceFormmat = ele.price ? ele.price.toLocaleString("en-US") : "" + ele.catalogueAllPriceFormmat = ele.catalogueAllPrice ? ele.catalogueAllPrice.toLocaleString("en-US") : "" + ele.allPriceFormmat = ele.allPrice ? ele.allPrice.toLocaleString("en-US") : "" addProduct3(ele) }) : '' return @@ -898,12 +990,24 @@ ${ $('#productTable2 tbody').html('') $('#productTable3 tbody').html('') res.data.softwareProjectProductInfoList ? res.data.softwareProjectProductInfoList.forEach((ele) => { + ele.cataloguePriceFormmat = ele.cataloguePrice ? ele.cataloguePrice.toLocaleString("en-US") : "" + ele.priceFormmat = ele.price ? ele.price.toLocaleString("en-US") : "" + ele.catalogueAllPriceFormmat = ele.catalogueAllPrice ? ele.catalogueAllPrice.toLocaleString("en-US") : "" + ele.allPriceFormmat = ele.allPrice ? ele.allPrice.toLocaleString("en-US") : "" addProduct(ele) }) : '' res.data.hardwareProjectProductInfoList ? res.data.hardwareProjectProductInfoList.forEach((ele) => { + ele.cataloguePriceFormmat = ele.cataloguePrice ? ele.cataloguePrice.toLocaleString("en-US") : "" + ele.priceFormmat = ele.price ? ele.price.toLocaleString("en-US") : "" + ele.catalogueAllPriceFormmat = ele.catalogueAllPrice ? ele.catalogueAllPrice.toLocaleString("en-US") : "" + ele.allPriceFormmat = ele.allPrice ? ele.allPrice.toLocaleString("en-US") : "" addProduct2(ele) }) : '' res.data.maintenanceProjectProductInfoList ? res.data.maintenanceProjectProductInfoList.forEach((ele) => { + ele.cataloguePriceFormmat = ele.cataloguePrice ? ele.cataloguePrice.toLocaleString("en-US") : "" + ele.priceFormmat = ele.price ? ele.price.toLocaleString("en-US") : "" + ele.catalogueAllPriceFormmat = ele.catalogueAllPrice ? ele.catalogueAllPrice.toLocaleString("en-US") : "" + ele.allPriceFormmat = ele.allPrice ? ele.allPrice.toLocaleString("en-US") : "" addProduct3(ele) }) : '' }) diff --git a/ruoyi-admin/src/main/resources/templates/project/order/edit.html b/ruoyi-admin/src/main/resources/templates/project/order/edit.html index a3c582a1..121a1567 100644 --- a/ruoyi-admin/src/main/resources/templates/project/order/edit.html +++ b/ruoyi-admin/src/main/resources/templates/project/order/edit.html @@ -30,20 +30,26 @@ .section-title { font-weight: bold; - font-size: 18px; + font-size: 30px; padding: 10px 0; + color: #0075ff; } .checkbox-group label { margin-right: 20px; } + .add-btn-div { + display: flex; + justify-content: space-between; + } .add-btn { background: #409eff; color: #fff; border: none; padding: 5px 10px; cursor: pointer; + margin-bottom: 5px; } .checkbox-box label { @@ -91,7 +97,8 @@
    -
    编辑订单
    +
    编辑订单| +
    序号产品编号产品编码 产品型号 描述 数量${length + 1} + + + + + + + + + 删除删除
    + + + + + + + + + 删除删除
    + + + + + + + + + 删除删除
    @@ -163,13 +170,22 @@ th:value="${dict.dictValue}"> - + -
    项目编号* 出货金额* + +
    实际进货金额* + + 执行单有效截止时间* @@ -284,13 +300,16 @@
    配置信息
    -

    软件

    - +
    +

    软件产品

    + +
    + - + @@ -307,13 +326,17 @@
    序号产品编号产品编码 产品型号 描述 数量
    -

    硬件

    - +
    +

    终端产品

    + +
    + + - + @@ -330,13 +353,16 @@
    序号产品编号产品编码 产品型号 描述 数量
    -

    维保

    - +
    +

    服务产品

    + +
    + - + @@ -491,6 +517,14 @@ } $(function () { + let shipmentAmount = [[${projectOrderInfo.shipmentAmount}]] || '' + if (shipmentAmount) { + document.getElementById('displayshipmentAmount').value=shipmentAmount.toLocaleString('en-US'); + } + let actualPurchaseAmount = [[${projectOrderInfo.actualPurchaseAmount}]] || '' + if (actualPurchaseAmount) { + document.getElementById('displayactualPurchaseAmount').value=actualPurchaseAmount.toLocaleString('en-US'); + } initProductList() initSaveDraft() $("input[name='estimatedOrderTime']").datetimepicker({ @@ -579,6 +613,9 @@ changeBg() $('[name="industryType"]').val(rows[0].industryType); initProjectList() + $('[name="businessPerson"]').val(rows[0].contactPerson); + $('[name="businessEmail"]').val(rows[0].contactEmail); + $('[name="businessPhone"]').val(rows[0].contactPhone); $.modal.close(index); } @@ -618,27 +655,53 @@ $.modal.close(index); } + function updateShipmentAmountValue(key) { + // 获取显示用的输入框 + const displayInput = document.getElementById('display'+key); + // 获取隐藏字段 + const rawInput = document.getElementById(key); + // 去除逗号并过滤非数字字符 + let rawValue = displayInput.value.replace(/[^0-9.]/g, '').replace(/(\..*)\./g, '$1'); + // 更新隐藏字段的值 + rawInput.value = rawValue; + + // 格式化显示(可选) + if (rawValue) { + displayInput.value = Number(rawValue).toLocaleString('en-US'); + } else { + displayInput.value = ""; + } + } // 添加软件 + function addProduct(data) { let length = $('#productTable tbody').find('tr').length let tr = $(` - - + + - + - - - + + + - - +`) $('#productTable tbody').append(tr) @@ -651,19 +714,27 @@ let tr = $(` - - + + - - - + + + - - +`) $('#productTable2 tbody').append(tr) @@ -676,19 +747,27 @@ let tr = $(` - - + + - + - - - + + + - - +`) $('#productTable3 tbody').append(tr) @@ -728,24 +807,39 @@ }) } - function initPrice() { + function initPrice() { $('.productTable .quantity').on('input', function () { let num = $(this).val() let priceVal = $(this).parent().parent().find('.price').val() let cateVal = $(this).parent().parent().find('.cataloguePrice').val() if (priceVal && num) { $(this).parent().parent().find('.allPrice').val((num * priceVal).toFixed(2)) + $(this).parent().parent().find('.allPrice-formmat').val(Number((num * priceVal).toFixed(2)).toLocaleString("en-US")) } if (cateVal && num) { $(this).parent().parent().find('.catalogueAllPrice').val((num * cateVal).toFixed(2)) + $(this).parent().parent().find('.catalogueAllPrice-formmat').val(Number((num * cateVal).toFixed(2)).toLocaleString("en-US")) } }) $('.productTable .cataloguePrice').on('input', function () { let val = $(this).val() $(this).parent().parent().find('.price').val(val) let quantity = $(this).parent().parent().find('.quantity').val() + debugger + let discount = $(this).parent().parent().find('.discount').val() + if (val && discount){ + $(this).parent().parent().find('.price').val((val * discount).toFixed(2)) + let price = $(this).parent().parent().find('.price').val() + $(this).parent().parent().find('.price-formmat').val(Number(price).toLocaleString("en-US")) + if (quantity){ + $(this).parent().parent().find('.allPrice').val((val * quantity*discount).toFixed(2)) + let allPrice = $(this).parent().parent().find('.allPrice').val() + $(this).parent().parent().find('.allPrice-formmat').val(Number(allPrice).toLocaleString("en-US")) + } + } if (quantity && val) $(this).parent().parent().find('.catalogueAllPrice').val((val * quantity).toFixed(2)) + $(this).parent().parent().find('.catalogueAllPrice-formmat').val(Number((val * quantity).toFixed(2)).toLocaleString("en-US")) }) $('.productTable .guidanceDiscount').on('input', function () { let val = $(this).val() @@ -753,20 +847,29 @@ $(this).parent().parent().find('.discount').val(val) $(this).parent().parent().find('.price').val((cataloguePrice * val).toFixed(2)) let price = $(this).parent().parent().find('.price').val() + $(this).parent().parent().find('.price-formmat').val(Number(price).toLocaleString("en-US")) let quantity = $(this).parent().parent().find('.quantity').val() if (price && quantity) { $(this).parent().parent().find('.allPrice').val((price * quantity).toFixed(2)) + $(this).parent().parent().find('.allPrice-formmat').val(Number((price * quantity).toFixed(2)).toLocaleString("en-US")) } }) $('.productTable .discount').on('input', function () { let discount = $(this).val() let val = $(this).parent().parent().find('.cataloguePrice').val() $(this).parent().parent().find('.price').val((val * discount).toFixed(2)) + let price = $(this).parent().parent().find('.price').val() + $(this).parent().parent().find('.price-formmat').val(Number(price).toLocaleString("en-US")) + let num = $(this).parent().parent().find('.quantity').val() + $(this).parent().parent().find('.allPrice').val((price * num).toFixed(2)) + let allPrice = $(this).parent().parent().find('.allPrice').val() + $(this).parent().parent().find('.allPrice-formmat').val(Number(allPrice).toLocaleString("en-US")) }) $('.productTable .price').change('input', function () { let val = $(this).val() let num = $(this).parent().parent().find('.quantity').val() $(this).parent().parent().find('.allPrice').val((val * num).toFixed(2)) + $(this).parent().parent().find('.allPrice-formmat').val(Number((price * quantity).toFixed(2)).toLocaleString("en-US")) }) } @@ -878,12 +981,24 @@ ${ $('#productTable2 tbody').html('') $('#productTable3 tbody').html('') res.data.softwareProjectProductInfoList ? res.data.softwareProjectProductInfoList.forEach((ele) => { + ele.cataloguePriceFormmat = ele.cataloguePrice ? ele.cataloguePrice.toLocaleString("en-US") : "" + ele.priceFormmat = ele.price ? ele.price.toLocaleString("en-US") : "" + ele.catalogueAllPriceFormmat = ele.catalogueAllPrice ? ele.catalogueAllPrice.toLocaleString("en-US") : "" + ele.allPriceFormmat = ele.allPrice ? ele.allPrice.toLocaleString("en-US") : "" addProduct(ele) }) : ''; res.data.hardwareProjectProductInfoList ? res.data.hardwareProjectProductInfoList.forEach((ele) => { + ele.cataloguePriceFormmat = ele.cataloguePrice ? ele.cataloguePrice.toLocaleString("en-US") : "" + ele.priceFormmat = ele.price ? ele.price.toLocaleString("en-US") : "" + ele.catalogueAllPriceFormmat = ele.catalogueAllPrice ? ele.catalogueAllPrice.toLocaleString("en-US") : "" + ele.allPriceFormmat = ele.allPrice ? ele.allPrice.toLocaleString("en-US") : "" addProduct2(ele) }) : ''; res.data.maintenanceProjectProductInfoList ? res.data.maintenanceProjectProductInfoList.forEach((ele) => { + ele.cataloguePriceFormmat = ele.cataloguePrice ? ele.cataloguePrice.toLocaleString("en-US") : "" + ele.priceFormmat = ele.price ? ele.price.toLocaleString("en-US") : "" + ele.catalogueAllPriceFormmat = ele.catalogueAllPrice ? ele.catalogueAllPrice.toLocaleString("en-US") : "" + ele.allPriceFormmat = ele.allPrice ? ele.allPrice.toLocaleString("en-US") : "" addProduct3(ele) }) : ''; window.localStorage.removeItem('getDetail') diff --git a/ruoyi-admin/src/main/resources/templates/project/order/order.html b/ruoyi-admin/src/main/resources/templates/project/order/order.html index 2dd6ce46..d22b3e25 100644 --- a/ruoyi-admin/src/main/resources/templates/project/order/order.html +++ b/ruoyi-admin/src/main/resources/templates/project/order/order.html @@ -3,11 +3,18 @@ +
    +
    +
    • @@ -18,22 +25,39 @@
    • +
    • + + +
    • +
    • + + +
    • + +
    • + + +
    • +
    • + + +
    • - - - + +
    • - - + + +
    • @@ -74,6 +98,7 @@ var prefix = ctx + "project/order"; $(function() { + // $('#content').load(ctx + 'project/order/add'); var urlChina = '/cnarea/select'; $.cxSelect.defaults.url = urlChina; // $.cxSelect.defaults.jsonSpace = 'data'; @@ -111,11 +136,14 @@ }, { field: 'customerName', - title: '最终用户' + title: '最终客户' }, { field: 'shipmentAmount', - title: '金额(RMB)' + title: '金额(RMB)', + formatter: function (value, row, index) { + return value?formatAmountNumber(value):''; + } }, { field: 'createTime', @@ -123,11 +151,22 @@ }, { field: 'orderStatus', - title: '订单状态' + title: '订单状态', + formatter: function (value, row, index) { + return $.table.selectDictLabel([[${@dict.getType('order_status')}]], value); + } }, { field: 'dutyName', title: '汇智负责人' + }, + { + field: '', + title: '物流状态' + }, + { + field: 'agentName', + title: '代表处' }, { field: 'notifier', diff --git a/ruoyi-sip/src/main/java/com/ruoyi/sip/domain/ProjectInfo.java b/ruoyi-sip/src/main/java/com/ruoyi/sip/domain/ProjectInfo.java index e5b03d58..9ad205dc 100644 --- a/ruoyi-sip/src/main/java/com/ruoyi/sip/domain/ProjectInfo.java +++ b/ruoyi-sip/src/main/java/com/ruoyi/sip/domain/ProjectInfo.java @@ -26,7 +26,7 @@ public class ProjectInfo extends BaseEntity private Long id; /** 项目编码 */ - @Excel(name = "项目编码") + @Excel(name = "项目编号") private String projectCode; /** 项目名称 */ @@ -36,15 +36,18 @@ public class ProjectInfo extends BaseEntity /** 客户code */ // @Excel(name = "客户code") private String customerCode; - /** BG属性 */ - private String bgProperty; + /** 客户名称 */ - @Excel(name = "客户名称") + @Excel(name = "最终客户") private String customerName; private String customerUserName; private String customerPhone; - + /** + * BG属性 + */ + @Excel(name = "BG", dictType = "bg_type") + private String bgProperty; /** 行业 */ @Excel(name = "行业") private String industryType; @@ -54,38 +57,49 @@ public class ProjectInfo extends BaseEntity // private String province; /** 代表处 */ private String agentCode; + @Excel(name = "代表处") private String agentName; + private String contactEmail; + private String contactPerson; + private String contactPhone; /** 项目把握度 */ @Excel(name = "项目把握度") private String projectGraspDegree; - /** 项目阶段 */ - @Excel(name = "项目阶段") + /** + * 项目阶段 + */ + @Excel(name = "项目阶段", dictType = "project_stage") private String projectStage; /** 汇智支撑人员id */ - @Excel(name = "汇智支撑人员id") - private String hzSupportUser; - private String hzSupportUserName; - /** 运作机构 */ - @Excel(name = "运作机构") + private String hzSupportUser; + @Excel(name = "汇智负责人") + private String hzSupportUserName; + @Excel(name = "poc") + private String poc; + /** + * 运作机构 + */ +// @Excel(name = "运作机构") private String operateInstitution; /** 代理商code */ private String partnerCode; - @Excel(name = "代理商") +// @Excel(name = "代理商") private String partnerName; + private String partnerUserName; private String partnerEmail; /** 联系方式 */ - @Excel(name = "联系方式") +// @Excel(name = "联系方式") private String contactWay; /** 预计金额 */ - @Excel(name = "预计金额") + @Excel(name = "预计金额(元)") private BigDecimal estimatedAmount; /** 币种 */ @@ -101,35 +115,40 @@ public class ProjectInfo extends BaseEntity /** 预计发货时间 */ @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") - @Excel(name = "预计发货时间", width = 30, dateFormat = "yyyy-MM-dd") +// @Excel(name = "预计发货时间", width = 30, dateFormat = "yyyy-MM-dd") private Date estimatedDeliverTime; private Date estimatedDeliverTimeStart; private Date estimatedDeliverTimeEnd; private Date updateTimeStart; private Date updateTimeEnd; + @Excel(name = "更新时间", width = 30, dateFormat = "yyyy-MM-dd") + private Date updateTime; /** 竞争对手 */ - @Excel(name = "竞争对手") +// @Excel(name = "竞争对手") private String competitor; private List competitorList; - /** 是否国产 */ - @Excel(name = "是否国产",readConverterExp = "0=否,1=是") + /** + * 是否国产 + */ +// @Excel(name = "是否国产",readConverterExp = "0=否,1=是") private String countryProduct; /** 服务器配置 */ - @Excel(name = "服务器配置") +// @Excel(name = "服务器配置") private String serverConfiguration; /** 关键技术问题 */ - @Excel(name = "关键技术问题") +// @Excel(name = "关键技术问题") private String keyProblem; /** 项目描述 */ - @Excel(name = "项目描述") +// @Excel(name = "项目描述") private String projectDesc; private Boolean highlight; private Boolean canGenerate; + /** 项目产品信息 */ private List softwareProjectProductInfoList; private List hardwareProjectProductInfoList; diff --git a/ruoyi-sip/src/main/java/com/ruoyi/sip/domain/ProjectOrderInfo.java b/ruoyi-sip/src/main/java/com/ruoyi/sip/domain/ProjectOrderInfo.java index b62a777d..b8819b5a 100644 --- a/ruoyi-sip/src/main/java/com/ruoyi/sip/domain/ProjectOrderInfo.java +++ b/ruoyi-sip/src/main/java/com/ruoyi/sip/domain/ProjectOrderInfo.java @@ -31,133 +31,156 @@ public class ProjectOrderInfo extends BaseEntity { */ private Long projectId; + /** + * 项目编号 + */ + @Excel(name="项目编号") private String projectCode; + @Excel(name="项目名称") private String projectName; - private String customerName; + private String industryType; private String bgProperty; - private String agentName; + private String province; - - /** - * 地市 - */ - @Excel(name = "地市") - private String city; - - /** - * 进货商商务接口人姓名 - */ - @Excel(name = "进货商商务接口人姓名") - private String businessPerson; - - /** - * 邮箱 - */ - @Excel(name = "邮箱") - private String businessEmail; - - /** - * 电话 - */ - @Excel(name = "电话") - private String businessPhone; - /** * 合同编号 */ @Excel(name = "合同编号") private String orderCode; - - /** - * 币种 - */ - @Excel(name = "币种") - private String currencyType; + @Excel(name = "最终客户") + private String customerName; /** * 出货金额 */ - @Excel(name = "出货金额") + @Excel(name = "金额") private BigDecimal shipmentAmount; - - /** - * 实际进货金额 - */ - @Excel(name = "实际进货金额") - private BigDecimal actualPurchaseAmount; - - /** - * 执行单有效截止时间 - */ @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") - @Excel(name = "执行单有效截止时间", width = 30, dateFormat = "yyyy-MM-dd") - private Date orderEndTime; + @Excel(name="下单时间", width = 30, dateFormat = "yyyy-MM-dd") + private Date createTime; + /** + * 订单状态 + */ + @Excel(name = "订单状态",dictType = "order_status") + private String orderStatus; /** - * 要求到货时间 + * 责任人 */ - @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") - @Excel(name = "要求到货时间", width = 30, dateFormat = "yyyy-MM-dd") - private Date deliveryTime; - - /** - * 公司直发 - */ - @Excel(name = "公司直发") - private String companyDelivery; + private String duty; + @Excel(name = "汇智负责人") + private String dutyName; + @Excel(name = "代表处") + private String agentName; /** * 通知人 */ @Excel(name = "通知人") private String notifier; + /** + * 地市 + */ +// @Excel(name = "地市") + private String city; + + /** + * 进货商商务接口人姓名 + */ +// @Excel(name = "进货商商务接口人姓名") + private String businessPerson; + + /** + * 邮箱 + */ +// @Excel(name = "邮箱") + private String businessEmail; + + /** + * 电话 + */ +// @Excel(name = "电话") + private String businessPhone; + + + /** + * 币种 + */ +// @Excel(name = "币种") + private String currencyType; + + /** + * 进货商 + */ + + private String partnerCode; + @Excel(name = "进货商") + private String partnerName; + + /** + * 实际进货金额 + */ +// @Excel(name = "实际进货金额") + private BigDecimal actualPurchaseAmount; + + /** + * 执行单有效截止时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") +// @Excel(name = "执行单有效截止时间", width = 30, dateFormat = "yyyy-MM-dd") + private Date orderEndTime; + + /** + * 要求到货时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") +// @Excel(name = "要求到货时间", width = 30, dateFormat = "yyyy-MM-dd") + private Date deliveryTime; + + /** + * 公司直发 + */ +// @Excel(name = "公司直发") + private String companyDelivery; + + + /** * 通知人邮箱 */ - @Excel(name = "通知人邮箱") +// @Excel(name = "通知人邮箱") private String notifierEmail; /** * 通知人电话 */ - @Excel(name = "通知人电话") +// @Excel(name = "通知人电话") private String notifierPhone; - /** - * 责任人 - */ - private String duty; - @Excel(name = "责任人") - private String dutyName; /** * 责任人邮箱 */ - @Excel(name = "责任人邮箱") +// @Excel(name = "责任人邮箱") private String dutyEmail; /** * 责任人电话 */ - @Excel(name = "责任人电话") +// @Excel(name = "责任人电话") private String dutyPhone; /** * 下单通路 */ - @Excel(name = "下单通路") +// @Excel(name = "下单通路") private String orderChannel; - /** - * 进货商 - */ - @Excel(name = "进货商") - private String partnerCode; - private String partnerName; + private String partnerEmail; private String partnerUserName; private String partnerPhone; @@ -171,14 +194,10 @@ public class ProjectOrderInfo extends BaseEntity { /** * 供货商 */ - @Excel(name = "供货商") +// @Excel(name = "供货商") private String supplier; - /** - * 订单状态 - */ - @Excel(name = "订单状态") - private String orderStatus; + private List contractFileList; private List configFileList; diff --git a/ruoyi-sip/src/main/java/com/ruoyi/sip/service/impl/ProjectInfoServiceImpl.java b/ruoyi-sip/src/main/java/com/ruoyi/sip/service/impl/ProjectInfoServiceImpl.java index cf0ed4f0..2af25d89 100644 --- a/ruoyi-sip/src/main/java/com/ruoyi/sip/service/impl/ProjectInfoServiceImpl.java +++ b/ruoyi-sip/src/main/java/com/ruoyi/sip/service/impl/ProjectInfoServiceImpl.java @@ -50,10 +50,12 @@ public class ProjectInfoServiceImpl implements IProjectInfoService { @Autowired private IProjectOrderInfoService orderInfoService; private static final String PROJECT_CODE_PREFIX = "V"; - private static final Integer PROJECT_CODE_LENGTH = 5; + private static final Integer PROJECT_CODE_LENGTH = 6; - public static final String INDUSTRY_TYPE_DICT_TYPE = "industry_type"; + + public static final String INDUSTRY_TYPE_YYS_DICT_TYPE = "bg_yys"; + public static final String INDUSTRY_TYPE_DICT_TYPE = "bg_hysy"; public static final String BG_TYPE_DICT_TYPE = "bg_type"; public static final String PROJECT_STAGE_DICT_TYPE = "project_stage"; public static final String OPERATE_INSTITUTION_DICT_TYPE = "operate_institution"; @@ -453,12 +455,12 @@ public class ProjectInfoServiceImpl implements IProjectInfoService { public List selectProjectInfoExportList(ProjectInfo projectInfo) { List projectInfos = projectInfoMapper.selectProjectInfoList(projectInfo); for (ProjectInfo info : projectInfos) { - info.setIndustryType(DictUtils.getDictLabel(INDUSTRY_TYPE_DICT_TYPE, info.getIndustryType())); - info.setProjectStage(DictUtils.getDictLabel(PROJECT_STAGE_DICT_TYPE, info.getIndustryType())); - if (info.getHzSupportUser() != null) { - List sysUsers = projectInfoMapper.selectUserById(Collections.singletonList(info.getHzSupportUser())); - Map userMap = sysUsers.stream().collect(Collectors.toMap(item -> item.getUserId().toString(), SysUser::getUserName)); - info.setHzSupportUser(userMap.getOrDefault(info.getHzSupportUser(), "")); +// info.setIndustryType(DictUtils.getDictLabel(INDUSTRY_TYPE_DICT_TYPE, info.getIndustryType())); +// info.setProjectStage(DictUtils.getDictLabel(PROJECT_STAGE_DICT_TYPE, info.getIndustryType())); + if ("YYS".equals(info.getBgProperty())){ + info.setIndustryType(DictUtils.getDictLabel(INDUSTRY_TYPE_YYS_DICT_TYPE, info.getIndustryType())); + }else{ + info.setIndustryType(DictUtils.getDictLabel(INDUSTRY_TYPE_DICT_TYPE, info.getIndustryType())); } } return projectInfos; diff --git a/ruoyi-sip/src/main/resources/mapper/sip/ProjectInfoMapper.xml b/ruoyi-sip/src/main/resources/mapper/sip/ProjectInfoMapper.xml index 6e12324c..ed57d12b 100644 --- a/ruoyi-sip/src/main/resources/mapper/sip/ProjectInfoMapper.xml +++ b/ruoyi-sip/src/main/resources/mapper/sip/ProjectInfoMapper.xml @@ -37,7 +37,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" select id, project_code, project_name,bg_property, customer_code, customer_name, industry_type, agent_code, project_stage, project_grasp_degree, hz_support_user, operate_institution , partner_code, partner_name, contact_way, estimated_amount, currency_type, estimated_order_time, estimated_deliver_time, competitor, country_product, server_configuration - , key_problem, project_desc, create_by, create_time, update_by, update_time,customer_user_name,customer_phone,partner_email from project_info t1 + , key_problem, project_desc, create_by, create_time, update_by, update_time,customer_user_name,customer_phone,partner_email,partner_user_name from project_info t1 select t1.id, @@ -68,8 +68,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" t1.create_time, t1.update_by, t1.update_time, - t1.customer_user_name,t1.customer_phone,t1.partner_email, - t2.agent_name, + t1.customer_user_name,t1.customer_phone,t1.partner_email,t1.partner_user_name, + t2.agent_name,t2.contact_email,t2.contact_phone,t2.contact_person, t3.user_name as hz_support_user_name from project_info t1 left join agent_info t2 on t1.agent_code = t2.agent_code @@ -184,6 +184,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" operate_institution, partner_code, partner_name, + partner_user_name, partner_email, contact_way, estimated_amount, @@ -216,6 +217,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" #{operateInstitution}, #{partnerCode}, #{partnerName}, + #{partnerUserName}, #{partnerEmail}, #{contactWay}, #{estimatedAmount}, @@ -252,6 +254,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" operate_institution = #{operateInstitution}, partner_code = #{partnerCode}, partner_name = #{partnerName}, + partner_user_name = #{partnerUserName}, partner_email=#{partnerEmail}, contact_way = #{contactWay}, estimated_amount = #{estimatedAmount}, diff --git a/ruoyi-sip/src/main/resources/mapper/sip/ProjectOrderInfoMapper.xml b/ruoyi-sip/src/main/resources/mapper/sip/ProjectOrderInfoMapper.xml index c0d56f0f..395ca3a3 100644 --- a/ruoyi-sip/src/main/resources/mapper/sip/ProjectOrderInfoMapper.xml +++ b/ruoyi-sip/src/main/resources/mapper/sip/ProjectOrderInfoMapper.xml @@ -61,8 +61,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and t1.project_id = #{projectId} - and t2.project_code = #{projectCode} - and t2.project_name = #{projectName} + and t2.project_code like concat('%',#{projectCode},'%') + and t2.project_name like concat('%', #{projectName},'%') + and t2.customer_name like concat('%',#{customerName},'%') + and t4.agent_name like concat('%',#{agentName},'%') and t1.province = #{province} and t1.city = #{city} and t1.business_person = #{businessPerson} @@ -84,6 +86,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and t1.duty_phone = #{dutyPhone} and t1.order_channel = #{orderChannel} and t1.partner_code = #{partnerCode} + and t3.partner_name like concat('%', #{partnerName}, '%') and t1.supplier = #{supplier} and t1.supplier = #{supplier} and t1.order_status = #{orderStatus}
    序号产品编号产品编码 产品型号 描述 数量
    ${length + 1} + + + + + + + + + 删除删除
    ${length + 1} + + + + + + + + + 删除删除
    ${length + 1} + + + + + + + + + 删除删除