fix:修改超市
This commit is contained in:
1 parent
2a1790c5d5
commit
d2295ef205
7 files changed
+118
-5
No files matched your search
+7
@@ -0,0 +1,7 @@
|
||||
package com.bsd.pjcloud.common.core.exception;
|
||||
|
||||
public class ServiceException extends RuntimeException {
|
||||
public ServiceException(String message) {
|
||||
super(message);
|
||||
}
|
||||
}
|
||||
+17
@@ -8,6 +8,7 @@ import lombok.EqualsAndHashCode;
|
||||
import com.bsd.pjcloud.common.core.util.TenantTable;
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 采购订单
|
||||
@@ -175,4 +176,20 @@ public class SmErpCgDdEntity extends Model<SmErpCgDdEntity> {
|
||||
@Schema(description="经办人名称")
|
||||
@TableField(exist = false)
|
||||
public String handlerUserName;
|
||||
|
||||
@Schema(description="任务id")
|
||||
@TableField(exist = false)
|
||||
public String taskId;
|
||||
|
||||
@Schema(description="实例id")
|
||||
@TableField(exist = false)
|
||||
private String flowId;
|
||||
|
||||
@Schema(description="参数")
|
||||
@TableField(exist = false)
|
||||
private Map<String, Object> paramMap;
|
||||
|
||||
@Schema(description="节点id")
|
||||
@TableField(exist = false)
|
||||
private String nodeId;
|
||||
}
|
||||
+4
@@ -163,5 +163,9 @@ public class SmErpCgPlanEntity extends Model<SmErpCgPlanEntity> {
|
||||
@TableField(exist = false)
|
||||
private Map<String, Object> paramMap;
|
||||
|
||||
@Schema(description="节点id")
|
||||
@TableField(exist = false)
|
||||
private String nodeId;
|
||||
|
||||
|
||||
}
|
||||
+17
@@ -8,6 +8,7 @@ import lombok.EqualsAndHashCode;
|
||||
import com.bsd.pjcloud.common.core.util.TenantTable;
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 出入库记录表
|
||||
@@ -185,4 +186,20 @@ public class SmErpInventoryRecordsEntity extends Model<SmErpInventoryRecordsEnti
|
||||
@Schema(description="货商名称")
|
||||
@TableField(exist = false)
|
||||
private String supplierName;
|
||||
|
||||
@Schema(description="任务id")
|
||||
@TableField(exist = false)
|
||||
public String taskId;
|
||||
|
||||
@Schema(description="实例id")
|
||||
@TableField(exist = false)
|
||||
private String flowId;
|
||||
|
||||
@Schema(description="参数")
|
||||
@TableField(exist = false)
|
||||
private Map<String, Object> paramMap;
|
||||
|
||||
@Schema(description="节点id")
|
||||
@TableField(exist = false)
|
||||
private String nodeId;
|
||||
}
|
||||
+33
-1
@@ -1,10 +1,12 @@
|
||||
package com.bsd.pjcloud.supermarket.service.impl;
|
||||
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.bsd.pjcloud.admin.api.entity.SysUser;
|
||||
import com.bsd.pjcloud.admin.api.feign.RemoteUserService;
|
||||
import com.bsd.pjcloud.common.core.exception.ServiceException;
|
||||
import com.bsd.pjcloud.common.core.util.BeanUtils;
|
||||
import com.bsd.pjcloud.common.core.util.R;
|
||||
import com.bsd.pjcloud.common.data.datascope.DataScope;
|
||||
@@ -12,6 +14,8 @@ import com.bsd.pjcloud.common.security.util.SecurityUtils;
|
||||
import com.bsd.pjcloud.flow.task.api.feign.RemoteFlowApiFlowService;
|
||||
import com.bsd.pjcloud.flow.task.constant.TaskCheckStatusEnum;
|
||||
import com.bsd.pjcloud.flow.task.dto.ProcessInstanceParamDto;
|
||||
import com.bsd.pjcloud.flow.task.dto.TaskDto;
|
||||
import com.bsd.pjcloud.flow.task.dto.TaskQueryParamDto;
|
||||
import com.bsd.pjcloud.flow.task.entity.Process;
|
||||
import com.bsd.pjcloud.supermarket.constant.SupermarketFlowConstant;
|
||||
import com.bsd.pjcloud.supermarket.dto.cgdd.ErpCgDDEditDTO;
|
||||
@@ -62,16 +66,21 @@ public class SmErpCgDdServiceImpl extends ServiceImpl<SmErpCgDdMapper, SmErpCgDd
|
||||
SmErpCgDdEntity smErpCgDdEntity = BeanUtils.toBean(erpCgDDSaveDTO, SmErpCgDdEntity.class);
|
||||
smErpCgDdEntity.setDeptId(deptId);
|
||||
smErpCgDdEntity.setCheckStatus("0");
|
||||
smErpCgDdEntity.setDeptId(deptId);
|
||||
|
||||
List<SmCgDDSaveItemDTO> items = erpCgDDSaveDTO.getItems();
|
||||
List<SmErpCgDdItemEntity> cgPlanItemEntities = BeanUtils.toBean(items, SmErpCgDdItemEntity.class);
|
||||
|
||||
R<Process> processR = remoteFlowApiFlowService.getProcessByBusinessKey(SupermarketFlowConstant.SUPERMARKET_CGDD_FLOW);
|
||||
if (!processR.isOk() || processR.getData() == null) {
|
||||
throw new ServiceException("流程配置获取失败: " + processR.getMsg());
|
||||
}
|
||||
String flowId = processR.getData().getFlowId();
|
||||
ProcessInstanceParamDto processInstanceParamDto = new ProcessInstanceParamDto();
|
||||
processInstanceParamDto.setFlowId(flowId);
|
||||
R<String> stringR = remoteFlowApiFlowService.startProcessInstance(processInstanceParamDto);
|
||||
if (!stringR.isOk() || stringR.getData() == null) {
|
||||
throw new ServiceException("流程实例启动失败: " + stringR.getMsg());
|
||||
}
|
||||
String processInstanceId = stringR.getData();
|
||||
smErpCgDdEntity.setProcessInstanceId(processInstanceId);
|
||||
smErpCgDdEntity.setCheckStatus(TaskCheckStatusEnum.PADDING.getCode());
|
||||
@@ -232,6 +241,7 @@ public class SmErpCgDdServiceImpl extends ServiceImpl<SmErpCgDdMapper, SmErpCgDd
|
||||
//请求得到所有的userIds
|
||||
Map<Long, SysUser> userMap = remoteUserService.getUserMap(userIds).getData();
|
||||
|
||||
List<String> processInstanceIds= records.stream().map(SmErpCgDdEntity::getProcessInstanceId).filter(Objects::nonNull).collect(Collectors.toList());
|
||||
|
||||
LambdaQueryWrapper<SmErpCgDdItemEntity> smErpCgPlanItemEntityLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||
smErpCgPlanItemEntityLambdaQueryWrapper.in(SmErpCgDdItemEntity::getHId,planIds);
|
||||
@@ -252,12 +262,34 @@ public class SmErpCgDdServiceImpl extends ServiceImpl<SmErpCgDdMapper, SmErpCgDd
|
||||
)
|
||||
));
|
||||
|
||||
//查询代办任务的task
|
||||
TaskQueryParamDto taskQueryParamDto = new TaskQueryParamDto();
|
||||
taskQueryParamDto.setProcessInstanceIds(processInstanceIds);
|
||||
taskQueryParamDto.setCurrent(1);
|
||||
taskQueryParamDto.setSize(processInstanceIds.size());
|
||||
R<Page<TaskDto>> pageR = remoteFlowApiFlowService.queryMineTask(taskQueryParamDto);
|
||||
Page<TaskDto> data = pageR.getData();
|
||||
// 直接通过条件判断初始化 final 变量
|
||||
final Map<String, TaskDto> processInstanceIdMap = (data != null && !ObjectUtil.isEmpty(data.getRecords()))
|
||||
? data.getRecords().stream()
|
||||
.collect(Collectors.toMap(TaskDto::getProcessInstanceId, taskDto -> taskDto))
|
||||
: Collections.emptyMap();
|
||||
|
||||
// 设置商品名称到主表实体
|
||||
records.forEach(plan -> {
|
||||
SysUser sysUser = userMap.getOrDefault(plan.getHandlerUserId(), new SysUser());
|
||||
plan.setHandlerUserName(sysUser.getUsername());
|
||||
List<String> names = planGoodsMap.getOrDefault(plan.getId(), Collections.emptyList());
|
||||
plan.setProductName(String.join(", ", names));
|
||||
if (!processInstanceIdMap.isEmpty()) {
|
||||
TaskDto taskDto = processInstanceIdMap.get(plan.getProcessInstanceId());
|
||||
if (taskDto != null) {
|
||||
plan.setTaskId(taskDto.getTaskId());
|
||||
plan.setFlowId(taskDto.getFlowId());
|
||||
plan.setParamMap(taskDto.getParamMap());
|
||||
plan.setNodeId(taskDto.getNodeId());
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
return pageData;
|
||||
|
||||
+8
-2
@@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.bsd.pjcloud.admin.api.entity.SysUser;
|
||||
import com.bsd.pjcloud.admin.api.feign.RemoteUserService;
|
||||
import com.bsd.pjcloud.common.core.exception.ServiceException;
|
||||
import com.bsd.pjcloud.common.core.util.BeanUtils;
|
||||
import com.bsd.pjcloud.common.core.util.R;
|
||||
import com.bsd.pjcloud.common.data.datascope.DataScope;
|
||||
@@ -65,15 +66,19 @@ public class SmErpCgPlanServiceImpl extends ServiceImpl<SmErpCgPlanMapper, SmErp
|
||||
SmErpCgPlanEntity smErpCgPlanEntity = BeanUtils.toBean(erpCgPlanSaveDTO, SmErpCgPlanEntity.class);
|
||||
smErpCgPlanEntity.setDeptId(deptId);
|
||||
smErpCgPlanEntity.setCheckStatus("0");
|
||||
smErpCgPlanEntity.setDeptId(deptId);
|
||||
|
||||
|
||||
//发起流程
|
||||
R<Process> processR = remoteFlowApiFlowService.getProcessByBusinessKey(SupermarketFlowConstant.SUPERMARKET_BHSQ_FLOW);
|
||||
if (!processR.isOk() || processR.getData() == null) {
|
||||
throw new ServiceException("流程配置获取失败: " + processR.getMsg());
|
||||
}
|
||||
String flowId = processR.getData().getFlowId();
|
||||
ProcessInstanceParamDto processInstanceParamDto = new ProcessInstanceParamDto();
|
||||
processInstanceParamDto.setFlowId(flowId);
|
||||
R<String> stringR = remoteFlowApiFlowService.startProcessInstance(processInstanceParamDto);
|
||||
if (!stringR.isOk() || stringR.getData() == null) {
|
||||
throw new ServiceException("流程实例启动失败: " + stringR.getMsg());
|
||||
}
|
||||
String processInstanceId = stringR.getData();
|
||||
smErpCgPlanEntity.setProcessInstanceId(processInstanceId);
|
||||
smErpCgPlanEntity.setCheckStatus(TaskCheckStatusEnum.PADDING.getCode());
|
||||
@@ -289,6 +294,7 @@ public class SmErpCgPlanServiceImpl extends ServiceImpl<SmErpCgPlanMapper, SmErp
|
||||
plan.setTaskId(taskDto.getTaskId());
|
||||
plan.setFlowId(taskDto.getFlowId());
|
||||
plan.setParamMap(taskDto.getParamMap());
|
||||
plan.setNodeId(taskDto.getNodeId());
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
+32
-2
@@ -1,11 +1,13 @@
|
||||
package com.bsd.pjcloud.supermarket.service.impl;
|
||||
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
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 com.bsd.pjcloud.admin.api.entity.SysUser;
|
||||
import com.bsd.pjcloud.admin.api.feign.RemoteUserService;
|
||||
import com.bsd.pjcloud.common.core.exception.ServiceException;
|
||||
import com.bsd.pjcloud.common.core.util.BeanUtils;
|
||||
import com.bsd.pjcloud.common.core.util.R;
|
||||
import com.bsd.pjcloud.common.data.datascope.DataScope;
|
||||
@@ -13,6 +15,8 @@ import com.bsd.pjcloud.common.security.util.SecurityUtils;
|
||||
import com.bsd.pjcloud.flow.task.api.feign.RemoteFlowApiFlowService;
|
||||
import com.bsd.pjcloud.flow.task.constant.TaskCheckStatusEnum;
|
||||
import com.bsd.pjcloud.flow.task.dto.ProcessInstanceParamDto;
|
||||
import com.bsd.pjcloud.flow.task.dto.TaskDto;
|
||||
import com.bsd.pjcloud.flow.task.dto.TaskQueryParamDto;
|
||||
import com.bsd.pjcloud.flow.task.entity.Process;
|
||||
import com.bsd.pjcloud.supermarket.constant.OrderTypeEnum;
|
||||
import com.bsd.pjcloud.supermarket.constant.SupermarketFlowConstant;
|
||||
@@ -69,7 +73,6 @@ public class SmErpInventoryRecordsServiceImpl extends ServiceImpl<SmErpInventory
|
||||
SmErpInventoryRecordsEntity smErpCgDdEntity = BeanUtils.toBean(inventoryRecordSaveDTO, SmErpInventoryRecordsEntity.class);
|
||||
smErpCgDdEntity.setDeptId(deptId);
|
||||
smErpCgDdEntity.setCheckStatus("0");
|
||||
smErpCgDdEntity.setDeptId(deptId);
|
||||
|
||||
List<InventoryRecordSaveItemDTO> items = inventoryRecordSaveDTO.getItems();
|
||||
//计算主表总金额
|
||||
@@ -80,6 +83,9 @@ public class SmErpInventoryRecordsServiceImpl extends ServiceImpl<SmErpInventory
|
||||
String inventoryType = inventoryRecordSaveDTO.getInventoryType();
|
||||
String processKey = getProcessKey(inventoryType);
|
||||
R<Process> processR = remoteFlowApiFlowService.getProcessByBusinessKey(processKey);
|
||||
if (!processR.isOk() || processR.getData() == null) {
|
||||
throw new ServiceException("流程配置获取失败: " + processR.getMsg());
|
||||
}
|
||||
String flowId = processR.getData().getFlowId();
|
||||
ProcessInstanceParamDto processInstanceParamDto = new ProcessInstanceParamDto();
|
||||
processInstanceParamDto.setFlowId(flowId);
|
||||
@@ -87,6 +93,9 @@ public class SmErpInventoryRecordsServiceImpl extends ServiceImpl<SmErpInventory
|
||||
params.put("inventoryType",inventoryType);
|
||||
processInstanceParamDto.setParamMap(params);
|
||||
R<String> stringR = remoteFlowApiFlowService.startProcessInstance(processInstanceParamDto);
|
||||
if (!stringR.isOk() || stringR.getData() == null) {
|
||||
throw new ServiceException("流程实例启动失败: " + stringR.getMsg());
|
||||
}
|
||||
String processInstanceId = stringR.getData();
|
||||
smErpCgDdEntity.setProcessInstanceId(processInstanceId);
|
||||
smErpCgDdEntity.setCheckStatus(TaskCheckStatusEnum.PADDING.getCode());
|
||||
@@ -168,7 +177,7 @@ public class SmErpInventoryRecordsServiceImpl extends ServiceImpl<SmErpInventory
|
||||
.collect(Collectors.toSet());
|
||||
//请求得到所有的userIds
|
||||
Map<Long, SysUser> userMap = remoteUserService.getUserMap(userIds).getData();
|
||||
|
||||
List<String> processInstanceIds= records.stream().map(SmErpInventoryRecordsEntity::getProcessInstanceId).filter(Objects::nonNull).collect(Collectors.toList());
|
||||
|
||||
LambdaQueryWrapper<SmErpInventoryRecordsItemEntity> smErpCgPlanItemEntityLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||
smErpCgPlanItemEntityLambdaQueryWrapper.in(SmErpInventoryRecordsItemEntity::getInventoryId,planIds);
|
||||
@@ -191,6 +200,18 @@ public class SmErpInventoryRecordsServiceImpl extends ServiceImpl<SmErpInventory
|
||||
Collectors.toList()
|
||||
)
|
||||
));
|
||||
//查询代办任务的task
|
||||
TaskQueryParamDto taskQueryParamDto = new TaskQueryParamDto();
|
||||
taskQueryParamDto.setProcessInstanceIds(processInstanceIds);
|
||||
taskQueryParamDto.setCurrent(1);
|
||||
taskQueryParamDto.setSize(processInstanceIds.size());
|
||||
R<Page<TaskDto>> pageR = remoteFlowApiFlowService.queryMineTask(taskQueryParamDto);
|
||||
Page<TaskDto> data = pageR.getData();
|
||||
|
||||
final Map<String, TaskDto> processInstanceIdMap = (data != null && !ObjectUtil.isEmpty(data.getRecords()))
|
||||
? data.getRecords().stream()
|
||||
.collect(Collectors.toMap(TaskDto::getProcessInstanceId, taskDto -> taskDto))
|
||||
: Collections.emptyMap();
|
||||
|
||||
// 设置商品名称到主表实体
|
||||
records.forEach(plan -> {
|
||||
@@ -204,6 +225,15 @@ public class SmErpInventoryRecordsServiceImpl extends ServiceImpl<SmErpInventory
|
||||
String supplierName = supplierMap.getOrDefault(plan.getSupplierId(), new SmErpSupplierEntity()).getSupplierName();
|
||||
plan.setSupplierName(supplierName);
|
||||
|
||||
if (!processInstanceIdMap.isEmpty()) {
|
||||
TaskDto taskDto = processInstanceIdMap.get(plan.getProcessInstanceId());
|
||||
if (taskDto != null) {
|
||||
plan.setTaskId(taskDto.getTaskId());
|
||||
plan.setFlowId(taskDto.getFlowId());
|
||||
plan.setParamMap(taskDto.getParamMap());
|
||||
plan.setNodeId(taskDto.getNodeId());
|
||||
}
|
||||
}
|
||||
});
|
||||
return pageData;
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user