|
@@ -12,6 +12,7 @@ import org.dromara.management.domain.DevelopmentOrderRemark;
|
|
|
import org.dromara.management.domain.bo.DevelopmentOrderBo;
|
|
|
import org.dromara.management.domain.bo.DevelopmentOrderRemarkBo;
|
|
|
import org.dromara.management.domain.vo.*;
|
|
|
+import org.dromara.management.mapper.AdminMapper;
|
|
|
import org.dromara.management.mapper.DevelopOrderLogsMapper;
|
|
|
import org.dromara.management.mapper.DevelopmentOrderMapper;
|
|
|
import org.dromara.management.mapper.DevelopmentOrderRemarkMapper;
|
|
@@ -49,19 +50,20 @@ public class DevelopmentOrderServiceImpl extends ServiceImpl<DevelopmentOrderMap
|
|
|
private final DevelopmentOrderRemarkMapper developmentOrderRemarkMapper;
|
|
|
private final OssService ossService;
|
|
|
private final DevelopOrderLogsMapper developOrderLogsMapper;
|
|
|
+ private final AdminMapper adminMapper;
|
|
|
/**
|
|
|
* 创建所有状态的常量Set集合
|
|
|
*/
|
|
|
private static final Set<Integer> STATUS_CODES = Set.of(
|
|
|
- DevelopmentOrderConstants.PENDING_PROCESSING,
|
|
|
- DevelopmentOrderConstants.IN_THE_DRAWING,
|
|
|
- DevelopmentOrderConstants.CONFIRMING_IN_PROGRESS,
|
|
|
- DevelopmentOrderConstants.UNDER_MODIFICATION,
|
|
|
- DevelopmentOrderConstants.IN_COLOR_ADJUSTMENT,
|
|
|
- DevelopmentOrderConstants.IN_TYPESETTING,
|
|
|
- DevelopmentOrderConstants.PRINTING_IN_PROGRESS,
|
|
|
- DevelopmentOrderConstants.COMPLETED,
|
|
|
- DevelopmentOrderConstants.CANCELLED
|
|
|
+ DevelopmentOrderConstants.PENDING_PROCESSING,
|
|
|
+ DevelopmentOrderConstants.IN_THE_DRAWING,
|
|
|
+ DevelopmentOrderConstants.CONFIRMING_IN_PROGRESS,
|
|
|
+ DevelopmentOrderConstants.UNDER_MODIFICATION,
|
|
|
+ DevelopmentOrderConstants.IN_COLOR_ADJUSTMENT,
|
|
|
+ DevelopmentOrderConstants.IN_TYPESETTING,
|
|
|
+ DevelopmentOrderConstants.PRINTING_IN_PROGRESS,
|
|
|
+ DevelopmentOrderConstants.COMPLETED,
|
|
|
+ DevelopmentOrderConstants.CANCELLED
|
|
|
);
|
|
|
private static final String FIELD_NAME = "fa_template_dev_order";
|
|
|
private static final Map<Integer, String> SPECIAL_STATUS_FIELDS = new HashMap<>();
|
|
@@ -158,7 +160,7 @@ public class DevelopmentOrderServiceImpl extends ServiceImpl<DevelopmentOrderMap
|
|
|
queryWrapper.like(DevelopmentOrder::getKuanhao, bo.getKuanhao());
|
|
|
}
|
|
|
if (StringUtils.isNotBlank(bo.getOrderNum())) {
|
|
|
- queryWrapper.eq(DevelopmentOrder::getOrderNum,bo.getOrderNum());
|
|
|
+ queryWrapper.eq(DevelopmentOrder::getOrderNum, bo.getOrderNum());
|
|
|
}
|
|
|
Integer status = bo.getStatus();
|
|
|
Long designUserid = bo.getDesignUserid();
|
|
@@ -168,48 +170,48 @@ public class DevelopmentOrderServiceImpl extends ServiceImpl<DevelopmentOrderMap
|
|
|
LocalDate startDate = parseDate((String) params.get("beginTime"));
|
|
|
LocalDate endDate = parseDate((String) params.get("endTime"));
|
|
|
//任务节点的条件处理
|
|
|
- switch (status){
|
|
|
+ switch (status) {
|
|
|
//画图
|
|
|
case 1:
|
|
|
if (Objects.nonNull(startDate) && Objects.nonNull(endDate)) {
|
|
|
- queryWrapper.between(DevelopmentOrder::getStatus_1StartTime,startDate,endDate);
|
|
|
+ queryWrapper.between(DevelopmentOrder::getStatus_1StartTime, startDate, endDate);
|
|
|
}
|
|
|
//不同状态对应不同设计师,对应的字段不一样
|
|
|
- queryWrapper.eq(Objects.nonNull(designUserid),DevelopmentOrder::getDesignUserid,designUserid);
|
|
|
+ queryWrapper.eq(Objects.nonNull(designUserid), DevelopmentOrder::getDesignUserid, designUserid);
|
|
|
break;
|
|
|
//确认
|
|
|
case 2:
|
|
|
if (Objects.nonNull(startDate) && Objects.nonNull(endDate)) {
|
|
|
- queryWrapper.between(DevelopmentOrder::getStatus_2StartTime,startDate,endDate);
|
|
|
+ queryWrapper.between(DevelopmentOrder::getStatus_2StartTime, startDate, endDate);
|
|
|
}
|
|
|
- queryWrapper.eq(Objects.nonNull(designUserid),DevelopmentOrder::getConfirmUserid,designUserid);
|
|
|
+ queryWrapper.eq(Objects.nonNull(designUserid), DevelopmentOrder::getConfirmUserid, designUserid);
|
|
|
break;
|
|
|
//调色
|
|
|
case 3:
|
|
|
if (Objects.nonNull(startDate) && Objects.nonNull(endDate)) {
|
|
|
- queryWrapper.between(DevelopmentOrder::getStatus_3StartTime,startDate,endDate);
|
|
|
+ queryWrapper.between(DevelopmentOrder::getStatus_3StartTime, startDate, endDate);
|
|
|
}
|
|
|
- queryWrapper.eq(Objects.nonNull(designUserid),DevelopmentOrder::getColorUserid,designUserid);
|
|
|
+ queryWrapper.eq(Objects.nonNull(designUserid), DevelopmentOrder::getColorUserid, designUserid);
|
|
|
|
|
|
break;
|
|
|
//排版
|
|
|
case 4:
|
|
|
if (Objects.nonNull(startDate) && Objects.nonNull(endDate)) {
|
|
|
- queryWrapper.between(DevelopmentOrder::getStatus_4StartTime,startDate,endDate);
|
|
|
+ queryWrapper.between(DevelopmentOrder::getStatus_4StartTime, startDate, endDate);
|
|
|
}
|
|
|
- queryWrapper.eq(Objects.nonNull(designUserid),DevelopmentOrder::getLayoutUserid,designUserid);
|
|
|
+ queryWrapper.eq(Objects.nonNull(designUserid), DevelopmentOrder::getLayoutUserid, designUserid);
|
|
|
|
|
|
break;
|
|
|
//打版
|
|
|
case 5:
|
|
|
if (Objects.nonNull(startDate) && Objects.nonNull(endDate)) {
|
|
|
- queryWrapper.between(DevelopmentOrder::getStatus_5StartTime,startDate,endDate);
|
|
|
+ queryWrapper.between(DevelopmentOrder::getStatus_5StartTime, startDate, endDate);
|
|
|
}
|
|
|
- queryWrapper.eq(Objects.nonNull(designUserid),DevelopmentOrder::getPatternUserid,designUserid);
|
|
|
+ queryWrapper.eq(Objects.nonNull(designUserid), DevelopmentOrder::getPatternUserid, designUserid);
|
|
|
break;
|
|
|
}
|
|
|
|
|
|
- }else{
|
|
|
+ } else {
|
|
|
//没有传状态参数,表示时间是整个开发订单的时间
|
|
|
// 时间范围处理
|
|
|
LocalDate startDate = parseDate((String) params.get("beginTime"));
|
|
@@ -275,28 +277,7 @@ public class DevelopmentOrderServiceImpl extends ServiceImpl<DevelopmentOrderMap
|
|
|
if (developmentOrderBo.getStatus() != null) {
|
|
|
DevelopmentOrderVo developmentOrderVo = selectById(developmentOrderBo.getId());
|
|
|
developmentOrderBo.setOrderNum(developmentOrderVo.getOrderNum());
|
|
|
- DevelopmentOrderStateService initialState = switch (developmentOrderBo.getStatus()) {
|
|
|
-// 待处理
|
|
|
- case DevelopmentOrderConstants.PENDING_PROCESSING -> new PendingStatusServiceImpl();
|
|
|
-// 画图中
|
|
|
- case DevelopmentOrderConstants.IN_THE_DRAWING -> new StateServiceInDrawingServiceImpl(this);
|
|
|
-// 确认中
|
|
|
- case DevelopmentOrderConstants.CONFIRMING_IN_PROGRESS ->
|
|
|
- new ConfirmTheStatusInProgressServiceImpl(this);
|
|
|
-// 修改中
|
|
|
- case DevelopmentOrderConstants.UNDER_MODIFICATION -> new ModifyingStatusServiceImpl(this);
|
|
|
-// 调色中
|
|
|
- case DevelopmentOrderConstants.IN_COLOR_ADJUSTMENT -> new ColorGradingStatusServiceImpl(this);
|
|
|
-// 排版中
|
|
|
- case DevelopmentOrderConstants.IN_TYPESETTING -> new StatusInTypesettingServiceImpl(this);
|
|
|
-// 打版中
|
|
|
- case DevelopmentOrderConstants.PRINTING_IN_PROGRESS -> new PrintingStatusServiceImpl(this);
|
|
|
-// 已完成
|
|
|
- case DevelopmentOrderConstants.COMPLETED -> new CompletedStatusServiceImpl(this);
|
|
|
-// 已取消
|
|
|
- case DevelopmentOrderConstants.CANCELLED -> new CancelledStatusServiceImpl(this);
|
|
|
- default -> throw new IllegalStateException("意外状态: " + developmentOrderBo.getStatus());
|
|
|
- };
|
|
|
+ DevelopmentOrderStateService initialState = getDevelopmentOrderStateService(developmentOrderBo.getStatus());
|
|
|
DevelopmentOrderContext context = new DevelopmentOrderContext(initialState);
|
|
|
context.handle(developmentOrderBo, developmentOrderVo);
|
|
|
}
|
|
@@ -306,70 +287,13 @@ public class DevelopmentOrderServiceImpl extends ServiceImpl<DevelopmentOrderMap
|
|
|
public List<ExportDevelopmentOrderDesignerTaskVo> getExportDesignerTaskList(PageQuery pageQuery, DevelopmentOrderBo developmentOrderBo) {
|
|
|
List<ExportDevelopmentOrderDesignerTaskVo> list = new ArrayList<>();
|
|
|
//获取数据
|
|
|
- List<DevelopmentOrderVo> data = getDesignerTaskList(developmentOrderBo,pageQuery).getData().getList();
|
|
|
+ List<DevelopmentOrderVo> data = getDesignerTaskList(developmentOrderBo, pageQuery).getData().getList();
|
|
|
//转换vo
|
|
|
- for (DevelopmentOrderVo row : data) {
|
|
|
- ExportDevelopmentOrderDesignerTaskVo vo = new ExportDevelopmentOrderDesignerTaskVo();
|
|
|
- BeanUtils.copyProperties(row,vo);
|
|
|
- Integer status = row.getStatus();
|
|
|
- //根据状态获取对应任务的时间
|
|
|
- Date start = null;
|
|
|
- Date end = null;
|
|
|
- if (Objects.nonNull(status)) {
|
|
|
- switch(status){
|
|
|
- //画图
|
|
|
- case 1:
|
|
|
- start = row.getStatus_1StartTime();
|
|
|
- end = row.getStatus_1EndTime();
|
|
|
- break;
|
|
|
- //确认
|
|
|
- case 2:
|
|
|
- start = row.getStatus_2StartTime();
|
|
|
- end = row.getStatus_2EndTime();
|
|
|
- break;
|
|
|
- //调色
|
|
|
- case 3:
|
|
|
- start = row.getStatus_3StartTime();
|
|
|
- end = row.getStatus_3EndTime();
|
|
|
- break;
|
|
|
- //排版
|
|
|
- case 4:
|
|
|
- start = row.getStatus_4StartTime();
|
|
|
- end = row.getStatus_4EndTime();
|
|
|
- break;
|
|
|
- //打版
|
|
|
- case 5:
|
|
|
- start = row.getStatus_5StartTime();
|
|
|
- end = row.getStatus_5EndTime();
|
|
|
- break;
|
|
|
- }
|
|
|
- LocalDateTime startTime = null;
|
|
|
- LocalDateTime endTime = null;
|
|
|
- if (Objects.nonNull(start)) {
|
|
|
- startTime = start.toInstant()
|
|
|
- .atZone(ZoneId.systemDefault())
|
|
|
- .toLocalDateTime();
|
|
|
- }
|
|
|
- if (Objects.nonNull(end)) {
|
|
|
- endTime = end.toInstant()
|
|
|
- .atZone(ZoneId.systemDefault())
|
|
|
- .toLocalDateTime();
|
|
|
- }
|
|
|
- if (Objects.nonNull(startTime)) {
|
|
|
- vo.setTaskStatus("进行中");
|
|
|
- }
|
|
|
- vo.setStartTime(startTime);
|
|
|
- vo.setEndTime(endTime);
|
|
|
- if (Objects.nonNull(startTime) && Objects.nonNull(endTime)) {
|
|
|
- Duration duration = Duration.between(startTime, endTime);
|
|
|
- long hours = duration.toHours();
|
|
|
- vo.setTime(hours + "H");
|
|
|
- }
|
|
|
- }else{
|
|
|
- vo.setTaskStatus("未开始");
|
|
|
- }
|
|
|
- list.add(vo);
|
|
|
- }
|
|
|
+ data.forEach(v->{
|
|
|
+ DevelopmentOrderStateService initialState = getDevelopmentOrderStateService(v.getStatus());
|
|
|
+ list.add(initialState.toExportVo(v,adminMapper));
|
|
|
+ });
|
|
|
+
|
|
|
return list;
|
|
|
}
|
|
|
|
|
@@ -379,9 +303,59 @@ public class DevelopmentOrderServiceImpl extends ServiceImpl<DevelopmentOrderMap
|
|
|
LambdaQueryWrapper<DevelopmentOrder> queryWrapper = new LambdaQueryWrapper<>();
|
|
|
addDynamicConditions(queryWrapper, developmentOrderBo);
|
|
|
Page<DevelopmentOrderVo> page = developmentOrderMapper.getList(pageQuery.build(), queryWrapper);
|
|
|
+ page.getRecords().forEach(v->{
|
|
|
+ String currentDesigner = getDevelopmentOrderStateService(v.getStatus()).getCurrentDesigner(v,adminMapper);
|
|
|
+ v.setCurrentStatusDesigner(currentDesigner);
|
|
|
+ });
|
|
|
return DevelopmentOrderTableDataInfo.build(page);
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * @param vo
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ private String getCurrentDesigner(DevelopmentOrderVo vo) {
|
|
|
+ Integer status = vo.getStatus();
|
|
|
+ if (Objects.nonNull(status)) {
|
|
|
+ Long id = switch (status) {
|
|
|
+ default -> -1L;
|
|
|
+ };
|
|
|
+ return adminMapper.getNickName(id);
|
|
|
+ } else {
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 获取对应状态的服务类
|
|
|
+ * @param status 状态
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ private DevelopmentOrderStateService getDevelopmentOrderStateService(Integer status){
|
|
|
+ return switch (status) {
|
|
|
+// 待处理
|
|
|
+ case DevelopmentOrderConstants.PENDING_PROCESSING -> new PendingStatusServiceImpl();
|
|
|
+// 画图中
|
|
|
+ case DevelopmentOrderConstants.IN_THE_DRAWING -> new StateServiceInDrawingServiceImpl(this);
|
|
|
+// 确认中
|
|
|
+ case DevelopmentOrderConstants.CONFIRMING_IN_PROGRESS ->
|
|
|
+ new ConfirmTheStatusInProgressServiceImpl(this);
|
|
|
+// 修改中
|
|
|
+ case DevelopmentOrderConstants.UNDER_MODIFICATION -> new ModifyingStatusServiceImpl(this);
|
|
|
+// 调色中
|
|
|
+ case DevelopmentOrderConstants.IN_COLOR_ADJUSTMENT -> new ColorGradingStatusServiceImpl(this);
|
|
|
+// 排版中
|
|
|
+ case DevelopmentOrderConstants.IN_TYPESETTING -> new StatusInTypesettingServiceImpl(this);
|
|
|
+// 打版中
|
|
|
+ case DevelopmentOrderConstants.PRINTING_IN_PROGRESS -> new PrintingStatusServiceImpl(this);
|
|
|
+// 已完成
|
|
|
+ case DevelopmentOrderConstants.COMPLETED -> new CompletedStatusServiceImpl(this);
|
|
|
+// 已取消
|
|
|
+ case DevelopmentOrderConstants.CANCELLED -> new CancelledStatusServiceImpl(this);
|
|
|
+ default -> throw new IllegalStateException("意外状态: " + status);
|
|
|
+ };
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 新增开发日志
|
|
|
*
|