From 0d3f0dc4931e2a8cd379c5b7e9a9c70276ebc1cf Mon Sep 17 00:00:00 2001
From: kongdeqiang <123456>
Date: 星期一, 23 三月 2026 11:40:17 +0800
Subject: [PATCH] feat: 更新系统

---
 src/main/java/com/example/controller/DataTaskController.java    |  114 ++++++++++++++++++++++++++++
 src/main/resources/mapper/DataTaskMapper.xml                    |   54 +++++++++++++
 src/main/java/com/example/mapper/DataTaskMapper.java            |    9 ++
 src/main/java/com/example/service/DataTaskService.java          |    7 +
 src/main/java/com/example/service/impl/DataTaskServiceImpl.java |   11 ++
 5 files changed, 195 insertions(+), 0 deletions(-)

diff --git a/src/main/java/com/example/controller/DataTaskController.java b/src/main/java/com/example/controller/DataTaskController.java
new file mode 100644
index 0000000..f8c1a87
--- /dev/null
+++ b/src/main/java/com/example/controller/DataTaskController.java
@@ -0,0 +1,114 @@
+package com.example.controller;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.example.common.Result;
+import com.example.entity.DataExcel;
+import com.example.entity.DataTask;
+import com.example.service.DataExcelService;
+import com.example.service.DataTaskService;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+@RestController
+@RequestMapping("/api/data-task")
+public class DataTaskController {
+
+    @Autowired
+    private DataTaskService dataTaskService;
+    @Autowired
+    private DataExcelService dataExcelService;
+
+    @GetMapping("/page")
+    public Result<IPage<DataTask>> page(
+            @RequestParam(defaultValue = "1") Long current,
+            @RequestParam(defaultValue = "10") Long size,
+            @RequestParam(required = false) String unitCode,
+            @RequestParam(required = false) String status) {
+        Page<DataTask> page = new Page<>(current, size);
+        LambdaQueryWrapper<DataTask> wrapper = new LambdaQueryWrapper<>();
+        if (unitCode != null && !unitCode.isEmpty()) {
+            wrapper.eq(DataTask::getUnitCode, unitCode);
+        }
+        if (status != null && !status.isEmpty()) {
+            wrapper.eq(DataTask::getStatus, status);
+        }
+        wrapper.orderByDesc(DataTask::getCreateTime);
+        IPage<DataTask> dataTaskPage = dataTaskService.page(page, wrapper);
+        return Result.success(dataTaskPage);
+    }
+
+    @GetMapping("/pageNew")
+    public Result<IPage<DataTask>> pageNew(
+            @RequestParam(defaultValue = "1") Long current,
+            @RequestParam(defaultValue = "10") Long size,
+            @RequestParam(required = false) String unitCode,
+            @RequestParam(required = false) String status) {
+        Page<DataTask> page = new Page<>(current, size);
+        LambdaQueryWrapper<DataTask> wrapper = new LambdaQueryWrapper<>();
+        if (unitCode != null && !unitCode.isEmpty()) {
+            wrapper.eq(DataTask::getUnitCode, unitCode);
+        }
+        if (status != null && !status.isEmpty()) {
+            wrapper.eq(DataTask::getStatus, status);
+        }
+        wrapper.orderByDesc(DataTask::getCreateTime);
+        IPage<DataTask> dataTaskPage = dataTaskService.page(page, wrapper);
+        for (DataTask record : dataTaskPage.getRecords()) {
+            LambdaQueryWrapper<DataExcel> excelLambdaQueryWrapper = new LambdaQueryWrapper<>();
+            excelLambdaQueryWrapper.eq(DataExcel::getUnitCode,record.getUnitCode());
+            excelLambdaQueryWrapper.orderByDesc(DataExcel::getCreateTime);
+            List<DataExcel> list = dataExcelService.list(excelLambdaQueryWrapper);
+            if(list.isEmpty()){
+                record.setStatus(0);
+                record.setSuccessCount(0);
+                dataTaskService.updateById(record);
+            }else {
+                record.setSuccessCount(list.size());
+                if( list.size() >= record.getTaskCount()){
+                    record.setStatus(1);
+                }else {
+                    record.setStatus(0);
+                }
+                dataTaskService.updateById(record);
+            }
+        }
+
+        return Result.success(dataTaskPage);
+    }
+
+    @GetMapping("/{id}")
+    public Result<DataTask> getById(@PathVariable Long id) {
+        DataTask dataTask = dataTaskService.getById(id);
+        return Result.success(dataTask);
+    }
+
+    @PostMapping
+    public Result<Boolean> save(@RequestBody DataTask dataTask) {
+        // 妫�鏌ュ崟浣峣d鏄惁宸插瓨鍦�
+        LambdaQueryWrapper<DataTask> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(DataTask::getUnitCode, dataTask.getUnitCode());
+        if (dataTaskService.count(wrapper) > 0) {
+            return Result.error("璇ュ崟浣嶄换鍔″凡瀛樺湪");
+        }
+
+        DataTask task = new DataTask();
+        BeanUtils.copyProperties(dataTask,task);
+        task.setStatus(0);
+        return Result.success(dataTaskService.save(task));
+    }
+
+    @PutMapping
+    public Result<Boolean> update(@RequestBody DataTask dataTask) {
+        return Result.success(dataTaskService.updateById(dataTask));
+    }
+
+    @DeleteMapping("/{id}")
+    public Result<Boolean> delete(@PathVariable Long id) {
+        return Result.success(dataTaskService.removeById(id));
+    }
+}
diff --git a/src/main/java/com/example/mapper/DataTaskMapper.java b/src/main/java/com/example/mapper/DataTaskMapper.java
new file mode 100644
index 0000000..555ca92
--- /dev/null
+++ b/src/main/java/com/example/mapper/DataTaskMapper.java
@@ -0,0 +1,9 @@
+package com.example.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.example.entity.DataTask;
+import org.apache.ibatis.annotations.Mapper;
+
+@Mapper
+public interface DataTaskMapper extends BaseMapper<DataTask> {
+}
diff --git a/src/main/java/com/example/service/DataTaskService.java b/src/main/java/com/example/service/DataTaskService.java
new file mode 100644
index 0000000..eff058d
--- /dev/null
+++ b/src/main/java/com/example/service/DataTaskService.java
@@ -0,0 +1,7 @@
+package com.example.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.example.entity.DataTask;
+
+public interface DataTaskService extends IService<DataTask> {
+}
diff --git a/src/main/java/com/example/service/impl/DataTaskServiceImpl.java b/src/main/java/com/example/service/impl/DataTaskServiceImpl.java
new file mode 100644
index 0000000..1c18094
--- /dev/null
+++ b/src/main/java/com/example/service/impl/DataTaskServiceImpl.java
@@ -0,0 +1,11 @@
+package com.example.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.example.entity.DataTask;
+import com.example.mapper.DataTaskMapper;
+import com.example.service.DataTaskService;
+import org.springframework.stereotype.Service;
+
+@Service
+public class DataTaskServiceImpl extends ServiceImpl<DataTaskMapper, DataTask> implements DataTaskService {
+}
diff --git a/src/main/resources/mapper/DataTaskMapper.xml b/src/main/resources/mapper/DataTaskMapper.xml
new file mode 100644
index 0000000..1844e5a
--- /dev/null
+++ b/src/main/resources/mapper/DataTaskMapper.xml
@@ -0,0 +1,54 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.example.mapper.DataTaskMapper">
+
+    <resultMap id="dataTaskResultMap" type="com.example.entity.DataTask">
+        <id column="id" property="id"/>
+        <result column="unit_code" property="unitCode"/>
+        <result column="unit_name" property="unitName"/>
+        <result column="status" property="status"/>
+        <result column="task_count" property="taskCount"/>
+        <result column="success_count" property="successCount"/>
+        <result column="remark" property="remark"/>
+        <result column="create_time" property="createTime"/>
+        <result column="update_time" property="updateTime"/>
+        <result column="create_by" property="createBy"/>
+        <result column="update_by" property="updateBy"/>
+        <result column="deleted" property="deleted"/>
+        <result column="version" property="version"/>
+        <result column="last_time" property="lastTime"/>
+    </resultMap>
+
+    <insert id="insert" parameterType="com.example.entity.DataTask" useGeneratedKeys="false">
+        <selectKey keyProperty="id" resultType="java.lang.Long" order="BEFORE">
+            SELECT seq_data_task.NEXTVAL FROM DUAL
+        </selectKey>
+        INSERT INTO data_task (
+            id,
+            unit_code,
+            unit_name,
+            status,
+            task_count,
+            <if test="remark != null and remark != ''">remark,</if>
+            create_time,
+            update_time,
+            create_by,
+            update_by,
+            deleted,
+            version
+        ) VALUES (
+            #{id},
+            #{unitCode},
+            #{unitName},
+            #{status},
+            #{taskCount},
+              <if test="remark != null and remark != ''">#{remark},</if>
+            SYSDATE,
+            SYSDATE,
+            #{createBy},
+            #{updateBy},
+            0,
+            1
+        )
+    </insert>
+</mapper>

--
Gitblit v1.9.1