From 893fda1fa8bc17002a866381e8940e1c31d11d93 Mon Sep 17 00:00:00 2001
From: yuan <123@>
Date: 星期六, 23 五月 2026 13:46:00 +0800
Subject: [PATCH] Merge branch 'dev_New_pro' into dev_pro_河南鹤壁

---
 src/main/java/com/ruoyi/approve/service/impl/ApproveProcessServiceImpl.java |    2 ++
 src/main/java/com/ruoyi/approve/pojo/ApproveProcess.java                    |   10 ++++++++++
 src/main/java/com/ruoyi/sales/service/impl/ShippingInfoServiceImpl.java     |    5 +++++
 doc/20260523_ 协同审批新增出差时间和结束时间.sql                                           |    3 +++
 src/main/java/com/ruoyi/approve/bean/vo/ApproveGetAndUpdateVo.java          |    9 +++++++++
 src/main/java/com/ruoyi/approve/bean/vo/ApproveProcessVO.java               |    9 +++++++++
 src/main/resources/mapper/sales/SalesQuotationMapper.xml                    |    2 +-
 src/main/resources/mapper/approve/ApproveProcessMapper.xml                  |    4 +++-
 8 files changed, 42 insertions(+), 2 deletions(-)

diff --git "a/doc/20260523_ \345\215\217\345\220\214\345\256\241\346\211\271\346\226\260\345\242\236\345\207\272\345\267\256\346\227\266\351\227\264\345\222\214\347\273\223\346\235\237\346\227\266\351\227\264.sql" "b/doc/20260523_ \345\215\217\345\220\214\345\256\241\346\211\271\346\226\260\345\242\236\345\207\272\345\267\256\346\227\266\351\227\264\345\222\214\347\273\223\346\235\237\346\227\266\351\227\264.sql"
new file mode 100644
index 0000000..0e0c5ce
--- /dev/null
+++ "b/doc/20260523_ \345\215\217\345\220\214\345\256\241\346\211\271\346\226\260\345\242\236\345\207\272\345\267\256\346\227\266\351\227\264\345\222\214\347\273\223\346\235\237\346\227\266\351\227\264.sql"
@@ -0,0 +1,3 @@
+ALTER TABLE approve_process
+    ADD COLUMN start_date_time datetime DEFAULT NULL COMMENT '鍑哄樊寮�濮嬫椂闂�',
+    ADD COLUMN end_date_time   datetime DEFAULT NULL COMMENT '鍑哄樊缁撴潫鏃堕棿';
diff --git a/src/main/java/com/ruoyi/approve/bean/vo/ApproveGetAndUpdateVo.java b/src/main/java/com/ruoyi/approve/bean/vo/ApproveGetAndUpdateVo.java
index f43ecac..4bf8d2f 100644
--- a/src/main/java/com/ruoyi/approve/bean/vo/ApproveGetAndUpdateVo.java
+++ b/src/main/java/com/ruoyi/approve/bean/vo/ApproveGetAndUpdateVo.java
@@ -9,6 +9,7 @@
 import org.springframework.format.annotation.DateTimeFormat;
 
 import java.math.BigDecimal;
+import java.time.LocalDateTime;
 import java.util.Date;
 import java.util.List;
 
@@ -45,6 +46,14 @@
     @DateTimeFormat(pattern = "yyyy-MM-dd")
     private Date endDate;
 
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm")
+    @Schema(description = "鍑哄樊寮�濮嬫椂闂�")
+    private LocalDateTime startDateTime;
+
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm")
+    @Schema(description = "鍑哄樊缁撴潫鏃堕棿")
+    private LocalDateTime endDateTime;
+
     private BigDecimal price;
 
     private String location;
diff --git a/src/main/java/com/ruoyi/approve/bean/vo/ApproveProcessVO.java b/src/main/java/com/ruoyi/approve/bean/vo/ApproveProcessVO.java
index 8c5db04..8e730ff 100644
--- a/src/main/java/com/ruoyi/approve/bean/vo/ApproveProcessVO.java
+++ b/src/main/java/com/ruoyi/approve/bean/vo/ApproveProcessVO.java
@@ -8,6 +8,7 @@
 import org.springframework.format.annotation.DateTimeFormat;
 
 import java.math.BigDecimal;
+import java.time.LocalDateTime;
 import java.util.Date;
 import java.util.List;
 
@@ -58,6 +59,14 @@
     @DateTimeFormat(pattern = "yyyy-MM-dd")
     private Date endDate;
 
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm")
+    @Schema(description = "鍑哄樊寮�濮嬫椂闂�")
+    private LocalDateTime startDateTime;
+
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm")
+    @Schema(description = "鍑哄樊缁撴潫鏃堕棿")
+    private LocalDateTime endDateTime;
+
     private BigDecimal price;
 
     private String location;
diff --git a/src/main/java/com/ruoyi/approve/pojo/ApproveProcess.java b/src/main/java/com/ruoyi/approve/pojo/ApproveProcess.java
index bd56b0f..728878b 100644
--- a/src/main/java/com/ruoyi/approve/pojo/ApproveProcess.java
+++ b/src/main/java/com/ruoyi/approve/pojo/ApproveProcess.java
@@ -151,6 +151,16 @@
     @DateTimeFormat(pattern = "yyyy-MM-dd")
     private Date endDate;
 
