rsf-admin/src/page/taskItem/TaskItemList.jsx
@@ -110,25 +110,25 @@ actions={( <TopToolbar> <FilterButton /> <MyCreateButton onClick={() => { setCreateDialog(true) }} /> {/* <MyCreateButton onClick={() => { setCreateDialog(true) }} /> */} <SelectColumnsButton preferenceKey='taskItem' /> <MyExportButton /> {/* <MyExportButton /> */} </TopToolbar> )} perPage={DEFAULT_PAGE_SIZE} > <StyledDatagrid preferenceKey='taskItem' bulkActionButtons={() => <BulkDeleteButton mutationMode={OPERATE_MODE} />} // bulkActionButtons={() => <BulkDeleteButton mutationMode={OPERATE_MODE} />} rowClick={(id, resource, record) => false} expand={() => <TaskItemPanel />} // expand={() => <TaskItemPanel />} expandSingle={true} omit={['id', 'createTime', 'createBy', 'memo']} omit={['id', 'createTime', 'createBy', 'memo', 'taskId', 'orderId', 'orderItemId', 'matnrId']} > <NumberField source="id" /> <NumberField source="taskId" label="table.field.taskItem.taskId" /> <NumberField source="orderId" label="table.field.taskItem.orderId" /> <NumberField source="orderType" label="table.field.taskItem.orderType" /> <NumberField source="orderType$" label="table.field.taskItem.orderType" /> <NumberField source="orderItemId" label="table.field.taskItem.orderItemId" /> <NumberField source="matnrId" label="table.field.taskItem.matnrId" /> <TextField source="maktx" label="table.field.taskItem.maktx" /> @@ -149,16 +149,12 @@ <DateField source="createTime" label="common.field.createTime" showTime /> <BooleanField source="statusBool" label="common.field.status" sortable={false} /> <TextField source="memo" label="common.field.memo" sortable={false} /> <WrapperField cellClassName="opt" label="common.field.opt"> <EditButton sx={{ padding: '1px', fontSize: '.75rem' }} /> <DeleteButton sx={{ padding: '1px', fontSize: '.75rem' }} mutationMode={OPERATE_MODE} /> </WrapperField> </StyledDatagrid> </List> <TaskItemCreate {/* <TaskItemCreate open={createDialog} setOpen={setCreateDialog} /> /> */} <PageDrawer title='TaskItem Detail' drawerVal={drawerVal} rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/TaskItem.java
@@ -4,6 +4,10 @@ import java.text.SimpleDateFormat; import java.util.Date; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.vincent.rsf.server.system.constant.DictTypeCode; import com.vincent.rsf.server.system.entity.DictData; import com.vincent.rsf.server.system.service.DictDataService; import lombok.experimental.Accessors; import org.springframework.format.annotation.DateTimeFormat; import java.text.SimpleDateFormat; @@ -22,6 +26,7 @@ import com.vincent.rsf.server.system.entity.User; import java.io.Serializable; import java.util.Date; import java.util.Objects; @Data @Accessors(chain = true) @@ -207,6 +212,18 @@ // null // 备注 // ); public String getOrderType$(){ if (null == this.orderType) {return null;} DictDataService dictDataService = SpringUtils.getBean(DictDataService.class); DictData dictDatas = dictDataService.getOne(new LambdaQueryWrapper<DictData>() .eq(DictData::getDictTypeCode, DictTypeCode.DICT_SYS_ORDER_TYPE) .eq(DictData::getValue, this.orderType)); if (Objects.isNull(dictDatas) || Objects.isNull(dictDatas.getLabel())) { return null; } return dictDatas.getLabel(); } public String getStatus$(){ if (null == this.status){ return null; } switch (this.status){ rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/TaskItemLog.java
@@ -3,6 +3,8 @@ import com.baomidou.mybatisplus.annotation.TableLogic; import java.text.SimpleDateFormat; import java.util.Date; import lombok.experimental.Accessors; import org.springframework.format.annotation.DateTimeFormat; import java.text.SimpleDateFormat; import java.util.Date; @@ -22,6 +24,7 @@ import java.util.Date; @Data @Accessors(chain = true) @TableName("man_task_item_log") public class TaskItemLog implements Serializable { rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/TaskLog.java
@@ -2,6 +2,8 @@ import java.text.SimpleDateFormat; import java.util.Date; import lombok.experimental.Accessors; import org.springframework.format.annotation.DateTimeFormat; import java.text.SimpleDateFormat; import java.util.Date; @@ -26,6 +28,7 @@ import java.util.Date; @Data @Accessors(chain = true) @TableName("man_task_log") public class TaskLog implements Serializable { rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/TaskSchedules.java
@@ -35,6 +35,10 @@ @Autowired private TaskItemService taskItemService; @Autowired private TaskLogService taskLogService; @Autowired private TaskItemLogService taskItemLogService; @Autowired private StockItemService stockItemService; @Autowired private PurchaseService purchaseService; @@ -63,4 +67,55 @@ } taskService.completeTask(tasks); } /** * @author Ryan * @description 已完成任务加入历史档 * @param * @return * @time 2025/4/3 12:54 */ @Scheduled(cron = "0 0/05 * * * ? ") @Transactional(rollbackFor = Exception.class) public void taskLogUpdate() { List<Task> tasks = taskService.list(new LambdaQueryWrapper<Task>().eq(Task::getTaskStatus, TaskStsType.UPDATED_IN.id)); if (tasks.isEmpty()) { return; } List<Long> list = tasks.stream().map(Task::getId).collect(Collectors.toList()); List<TaskItem> taskItems = taskItemService.list(new LambdaQueryWrapper<TaskItem>().in(TaskItem::getTaskId, list)); if (taskItems.isEmpty()) { return; } List<TaskLog> taskLogs = new ArrayList<>(); tasks.forEach(task -> { TaskLog taskLog = new TaskLog(); BeanUtils.copyProperties(task, taskLog); taskLog.setTaskId(task.getId()).setId(null); taskLogs.add(taskLog); }); if (!taskLogService.saveBatch(taskLogs)) { throw new CoolException("任务历史档保存失败!!"); } List<TaskItemLog >itemLogs = new ArrayList<>(); taskItems.forEach(item -> { TaskItemLog itemLog = new TaskItemLog(); BeanUtils.copyProperties(item, itemLog); itemLog.setId(null).setTaskItemId(item.getId()); itemLogs.add(itemLog); }); if (!taskItemLogService.saveBatch(itemLogs)) { throw new CoolException("任务明细历史档保存失败!!"); } if (!taskService.removeByIds(list)) { throw new CoolException("原始任务删除失败!!"); } List<Long> itemIds = taskItems.stream().map(TaskItem::getId).collect(Collectors.toList()); if (!taskItemService.removeByIds(itemIds)) { throw new CoolException("原始任务明细删除失败!!"); } } } rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/TaskServiceImpl.java
@@ -192,5 +192,8 @@ if (!locService.update(new LambdaUpdateWrapper<Loc>().set(Loc::getUseStatus, LocStsType.LOC_STS_TYPE_F.type).in(Loc::getCode, locCodes))) { throw new CoolException("库位状态修改失败!!"); } if (!this.update(new LambdaUpdateWrapper<Task>().set(Task::getTaskStatus, TaskStsType.UPDATED_IN.id))) { throw new CoolException("任务状态修改失败!!"); } } }