From b0c278357c2d76cf8bd2b52898bbf94cc914bb1e Mon Sep 17 00:00:00 2001 From: chenhao <852066789@qq.com> Date: Thu, 19 Jun 2025 10:22:36 +0800 Subject: [PATCH] =?UTF-8?q?feat(sip):=20=E6=B7=BB=E5=8A=A0=E8=AE=A2?= =?UTF-8?q?=E5=8D=95=E5=90=8C=E6=AD=A5=E5=8A=9F=E8=83=BD=E5=B9=B6=E4=BC=98?= =?UTF-8?q?=E5=8C=96=E8=AE=A2=E5=8D=95=E7=AE=A1=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在订单添加和编辑页面添加同步按钮,实现订单信息同步 - 优化订单导入功能,调整导入模板和数据处理逻辑 - 新增订单查询接口,用于获取订单详细信息 - 重构订单信息实体类,增加版本号等字段 - 优化订单列表展示,增加维保金额等信息 --- .../controller/system/SysLoginController.java | 13 ++ .../resources/templates/manage/order/add.html | 154 ++++++++++++++---- .../templates/manage/order/edit.html | 140 +++++++++++++--- .../templates/manage/order/order.html | 4 +- .../templates/project/order/add.html | 34 +++- .../templates/project/order/edit.html | 12 +- .../ProjectOrderInfoController.java | 9 + .../ruoyi/sip/domain/ProjectOrderInfo.java | 5 + .../ruoyi/sip/domain/ProjectProductInfo.java | 1 + .../sip/service/IProjectOrderInfoService.java | 2 + .../service/impl/OrderInfoServiceImpl.java | 22 +-- .../impl/ProjectOrderInfoServiceImpl.java | 55 ++++++- .../mapper/manage/OrderInfoMapper.xml | 1 + .../mapper/sip/ProjectOrderInfoMapper.xml | 9 +- .../mapper/sip/ProjectProductInfoMapper.xml | 2 +- 15 files changed, 376 insertions(+), 87 deletions(-) diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java index 55aecae6..3145698c 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java @@ -2,6 +2,10 @@ package com.ruoyi.web.controller.system; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; + +import com.ruoyi.common.core.domain.entity.SysUser; +import com.ruoyi.common.utils.ShiroUtils; +import lombok.extern.slf4j.Slf4j; import org.apache.shiro.SecurityUtils; import org.apache.shiro.authc.AuthenticationException; import org.apache.shiro.authc.UsernamePasswordToken; @@ -26,6 +30,7 @@ import com.ruoyi.framework.web.service.ConfigService; * @author ruoyi */ @Controller +@Slf4j public class SysLoginController extends BaseController { /** @@ -45,6 +50,14 @@ public class SysLoginController extends BaseController { return ServletUtils.renderString(response, "{\"code\":\"1\",\"msg\":\"未登录或登录超时。请重新登录\"}"); } +// try { +// SysUser sysUser = ShiroUtils.getSysUser(); +// if (sysUser != null){ +// return "redirect:/index"; +// } +// } catch (Exception e) { +// log.error("已登录用户跳转失败",e); +// } // 是否开启记住我 mmap.put("isRemembered", rememberMe); // 是否开启用户注册 diff --git a/ruoyi-admin/src/main/resources/templates/manage/order/add.html b/ruoyi-admin/src/main/resources/templates/manage/order/add.html index d06ee5e0..ca809349 100644 --- a/ruoyi-admin/src/main/resources/templates/manage/order/add.html +++ b/ruoyi-admin/src/main/resources/templates/manage/order/add.html @@ -32,7 +32,11 @@
- +
+ + +
@@ -56,7 +60,7 @@
- - - -
+ + +
@@ -81,15 +85,15 @@
-
+ - - - + + + -
+
@@ -108,12 +112,12 @@
-
+ - -
+ > + + +
@@ -166,12 +170,12 @@
- - + + + + + +
@@ -201,6 +205,74 @@ autoclose: true }); + function syncInfo() { + let orderCode = $("#orderCode").val(); + if (!orderCode) { + $.modal.alertWarning("请填写订单编号"); + return + } + $.operate.get(ctx + `project/order/query/${orderCode}`, function (res) { + let data = res.data + if (!data) { + $("#bootstrap-table").bootstrapTable('removeAll'); + $('[name="projectCode"]').val(''); + $('[name="versionCode"]').val(''); + $('[name="orderName"]').val(''); + $('[name="orderType"]').val(''); + $('[name="orderAgentCode"]').val(''); + $('[name="orderAgentName"]').val(''); + $('[name="orderPartnerCode"]').val(''); + $('[name="orderPartnerName"]').val(''); + $('[name="customerName"]').val(''); + $('[name="customerCode"]').val(''); + $('[name="customerContact"]').val(''); + // $('[name="customerEmail"]').val(data.contactPhone); + $('[name="customerPhone"]').val(''); + return + } + + $('[name="projectCode"]').val(data.projectCode); + $('[name="versionCode"]').val(data.versionCode); + $('[name="orderName"]').val(data.projectName); + $('[name="orderType"]').val(data.orderChannel === '2' ? 'zq' : 'dls'); + $('[name="orderAgentCode"]').val(data.agentCode); + $('[name="orderAgentName"]').val(data.agentName); + $('[name="orderPartnerCode"]').val(data.partnerCode); + $('[name="orderPartnerName"]').val(data.partnerName); + $('[name="customerName"]').val(data.customerName); + $('[name="customerCode"]').val(data.customerCode); + $('[name="customerContact"]').val(data.customerUserName); + // $('[name="customerEmail"]').val(data.contactPhone); + $('[name="customerPhone"]').val(data.customerPhone); + + $("#bootstrap-table").bootstrapTable('removeAll'); + if (data.softwareProjectProductInfoList) { + data.softwareProjectProductInfoList.forEach(item => { + item.productCode = item.productBomCode + item.amount = item.allPrice + addRow(item) + }) + } + if (data.hardwareProjectProductInfoList) { + data.hardwareProjectProductInfoList.forEach(item => { + item.productCode = item.productBomCode + item.amount = item.allPrice + addRow(item) + }) + } + if (data.maintenanceProjectProductInfoList) { + data.maintenanceProjectProductInfoList.forEach(item => { + item.productCode = item.productBomCode + item.amount = item.allPrice + addRow(item) + }) + } + + }) + } + + + $(function () { var options = { pagination: false, @@ -263,7 +335,10 @@ title: '折扣', width: 90, formatter: function (value, row, index) { - var html = $.common.sprintf("", index, value); + let showValue=value?value*100+'%':'0%'; + var html = $.common.sprintf("" + + "" + + "", index, value,showValue); return html; } }, @@ -285,14 +360,15 @@ return html; } }, - { - title: '操作', - align: 'center', - formatter: function (value, row, index) { - var value = $.common.isNotEmpty(row.index) ? row.index : $.table.serialNumber(index); - return '删除'; - } - }] + // { + // title: '操作', + // align: 'center', + // formatter: function (value, row, index) { + // var value = $.common.isNotEmpty(row.index) ? row.index : $.table.serialNumber(index); + // return '删除'; + // } + // } + ] }; $.table.init(options); @@ -306,6 +382,20 @@ $('[name="versionCode"]').on('focus', function () { $(this).blur() }) + const form = $('#form-order-add') + form.find('input').each(function () { + let name = $(this).attr('name'); + if (name === 'orderCode' || name === 'orderDate'|| name === 'customerEmail') { + return + } + $(this).attr('readonly', true) + + }) + + + + + }); function addRow(row) { diff --git a/ruoyi-admin/src/main/resources/templates/manage/order/edit.html b/ruoyi-admin/src/main/resources/templates/manage/order/edit.html index a00cf5f7..3d11e276 100644 --- a/ruoyi-admin/src/main/resources/templates/manage/order/edit.html +++ b/ruoyi-admin/src/main/resources/templates/manage/order/edit.html @@ -30,7 +30,11 @@
- +
+ + +
@@ -38,7 +42,7 @@
-
@@ -55,7 +59,7 @@
- - -
+ required/> + +
@@ -80,15 +84,15 @@
-
+ - - -
+ required> + + + +
@@ -109,12 +113,12 @@
-
+ - -
+ required > + + +
@@ -171,12 +175,12 @@
-
- - -
+ + + + + +
@@ -349,8 +353,86 @@ changeOrderType() initCustomerSet() + const form = $('#form-order-edit') + form.find('input').each(function () { + let name = $(this).attr('name'); + if (name === 'orderDate'|| name === 'customerEmail') { + return + } + $(this).attr('readonly', true) + + }) + }); + function syncInfo() { + let orderCode = $("#orderCode").val(); + if (!orderCode) { + $.modal.alertWarning("请填写订单编号"); + return + } + $.operate.get(ctx + `project/order/query/${orderCode}`, function (res) { + let data = res.data + // $("#bootstrap-table").bootstrapTable('removeAll'); + $("#bootstrap-table").bootstrapTable('destroy'); + if (!data) { + $('[name="projectCode"]').val(''); + $('[name="versionCode"]').val(''); + $('[name="orderName"]').val(''); + $('[name="orderType"]').val(''); + $('[name="orderAgentCode"]').val(''); + $('[name="orderAgentName"]').val(''); + $('[name="orderPartnerCode"]').val(''); + $('[name="orderPartnerName"]').val(''); + $('[name="customerName"]').val(''); + $('[name="customerCode"]').val(''); + $('[name="customerContact"]').val(''); + // $('[name="customerEmail"]').val(data.contactPhone); + $('[name="customerPhone"]').val(''); + return + } + + $('[name="projectCode"]').val(data.projectCode); + $('[name="versionCode"]').val(data.versionCode); + $('[name="orderName"]').val(data.projectName); + $('[name="orderType"]').val(data.orderChannel === '2' ? 'zq' : 'dls'); + $('[name="orderAgentCode"]').val(data.agentCode); + $('[name="orderAgentName"]').val(data.agentName); + $('[name="orderPartnerCode"]').val(data.partnerCode); + $('[name="orderPartnerName"]').val(data.partnerName); + $('[name="customerName"]').val(data.customerName); + $('[name="customerCode"]').val(data.customerCode); + $('[name="customerContact"]').val(data.customerUserName); + // $('[name="customerEmail"]').val(data.contactPhone); + $('[name="customerPhone"]').val(data.customerPhone); + + let allProduct = [] + if (data.softwareProjectProductInfoList) { + data.softwareProjectProductInfoList.forEach(item => { + item.productCode = item.productBomCode + item.amount = item.allPrice + allProduct.push( item) + }) + } + if (data.hardwareProjectProductInfoList) { + data.hardwareProjectProductInfoList.forEach(item => { + item.productCode = item.productBomCode + item.amount = item.allPrice + allProduct.push( item) + }) + } + if (data.maintenanceProjectProductInfoList) { + data.maintenanceProjectProductInfoList.forEach(item => { + item.productCode = item.productBomCode + item.amount = item.allPrice + allProduct.push( item) + }) + } + initTable(allProduct) + + }) + } + function downloadTem() { $.modal.loading("正在下载,请稍候..."); window.location.href = prefix + "/list/export" @@ -411,7 +493,7 @@ align: 'center', title: 'BOM编码', formatter: function (value, row, index) { - var html = $.common.sprintf("

%s

", value); + var html = $.common.sprintf("",index, value); return html; } }, @@ -420,7 +502,7 @@ align: 'center', title: '产品名称', formatter: function (value, row, index) { - var html = $.common.sprintf("

%s

", value); + var html = $.common.sprintf("",index, value); return html; } }, @@ -449,7 +531,11 @@ title: '折扣', width: 90, formatter: function (value, row, index) { - var html = $.common.sprintf("", index, value); + let showValue=value?value*100+'%':'0%'; + var html = $.common.sprintf("" + + "" + + "", index, value,showValue); + return html; } }, diff --git a/ruoyi-admin/src/main/resources/templates/manage/order/order.html b/ruoyi-admin/src/main/resources/templates/manage/order/order.html index 20ca1be8..f52a38f2 100644 --- a/ruoyi-admin/src/main/resources/templates/manage/order/order.html +++ b/ruoyi-admin/src/main/resources/templates/manage/order/order.html @@ -51,9 +51,7 @@ 添加 - - 修改 - + 删除 diff --git a/ruoyi-admin/src/main/resources/templates/project/order/add.html b/ruoyi-admin/src/main/resources/templates/project/order/add.html index 973952e5..e55c6303 100644 --- a/ruoyi-admin/src/main/resources/templates/project/order/add.html +++ b/ruoyi-admin/src/main/resources/templates/project/order/add.html @@ -129,7 +129,7 @@ onclick="searchProject()"> 项目名称* - 最终客户* --> 执行单有效截止时间* - - + + 版本号* + 要求到货时间* - + 公司直发 @@ -373,7 +376,26 @@ }) } + function changeName(){ + console.log('11111111') + let name = $('#projectName').val() + console.log(name) + let versionCode = $('#versionCode').val() + console.log(versionCode) + let result=''; + if (name){ + result=name; + console.log('22222') + console.log(result) + if (versionCode){ + result+='Rev '+versionCode; + console.log('33333333') + console.log(result) + } + } + $('#projectNameBox').text(result) + } function updateShipmentAmountValue(key) { // 获取显示用的输入框 const displayInput = document.getElementById('display'+key); @@ -447,7 +469,7 @@ window.localStorage.setItem('getDetail', 1) $.operate.get(ctx + `sip/project/query/${id}`, function (res) { let data = res.data - $('#projectNameBox').text(data.projectName) + $('#projectNameBox').text(data.projectName+'Rev 1') $('[name="customerCode"]').val(data.customerCode); $('[name="customerName"]').val(data.customerName); $('[name="projectCode"]').val(data.projectCode); @@ -545,7 +567,7 @@ $.modal.alertWarning("请选择一个项目"); return; } - $('#projectNameBox').text(rows[0].projectName) + $('#projectNameBox').text(rows[0].projectName+'Rev 1') $('[name="customerCode"]').val(rows[0].customerCode); $('[name="customerName"]').val(rows[0].customerName); $('[name="projectCode"]').val(rows[0].projectCode); 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 15cf30ad..b891b989 100644 --- a/ruoyi-admin/src/main/resources/templates/project/order/edit.html +++ b/ruoyi-admin/src/main/resources/templates/project/order/edit.html @@ -201,12 +201,15 @@ 执行单有效截止时间* - + + 版本号* + @@ -562,7 +565,12 @@ function initData() { changeBg() $('[name="industryType"]').val([[${projectOrderInfo.industryType}]]); - $('#projectNameBox').text([[${projectOrderInfo.projectName}]]) + let name = [[${projectOrderInfo.projectName}]]; + let versionCode = [[${projectOrderInfo.versionCode}]]; + if (versionCode){ + name=name + 'Rev ' + versionCode + } + $('#projectNameBox').text(name) } function doSubmitPeople(index, layero) { diff --git a/ruoyi-sip/src/main/java/com/ruoyi/sip/controller/ProjectOrderInfoController.java b/ruoyi-sip/src/main/java/com/ruoyi/sip/controller/ProjectOrderInfoController.java index 38e66952..f73c1964 100644 --- a/ruoyi-sip/src/main/java/com/ruoyi/sip/controller/ProjectOrderInfoController.java +++ b/ruoyi-sip/src/main/java/com/ruoyi/sip/controller/ProjectOrderInfoController.java @@ -123,6 +123,15 @@ public class ProjectOrderInfoController extends BaseController return prefix + "/edit"; } + @GetMapping("/query/{orderCode}") + @ResponseBody + public AjaxResult query(@PathVariable("orderCode") String orderCode) + { + ProjectOrderInfo projectOrderInfo = projectOrderInfoService.selectProjectOrderInfoByOrderCode(orderCode); + + return AjaxResult.success(projectOrderInfo); + } + /** * 修改保存订单管理 */ 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 2b7d66d6..10910126 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 @@ -38,6 +38,7 @@ public class ProjectOrderInfo extends BaseEntity { private String projectCode; @Excel(name="项目名称") private String projectName; + private String versionCode; private String industryType; private String bgProperty; @@ -51,6 +52,9 @@ public class ProjectOrderInfo extends BaseEntity { private String orderCode; @Excel(name = "最终客户") private String customerName; + private String customerCode; + private String customerPhone; + private String customerUserName; /** * 出货金额 @@ -76,6 +80,7 @@ public class ProjectOrderInfo extends BaseEntity { private String dutyName; @Excel(name = "代表处") private String agentName; + private String agentCode; /** * 通知人 */ diff --git a/ruoyi-sip/src/main/java/com/ruoyi/sip/domain/ProjectProductInfo.java b/ruoyi-sip/src/main/java/com/ruoyi/sip/domain/ProjectProductInfo.java index 2b8453f7..6de55322 100644 --- a/ruoyi-sip/src/main/java/com/ruoyi/sip/domain/ProjectProductInfo.java +++ b/ruoyi-sip/src/main/java/com/ruoyi/sip/domain/ProjectProductInfo.java @@ -32,6 +32,7 @@ public class ProjectProductInfo extends BaseEntity /** 产品编码 */ @Excel(name = "产品编码") private String productBomCode; + private String productName; /** 产品型号 */ @Excel(name = "产品型号") diff --git a/ruoyi-sip/src/main/java/com/ruoyi/sip/service/IProjectOrderInfoService.java b/ruoyi-sip/src/main/java/com/ruoyi/sip/service/IProjectOrderInfoService.java index 9e11370f..5cd541ef 100644 --- a/ruoyi-sip/src/main/java/com/ruoyi/sip/service/IProjectOrderInfoService.java +++ b/ruoyi-sip/src/main/java/com/ruoyi/sip/service/IProjectOrderInfoService.java @@ -74,4 +74,6 @@ public interface IProjectOrderInfoService String exportList(ProjectOrderInfo projectOrderInfo); List listHomePageData(HomepageQueryDto dto); + + ProjectOrderInfo selectProjectOrderInfoByOrderCode(String orderCode); } diff --git a/ruoyi-sip/src/main/java/com/ruoyi/sip/service/impl/OrderInfoServiceImpl.java b/ruoyi-sip/src/main/java/com/ruoyi/sip/service/impl/OrderInfoServiceImpl.java index 34d473d8..544a84b7 100644 --- a/ruoyi-sip/src/main/java/com/ruoyi/sip/service/impl/OrderInfoServiceImpl.java +++ b/ruoyi-sip/src/main/java/com/ruoyi/sip/service/impl/OrderInfoServiceImpl.java @@ -137,16 +137,18 @@ public class OrderInfoServiceImpl implements IOrderInfoService // // orderInfoMapper.logicRemoveListById(deleteList); // } -// orderInfoMapper.deleteOrderListByOrderId(orderInfo.getId()); -// insertOrderList(orderInfo); - orderInfo.setUpdateBy(ShiroUtils.getUserId().toString()); - List orderListList = orderInfo.getOrderListList(); - if (orderListList!=null && !orderListList.isEmpty()){ - for (OrderList orderList : orderListList) { - orderList.setUpdateBy(ShiroUtils.getUserId().toString()); - } - orderInfoMapper.updateListBatch(orderListList); - } + orderInfoMapper.deleteOrderListByOrderId(orderInfo.getId()); + insertOrderList(orderInfo); +// orderInfo.setUpdateBy(ShiroUtils.getUserId().toString()); +// List orderListList = orderInfo.getOrderListList(); +// List existsOrderList = orderInfoMapper.selectOrderListList(orderInfo.getId()); +// existsOrderList.stream().filter(item->) +// if (orderListList!=null && !orderListList.isEmpty()){ +// for (OrderList orderList : orderListList) { +// orderList.setUpdateBy(ShiroUtils.getUserId().toString()); +// } +// orderInfoMapper.updateListBatch(orderListList); +// } return orderInfoMapper.updateOrderInfo(orderInfo); } diff --git a/ruoyi-sip/src/main/java/com/ruoyi/sip/service/impl/ProjectOrderInfoServiceImpl.java b/ruoyi-sip/src/main/java/com/ruoyi/sip/service/impl/ProjectOrderInfoServiceImpl.java index 75674610..20d53d30 100644 --- a/ruoyi-sip/src/main/java/com/ruoyi/sip/service/impl/ProjectOrderInfoServiceImpl.java +++ b/ruoyi-sip/src/main/java/com/ruoyi/sip/service/impl/ProjectOrderInfoServiceImpl.java @@ -1,6 +1,5 @@ package com.ruoyi.sip.service.impl; -import java.io.File; import java.math.BigDecimal; import java.time.LocalDate; import java.time.format.DateTimeFormatter; @@ -57,6 +56,7 @@ public class ProjectOrderInfoServiceImpl implements IProjectOrderInfoService { @Autowired private ICnareaService cnareaService; + private static final List MAINTENANCE_SERVICES = Arrays.asList("8813A3YA", "8813A3YB", "8813A7U4", "8813A7U2"); /** * 查询订单管理 * @@ -272,6 +272,30 @@ public class ProjectOrderInfoServiceImpl implements IProjectOrderInfoService { return staticsMap.values().stream().sorted(Comparator.comparing(StatisticsDetailDto::getStatisticsStr)).collect(Collectors.toList()); } + @Override + public ProjectOrderInfo selectProjectOrderInfoByOrderCode(String orderCode) { + ProjectOrderInfo queryParam = new ProjectOrderInfo(); + queryParam.setOrderCode(orderCode); + List projectOrderInfos = projectOrderInfoMapper.selectProjectOrderInfoList(queryParam); + if (CollUtil.isEmpty(projectOrderInfos)) { + return null; + } + ProjectOrderInfo projectOrderInfo= projectOrderInfos.stream().max(Comparator.comparing(ProjectOrderInfo::getVersionCode)).get(); + + List projectProductInfos = productInfoService.selectProjectProductInfoListByProjectId(Collections.singletonList(projectOrderInfo.getProjectId())); + Map> productListMap = projectProductInfos.stream().collect(Collectors.groupingBy(ProjectProductInfo::getType)); + projectOrderInfo.setSoftwareProjectProductInfoList(productListMap.get(ProductInfo.ProductTypeEnum.SOFTWARE.getType())); + projectOrderInfo.setHardwareProjectProductInfoList(productListMap.get(ProductInfo.ProductTypeEnum.HARDWARE.getType())); + List maintenanceProjectProductInfoList = productListMap.getOrDefault(ProductInfo.ProductTypeEnum.HARDWARE_MAINTENANCE.getType(), new ArrayList<>()); + maintenanceProjectProductInfoList.addAll(productListMap.getOrDefault(ProductInfo.ProductTypeEnum.SOFTWARE_MAINTENANCE.getType(), new ArrayList<>())); + projectOrderInfo.setMaintenanceProjectProductInfoList(maintenanceProjectProductInfoList); + + + + return projectOrderInfo; + + } + private List fetchProjectInfos(ProjectOrderInfo projectOrderInfo) { List projectOrderInfos = projectOrderInfoMapper.selectProjectOrderInfoList(projectOrderInfo); if (CollUtil.isEmpty(projectOrderInfos)) { @@ -378,6 +402,7 @@ public class ProjectOrderInfoServiceImpl implements IProjectOrderInfoService { headerList.add(Collections.singletonList("合同编号")); headerList.add(Collections.singletonList("币种")); headerList.add(Collections.singletonList("订单金额")); + headerList.add(Collections.singletonList("维保金额")); headerList.add(Collections.singletonList("执行单有效截止时间")); headerList.add(Collections.singletonList("要求到货时间")); headerList.add(Collections.singletonList("公司直发")); @@ -385,6 +410,7 @@ public class ProjectOrderInfoServiceImpl implements IProjectOrderInfoService { headerList.add(Collections.singletonList("供货商")); headerList.add(Collections.singletonList("汇智责任人")); headerList.add(Collections.singletonList("Email")); + headerList.add(Collections.singletonList("联系方式")); headerList.add(Collections.singletonList("进货商")); headerList.add(Collections.singletonList("进货商代码")); headerList.add(Collections.singletonList("进货商类型")); @@ -462,11 +488,18 @@ public class ProjectOrderInfoServiceImpl implements IProjectOrderInfoService { row.add(DictUtils.getDictLabel("order_status", info.getOrderStatus())); BigDecimal totalPrice = BigDecimal.ZERO; + BigDecimal maintenancePrice = BigDecimal.ZERO; // 添加软件产品列 for (int i = 0; i < maxSoftware; i++) { if (CollUtil.isNotEmpty(info.getSoftwareProjectProductInfoList()) && i < info.getSoftwareProjectProductInfoList().size()) { - totalPrice = addProductRow(info.getSoftwareProjectProductInfoList().get(i), row, totalPrice); + ProjectProductInfo productInfo = info.getSoftwareProjectProductInfoList().get(i); + totalPrice = addProductRow(productInfo, row, totalPrice); + if (productInfo!=null && StringUtils.isNotEmpty(productInfo.getProductBomCode()) + && MAINTENANCE_SERVICES.contains(productInfo.getProductBomCode()) + && productInfo.getAllPrice() != null) { + maintenancePrice = maintenancePrice.add(productInfo.getAllPrice()); + } } else { addProductRow(null, row, totalPrice); } @@ -475,7 +508,13 @@ public class ProjectOrderInfoServiceImpl implements IProjectOrderInfoService { // 添加终端产品列 for (int i = 0; i < maxHardware; i++) { if (CollUtil.isNotEmpty(info.getHardwareProjectProductInfoList()) && i < info.getHardwareProjectProductInfoList().size()) { - totalPrice = addProductRow(info.getHardwareProjectProductInfoList().get(i), row, totalPrice); + ProjectProductInfo productInfo = info.getHardwareProjectProductInfoList().get(i); + totalPrice = addProductRow(productInfo, row, totalPrice); + if (productInfo!=null && StringUtils.isNotEmpty(productInfo.getProductBomCode()) + && MAINTENANCE_SERVICES.contains(productInfo.getProductBomCode()) + && productInfo.getAllPrice() != null) { + maintenancePrice = maintenancePrice.add(productInfo.getAllPrice()); + } } else { addProductRow(null, row, totalPrice); } @@ -484,13 +523,21 @@ public class ProjectOrderInfoServiceImpl implements IProjectOrderInfoService { // 添加服务产品列 for (int i = 0; i < maxMaintenance; i++) { if (CollUtil.isNotEmpty(info.getMaintenanceProjectProductInfoList()) && i < info.getMaintenanceProjectProductInfoList().size()) { - totalPrice = addProductRow(info.getMaintenanceProjectProductInfoList().get(i), row, totalPrice); + ProjectProductInfo productInfo = info.getMaintenanceProjectProductInfoList().get(i); + totalPrice = addProductRow(productInfo, row, totalPrice); + if (productInfo!=null && StringUtils.isNotEmpty(productInfo.getProductBomCode()) + && MAINTENANCE_SERVICES.contains(productInfo.getProductBomCode()) + && productInfo.getAllPrice() != null) { + maintenancePrice = maintenancePrice.add(productInfo.getAllPrice()); + } } else { addProductRow(null, row, totalPrice); } } row.add(totalPrice.toString()); + //维保金额 + row.add(12, maintenancePrice.toString()); dataList.add(row); } diff --git a/ruoyi-sip/src/main/resources/mapper/manage/OrderInfoMapper.xml b/ruoyi-sip/src/main/resources/mapper/manage/OrderInfoMapper.xml index 1c0e7e00..4656007f 100644 --- a/ruoyi-sip/src/main/resources/mapper/manage/OrderInfoMapper.xml +++ b/ruoyi-sip/src/main/resources/mapper/manage/OrderInfoMapper.xml @@ -349,6 +349,7 @@ update order_list quantity = #{item.quantity}, + product_code = #{item.productCode}, amount = #{item.amount}, discount = #{item.discount}, price = #{item.price}, diff --git a/ruoyi-sip/src/main/resources/mapper/sip/ProjectOrderInfoMapper.xml b/ruoyi-sip/src/main/resources/mapper/sip/ProjectOrderInfoMapper.xml index af91f164..91f73a90 100644 --- a/ruoyi-sip/src/main/resources/mapper/sip/ProjectOrderInfoMapper.xml +++ b/ruoyi-sip/src/main/resources/mapper/sip/ProjectOrderInfoMapper.xml @@ -39,14 +39,16 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" select id, project_id,province, city, business_person, business_email, business_phone, order_code, currencyType, shipment_amount, actual_purchase_amount, order_end_time, delivery_time, company_delivery, notifier, notifier_email, notifier_phone, duty, duty_email, duty_phone, order_channel, partner_code, supplier, - remark, order_status, create_by, create_time, update_by, update_time from project_order_info t1 + remark, order_status, create_by, create_time, update_by, update_time,version_code from project_order_info t1 select t1.id, t1.project_id,t1.province, t1.city, t1.business_person, t1.business_email, t1.business_phone, t1.order_code, t1.currencyType, t1.shipment_amount, t1.actual_purchase_amount, t1.order_end_time, t1.delivery_time, t1.company_delivery, t1.notifier, t1.notifier_email, t1.notifier_phone, t1.duty, t1.duty_email, t1.duty_phone, t1.order_channel, t1.partner_code, t1.supplier, - t1.remark, t1.order_status, t1.create_by, t1.create_time, t1.update_by, t1.update_time,t1.partner_user_name,t1.partner_email,t1.partner_phone + t1.remark, t1.order_status, t1.create_by, t1.create_time, t1.update_by, t1.update_time,t1.partner_user_name,t1.partner_email + ,t1.partner_phone,t1.version_code ,t2.project_code,t2.project_name,t2.province,t2.customer_name,t2.customer_code,t2.industry_type,t2.bg_property,t2.agent_code,t2.estimated_order_time + ,t2.customer_phone,t2.customer_user_name,t2.agent_code,t2.customer_code ,t3.partner_name,t3.level ,t4.agent_name ,t5.user_name as duty_name @@ -176,6 +178,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" business_email, business_phone, order_code, + version_code, currencyType, shipment_amount, actual_purchase_amount, @@ -209,6 +212,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" #{businessEmail}, #{businessPhone}, #{orderCode}, + #{versionCode}, #{currencyType}, #{shipmentAmount}, #{actualPurchaseAmount}, @@ -246,6 +250,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" business_email = #{businessEmail}, business_phone = #{businessPhone}, order_code = #{orderCode}, + version_code=#{versionCode}, currencyType = #{currencyType}, shipment_amount = #{shipmentAmount}, actual_purchase_amount = #{actualPurchaseAmount}, diff --git a/ruoyi-sip/src/main/resources/mapper/sip/ProjectProductInfoMapper.xml b/ruoyi-sip/src/main/resources/mapper/sip/ProjectProductInfoMapper.xml index f9e185de..c5d3417f 100644 --- a/ruoyi-sip/src/main/resources/mapper/sip/ProjectProductInfoMapper.xml +++ b/ruoyi-sip/src/main/resources/mapper/sip/ProjectProductInfoMapper.xml @@ -27,7 +27,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" select t1.id, t1.project_id, t1.product_bom_code, t1.model, t1.product_code, t1.product_desc, t1.quantity, t1.catalogue_price, - t1.catalogue_all_price, t1.price, t1.all_price, t1.guidance_discount, t1.discount, t1.remark,t2.type + t1.catalogue_all_price, t1.price, t1.all_price, t1.guidance_discount, t1.discount, t1.remark,t2.type,t2.product_name from project_product_info t1 left join product_info t2 on t1.product_bom_code = t2.product_code