|
@@ -7,24 +7,27 @@ import com.github.pagehelper.PageHelper;
|
|
|
import com.github.pagehelper.PageInfo;
|
|
import com.github.pagehelper.PageInfo;
|
|
|
import com.sckw.core.model.constant.Global;
|
|
import com.sckw.core.model.constant.Global;
|
|
|
import com.sckw.core.model.page.PageRes;
|
|
import com.sckw.core.model.page.PageRes;
|
|
|
|
|
+import com.sckw.core.utils.CollectionUtils;
|
|
|
|
|
+import com.sckw.core.utils.TenantUtil;
|
|
|
import com.sckw.core.web.response.HttpResult;
|
|
import com.sckw.core.web.response.HttpResult;
|
|
|
import com.sckw.mine.common.OrderServerCommon;
|
|
import com.sckw.mine.common.OrderServerCommon;
|
|
|
import com.sckw.mine.entity.KwBusinessActionTrack;
|
|
import com.sckw.mine.entity.KwBusinessActionTrack;
|
|
|
import com.sckw.mine.entity.KwBusinessMineOrder;
|
|
import com.sckw.mine.entity.KwBusinessMineOrder;
|
|
|
import com.sckw.mine.entity.KwBusinessWorkFlowNode;
|
|
import com.sckw.mine.entity.KwBusinessWorkFlowNode;
|
|
|
|
|
+import com.sckw.mine.entity.dto.NodeStatusDTO;
|
|
|
import com.sckw.mine.entity.req.ReviewOrderParam;
|
|
import com.sckw.mine.entity.req.ReviewOrderParam;
|
|
|
import com.sckw.mine.entity.req.TaskCardPageListParam;
|
|
import com.sckw.mine.entity.req.TaskCardPageListParam;
|
|
|
|
|
+import com.sckw.mine.entity.res.MineOrderDetailRes;
|
|
|
import com.sckw.mine.entity.res.TaskCardPageListRes;
|
|
import com.sckw.mine.entity.res.TaskCardPageListRes;
|
|
|
import com.sckw.mine.enums.MineStatusEnum;
|
|
import com.sckw.mine.enums.MineStatusEnum;
|
|
|
-import com.sckw.mine.mapper.KwBusinessActionTrackMapper;
|
|
|
|
|
-import com.sckw.mine.mapper.MineMapper;
|
|
|
|
|
-import com.sckw.mine.mapper.MineOrderMapper;
|
|
|
|
|
-import com.sckw.mine.mapper.WorkFlowNodeMapper;
|
|
|
|
|
|
|
+import com.sckw.mine.enums.MineralAggregateTypeEnum;
|
|
|
|
|
+import com.sckw.mine.mapper.*;
|
|
|
|
|
+import com.sckw.usual.enums.OrderDictTypeEnum;
|
|
|
|
|
+import com.sckw.usual.service.OrderDictService;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
|
|
-import java.util.List;
|
|
|
|
|
-import java.util.Objects;
|
|
|
|
|
|
|
+import java.util.*;
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
|
* @desc:
|
|
* @desc:
|
|
@@ -40,6 +43,9 @@ public class TaskCardService {
|
|
|
@Autowired
|
|
@Autowired
|
|
|
MineMapper mineMapper;
|
|
MineMapper mineMapper;
|
|
|
|
|
|
|
|
|
|
+ @Autowired
|
|
|
|
|
+ NodeMapper nodeMapper;
|
|
|
|
|
+
|
|
|
@Autowired
|
|
@Autowired
|
|
|
MineOrderMapper mineOrderMapper;
|
|
MineOrderMapper mineOrderMapper;
|
|
|
|
|
|
|
@@ -49,6 +55,12 @@ public class TaskCardService {
|
|
|
@Autowired
|
|
@Autowired
|
|
|
WorkFlowNodeMapper workFlowNodeMapper;
|
|
WorkFlowNodeMapper workFlowNodeMapper;
|
|
|
|
|
|
|
|
|
|
+ @Autowired
|
|
|
|
|
+ OrderDictService orderDictService;
|
|
|
|
|
+
|
|
|
|
|
+ @Autowired
|
|
|
|
|
+ MineService mineService;
|
|
|
|
|
+
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
|
* @Description: 任务卡片分页列表
|
|
* @Description: 任务卡片分页列表
|
|
@@ -59,9 +71,6 @@ public class TaskCardService {
|
|
|
{
|
|
{
|
|
|
PageHelper.startPage(param.getPage(), param.getPageSize());
|
|
PageHelper.startPage(param.getPage(), param.getPageSize());
|
|
|
List<TaskCardPageListRes> businessTruckPageListRes = kwBusinessActionTrackMapper.taskCardPageList(param);
|
|
List<TaskCardPageListRes> businessTruckPageListRes = kwBusinessActionTrackMapper.taskCardPageList(param);
|
|
|
- //businessTruckPageListRes.forEach(e -> {
|
|
|
|
|
- // e.setStatusStr(MineStatusEnum.getNameByCode(e.getStatus()));
|
|
|
|
|
- //});
|
|
|
|
|
return HttpResult.ok(new PageRes<>(new PageInfo<>(businessTruckPageListRes)));
|
|
return HttpResult.ok(new PageRes<>(new PageInfo<>(businessTruckPageListRes)));
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -72,7 +81,8 @@ public class TaskCardService {
|
|
|
*/
|
|
*/
|
|
|
public HttpResult reviewOrder(ReviewOrderParam reviewOrderParam)
|
|
public HttpResult reviewOrder(ReviewOrderParam reviewOrderParam)
|
|
|
{
|
|
{
|
|
|
- KwBusinessActionTrack kwBusinessActionTrack = kwBusinessActionTrackMapper.selectById(reviewOrderParam.getId());
|
|
|
|
|
|
|
+ String trackId = reviewOrderParam.getId();
|
|
|
|
|
+ KwBusinessActionTrack kwBusinessActionTrack = kwBusinessActionTrackMapper.selectById(trackId);
|
|
|
if (ObjectUtils.isNull(kwBusinessActionTrack))
|
|
if (ObjectUtils.isNull(kwBusinessActionTrack))
|
|
|
{
|
|
{
|
|
|
return HttpResult.error("当前任务不存在");
|
|
return HttpResult.error("当前任务不存在");
|
|
@@ -90,7 +100,13 @@ public class TaskCardService {
|
|
|
//找到当前流程下所有节点
|
|
//找到当前流程下所有节点
|
|
|
List<KwBusinessWorkFlowNode> list = workFlowNodeMapper.selectList(new QueryWrapper<KwBusinessWorkFlowNode>()
|
|
List<KwBusinessWorkFlowNode> list = workFlowNodeMapper.selectList(new QueryWrapper<KwBusinessWorkFlowNode>()
|
|
|
.eq("flow_id", flowId).eq("del_flag", Global.NUMERICAL_ZERO)
|
|
.eq("flow_id", flowId).eq("del_flag", Global.NUMERICAL_ZERO)
|
|
|
|
|
+ .orderBy(true, false, "sort")
|
|
|
);
|
|
);
|
|
|
|
|
+ //如果是最后一个节点就不操作
|
|
|
|
|
+ if (!list.isEmpty() && list.get(list.size() - 1).getId().equals(kwBusinessActionTrack.getStatus())) {
|
|
|
|
|
+ // 如果列表不为空且最后一个元素的id等于status,则执行你的逻辑
|
|
|
|
|
+ return HttpResult.error("当前任务已完结");
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
List<KwBusinessActionTrack> kwBusinessActionTracks = kwBusinessActionTrackMapper.selectList(new QueryWrapper<KwBusinessActionTrack>()
|
|
List<KwBusinessActionTrack> kwBusinessActionTracks = kwBusinessActionTrackMapper.selectList(new QueryWrapper<KwBusinessActionTrack>()
|
|
|
.eq("mine_order_id", orderId)
|
|
.eq("mine_order_id", orderId)
|
|
@@ -103,10 +119,10 @@ public class TaskCardService {
|
|
|
String nextNodeId = null;
|
|
String nextNodeId = null;
|
|
|
String nextNodeName = null;
|
|
String nextNodeName = null;
|
|
|
//找到它的下一个任务是什么
|
|
//找到它的下一个任务是什么
|
|
|
- for (int i = 0; i < list.size(); i++) {
|
|
|
|
|
- if (list.get(i).getNodeId().equals(kwBusinessActionTrack.getStatus())) {
|
|
|
|
|
- nextNodeId = list.get(i + 1).getNodeId();
|
|
|
|
|
- nextNodeName = list.get(i + 1).getNodeName();
|
|
|
|
|
|
|
+ for (KwBusinessWorkFlowNode l : list) {
|
|
|
|
|
+ if (Integer.valueOf(l.getNodeId()) > Integer.valueOf(kwBusinessActionTrack.getStatus())) {
|
|
|
|
|
+ nextNodeId = l.getNodeId();
|
|
|
|
|
+ nextNodeName = l.getNodeName();
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
//防止多次审核
|
|
//防止多次审核
|
|
@@ -135,6 +151,11 @@ public class TaskCardService {
|
|
|
orderServerCommon.saveActionTrack(orderId, String.valueOf(MineStatusEnum.FIFTEEN.getCode()), nameByCode, nameByCode);
|
|
orderServerCommon.saveActionTrack(orderId, String.valueOf(MineStatusEnum.FIFTEEN.getCode()), nameByCode, nameByCode);
|
|
|
orderStatus = String.valueOf(MineStatusEnum.FIFTEEN.getCode());
|
|
orderStatus = String.valueOf(MineStatusEnum.FIFTEEN.getCode());
|
|
|
}
|
|
}
|
|
|
|
|
+ //修改任务是否被操作过的状态
|
|
|
|
|
+ LambdaUpdateWrapper<KwBusinessActionTrack> trackUpdateWrapper = new LambdaUpdateWrapper<>();
|
|
|
|
|
+ trackUpdateWrapper.set(KwBusinessActionTrack::getIsAction, Global.NUMERICAL_ONE).eq(KwBusinessActionTrack::getId, trackId);
|
|
|
|
|
+ kwBusinessActionTrackMapper.update(null, trackUpdateWrapper);
|
|
|
|
|
+
|
|
|
//修改订单状态
|
|
//修改订单状态
|
|
|
LambdaUpdateWrapper<KwBusinessMineOrder> objectLambdaUpdateWrapper = new LambdaUpdateWrapper<>();
|
|
LambdaUpdateWrapper<KwBusinessMineOrder> objectLambdaUpdateWrapper = new LambdaUpdateWrapper<>();
|
|
|
objectLambdaUpdateWrapper.set(KwBusinessMineOrder::getStatus, orderStatus).eq(KwBusinessMineOrder::getId, orderId);
|
|
objectLambdaUpdateWrapper.set(KwBusinessMineOrder::getStatus, orderStatus).eq(KwBusinessMineOrder::getId, orderId);
|
|
@@ -152,7 +173,8 @@ public class TaskCardService {
|
|
|
*/
|
|
*/
|
|
|
public HttpResult carryTrack(ReviewOrderParam reviewOrderParam)
|
|
public HttpResult carryTrack(ReviewOrderParam reviewOrderParam)
|
|
|
{
|
|
{
|
|
|
- KwBusinessActionTrack kwBusinessActionTrack = kwBusinessActionTrackMapper.selectById(reviewOrderParam.getId());
|
|
|
|
|
|
|
+ String trackId = reviewOrderParam.getId();
|
|
|
|
|
+ KwBusinessActionTrack kwBusinessActionTrack = kwBusinessActionTrackMapper.selectById(trackId);
|
|
|
if (ObjectUtils.isNull(kwBusinessActionTrack))
|
|
if (ObjectUtils.isNull(kwBusinessActionTrack))
|
|
|
{
|
|
{
|
|
|
return HttpResult.error("当前任务不存在");
|
|
return HttpResult.error("当前任务不存在");
|
|
@@ -194,6 +216,11 @@ public class TaskCardService {
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ //修改任务是否被操作过的状态
|
|
|
|
|
+ LambdaUpdateWrapper<KwBusinessActionTrack> trackUpdateWrapper = new LambdaUpdateWrapper<>();
|
|
|
|
|
+ trackUpdateWrapper.set(KwBusinessActionTrack::getIsAction, Global.NUMERICAL_ONE).eq(KwBusinessActionTrack::getId, trackId);
|
|
|
|
|
+ kwBusinessActionTrackMapper.update(null, trackUpdateWrapper);
|
|
|
|
|
+
|
|
|
//执行任务
|
|
//执行任务
|
|
|
orderServerCommon.saveActionTrack(orderId, nextStatusId, nextNodeName, nextNodeName);
|
|
orderServerCommon.saveActionTrack(orderId, nextStatusId, nextNodeName, nextNodeName);
|
|
|
|
|
|
|
@@ -208,6 +235,93 @@ public class TaskCardService {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ public List<Map<String, Object>> getStatusCountListInSingleQuery() {
|
|
|
|
|
+ String tenantId = TenantUtil.getTenant();
|
|
|
|
|
+ // 查询每个状态的计数
|
|
|
|
|
+ List<Map<String, Object>> statusCounts = kwBusinessActionTrackMapper.countByStatus(tenantId);
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ List<NodeStatusDTO> sortedEnums = nodeMapper.selectListNode(tenantId);
|
|
|
|
|
+
|
|
|
|
|
+ // 创建要追加在最前面的元素
|
|
|
|
|
+ NodeStatusDTO firstElement = new NodeStatusDTO();
|
|
|
|
|
+ firstElement.setMsg(MineStatusEnum.getNameByCode(MineStatusEnum.ZERO.getCode()));
|
|
|
|
|
+ firstElement.setCode(String.valueOf(MineStatusEnum.ZERO.getCode()));
|
|
|
|
|
+
|
|
|
|
|
+ // 创建要追加在最后的元素
|
|
|
|
|
+ NodeStatusDTO lastElement = new NodeStatusDTO();
|
|
|
|
|
+ lastElement.setMsg(MineStatusEnum.getNameByCode(MineStatusEnum.TWENTY.getCode()));
|
|
|
|
|
+ lastElement.setCode(String.valueOf(MineStatusEnum.TWENTY.getCode()));
|
|
|
|
|
+
|
|
|
|
|
+ NodeStatusDTO twoElement = new NodeStatusDTO();
|
|
|
|
|
+ twoElement.setMsg(MineStatusEnum.getNameByCode(MineStatusEnum.FIFTEEN.getCode()));
|
|
|
|
|
+ twoElement.setCode(String.valueOf(MineStatusEnum.FIFTEEN.getCode()));
|
|
|
|
|
+
|
|
|
|
|
+ // 将元素追加到列表的最前面
|
|
|
|
|
+ sortedEnums.add(0, firstElement);
|
|
|
|
|
+ sortedEnums.add(1, twoElement);
|
|
|
|
|
+
|
|
|
|
|
+ // 将元素追加到列表的最后面
|
|
|
|
|
+ sortedEnums.add(lastElement);
|
|
|
|
|
+ // 将查询结果转换为所需的格式
|
|
|
|
|
+ //List<MineStatusEnum> sortedEnums = MineStatusEnum.getSortList();
|
|
|
|
|
+ List<Map<String, Object>> result = new ArrayList<>();
|
|
|
|
|
+ for (NodeStatusDTO enumItem : sortedEnums) {
|
|
|
|
|
+ Map<String, Object> statusCount = statusCounts.stream()
|
|
|
|
|
+ .filter(c -> enumItem.getCode().equals(c.get("status")))
|
|
|
|
|
+ .findFirst()
|
|
|
|
|
+ .orElseGet(() -> Map.of("status", enumItem.getCode(), "count", 0));
|
|
|
|
|
+ result.add(
|
|
|
|
|
+ Map.of(
|
|
|
|
|
+ "key", enumItem.getMsg(),
|
|
|
|
|
+ "value", enumItem.getCode(),
|
|
|
|
|
+ "data", statusCount.get("count")
|
|
|
|
|
+ )
|
|
|
|
|
+ );
|
|
|
|
|
+ }
|
|
|
|
|
+ return result;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ public MineOrderDetailRes detail(String taskId) {
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ //根据taskId找到订单id
|
|
|
|
|
+ KwBusinessActionTrack kwBusinessActionTrack = kwBusinessActionTrackMapper.selectById(taskId);
|
|
|
|
|
+ if (ObjectUtils.isNull(kwBusinessActionTrack)) {
|
|
|
|
|
+ throw new RuntimeException("当前任务数据不存在");
|
|
|
|
|
+ }
|
|
|
|
|
+ MineOrderDetailRes kwBusinessMineOrder = mineOrderMapper.selectOrderById(String.valueOf(kwBusinessActionTrack.getMineOrderId()));
|
|
|
|
|
+ if (ObjectUtils.isNull(kwBusinessMineOrder)) {
|
|
|
|
|
+ throw new RuntimeException("当前数据不存在");
|
|
|
|
|
+ }
|
|
|
|
|
+ if (ObjectUtils.isNotNull(kwBusinessMineOrder.getStatus())) {
|
|
|
|
|
+
|
|
|
|
|
+ kwBusinessMineOrder.setStatusStr(mineService.getStatusStr(kwBusinessMineOrder.getStatus()));
|
|
|
|
|
+ }
|
|
|
|
|
+ if (ObjectUtils.isNotNull(kwBusinessMineOrder.getOrderSource())) {
|
|
|
|
|
+ kwBusinessMineOrder.setOrderSourceStr(kwBusinessMineOrder.getOrderSource() == 1 ? "生产自建" : "销售流转");
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ if (ObjectUtils.isNotNull(kwBusinessMineOrder.getType())) {
|
|
|
|
|
+ kwBusinessMineOrder.setTypeStr(MineralAggregateTypeEnum.getNameByCode(kwBusinessMineOrder.getType()));
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ if (ObjectUtils.isNotNull(kwBusinessMineOrder.getUnit())) {
|
|
|
|
|
+ Map<String, Map<String, String>> dict = orderDictService.queryDictByType(new ArrayList<>(Arrays.asList(OrderDictTypeEnum.GOODS_UNIT.getType())));
|
|
|
|
|
+ Map<String, String> goodsUnitMap;
|
|
|
|
|
+ if (CollectionUtils.isNotEmpty(dict)) {
|
|
|
|
|
+ goodsUnitMap = CollectionUtils.isNotEmpty(dict.get(OrderDictTypeEnum.GOODS_UNIT.getType())) ? dict.get(OrderDictTypeEnum.GOODS_UNIT.getType()) : new HashMap<>(16);
|
|
|
|
|
+ } else {
|
|
|
|
|
+ goodsUnitMap = new HashMap<>(16);
|
|
|
|
|
+ }
|
|
|
|
|
+ kwBusinessMineOrder.setUnitStr(goodsUnitMap.getOrDefault(kwBusinessMineOrder.getUnit().toString(), ""));
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ return kwBusinessMineOrder;
|
|
|
|
|
+
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
|