From 2862498b2fc5c451ef50336c4c94f7aa90c72a5a Mon Sep 17 00:00:00 2001
From: chenhao <852066789@qq.com>
Date: Mon, 22 Sep 2025 18:00:52 +0800
Subject: [PATCH] =?UTF-8?q?feat(project-order):=E4=BC=98=E5=8C=96=E6=96=87?=
=?UTF-8?q?=E4=BB=B6=E4=B8=8A=E4=BC=A0=E9=80=BB=E8=BE=91=E4=B8=8E=E5=90=88?=
=?UTF-8?q?=E5=90=8C=E7=8A=B6=E6=80=81=E5=85=B3=E8=81=94-=20=E8=B0=83?=
=?UTF-8?q?=E6=95=B4=20edit.html=20=E4=B8=AD=E4=B8=8A=E4=BC=A0=E3=80=81?=
=?UTF-8?q?=E4=B8=8B=E8=BD=BD=E3=80=81=E5=88=A0=E9=99=A4=E6=8C=89=E9=92=AE?=
=?UTF-8?q?=E7=9A=84=E6=98=BE=E7=A4=BA=E6=9D=A1=E4=BB=B6=EF=BC=8C=E5=A2=9E?=
=?UTF-8?q?=E5=8A=A0=E5=AF=B9=E6=9C=80=E7=BB=88=E6=96=87=E4=BB=B6=E4=B8=8A?=
=?UTF-8?q?=E4=BC=A0=E7=8A=B6=E6=80=81=20(uploadFinalFile)=20=E7=9A=84?=
=?UTF-8?q?=E5=88=A4=E6=96=AD=20-=20=E4=BF=AE=E6=94=B9=20JavaScript=20?=
=?UTF-8?q?=E4=B8=AD=20file=5Flog=5Farr=20=E6=95=B0=E7=BB=84=E5=86=85?=
=?UTF-8?q?=E5=AE=B9=E5=8F=8A=E7=B4=A2=E5=BC=95=E5=A4=84=E7=90=86=E9=80=BB?=
=?UTF-8?q?=E8=BE=91=EF=BC=8C=E6=94=AF=E6=8C=81=E2=80=9C=E5=B7=B2=E7=9B=96?=
=?UTF-8?q?=E7=AB=A0=E5=90=88=E5=90=8C=E4=BF=A1=E6=81=AF=E2=80=9D=E4=B8=8A?=
=?UTF-8?q?=E4=BC=A0-=20=E5=A2=9E=E5=8A=A0=20Mapper=20=E6=96=B9=E6=B3=95?=
=?UTF-8?q?=20listByIds=20=E5=8F=8A=E5=85=B6=20XML=20=E5=AE=9E=E7=8E=B0?=
=?UTF-8?q?=EF=BC=8C=E7=94=A8=E4=BA=8E=E6=A0=B9=E6=8D=AE=20ID=20=E5=88=97?=
=?UTF-8?q?=E8=A1=A8=E6=9F=A5=E8=AF=A2=E6=96=87=E4=BB=B6=E8=AE=B0=E5=BD=95?=
=?UTF-8?q?=20-=20=E5=88=A0=E9=99=A4=E6=96=87=E4=BB=B6=E6=97=B6=E5=90=8C?=
=?UTF-8?q?=E6=AD=A5=E5=88=A0=E9=99=A4=E6=9C=8D=E5=8A=A1=E5=99=A8=E6=9C=AC?=
=?UTF-8?q?=E5=9C=B0=E6=96=87=E4=BB=B6=EF=BC=8C=E5=A2=9E=E5=BC=BA=E6=95=B0?=
=?UTF-8?q?=E6=8D=AE=E4=B8=80=E8=87=B4=E6=80=A7=20-=20=E6=8E=A7=E5=88=B6?=
=?UTF-8?q?=E5=99=A8=E4=B8=AD=E6=96=B0=E5=A2=9E=20uploadFinalFile=20?=
=?UTF-8?q?=E6=9D=83=E9=99=90=E6=8E=A7=E5=88=B6=EF=BC=8C=E4=BB=85=E5=85=81?=
=?UTF-8?q?=E8=AE=B8=E5=95=86=E5=8A=A1=E8=A7=92=E8=89=B2=E6=88=96=E7=AE=A1?=
=?UTF-8?q?=E7=90=86=E5=91=98=E5=9C=A8=E5=AE=A1=E6=89=B9=E5=AE=8C=E6=88=90?=
=?UTF-8?q?=E5=90=8E=E4=B8=8A=E4=BC=A0=E6=9C=80=E7=BB=88=E6=96=87=E4=BB=B6?=
=?UTF-8?q?-=E6=9C=8D=E5=8A=A1=E5=B1=82=E6=9E=84=E5=BB=BA=E8=A1=A8?=
=?UTF-8?q?=E6=A0=BC=E6=95=B0=E6=8D=AE=E6=97=B6=E4=BC=A0=E5=85=A5=E8=AE=A2?=
=?UTF-8?q?=E5=8D=95=E7=8A=B6=E6=80=81=EF=BC=8C=E5=8A=A8=E6=80=81=E6=8E=A7?=
=?UTF-8?q?=E5=88=B6=E6=96=87=E4=BB=B6=E5=88=97=E8=A1=A8=E9=95=BF=E5=BA=A6?=
=?UTF-8?q?=EF=BC=883=20=E6=88=96=204=E9=A1=B9=EF=BC=89=E4=BB=A5=E5=8C=B9?=
=?UTF-8?q?=E9=85=8D=E4=B8=9A=E5=8A=A1=E9=98=B6=E6=AE=B5?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../templates/project/order/edit.html | 16 ++++++-------
.../ProjectOrderInfoController.java | 3 +++
.../sip/mapper/ProjectOrderFileLogMapper.java | 3 +++
.../impl/ProjectOrderFileLogServiceImpl.java | 12 ++++++++++
.../impl/ProjectOrderInfoServiceImpl.java | 9 ++++----
.../mapper/sip/ProjectOrderFileLogMapper.xml | 23 ++++++++++++-------
6 files changed, 46 insertions(+), 20 deletions(-)
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 5c537cc8..46f9a83c 100644
--- a/ruoyi-admin/src/main/resources/templates/project/order/edit.html
+++ b/ruoyi-admin/src/main/resources/templates/project/order/edit.html
@@ -470,7 +470,7 @@
[[${file.uploadUserName}]] |
[[${#dates.format(file.uploadTime,'yyyy-MM-dd')}]] |
- 上传
下载
- 删除
|
@@ -620,7 +620,7 @@
},
}
});
- const file_log_arr = [ "(请上传商务折扣审批邮件信息).pdf/.jpg/.png","(请上传合同信息).pdf/.jpg/.png", "(请上传现金折扣审批邮件信息).pdf/.jpg/.png", "(补充附件).zip/.rar/.jpg/.png"]
+ const file_log_arr = [ "(请上传商务折扣审批邮件信息).pdf/.jpg/.png","(请上传合同信息).pdf/.jpg/.png", "(补充附件).zip/.rar/.jpg/.png","(请上传已盖章合同信息).pdf/.jpg/.png"]
var softwareProjectProductInfoList = []
var hardwareProjectProductInfoList = []
var maintenanceProjectProductInfoList = []
@@ -633,16 +633,16 @@
return
}
$(trElement).find('td').each(function (index, element) {
- if (index === 1) {
+ if (index === 2) {
// $('#deleteFileId').val($('#deleteFileId').val()+$(element).text()+',')
$(element).text('-1')
- } else if (index === 2) {
- $(element).text(file_log_arr[trIndex])
} else if (index === 3) {
- $(element).text('')
+ $(element).text(file_log_arr[trIndex])
} else if (index === 4) {
$(element).text('')
} else if (index === 5) {
+ $(element).text('')
+ } else if (index === 6) {
$(element).html(`上传`)
@@ -1252,7 +1252,7 @@
style="cursor:pointer;color: #ff5722"
onclick="downFile('${data.filePath}','${data.fileName}')">下载
删除`)
+ style="cursor:pointer;color: #ff5722" onclick=" delUploadRow(${sortNum},${data.id})">删除`)
}
})
})
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 9d6a2e66..b8e00068 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
@@ -216,6 +216,9 @@ public class ProjectOrderInfoController extends BaseController
("产品经理".equals(todoCompletedList.get(0).getTaskName()) || "售前".equals(todoCompletedList.get(0).getTaskName()))
: (boolean) mmap.get("canUpdate");
mmap.put("updateFile", (ShiroUtils.getSubject().hasRole("sale_assistant")||ShiroUtils.getSubject().hasRole("business") ||ShiroUtils.getSysUser().isAdmin()) && updateFlag);
+ mmap.put("uploadFinalFile", (ShiroUtils.getSubject().hasRole("business") || ShiroUtils.getSysUser().isAdmin()) &&
+ ProjectOrderInfo.OrderStatus.APPROVE_COMPLETE.getCode().equals(projectOrderInfo.getOrderStatus()));
+
return prefix + "/edit";
}
/**
diff --git a/ruoyi-sip/src/main/java/com/ruoyi/sip/mapper/ProjectOrderFileLogMapper.java b/ruoyi-sip/src/main/java/com/ruoyi/sip/mapper/ProjectOrderFileLogMapper.java
index f5a22cdd..703650c6 100644
--- a/ruoyi-sip/src/main/java/com/ruoyi/sip/mapper/ProjectOrderFileLogMapper.java
+++ b/ruoyi-sip/src/main/java/com/ruoyi/sip/mapper/ProjectOrderFileLogMapper.java
@@ -67,4 +67,7 @@ public interface ProjectOrderFileLogMapper
void updateOrderIdByIdList(@Param("orderId") Long orderId,@Param("list") List idList);
+
+ List listByIds(String[] strArray);
+
}
diff --git a/ruoyi-sip/src/main/java/com/ruoyi/sip/service/impl/ProjectOrderFileLogServiceImpl.java b/ruoyi-sip/src/main/java/com/ruoyi/sip/service/impl/ProjectOrderFileLogServiceImpl.java
index e79aca7b..0a636c75 100644
--- a/ruoyi-sip/src/main/java/com/ruoyi/sip/service/impl/ProjectOrderFileLogServiceImpl.java
+++ b/ruoyi-sip/src/main/java/com/ruoyi/sip/service/impl/ProjectOrderFileLogServiceImpl.java
@@ -6,6 +6,9 @@ import java.util.Map;
import java.util.stream.Collectors;
import cn.hutool.core.collection.CollUtil;
+import com.ruoyi.common.config.RuoYiConfig;
+import com.ruoyi.common.constant.Constants;
+import com.ruoyi.common.utils.file.FileUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.sip.mapper.ProjectOrderFileLogMapper;
@@ -82,6 +85,15 @@ public class ProjectOrderFileLogServiceImpl implements IProjectOrderFileLogServi
@Override
public int deleteProjectOrderFileLogByIds(String ids)
{
+ List projectOrderFileLogs = projectOrderFileLogMapper.listByIds(Convert.toStrArray(ids));
+ for (ProjectOrderFileLog projectOrderFileLog : projectOrderFileLogs) {
+ // // 本地资源路径
+ String localPath = RuoYiConfig.getProfile();
+// // 下载名称
+ String downloadPath = projectOrderFileLog.getFilePath().replace(Constants.RESOURCE_PREFIX, localPath);
+ FileUtils.deleteFile(downloadPath);
+ }
+
return projectOrderFileLogMapper.deleteProjectOrderFileLogByIds(Convert.toStrArray(ids));
}
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 a9b040d7..71a83da1 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
@@ -110,7 +110,7 @@ public class ProjectOrderInfoServiceImpl implements IProjectOrderInfoService, To
private static final List LS_LIST = Arrays.asList("3130A6LD");
private static final List ONE_STOR_LIST = Arrays.asList("3130A4NA", "3130A4N9", "3130A4N5");
private static final List N_VIDIA_LIST = Arrays.asList("0504A14F", "0504A14G", "0504A1JX");
- private static final List FILE_INFO_LIST = Arrays.asList( "(请上传商务折扣审批邮件信息).pdf/.jpg/.png","(请上传合同信息).pdf/.jpg/.png", "(补充附件).zip/.rar/.jpg/.png");
+ private static final List FILE_INFO_LIST = Arrays.asList( "(请上传商务折扣审批邮件信息).pdf/.jpg/.png","(请上传未盖章合同信息).pdf/.jpg/.png", "(补充附件).zip/.rar/.jpg/.png","(请上传已盖章合同信息).pdf/.jpg/.png");
@Autowired
private TaskService taskService;
@@ -151,7 +151,7 @@ public class ProjectOrderInfoServiceImpl implements IProjectOrderInfoService, To
projectOrderFileLogs.stream().collect(Collectors.groupingBy(ProjectOrderFileLog::getFileType));
List contractFileList = fileLogMap.get(ProjectOrderFileLog.FileTypeEnum.CONTRACT.getCode());
// 构建表格数据
- Map> tableData = buildFileTableData(contractFileList, projectOrderInfo.getVersionCode());
+ Map> tableData = buildFileTableData(contractFileList, projectOrderInfo.getVersionCode(), projectOrderInfo.getOrderStatus());
projectOrderInfo.setContractTableData(tableData);
projectOrderInfo.setContractFileList(contractFileList);
@@ -170,7 +170,7 @@ public class ProjectOrderInfoServiceImpl implements IProjectOrderInfoService, To
return projectOrderInfo;
}
- private Map> buildFileTableData(List contractFileList, String versionCode) {
+ private Map> buildFileTableData(List contractFileList, String versionCode, String orderStatus) {
Map> result = new HashMap<>();
if (CollUtil.isEmpty(contractFileList)) {
List list = getProjectOrderFileLogs();
@@ -192,7 +192,8 @@ public class ProjectOrderInfoServiceImpl implements IProjectOrderInfoService, To
} else {
//将list转为map 根据序号补齐差的数据 给初始化数据
Map orderFileLogMap = fileLogs.stream().collect(Collectors.toMap(ProjectOrderFileLog::getFileSort, v -> v, (v1, v2) -> v1));
- for (int i = 0; i < 3; i++) {
+ int fileSize = ProjectOrderInfo.OrderStatus.APPROVE_COMPLETE.getCode().equals(orderStatus) ? 4 : 3;
+ for (int i = 0; i < fileSize; i++) {
ProjectOrderFileLog fileLog = orderFileLogMap.get(String.valueOf(i));
if (fileLog == null) {
//初始化map
diff --git a/ruoyi-sip/src/main/resources/mapper/sip/ProjectOrderFileLogMapper.xml b/ruoyi-sip/src/main/resources/mapper/sip/ProjectOrderFileLogMapper.xml
index 760fa099..e5d628aa 100644
--- a/ruoyi-sip/src/main/resources/mapper/sip/ProjectOrderFileLogMapper.xml
+++ b/ruoyi-sip/src/main/resources/mapper/sip/ProjectOrderFileLogMapper.xml
@@ -24,28 +24,35 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+
insert into project_order_file_log