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