wanghongzhi 1 рік тому
батько
коміт
e9ee39f387

+ 1 - 1
easydo-chengfa/src/main/java/easydo/technology/controller/ApiController.java

@@ -231,7 +231,7 @@ public class ApiController {
                 pDept.setSubCount(pDept.getSubCount() + 1);
                 jdbcClient.jdbcUpdateById(pDept, connection);
 
-                dept.setCreateTime(LocalDateTimeUtil.of(Long.valueOf(model.get_CREATE_TIME())));
+                dept.setCreateTime(LocalDateUtil.localDateTimeFormatyMdHms(LocalDateTimeUtil.of(Long.valueOf(model.get_CREATE_TIME()))));
                 dept.setUpdateTime(dept.getCreateTime());
 
                 SysDept exist = new SysDept();

+ 4 - 107
easydo-core/src/main/java/easydo/technology/components/JdbcClient.java

@@ -5,6 +5,9 @@ import easydo.technology.annotation.TableKey;
 import easydo.technology.core.ZeroSpringFolder;
 import easydo.technology.utils.MapUtil;
 import easydo.technology.utils.ResultSetUtil;
+import lombok.extern.java.Log;
+import lombok.extern.log4j.Log4j;
+import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Component;
 
 import javax.annotation.Resource;
@@ -573,6 +576,7 @@ public class JdbcClient {
             }
         }
     }
+
     /**
      * 修改
      *
@@ -834,111 +838,4 @@ public class JdbcClient {
             }
         }
     }
-
-    /**
-     * 批量新增,不包含文件上传
-     *
-     * @param models
-     * @throws Exception
-     */
-    public void jdbcInsertBatchExcludeFile(List models, Connection... connections) throws Exception {
-        Connection connection = null;
-        Statement statement = null;
-        String sql;
-        try {
-            if (connections.length > 0) {
-                connection = connections[0];
-            } else {
-                connection = dataSource.getConnection();
-            }
-            statement = connection.createStatement();
-
-            for (Object item : models) {
-                statement.addBatch(ResultSetUtil.formatInsertSql(item));
-            }
-            statement.executeBatch();
-        } catch (Exception e) {
-            e.printStackTrace();
-            throw e;
-        } finally {
-            if (connections.length == 0) {
-                finallyExecute(connection, statement);
-            } else {
-                finallyExecute(statement);
-            }
-        }
-    }
-
-    public void jdbcUpdateBatchByIdExcludeFile(List models, Connection... connections) throws Exception {
-        Connection connection = null;
-        Statement statement = null;
-        try {
-            if (connections.length > 0) {
-                connection = connections[0];
-            } else {
-                connection = dataSource.getConnection();
-            }
-            statement = connection.createStatement();
-
-            for (Object model : models) {
-                Field[] declaredFields = model.getClass().getDeclaredFields();
-                Map<String, Object> map = new HashMap<>();
-                for (Field field : declaredFields) {
-                    if (field.isAnnotationPresent(TableKey.class)) {
-                        field.setAccessible(true);
-                        map.put(field.getName(), field.get(model));
-                        break;
-                    }
-                    if (field.isAnnotationPresent(TableId.class)) {
-                        field.setAccessible(true);
-                        map.put(field.getAnnotation(TableId.class).value(), field.get(model));
-                        break;
-                    }
-                }
-                if (map.isEmpty()) {
-                    Field idField = model.getClass().getDeclaredField("id");
-                    idField.setAccessible(true);
-                    map.put("id", idField.get(model));
-                }
-                statement.addBatch(ResultSetUtil.formatUpdateSql(model, map));
-            }
-            statement.executeBatch();
-
-        } catch (Exception e) {
-            e.printStackTrace();
-            throw e;
-        } finally {
-            if (connections.length == 0) {
-                finallyExecute(connection, statement);
-            } else {
-                finallyExecute(statement);
-            }
-        }
-    }
-
-    public void jdbcRemoveBatchByIdExcludeFile(List<Object> models, Connection... connections) throws Exception {
-        Connection connection = null;
-        Statement statement = null;
-        try {
-            if (connections.length > 0) {
-                connection = connections[0];
-            } else {
-                connection = dataSource.getConnection();
-            }
-            statement = connection.createStatement();
-            for (Object model : models) {
-                statement.addBatch(ResultSetUtil.formatRemoveByIdSql(model));
-            }
-            statement.executeBatch();
-        } catch (Exception e) {
-            e.printStackTrace();
-            throw e;
-        } finally {
-            if (connections.length == 0) {
-                finallyExecute(connection, statement);
-            } else {
-                finallyExecute(statement);
-            }
-        }
-    }
 }

