skyouc
2025-04-03 f04d6876ff130b240700ba8dec4c9d0a3980a687
1. 任务明细界面修改
2. 任务历史档数据处理
6个文件已修改
101 ■■■■ 已修改文件
rsf-admin/src/page/taskItem/TaskItemList.jsx 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/TaskItem.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/TaskItemLog.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/TaskLog.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/TaskSchedules.java 55 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/TaskServiceImpl.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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("任务状态修改失败!!");
        }
    }
}