|
@@ -1,22 +1,24 @@
|
|
|
-package org.dromara.bulk.service.impl;
|
|
|
+package org.dromara.management.service.impl;
|
|
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
import lombok.RequiredArgsConstructor;
|
|
|
-import org.dromara.bulk.context.DevelopmentOrderContext;
|
|
|
-import org.dromara.bulk.domain.DevelopmentOrder;
|
|
|
-import org.dromara.bulk.domain.DevelopmentOrderRemark;
|
|
|
-import org.dromara.bulk.domain.bo.DevelopmentOrderBo;
|
|
|
-import org.dromara.bulk.domain.bo.DevelopmentOrderRemarkBo;
|
|
|
-import org.dromara.bulk.domain.vo.DevelopmentOrderRemarkVo;
|
|
|
-import org.dromara.bulk.domain.vo.DevelopmentOrderTableDataInfo;
|
|
|
-import org.dromara.bulk.domain.vo.DevelopmentOrderVo;
|
|
|
-import org.dromara.bulk.mapper.DevelopmentOrderMapper;
|
|
|
-import org.dromara.bulk.mapper.DevelopmentOrderRemarkMapper;
|
|
|
-import org.dromara.bulk.service.DevelopmentOrderService;
|
|
|
-import org.dromara.bulk.service.DevelopmentOrderState;
|
|
|
-import org.dromara.bulk.service.stateModeServiceImpl.*;
|
|
|
+import org.dromara.management.context.DevelopmentOrderContext;
|
|
|
+import org.dromara.management.domain.DevelopOrderLogs;
|
|
|
+import org.dromara.management.domain.DevelopmentOrder;
|
|
|
+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.DevelopmentOrderRemarkVo;
|
|
|
+import org.dromara.management.domain.vo.DevelopmentOrderTableDataInfo;
|
|
|
+import org.dromara.management.domain.vo.DevelopmentOrderVo;
|
|
|
+import org.dromara.management.mapper.DevelopOrderLogsMapper;
|
|
|
+import org.dromara.management.mapper.DevelopmentOrderMapper;
|
|
|
+import org.dromara.management.mapper.DevelopmentOrderRemarkMapper;
|
|
|
+import org.dromara.management.service.DevelopmentOrderService;
|
|
|
+import org.dromara.management.service.DevelopmentOrderStateService;
|
|
|
import org.dromara.common.core.constant.DevelopmentOrderConstants;
|
|
|
import org.dromara.common.core.exception.ServiceException;
|
|
|
import org.dromara.common.core.service.OssService;
|
|
@@ -25,7 +27,9 @@ import org.dromara.common.core.utils.OrderNumberGenerator;
|
|
|
import org.dromara.common.core.utils.StringUtils;
|
|
|
import org.dromara.common.mybatis.core.page.PageQuery;
|
|
|
import org.dromara.common.satoken.utils.LoginHelper;
|
|
|
+import org.dromara.management.service.developmentStateModeImpl.*;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
+import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
import java.time.LocalDate;
|
|
|
import java.time.format.DateTimeFormatter;
|
|
@@ -37,11 +41,12 @@ import java.util.*;
|
|
|
*/
|
|
|
@Service
|
|
|
@RequiredArgsConstructor
|
|
|
-public class DevelopmentOrderServiceImpl implements DevelopmentOrderService {
|
|
|
+public class DevelopmentOrderServiceImpl extends ServiceImpl<DevelopmentOrderMapper, DevelopmentOrder> implements DevelopmentOrderService {
|
|
|
|
|
|
private final DevelopmentOrderMapper developmentOrderMapper;
|
|
|
private final DevelopmentOrderRemarkMapper developmentOrderRemarkMapper;
|
|
|
private final OssService ossService;
|
|
|
+ private final DevelopOrderLogsMapper developOrderLogsMapper;
|
|
|
/**
|
|
|
* 创建所有状态的常量Set集合
|
|
|
*/
|
|
@@ -72,23 +77,12 @@ public class DevelopmentOrderServiceImpl implements DevelopmentOrderService {
|
|
|
LambdaQueryWrapper<DevelopmentOrder> queryWrapper = new LambdaQueryWrapper<>();
|
|
|
addDynamicConditions(queryWrapper, bo);
|
|
|
|
|
|
- Page<DevelopmentOrderVo> page = developmentOrderMapper.selectVoPage(pageQuery.build(), queryWrapper);
|
|
|
- page.getRecords().forEach(item -> {
|
|
|
-// 查询备注
|
|
|
- QueryWrapper<DevelopmentOrderRemark> remarkQueryWrapper = new QueryWrapper<>();
|
|
|
- remarkQueryWrapper.eq("template_dev_order_id", item.getId());
|
|
|
- List<DevelopmentOrderRemarkVo> developmentOrderRemarkVoList = developmentOrderRemarkMapper.selectVoList(remarkQueryWrapper);
|
|
|
- item.setDevelopmentOrderRemarkVoList(developmentOrderRemarkVoList);
|
|
|
-// 查询各个文件URL
|
|
|
-// item.setColorFileList(ossService.selectByIds(item.getColorFile()));
|
|
|
-// item.setDesignFileList(ossService.selectByIds(item.getDesignFile()));
|
|
|
-// item.setDesignMaterialList(ossService.selectByIds(item.getDesignMaterial()));
|
|
|
-// item.setDesignImageList(ossService.selectByIds(item.getDesignImage()));
|
|
|
-// item.setPaperDesignFileList(ossService.selectByIds(item.getPaperDesignFile()));
|
|
|
-// item.setPatternFileList(ossService.selectByIds(item.getPatternFile()));
|
|
|
-// item.setRefernceImageList(ossService.selectByIds(item.getReferenceImage()));
|
|
|
- });
|
|
|
- Map<Integer, String> statusCount = getStatusCount();
|
|
|
+ Page<DevelopmentOrderVo> page = developmentOrderMapper.getList(pageQuery.build(), queryWrapper);
|
|
|
+ // 查询备注
|
|
|
+ getDevelopmentOrderRemark(page);
|
|
|
+
|
|
|
+ // 获取所有状态的数量(画图中、确认中、修改中、调色中、排版中、打版中字段为:进行中/总数量、其余为:总数量)
|
|
|
+ Map<Integer, String> statusCount = getStatusCount(STATUS_CODES, SPECIAL_STATUS_FIELDS);
|
|
|
// 组装数据返回
|
|
|
return DevelopmentOrderTableDataInfo.build(page, statusCount);
|
|
|
}
|
|
@@ -98,7 +92,7 @@ public class DevelopmentOrderServiceImpl implements DevelopmentOrderService {
|
|
|
*
|
|
|
* @return
|
|
|
*/
|
|
|
- public Map<Integer, String> getStatusCount() {
|
|
|
+ public Map<Integer, String> getStatusCount(Set<Integer> STATUS_CODES, Map<Integer, String> SPECIAL_STATUS_FIELDS) {
|
|
|
// 调用 Mapper 方法获取 List<Map<String, Object>>
|
|
|
List<Map<String, Object>> resultList = developmentOrderMapper.countStatusBatch(STATUS_CODES);
|
|
|
// 将 List<Map<String, Object>> 转换为 Map<Long, Integer>
|
|
@@ -121,7 +115,7 @@ public class DevelopmentOrderServiceImpl implements DevelopmentOrderService {
|
|
|
if (SPECIAL_STATUS_FIELDS.containsKey(status)) {
|
|
|
String fieldName = SPECIAL_STATUS_FIELDS.get(status);
|
|
|
int specialCount = developmentOrderMapper.getCountWithCondition(status, fieldName);
|
|
|
- String combined = Objects.requireNonNullElse(specialCount, "0") + "/" + baseCount;
|
|
|
+ String combined = specialCount + "/" + baseCount;
|
|
|
statusCountMap.put(status, combined);
|
|
|
}
|
|
|
}
|
|
@@ -161,10 +155,16 @@ public class DevelopmentOrderServiceImpl implements DevelopmentOrderService {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
@Override
|
|
|
- public int insert(DevelopmentOrderBo developmentOrder) {
|
|
|
- developmentOrder.setOrderNum(OrderNumberGenerator.getInstance().generateOrderNumber());
|
|
|
- return developmentOrderMapper.insert(MapstructUtils.convert(developmentOrder, DevelopmentOrder.class));
|
|
|
+ public boolean insert(DevelopmentOrderBo developmentOrderBo) {
|
|
|
+ developmentOrderBo.setOrderNum(OrderNumberGenerator.getInstance().generateOrderNumber());
|
|
|
+ DevelopmentOrder developmentOrder = MapstructUtils.convert(developmentOrderBo, DevelopmentOrder.class);
|
|
|
+ boolean flag = this.save(developmentOrder);
|
|
|
+ if (developmentOrder != null) {
|
|
|
+ insertDevelopmentOrderLogs(developmentOrder.getId(), "创建开发任务");
|
|
|
+ }
|
|
|
+ return flag;
|
|
|
}
|
|
|
|
|
|
@Override
|
|
@@ -198,29 +198,60 @@ public class DevelopmentOrderServiceImpl implements DevelopmentOrderService {
|
|
|
|
|
|
@Override
|
|
|
public void checkStatus(DevelopmentOrderBo developmentOrderBo) {
|
|
|
- DevelopmentOrderVo developmentOrderVo = selectById(developmentOrderBo.getId());
|
|
|
- developmentOrderBo.setOrderNum(developmentOrderVo.getOrderNum());
|
|
|
- developmentOrderBo.setStatus(developmentOrderVo.getStatus());
|
|
|
- DevelopmentOrderState initialState = switch (developmentOrderBo.getStatus()) {
|
|
|
+ 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.PENDING_PROCESSING -> new PendingStatusServiceImpl();
|
|
|
// 画图中
|
|
|
- case DevelopmentOrderConstants.IN_THE_DRAWING -> new StateInDrawingServiceImpl();
|
|
|
+ case DevelopmentOrderConstants.IN_THE_DRAWING -> new StateServiceInDrawingServiceImpl(this);
|
|
|
// 确认中
|
|
|
- case DevelopmentOrderConstants.CONFIRMING_IN_PROGRESS -> new ConfirmTheStatusInProgressServiceImpl();
|
|
|
+ case DevelopmentOrderConstants.CONFIRMING_IN_PROGRESS ->
|
|
|
+ new ConfirmTheStatusInProgressServiceImpl(this);
|
|
|
+// 修改中
|
|
|
+ case DevelopmentOrderConstants.UNDER_MODIFICATION -> new ModifyingStatusServiceImpl(this);
|
|
|
// 调色中
|
|
|
- case DevelopmentOrderConstants.IN_COLOR_ADJUSTMENT -> new ColorGradingStatusServiceImpl();
|
|
|
+ case DevelopmentOrderConstants.IN_COLOR_ADJUSTMENT -> new ColorGradingStatusServiceImpl(this);
|
|
|
// 排版中
|
|
|
- case DevelopmentOrderConstants.IN_TYPESETTING -> new StatusInTypesettingServiceImpl();
|
|
|
+ case DevelopmentOrderConstants.IN_TYPESETTING -> new StatusInTypesettingServiceImpl(this);
|
|
|
// 打版中
|
|
|
- case DevelopmentOrderConstants.PRINTING_IN_PROGRESS -> new PrintingStatusServiceImpl();
|
|
|
+ case DevelopmentOrderConstants.PRINTING_IN_PROGRESS -> new PrintingStatusServiceImpl(this);
|
|
|
// 已完成
|
|
|
- case DevelopmentOrderConstants.COMPLETED -> new CompletedStatusServiceImpl();
|
|
|
- default -> throw new IllegalStateException("意外状态: " + developmentOrderBo.getStatus());
|
|
|
- };
|
|
|
+ case DevelopmentOrderConstants.COMPLETED -> new CompletedStatusServiceImpl(this);
|
|
|
+// 已取消
|
|
|
+ case DevelopmentOrderConstants.CANCELLED -> new CancelledStatusServiceImpl(this);
|
|
|
+ default -> throw new IllegalStateException("意外状态: " + developmentOrderBo.getStatus());
|
|
|
+ };
|
|
|
+ DevelopmentOrderContext context = new DevelopmentOrderContext(initialState);
|
|
|
+ context.handle(developmentOrderBo, developmentOrderVo);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ public void getDevelopmentOrderRemark(Page<DevelopmentOrderVo> page) {
|
|
|
+ page.getRecords().forEach(item -> {
|
|
|
+// 查询备注
|
|
|
+ QueryWrapper<DevelopmentOrderRemark> remarkQueryWrapper = new QueryWrapper<>();
|
|
|
+ remarkQueryWrapper.eq("template_dev_order_id", item.getId());
|
|
|
+ List<DevelopmentOrderRemarkVo> developmentOrderRemarkVoList = developmentOrderRemarkMapper.selectVoList(remarkQueryWrapper);
|
|
|
+ item.setDevelopmentOrderRemarkVoList(developmentOrderRemarkVoList);
|
|
|
+ });
|
|
|
+
|
|
|
+ }
|
|
|
|
|
|
- DevelopmentOrderContext context = new DevelopmentOrderContext(initialState);
|
|
|
- context.handle(developmentOrderBo, developmentOrderVo);
|
|
|
+ /**
|
|
|
+ * 新增开发日志
|
|
|
+ *
|
|
|
+ * @param devOrderId
|
|
|
+ * @param content
|
|
|
+ */
|
|
|
+ public void insertDevelopmentOrderLogs(int devOrderId, String content) {
|
|
|
+ DevelopOrderLogs developOrderLogs = new DevelopOrderLogs();
|
|
|
+ developOrderLogs.setName(LoginHelper.getUsername());
|
|
|
+ developOrderLogs.setContent(content);
|
|
|
+ developOrderLogs.setDevOrderid(devOrderId);
|
|
|
+ developOrderLogs.setCreateTime(new Date());
|
|
|
+ developOrderLogsMapper.insert(developOrderLogs);
|
|
|
}
|
|
|
|
|
|
public static void assertNotLongBlank(Long longId, String errorMessage) {
|