+ 6 - 12
easydo-system/src/main/java/easydo/technology/system/domain/SysDept.java

@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.extension.activerecord.Model;
 import com.fasterxml.jackson.annotation.JsonFormat;
 
+import easydo.technology.annotation.TableKey;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 
@@ -19,15 +20,11 @@ import java.time.LocalDateTime;
  * @since 2022-01-26
  */
 @Data
-@EqualsAndHashCode(callSuper = true)
-public class SysDept extends Model {
-
-    private static final long serialVersionUID = 1L;
-
+public class SysDept {
     /**
      * ID
      */
-    @TableId(value = "dept_id", type = IdType.AUTO)
+    @TableKey
     private Long deptId;
 
     /**
@@ -58,8 +55,7 @@ public class SysDept extends Model {
     /**
      * 注册日期
      */
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
-    private LocalDateTime firmTime;
+    private String firmTime;
 
     /**
      * 企业注册地址
@@ -134,14 +130,12 @@ public class SysDept extends Model {
     /**
      * 创建日期
      */
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
-    private LocalDateTime createTime;
+    private String createTime;
 
     /**
      * 更新时间
      */
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
-    private LocalDateTime updateTime;
+    private String updateTime;
 
     /**
      * 备注

+ 0 - 42
easydo-system/src/main/java/easydo/technology/system/mapper/SysDeptMapper.java

@@ -1,42 +0,0 @@
-package easydo.technology.system.mapper;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import easydo.technology.system.domain.SysDept;
-import org.apache.ibatis.annotations.Select;
-import org.springframework.stereotype.Repository;
-
-import java.util.List;
-
-/**
- * <p>
- * 部门 Mapper 接口
- * </p>
- *
- * @author fr
- * @since 2022-01-26
- */
-@Repository
-public interface SysDeptMapper extends BaseMapper<SysDept> {
-    @Select("SELECT\n" +
-            "    ID.LEVELs,\n" +
-            "    DATA.*\n" +
-            "FROM\n" +
-            "    (\n" +
-            "    SELECT\n" +
-            "        @ids AS _ids,\n" +
-            "        ( SELECT @ids := GROUP_CONCAT( dept_id ) FROM sys_dept WHERE FIND_IN_SET(pid, @ids ) ) AS cids,\n" +
-            "        @l := @l + 1 AS LEVELs\n" +
-            "    FROM\n" +
-            "        sys_dept,\n" +
-            "        ( SELECT @ids := #{id}, @l := 0 ) b\n" +
-            "    WHERE\n" +
-            "        @ids IS NOT NULL\n" +
-            "    ) ID,\n" +
-            "    sys_dept DATA\n" +
-            "WHERE\n" +
-            "    FIND_IN_SET( DATA.dept_id, ID._ids )\n" +
-            "ORDER BY\n" +
-            "   dept_sort")
-    List<SysDept> selectChilds(int id);
-
-}

+ 58 - 35
easydo-system/src/main/java/easydo/technology/system/rest/DeptController.java

@@ -1,11 +1,10 @@
 package easydo.technology.system.rest;
 
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import easydo.technology.annotation.WebLog;
+import easydo.technology.components.JdbcClient;
 import easydo.technology.system.domain.SysDept;
 import easydo.technology.system.dto.SysDeptDto;
-import easydo.technology.system.mapper.SysDeptMapper;
-import easydo.technology.system.service.ISysDeptService;
+import easydo.technology.utils.SecurityUtils;
 import easydo.technology.utils.StringUtil;
 import org.springframework.http.HttpStatus;
 import org.springframework.http.ResponseEntity;
@@ -14,7 +13,10 @@ import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
 import javax.annotation.Resource;
+import javax.sql.DataSource;
+import java.sql.Connection;
 import java.util.List;
+import java.util.Map;
 
 
 /**
@@ -25,56 +27,77 @@ import java.util.List;
 @RequestMapping("/dept")
 public class DeptController {
     @Resource
-    SysDeptMapper sysDeptMapper;
+    JdbcClient jdbcClient;
     @Resource
-    ISysDeptService sysDeptService;
+    DataSource dataSource;
 
     @WebLog
     @RequestMapping("/getList")
-    public Object getList(@RequestBody SysDeptDto dto) {
-        QueryWrapper<SysDept> wrapper = new QueryWrapper<>();
-        if (StringUtil.isNotEmpty(dto.getPid())) {
-            if (dto.getPid() == 0) {
-                wrapper.isNull("pid");
-            } else {
-                wrapper.eq("pid", dto.getPid());
-            }
-        }
-        if(StringUtil.isNotEmpty(dto.getName())){
-            wrapper.like("name", dto.getName());
-        }
-        if (StringUtil.isNotEmpty(dto.getEnabled())) {
-            wrapper.eq("enabled", dto.getEnabled());
-        }
-        if (StringUtil.isNotEmpty(dto.getBeginCreateTime())) {
-            wrapper.gt("create_time", dto.getBeginCreateTime());
-        }
-        if (StringUtil.isNotEmpty(dto.getEndCreateTime())) {
-            wrapper.lt("create_time", dto.getEndCreateTime());
-        }
-        List<SysDept> deptList = sysDeptMapper.selectList(wrapper);
+    public Object getList(@RequestBody Map<String, Object> map) throws Exception {
+        List<SysDept> deptList = jdbcClient.getJdbcList(map, SysDept.class);
         return new ResponseEntity<>(deptList, HttpStatus.OK);
     }
 
     @WebLog
     @RequestMapping("/save")
-    public Object save(@RequestBody SysDept dept) {
-        sysDeptService.saveDept(dept);
-        return new ResponseEntity<>(dept, HttpStatus.OK);
+    public Object save(@RequestBody SysDept model) throws Exception {
+        Connection connection = null;
+        try {
+            connection = dataSource.getConnection();
+            connection.setAutoCommit(false);
+
+            model.setDeptId((long) 0);
+            String username = SecurityUtils.getCurrentUsername();
+            model.setCreateBy(username);
+            model.setUpdateBy(username);
+            jdbcClient.jdbcInsert(model, connection);
+
+            if (StringUtil.isNotEmpty(model.getPid())) {
+                SysDept pDept = new SysDept();
+                pDept.setDeptId(model.getPid());
+                pDept = jdbcClient.getJdbcModel(pDept, connection);
+                pDept.setSubCount(pDept.getSubCount() + 1);
+                jdbcClient.jdbcUpdateById(pDept, connection);
+            }
+
+            connection.commit();
+            return new ResponseEntity<>(model, HttpStatus.OK);
+        } catch (Exception e) {
+            connection.rollback();
+            throw new Exception(e.getMessage());
+        } finally {
+            jdbcClient.finallyExecute(connection);
+        }
     }
 
     @WebLog
     @RequestMapping("/update")
     public Object update(@RequestBody SysDept dept) throws Exception {
-        sysDeptService.updateDept(dept);
+        String username = SecurityUtils.getCurrentUsername();
+        dept.setUpdateBy(username);
+        jdbcClient.jdbcUpdateById(dept);
         return new ResponseEntity<>(dept, HttpStatus.OK);
     }
 
     @WebLog
     @RequestMapping("/remove")
-    public Object remove(@RequestBody SysDeptDto dept) throws Exception {
-        sysDeptService.verification(dept.getIds());
-        sysDeptService.removeByIds(dept.getIds());
-        return new ResponseEntity<>(dept, HttpStatus.OK);
+    public Object remove(@RequestBody SysDept model) throws Exception {
+        Connection connection = null;
+        try {
+            connection = dataSource.getConnection();
+
+            SysDept dept = new SysDept();
+            dept.setPid(model.getDeptId());
+            int count = jdbcClient.getJdbcCount(dept, connection);
+            if (count > 0) {
+                throw new  Exception("该组织存在下级组织,请勿删除");
+            }
+            jdbcClient.jdbcRemoveById(model,connection);
+            return new ResponseEntity<>(model, HttpStatus.OK);
+        } catch (Exception e) {
+            throw new Exception(e.getMessage());
+        } finally {
+            jdbcClient.finallyExecute(connection);
+        }
     }
 }

+ 0 - 24
easydo-system/src/main/java/easydo/technology/system/service/ISysDeptService.java

@@ -1,24 +0,0 @@
-package easydo.technology.system.service;
-
-import com.baomidou.mybatisplus.extension.service.IService;
-import easydo.technology.system.domain.SysDept;
-
-import java.util.List;
-import java.util.Set;
-
-/**
- * <p>
- * 部门 服务类
- * </p>
- *
- * @author fr
- * @since 2022-01-26
- */
-public interface ISysDeptService extends IService<SysDept> {
-
-    void verification(Set<Long> deptIds) throws Exception;
-
-    SysDept saveDept(SysDept dept);
-
-    SysDept updateDept(SysDept dept) throws Exception;
-}

+ 0 - 103
easydo-system/src/main/java/easydo/technology/system/service/impl/SysDeptServiceImpl.java

@@ -1,103 +0,0 @@
-package easydo.technology.system.service.impl;
-
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import easydo.technology.system.domain.SysDept;
-import easydo.technology.system.mapper.RoleMapper;
-import easydo.technology.system.mapper.SysDeptMapper;
-import easydo.technology.system.mapper.UserMapper;
-import easydo.technology.system.service.ISysDeptService;
-import easydo.technology.utils.SecurityUtils;
-import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Transactional;
-
-import javax.annotation.Resource;
-import java.time.LocalDateTime;
-import java.util.List;
-import java.util.Set;
-
-/**
- * <p>
- * 部门 服务实现类
- * </p>
- *
- * @author fr
- * @since 2022-01-26
- */
-@Service
-public class SysDeptServiceImpl extends ServiceImpl<SysDeptMapper, SysDept> implements ISysDeptService {
-    @Resource
-    UserMapper userMapper;
-    @Resource
-    RoleMapper roleMapper;
-
-    @Override
-    @Transactional
-    public SysDept saveDept(SysDept dept) {
-        String username = SecurityUtils.getCurrentUsername();
-        LocalDateTime now = LocalDateTime.now();
-        dept.setCreateBy(username);
-        dept.setUpdateBy(username);
-        dept.setCreateTime(now);
-        dept.setUpdateTime(now);
-        baseMapper.insert(dept);
-        if (dept.getPid() != null) {
-            updateSubCount(dept.getPid());
-        }
-        return dept;
-    }
-
-    @Override
-    @Transactional
-    public SysDept updateDept(SysDept dept) throws Exception {
-        if (dept.getPid() != null && dept.getDeptId().equals(dept.getPid())) {
-            throw new Exception("上级不能为自己");
-        }
-        Long pidOld = baseMapper.selectById(dept.getDeptId()).getPid();
-
-        String username = SecurityUtils.getCurrentUsername();
-        LocalDateTime now = LocalDateTime.now();
-        dept.setUpdateBy(username);
-        dept.setUpdateTime(now);
-        baseMapper.updateById(dept);
-        updateSubCount(pidOld);
-        updateSubCount(dept.getPid());
-        return dept;
-    }
-
-    @Override
-    public void verification(Set<Long> deptIds) throws Exception {
-        if (userMapper.countByDepts(deptIds) > 0) {
-            throw new Exception("所选部门存在用户关联,请解除后再试!");
-        }
-        if (roleMapper.countByDepts(deptIds) > 0) {
-            throw new Exception("所选部门存在角色关联,请解除后再试!");
-        }
-        for (Long id : deptIds) {
-            QueryWrapper<SysDept> query = new QueryWrapper<>();
-            query.lambda().eq(SysDept::getPid, id);
-            int count = baseMapper.selectCount(query);
-            if (count > 0) {
-                throw new Exception("所选部门存在下级部门,无法删除!");
-            }
-        }
-
-    }
-
-
-    private void updateSubCount(Long deptId) {
-        if (deptId == null) {
-            return;
-        }
-        QueryWrapper<SysDept> query = new QueryWrapper<>();
-        query.lambda().eq(SysDept::getPid, deptId);
-        int count = baseMapper.selectCount(query);
-
-        UpdateWrapper<SysDept> update = new UpdateWrapper<>();
-        update.lambda().eq(SysDept::getDeptId, deptId);
-        SysDept dept = new SysDept();
-        dept.setSubCount(count);
-        baseMapper.update(dept, update);
-    }
-}