diff --git a/ruoyi-common/pom.xml b/ruoyi-common/pom.xml
index ce93df6..013fb23 100644
--- a/ruoyi-common/pom.xml
+++ b/ruoyi-common/pom.xml
@@ -235,6 +235,12 @@
knife4j-springdoc-ui
3.0.3
+
+ commons-io
+ commons-io
+ 2.15.0
+
+
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/controller/WorkProcedureController.java b/ruoyi-system/src/main/java/com/ruoyi/system/controller/WorkProcedureController.java
index 4489da8..1e5314f 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/controller/WorkProcedureController.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/controller/WorkProcedureController.java
@@ -208,7 +208,7 @@ public class WorkProcedureController extends BaseController {
task.setDuration(duration);
task.setOpen(true);
- task.setProgress(1L);
+ // task.setProgress(1L);
task.setStatus("yellow");
task.setParent(null); // 父任务没有parent
@@ -227,7 +227,7 @@ public class WorkProcedureController extends BaseController {
subTask.setEnd_date(subTaskItem.getString("FOperPlanFinishTime2"));
subTask.setDuration(subTaskItem.getLong("1"));
subTask.setOpen(true);
- subTask.setProgress(1L);
+ // subTask.setProgress(1L);
subTask.setStatus("yellow");
subTask.setParent(task.getId()); // 设置父任务ID
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/domain/bo/ProcessOrderProBo.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/bo/ProcessOrderProBo.java
index 4a04a22..6fc62ae 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/domain/bo/ProcessOrderProBo.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/bo/ProcessOrderProBo.java
@@ -52,13 +52,11 @@ public class ProcessOrderProBo extends BaseEntity {
/**
* 计划结束时间
*/
- @NotNull(message = "计划结束时间不能为空", groups = { AddGroup.class, EditGroup.class })
private Date planEndTime;
/**
* 计划开始时间
*/
- @NotNull(message = "计划开始时间不能为空", groups = { AddGroup.class, EditGroup.class })
private Date planStartTime;
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/domain/dto/ProductctionPlanGatteDto.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/dto/ProductctionPlanGatteDto.java
index 72d8514..801118b 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/domain/dto/ProductctionPlanGatteDto.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/dto/ProductctionPlanGatteDto.java
@@ -18,7 +18,7 @@ public class ProductctionPlanGatteDto {
private Integer type;
private Boolean open;
private String toolTipsTxt;
- private Long progress;
+ private String progress;
private String status;
private String level;
private String color;
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/ProcessOrderProMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/ProcessOrderProMapper.java
index 9504009..ee47f8d 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/ProcessOrderProMapper.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/ProcessOrderProMapper.java
@@ -1,6 +1,7 @@
package com.ruoyi.system.mapper;
import com.ruoyi.system.domain.ProcessOrderPro;
+import com.ruoyi.system.domain.bo.ProcessOrderProBo;
import com.ruoyi.system.domain.vo.ProcessOrderProVo;
import com.ruoyi.common.core.mapper.BaseMapperPlus;
@@ -11,5 +12,15 @@ import com.ruoyi.common.core.mapper.BaseMapperPlus;
* @date 2024-10-22
*/
public interface ProcessOrderProMapper extends BaseMapperPlus {
-
+ /**
+ * 根据项目编号(routeDescription)查询订单信息
+ * @param routeDescription 项目编号
+ * @return ProcessOrderProBo 返回相关的订单信息
+ */
+ ProcessOrderPro selectByProjectNumber(String routeDescription);
+ /**
+ * 根据 ProcessOrderProBo 更新记录
+ * @param processOrderPro 更新的订单信息
+ */
+ void updateByBo(ProcessOrderPro processOrderPro);
}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/EleMaterialsServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/EleMaterialsServiceImpl.java
index 81f52ef..041bd69 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/EleMaterialsServiceImpl.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/EleMaterialsServiceImpl.java
@@ -343,8 +343,10 @@ public class EleMaterialsServiceImpl implements IEleMaterialsService {
}
newMaterialsVo.setMaterialCode(newCode);
+ log.info("生成新的物料编码======================>: {}", newCode);
EleMaterials eleMaterials = BeanUtil.copyProperties(newMaterialsVo, EleMaterials.class);
eleMaterials.setMaterialValue("0");
+ baseMapper.insert(eleMaterials);
// 仅在有编码的情况下添加到插入列表和导出列表
eleMaterialsList.add(eleMaterials); // 添加到插入列表
allMaterialsList.add(newMaterialsVo); // 添加到导出列表
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/ProcessRouteServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/ProcessRouteServiceImpl.java
index 431511c..95814c7 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/ProcessRouteServiceImpl.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/ProcessRouteServiceImpl.java
@@ -73,6 +73,7 @@ public class ProcessRouteServiceImpl implements IProcessRouteService {
private final MaterialBomMapper materialBomMapper;
private final ProcessInfoMapper processInfoMapper;
private final ProductionRouteTwoMapper productionRouteTwoMapper;
+ private final ProcessOrderProMapper iProcessOrderProService;
private static final Logger log = LoggerFactory.getLogger(ProcessRouteController.class);
private static final Logger logger = LoggerFactory.getLogger(IProcessRouteService.class);
@@ -571,15 +572,15 @@ public class ProcessRouteServiceImpl implements IProcessRouteService {
.max(Comparator.comparing(ProcessRoute::getXuEndTime))
.map(ProcessRoute::getXuEndTime)
.orElse(null);
- /* //更新至计划模块中
+ //更新至计划模块中
if (earliestStartTime != null && latestEndTime != null) {
- ProcessOrderProBo processOrderPro = iProcessOrderProService.selectByProjectNumber(processRoutes.get(0).getRouteDescription());
+ ProcessOrderPro processOrderPro = iProcessOrderProService.selectByProjectNumber(processRoutes.get(0).getRouteDescription());
processOrderPro.setPlanStartTime(earliestStartTime);
processOrderPro.setPlanEndTime(latestEndTime);
processOrderPro.setUpdateTime(new Date());
log.info("更新计划生成令号为:{},计划开始时间:{},计划结束时间:{}",processRoutes.get(0).getRouteDescription(), earliestStartTime, latestEndTime);
iProcessOrderProService.updateByBo(processOrderPro);
- }*/
+ }
if (allEmpty && !processRoutes.isEmpty()) {
List duplicateWeldingMaterials = processRoutes.stream()
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/WorkProcedureServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/WorkProcedureServiceImpl.java
index 912c785..054de3c 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/WorkProcedureServiceImpl.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/WorkProcedureServiceImpl.java
@@ -24,6 +24,7 @@ import org.springframework.stereotype.Service;
import java.text.SimpleDateFormat;
import java.time.LocalDate;
+import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.time.temporal.ChronoUnit;
import java.time.temporal.Temporal;
@@ -73,7 +74,7 @@ public class WorkProcedureServiceImpl implements IWorkProcedureService {
parentTask.setText(processRoute.getRouteDescription());
parentTask.setOpen(true);
parentTask.setToolTipsTxt(processRoute.getRouteDescription());
- parentTask.setProgress(1L);
+ // parentTask.setProgress(1L);
parentTask.setStatus("yellow");
parentTask.setParent(null);
@@ -168,7 +169,12 @@ public class WorkProcedureServiceImpl implements IWorkProcedureService {
// ================= 1. 查询近2个月的父任务(ProcessOrderPro) =================
LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>();
- wrapper.between(ProcessOrderPro::getCreateTime, LocalDate.now().minusMonths(2), LocalDate.now());
+ //只查询未完成的项目也就是 结束时间大于今天
+ LocalDateTime now = LocalDateTime.now();
+ LocalDateTime twoMonthsAgo = now.minusMonths(2);
+
+ wrapper.ge(ProcessOrderPro::getPlanEndTime, now) // 未结束(结束时间 > 当前时间)
+ .ge(ProcessOrderPro::getPlanStartTime, twoMonthsAgo); // 近
List processOrderPros = processOrderProMapper.selectList(wrapper);
@@ -202,7 +208,7 @@ public class WorkProcedureServiceImpl implements IWorkProcedureService {
parentTask.setText(pro.getProductionOrderNo());
parentTask.setOpen(false);
parentTask.setToolTipsTxt(pro.getDrawingNo());
- parentTask.setProgress(1L);
+ /* parentTask.setProgress(1L);*/
parentTask.setStatus("yellow");
parentTask.setParent(null);
parentTask.setStart_date(sdf.format(proBo.getPlanStartTime()));
@@ -248,20 +254,31 @@ public class WorkProcedureServiceImpl implements IWorkProcedureService {
start.toInstant().atZone(ZoneId.systemDefault()).toLocalDate(),
end.toInstant().atZone(ZoneId.systemDefault()).toLocalDate()
);
+ // 计算当前时间与开始时间的差(单位:天)
+ long elapsedDays = ChronoUnit.DAYS.between(
+ start.toInstant().atZone(ZoneId.systemDefault()).toLocalDate(),
+ LocalDate.now() // 当前日期
+ );
+ // 计算进度百分比,确保不超过100%
+ double progress = 0;
+ if (duration > 0) {
+ progress = (double) elapsedDays / duration;
+ progress = Math.min(progress, 1.0); // 防止进度超过100%
+ }
ProductctionPlanGatteDto subTask = new ProductctionPlanGatteDto();
subTask.setId(route.getId());
subTask.setText(
- cleanProcessNo(String.valueOf(route.getProcessNo())) + " " +
- route.getMaterialCode() + " " +
- route.getMaterialName() + " " +
- route.getProcessName()
+ route.getProcessNo() + " " + route.getProcessName()+ " " +
+ route.getMaterialCode()
);
subTask.setStart_date(sdf.format(start));
subTask.setEnd_date(sdf.format(end));
subTask.setDuration(duration);
subTask.setToolTipsTxt(route.getProcessName());
- subTask.setProgress(1L);
+ /* subTask.setProgress(1L);*/
+ //计算进度计算 整体数加上 已经过了的天数百分比保留以为小数
+ subTask.setProgress(String.valueOf(progress));
subTask.setStatus("yellow");
// 工序号处理:去除所有0
@@ -406,7 +423,7 @@ public class WorkProcedureServiceImpl implements IWorkProcedureService {
parentTask.setOpen(true); // 默认展开
parentTask.setToolTipsTxt(plan.getFigureName()); // 设置工具提示文本
- parentTask.setProgress(1L); // 设置进度
+ //parentTask.setProgress(1L); // 设置进度
parentTask.setStatus("yellow"); // 设置状态
parentTask.setParent(null); // 父任务没有parent
tasks.add(parentTask); // 添加到任务列表
@@ -467,7 +484,7 @@ public class WorkProcedureServiceImpl implements IWorkProcedureService {
}
subTask.setToolTipsTxt(procedure.getToolTipsTxt()); // 设置工具提示文本
- subTask.setProgress(1L); // 设置进度
+ // subTask.setProgress(1L); // 设置进度
subTask.setStatus(procedure.getStatus()); // 设置状态
subTask.setParent(procedure.getPlanId()); // 设置父任务ID
tasks.add(subTask); // 添加到任务列表
diff --git a/ruoyi-system/src/main/resources/mapper/system/ProcessOrderProMapper.xml b/ruoyi-system/src/main/resources/mapper/system/ProcessOrderProMapper.xml
index 7dc6e6d..586414e 100644
--- a/ruoyi-system/src/main/resources/mapper/system/ProcessOrderProMapper.xml
+++ b/ruoyi-system/src/main/resources/mapper/system/ProcessOrderProMapper.xml
@@ -17,6 +17,24 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
-
-
+
+
+
+
+ UPDATE process_order_pro
+ SET production_order_no = #{productionOrderNo},
+ production_name = #{productionName},
+ drawing_no = #{drawingNo},
+ drawing_name = #{drawingName},
+ plan_end_time = #{planEndTime},
+ plan_start_time = #{planStartTime},
+ create_by = #{createBy},
+ update_by = #{updateBy}
+ WHERE id = #{id}
+