+    @Excel(name = "鍑哄樊寮�濮嬫椂闂�", dateFormat = "yyyy-MM-dd HH:mm", width = 30)
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm")
+    @Schema(description = "鍑哄樊寮�濮嬫椂闂�")
+    private LocalDateTime startDateTime;
+
+    @Excel(name = "鍑哄樊缁撴潫鏃堕棿", dateFormat = "yyyy-MM-dd HH:mm", width = 30)
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm")
+    @Schema(description = "鍑哄樊缁撴潫鏃堕棿")
+    private LocalDateTime endDateTime;
+
     private BigDecimal price;
 
     private String location;
diff --git a/src/main/java/com/ruoyi/approve/service/impl/ApproveProcessServiceImpl.java b/src/main/java/com/ruoyi/approve/service/impl/ApproveProcessServiceImpl.java
index c9d7aae..185fa68 100644
--- a/src/main/java/com/ruoyi/approve/service/impl/ApproveProcessServiceImpl.java
+++ b/src/main/java/com/ruoyi/approve/service/impl/ApproveProcessServiceImpl.java
@@ -113,6 +113,8 @@
         approveProcess.setPrice(approveProcessVO.getPrice());
         approveProcess.setStartDate(approveProcessVO.getStartDate());
         approveProcess.setEndDate(approveProcessVO.getEndDate());
+        approveProcess.setStartDateTime(approveProcessVO.getStartDateTime());
+        approveProcess.setEndDateTime(approveProcessVO.getEndDateTime());
         approveProcess.setApproveStatus(0);
         approveProcess.setApproveDelete(0);
         approveProcess.setApproveType(approveProcessVO.getApproveType());
diff --git a/src/main/java/com/ruoyi/sales/service/impl/ShippingInfoServiceImpl.java b/src/main/java/com/ruoyi/sales/service/impl/ShippingInfoServiceImpl.java
index 8d16029..0a84bf9 100644
--- a/src/main/java/com/ruoyi/sales/service/impl/ShippingInfoServiceImpl.java
+++ b/src/main/java/com/ruoyi/sales/service/impl/ShippingInfoServiceImpl.java
@@ -26,6 +26,7 @@
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.collections4.CollectionUtils;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
 import java.util.List;
 
@@ -89,10 +90,14 @@
     }
 
     @Override
+    @Transactional(rollbackFor = Exception.class)
     public boolean delete(List<Long> ids) {
         List<ShippingInfo> shippingInfos = shippingInfoMapper.selectList(new LambdaQueryWrapper<ShippingInfo>()
                 .in(ShippingInfo::getId, ids));
         if (CollectionUtils.isEmpty(shippingInfos)) return false;
+        // 鍙湁寰呭鏍哥姸鎬佹墠鑳藉垹闄�
+        boolean allPending = shippingInfos.stream().allMatch(s -> "寰呭鏍�".equals(s.getStatus()));
+        if (!allPending) throw new RuntimeException("鍙湁寰呭鏍哥姸鎬佹墠鑳藉垹闄�");
         // 鍒犻櫎闄勪欢
         commonFileService.deleteByBusinessIds(ids, FileNameType.SHIP.getValue());
         // 鍒犻櫎鍙戣揣瀹℃壒
diff --git a/src/main/resources/mapper/approve/ApproveProcessMapper.xml b/src/main/resources/mapper/approve/ApproveProcessMapper.xml
index fef06f7..dd651c0 100644
--- a/src/main/resources/mapper/approve/ApproveProcessMapper.xml
+++ b/src/main/resources/mapper/approve/ApproveProcessMapper.xml
@@ -20,12 +20,14 @@
             <result property="tenantId" column="tenant_id" />
             <result property="approveType" column="approve_type" />
             <result property="approveRemark" column="approve_remark" />
+            <result property="startDateTime" column="start_date_time" />
+            <result property="endDateTime" column="end_date_time" />
     </resultMap>
 
     <sql id="Base_Column_List">
         id,approve_id,approve_user,approve_dept_id,approve_dept_name,approve_user_ids,
         approve_user_names,approve_reason,approve_time,approve_over_time,approve_status,
-        approve_delete,tenant_id,approve_type,approve_remark
+        approve_delete,tenant_id,approve_type,approve_remark,start_date_time,end_date_time
     </sql>
     <select id="listPage" resultType="com.ruoyi.approve.vo.ApproveProcessVo">
         select * from approve_process where approve_delete = 0
diff --git a/src/main/resources/mapper/sales/SalesQuotationMapper.xml b/src/main/resources/mapper/sales/SalesQuotationMapper.xml
index 3c93850..5448933 100644
--- a/src/main/resources/mapper/sales/SalesQuotationMapper.xml
+++ b/src/main/resources/mapper/sales/SalesQuotationMapper.xml
@@ -9,7 +9,7 @@
         FROM sales_quotation t1
         LEFT JOIN approve_process t2 ON t1.quotation_no = t2.approve_reason and t2.approve_type = 6
         WHERE 1=1
-          and t2.approve_deleted = 0
+          and t2.approve_delete = 0
         <if test="salesQuotationDto.quotationNo != null and salesQuotationDto.quotationNo != '' ">
             AND t1.quotation_no LIKE CONCAT('%',#{salesQuotationDto.quotationNo},'%')
         </if>

--
Gitblit v1.9.3