From 8b2372db4246019a5447cda592bced753d12c5cc Mon Sep 17 00:00:00 2001 From: chenhao Date: Tue, 28 Oct 2025 15:08:30 +0800 Subject: [PATCH] =?UTF-8?q?feat(sip):=20=E6=B7=BB=E5=8A=A0=E8=AE=A2?= =?UTF-8?q?=E5=8D=95=E8=B4=A2=E5=8A=A1=E5=BD=92=E6=A1=A3=E7=8A=B6=E6=80=81?= =?UTF-8?q?=E7=AE=A1=E7=90=86=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在 ProjectOrderInfo 实体中新增 financeStatus 字段,用于标识订单是否完结 - 新增订单财务页面 orderFinance.html,支持按财务状态筛选订单 - 在 IProjectOrderInfoService 接口中添加 updateFinance 方法- 在 ProjectOrderInfoController 中新增财务状态更新接口 /finance/update- 更新 ProjectOrderInfoMapper.xml,支持 financeStatus 的查询与更新 - 导出 Excel 功能增加归档时间字段展示 - 增加财务状态操作按钮,允许用户手动完结订单 - 修复执行单截止时间筛选条件错误的问题 - 调整导出数据列索引,确保归档时间正确显示 --- .../templates/project/order/orderFinance.html | 383 ++++++++++++++++++ .../ProjectOrderInfoController.java | 18 + .../ruoyi/sip/domain/ProjectOrderInfo.java | 3 + .../sip/service/IProjectOrderInfoService.java | 2 + .../impl/ProjectOrderInfoServiceImpl.java | 10 +- .../mapper/sip/ProjectOrderInfoMapper.xml | 8 +- 6 files changed, 420 insertions(+), 4 deletions(-) create mode 100644 ruoyi-admin/src/main/resources/templates/project/order/orderFinance.html diff --git a/ruoyi-admin/src/main/resources/templates/project/order/orderFinance.html b/ruoyi-admin/src/main/resources/templates/project/order/orderFinance.html new file mode 100644 index 00000000..703ab12c --- /dev/null +++ b/ruoyi-admin/src/main/resources/templates/project/order/orderFinance.html @@ -0,0 +1,383 @@ + + + + + + + + +
+ +
+
+
+
+
+
    +
  • + + +
  • +
  • + + +
  • +
  • + + +
  • +
  • + + +
  • + +
  • + + +
  • +
  • + + +
  • +
  • + + +
  • +
  • + + + +
  • +
  • + + + +
  • +
  • +
    + + +
    +
    + + + + +
    +
  • + +
  • +  搜索 +  重置 +
  • +
+
+
+
+ + +
+
+
+
+
+ + + + + + + \ No newline at end of file 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 273b53bf..4388ea45 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 @@ -93,6 +93,12 @@ public class ProjectOrderInfoController extends BaseController return prefix + "/order"; } + @RequiresPermissions("project:order:view") + @GetMapping("/finance") + public String orderFinance() { + return prefix + "/orderFinance"; + } + @GetMapping("/approve/{id}") public String approve(@PathVariable("id") Long id, ModelMap mmap) { mmap.put("approve", true); @@ -150,6 +156,18 @@ public class ProjectOrderInfoController extends BaseController return getDataTable(list); } + /** + * 财务修改完结状态 + */ + @Log(title = "订单管理", businessType = BusinessType.UPDATE) + @PostMapping("/finance/update") + @ResponseBody + public AjaxResult update(ProjectOrderInfo projectOrderInfo) { + + projectOrderInfoService.updateFinance(projectOrderInfo); + return AjaxResult.success(); + } + /** * 导出订单管理列表 */ 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 3f3e3f7c..41f648fa 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 @@ -265,6 +265,9 @@ public class ProjectOrderInfo extends BaseEntity { */ private String paymentDescription; +// 财务归档状态 0:未完结 1:已完结 + private String financeStatus; + private List contractFileList; private List configFileList; private Map> contractTableData; 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 7e2c2443..e94fb293 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 @@ -98,4 +98,6 @@ public interface IProjectOrderInfoService byte[] exportContractTemplate(ProjectOrderInfo orderInfo); List listByCodeList(List businessKeyList); + + void updateFinance(ProjectOrderInfo projectOrderInfo); } 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 0829652e..8e76020f 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 @@ -805,6 +805,7 @@ public class ProjectOrderInfoServiceImpl implements IProjectOrderInfoService, To // headerList.add(Collections.singletonList("其他特别说明")); // headerList.add(Collections.singletonList("订单状态")); headerList.add(Collections.singletonList("执行单截至时间")); + headerList.add(Collections.singletonList("归档时间")); headerList.add(Collections.singletonList("WS瘦授权软件数量-3130A6LC")); headerList.add(Collections.singletonList("WS瘦授权软件金额")); headerList.add(Collections.singletonList("WS瘦授权软件税率")); @@ -953,7 +954,7 @@ public class ProjectOrderInfoServiceImpl implements IProjectOrderInfoService, To totalPrice = processProducts(deployList, maxDeployService, row, totalPrice); //添加维保 totalPrice = processProducts(maintenanceList, maxMaintenanceService, row, totalPrice); - int insertIndex=20; + int insertIndex=21; row.add(insertIndex++, wssDto.getQuantity()); row.add(insertIndex++, wssDto.getAllPrice()); row.add(insertIndex++, wssDto.getTaxRate()); @@ -1045,6 +1046,7 @@ public class ProjectOrderInfoServiceImpl implements IProjectOrderInfoService, To // row.add(info.getPartnerEmail()); row.add(info.getPartnerPhone()); row.add(DateUtil.format(info.getOrderEndTime(), "yyyy-MM-dd")); + row.add(DateUtil.format(info.getApproveTime(), "yyyy-MM-dd HH:mm:ss")); // row.add(info.getRemark()); // row.add(DictUtils.getDictLabel("order_status", info.getOrderStatus())); } @@ -1462,6 +1464,12 @@ public class ProjectOrderInfoServiceImpl implements IProjectOrderInfoService, To return projectOrderInfoMapper.listByCodeList(businessKeyList); } + @Override + public void updateFinance(ProjectOrderInfo projectOrderInfo) { + + projectOrderInfoMapper.updateProjectOrderInfo(projectOrderInfo); + } + private void replaceTextInDocument(XWPFDocument document, ProjectOrderInfo orderInfo) { // 替换段落中的文本 for (XWPFParagraph paragraph : document.getParagraphs()) { diff --git a/ruoyi-sip/src/main/resources/mapper/sip/ProjectOrderInfoMapper.xml b/ruoyi-sip/src/main/resources/mapper/sip/ProjectOrderInfoMapper.xml index 2805858b..7165d5e8 100644 --- a/ruoyi-sip/src/main/resources/mapper/sip/ProjectOrderInfoMapper.xml +++ b/ruoyi-sip/src/main/resources/mapper/sip/ProjectOrderInfoMapper.xml @@ -41,7 +41,7 @@ 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, + shipment_amount, actual_purchase_amount, order_end_time, delivery_time, company_delivery, notifier,finance_status, notifier_email, notifier_phone, duty, duty_email, duty_phone, order_channel, partner_code, supplier,notifier_address, remark, order_status, create_by, create_time, update_by, update_time,version_code,process_type,process_template,discount_fold, delivery_status,sign_status,outer_status,approve_time,payment_method,payment_ratio,payment_description @@ -53,7 +53,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" 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.version_code,t1.process_type,t1.process_template,t1.discount_fold,t1.notifier_address, + ,t1.partner_phone,t1.version_code,t1.process_type,t1.process_template,t1.discount_fold,t1.notifier_address,t1.finance_status, t1.delivery_status,t1.sign_status,t1.outer_status,t1.approve_time,t1.payment_method,t1.payment_ratio,t1.payment_description ,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,t2.partner_name project_partner_name @@ -82,6 +82,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" concat('%',#{customerName},'%') and t4.agent_name like concat('%',#{agentName},'%') + and t1.finance_status =#{financeStatus} and t1.province = #{province} and t1.city = #{city} and t1.business_person = #{businessPerson} @@ -154,7 +155,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and t1.approve_time between date_format(#{approveTimeStart}, '%Y-%m-%d 00:00:00') and date_format(#{approveTimeEnd}, '%Y-%m-%d 23:59:59') - + and t1.approve_time = ]]> date_format(#{approveTimeStart}, '%Y-%m-%d 00:00:00') @@ -498,6 +499,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" payment_method = #{paymentMethod}, payment_ratio = #{paymentRatio}, payment_description = #{paymentDescription}, + finance_status = #{financeStatus}, where id = #{id}