From 14ec6646f11396297b209cd9ae8c008f8dcfb8d2 Mon Sep 17 00:00:00 2001 From: shijie <648688341@qq.com> Date: Fri, 15 Jan 2021 19:36:30 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B5=81=E7=A8=8B=E7=AE=A1=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/resources/bootstrap.properties | 76 +++++++++-------- .../DgApplyAmountInfoController.java | 1 - .../controller/DgProcessManageController.java | 81 +++++++++++++++++++ .../DgProcessManageVisualController.java | 21 +++++ .../mapper/DgProcessManageMapper.java | 23 ++++++ .../mapper/DgProcessManageVisualMapper.java | 24 ++++++ .../model/response/DgProessManageRes.java | 19 +++++ .../service/IDgProcessManageService.java | 26 ++++++ .../IDgProcessManageVisualService.java | 17 ++++ .../impl/DgProcessManageServiceImpl.java | 66 +++++++++++++++ .../DgProcessManageVisualServiceImpl.java | 20 +++++ .../util/MyBatisPlusCodeGenerator.java | 2 +- .../src/main/resources/bootstrap.properties | 72 ++++++++++------- .../guarantee/DgProcessManageMapper.xml | 25 ++++++ .../guarantee/DgProcessManageVisualMapper.xml | 30 +++++++ .../controller/UserLoginController.java | 4 +- .../hrauth/service/impl/UserServiceImpl.java | 12 +-- .../src/main/resources/bootstrap.properties | 74 +++++++++-------- .../src/main/resources/bootstrap.properties | 74 +++++++++-------- .../model/response/PromptSuccess.java | 8 +- .../domain/guarantee/DgProcessManage.java | 57 +++++++++++++ .../guarantee/DgProcessManageVisual.java | 39 +++++++++ .../src/main/resources/bootstrap.properties | 66 +++++++-------- 23 files changed, 662 insertions(+), 175 deletions(-) create mode 100644 dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/controller/DgProcessManageController.java create mode 100644 dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/controller/DgProcessManageVisualController.java create mode 100644 dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/mapper/DgProcessManageMapper.java create mode 100644 dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/mapper/DgProcessManageVisualMapper.java create mode 100644 dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/model/response/DgProessManageRes.java create mode 100644 dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/service/IDgProcessManageService.java create mode 100644 dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/service/IDgProcessManageVisualService.java create mode 100644 dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/service/impl/DgProcessManageServiceImpl.java create mode 100644 dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/service/impl/DgProcessManageVisualServiceImpl.java create mode 100644 dq-financial-guarantee/src/main/resources/mapper/guarantee/DgProcessManageMapper.xml create mode 100644 dq-financial-guarantee/src/main/resources/mapper/guarantee/DgProcessManageVisualMapper.xml create mode 100644 dq-framework-model/src/main/java/com/daqing/framework/domain/guarantee/DgProcessManage.java create mode 100644 dq-framework-model/src/main/java/com/daqing/framework/domain/guarantee/DgProcessManageVisual.java diff --git a/dq-financial-crms/src/main/resources/bootstrap.properties b/dq-financial-crms/src/main/resources/bootstrap.properties index 7a214b20..93f539bc 100644 --- a/dq-financial-crms/src/main/resources/bootstrap.properties +++ b/dq-financial-crms/src/main/resources/bootstrap.properties @@ -1,20 +1,20 @@ -#服务名称 -spring.application.name=dq-financial-crms -#配置中心地址 -spring.cloud.nacos.config.server-addr=127.0.0.1:8848 -spring.cloud.nacos.config.file-extension=yml -#redis配置 -spring.redis.host=127.0.0.1 -spring.redis.port=6379 -spring.redis.password= -spring.redis.database=0 -spring.redis.timeout=30000 -spring.redis.jedis.pool.max-active=8 -spring.redis.jedis.pool.max-wait=-1 -spring.redis.jedis.pool.max-idle=8 -spring.redis.jedis.pool.min-idle=0 +##服务名称 +#spring.application.name=dq-financial-crms +##配置中心地址 +#spring.cloud.nacos.config.server-addr=127.0.0.1:8848 +#spring.cloud.nacos.config.file-extension=yml +##redis配置 +#spring.redis.host=127.0.0.1 +#spring.redis.port=6379 +#spring.redis.password= +#spring.redis.database=0 +#spring.redis.timeout=30000 +#spring.redis.jedis.pool.max-active=8 +#spring.redis.jedis.pool.max-wait=-1 +#spring.redis.jedis.pool.max-idle=8 +#spring.redis.jedis.pool.min-idle=0 #本地测试环境 -spring.cloud.nacos.config.namespace=1520c5ea-5f15-4ac1-9eb1-d25924825b99 +#spring.cloud.nacos.config.namespace=1520c5ea-5f15-4ac1-9eb1-d25924825b99 #线上测试环境 #spring.cloud.nacos.config.namespace=5698e60a-9d0b-433f-a69f-12b0a2d23128 @@ -29,20 +29,30 @@ ribbon.ConnectTimeout: 120000 # 正式环境(prod) #服务名称 -#spring.application.name=dq-financial-crms -###配置中心地址 -#spring.cloud.nacos.config.server-addr=120.78.127.12:8848 -#spring.cloud.nacos.config.namespace=25ce05e2-a0eb-4842-92e4-d8b550a489dd -##spring.cloud.nacos.config.group=prod -# -#spring.cloud.nacos.config.ext-config[0].data-id=datasource.yml -#spring.cloud.nacos.config.ext-config[0].group=prod -#spring.cloud.nacos.config.ext-config[0].refresh=true -# -#spring.cloud.nacos.config.ext-config[1].data-id=mybatis.yml -#spring.cloud.nacos.config.ext-config[1].group=prod -#spring.cloud.nacos.config.ext-config[1].refresh=true -# -#spring.cloud.nacos.config.ext-config[2].data-id=other.yml -#spring.cloud.nacos.config.ext-config[2].group=prod -#spring.cloud.nacos.config.ext-config[2].refresh=true \ No newline at end of file +spring.application.name=dq-financial-crms +##配置中心地址 +spring.cloud.nacos.config.server-addr=120.78.127.12:8848 +spring.cloud.nacos.config.namespace=25ce05e2-a0eb-4842-92e4-d8b550a489dd +#spring.cloud.nacos.config.group=prod + +spring.cloud.nacos.config.ext-config[0].data-id=datasource.yml +spring.cloud.nacos.config.ext-config[0].group=prod +spring.cloud.nacos.config.ext-config[0].refresh=true + +spring.cloud.nacos.config.ext-config[1].data-id=mybatis.yml +spring.cloud.nacos.config.ext-config[1].group=prod +spring.cloud.nacos.config.ext-config[1].refresh=true + +spring.cloud.nacos.config.ext-config[2].data-id=other.yml +spring.cloud.nacos.config.ext-config[2].group=prod +spring.cloud.nacos.config.ext-config[2].refresh=true + +spring.redis.host=127.0.0.1 +spring.redis.port=6379 +spring.redis.password=dq123456 +spring.redis.database=0 +spring.redis.timeout=30000 +spring.redis.jedis.pool.max-active=8 +spring.redis.jedis.pool.max-wait=-1 +spring.redis.jedis.pool.max-idle=8 +spring.redis.jedis.pool.min-idle=0 \ No newline at end of file diff --git a/dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/controller/DgApplyAmountInfoController.java b/dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/controller/DgApplyAmountInfoController.java index 64349909..66ac33a1 100644 --- a/dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/controller/DgApplyAmountInfoController.java +++ b/dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/controller/DgApplyAmountInfoController.java @@ -122,7 +122,6 @@ public class DgApplyAmountInfoController implements DgApplyAmountInfoControllerA List list = new ArrayList(); for (MultipartFile file : files) { //因为有上传多个文件,所以用的是MultipartFile[]数组,所以要遍历数组保存里面的每一个文件 - //String filePath = "http:"+File.separator+File.separator+"www.huorantech.cn"+File.separator+"enclosureFile"+File.separator;// "D:\\myfile\\i\\"; // 暂时设置保存在D盘的files目录下 String filePath =PromptSuccess.FILE_URL_PATH; System.out.println(" 文件名称: " + file.getOriginalFilename()); System.out.println(" 文件大小: " + file.getSize() / 1024D + "Kb"); diff --git a/dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/controller/DgProcessManageController.java b/dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/controller/DgProcessManageController.java new file mode 100644 index 00000000..4ecf3bde --- /dev/null +++ b/dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/controller/DgProcessManageController.java @@ -0,0 +1,81 @@ +package com.daqing.financial.guarantee.controller; + + +import com.alibaba.fastjson.JSONObject; +import com.daqing.financial.guarantee.model.response.BusinessApplicationListResponse; +import com.daqing.financial.guarantee.model.response.DgProessManageRes; +import com.daqing.financial.guarantee.service.IDgProcessManageService; +import com.daqing.framework.domain.guarantee.DgProcessManage; +import com.daqing.framework.model.response.ResponseResult; +import com.daqing.framework.util.RedisUtil; +import com.daqing.framework.utils.PageUtils; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import org.springframework.stereotype.Controller; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.LinkedHashMap; +import java.util.List; + +/** + *

+ * 流程管理表 前端控制器 + *

+ * + * @author Qyq + * @since 2021-01-15 + */ +@RestController +@RequestMapping("/dg-process-manage") +public class DgProcessManageController { + + @Autowired + private DgApplyAmountInfoController dgApplyAmountInfoController; + @Autowired + private IDgProcessManageService iDgProcessManageService; + + /** + * 流程管理列表(可见范围内的人可以查看列表) + * @param + * @return + */ + @GetMapping("/processManageList") + @ApiOperation(value = "流程管理列表") + public ResponseResult processManageList(){ + //获取当前登录用户id + String userId = dgApplyAmountInfoController.getUserId(); + //查询可见范围内的人可见列表 + List list = iDgProcessManageService.processManageList(userId); + return new ResponseResult().SUCCESS(list); + } + + /** + * 查询审批模板对应的可见人员 + * @param + * @return + */ + @GetMapping("/processVisualList") + @ApiOperation(value = "查询审批模板对应的可见人员") + public ResponseResult processVisualList(@RequestParam(value = "id") Integer id){ + //查询可见范围内的人可见列表 + List list = iDgProcessManageService.processVisualList(id); + return new ResponseResult().SUCCESS(list); + } + + /** + * 修改人员可以看到审批模板 + * @param id 流程管理id ids 可见人id + * @return + */ + @GetMapping("/updateUserVisual") + @ApiOperation(value = "修改人员可以看到审批模板") + public ResponseResult updateUserVisual(@RequestParam(value="id") Integer id,@RequestParam(value = "ids") Listids){ + //查询可见范围内的人可见列表 + Boolean a= iDgProcessManageService.updateUserVisual(id,ids); + return new ResponseResult().SUCCESS(a); + } + +} diff --git a/dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/controller/DgProcessManageVisualController.java b/dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/controller/DgProcessManageVisualController.java new file mode 100644 index 00000000..9b45bf9b --- /dev/null +++ b/dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/controller/DgProcessManageVisualController.java @@ -0,0 +1,21 @@ +package com.daqing.financial.guarantee.controller; + + +import org.springframework.web.bind.annotation.RequestMapping; + +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RestController; + +/** + *

+ * 流程管理可见表 前端控制器 + *

+ * + * @author Qyq + * @since 2021-01-15 + */ +@RestController +@RequestMapping("/dg-process-manage-visual") +public class DgProcessManageVisualController { + +} diff --git a/dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/mapper/DgProcessManageMapper.java b/dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/mapper/DgProcessManageMapper.java new file mode 100644 index 00000000..3cb59203 --- /dev/null +++ b/dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/mapper/DgProcessManageMapper.java @@ -0,0 +1,23 @@ +package com.daqing.financial.guarantee.mapper; + + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.daqing.framework.domain.guarantee.DgProcessManage; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + *

+ * 流程管理表 Mapper 接口 + *

+ * + * @author Qyq + * @since 2021-01-15 + */ +@Mapper +public interface DgProcessManageMapper extends BaseMapper { + + List processManageList(@Param("usrId") int usrId); +} diff --git a/dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/mapper/DgProcessManageVisualMapper.java b/dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/mapper/DgProcessManageVisualMapper.java new file mode 100644 index 00000000..4155fdbe --- /dev/null +++ b/dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/mapper/DgProcessManageVisualMapper.java @@ -0,0 +1,24 @@ +package com.daqing.financial.guarantee.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.daqing.framework.domain.guarantee.DgProcessManageVisual; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + *

+ * 流程管理可见表 Mapper 接口 + *

+ * + * @author Qyq + * @since 2021-01-15 + */ +@Mapper +public interface DgProcessManageVisualMapper extends BaseMapper { + + List processVisualList(@Param("id") Integer id); + + int insertUserVisual(@Param("list")List list); +} diff --git a/dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/model/response/DgProessManageRes.java b/dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/model/response/DgProessManageRes.java new file mode 100644 index 00000000..798c1169 --- /dev/null +++ b/dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/model/response/DgProessManageRes.java @@ -0,0 +1,19 @@ +package com.daqing.financial.guarantee.model.response; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @Author QYQ + * @DATE 2021/1/15 17:10 + * @Version 1.0 + */ +@Data +public class DgProessManageRes { + + @ApiModelProperty("用户id") + private Integer userId; + + @ApiModelProperty("员工姓名") + private String name; +} diff --git a/dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/service/IDgProcessManageService.java b/dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/service/IDgProcessManageService.java new file mode 100644 index 00000000..295ad563 --- /dev/null +++ b/dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/service/IDgProcessManageService.java @@ -0,0 +1,26 @@ +package com.daqing.financial.guarantee.service; + + +import com.baomidou.mybatisplus.extension.service.IService; +import com.daqing.financial.guarantee.model.response.DgProessManageRes; +import com.daqing.framework.domain.guarantee.DgProcessManage; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + *

+ * 流程管理表 服务类 + *

+ * + * @author Qyq + * @since 2021-01-15 + */ +public interface IDgProcessManageService extends IService { + + List processManageList(String userId); + + List processVisualList(Integer id); + + Boolean updateUserVisual(@Param("id") Integer id, @Param("ids") List ids); +} diff --git a/dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/service/IDgProcessManageVisualService.java b/dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/service/IDgProcessManageVisualService.java new file mode 100644 index 00000000..6344864e --- /dev/null +++ b/dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/service/IDgProcessManageVisualService.java @@ -0,0 +1,17 @@ +package com.daqing.financial.guarantee.service; + + +import com.baomidou.mybatisplus.extension.service.IService; +import com.daqing.framework.domain.guarantee.DgProcessManageVisual; + +/** + *

+ * 流程管理可见表 服务类 + *

+ * + * @author Qyq + * @since 2021-01-15 + */ +public interface IDgProcessManageVisualService extends IService { + +} diff --git a/dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/service/impl/DgProcessManageServiceImpl.java b/dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/service/impl/DgProcessManageServiceImpl.java new file mode 100644 index 00000000..ac531fe6 --- /dev/null +++ b/dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/service/impl/DgProcessManageServiceImpl.java @@ -0,0 +1,66 @@ +package com.daqing.financial.guarantee.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.daqing.financial.guarantee.mapper.DgProcessManageMapper; +import com.daqing.financial.guarantee.mapper.DgProcessManageVisualMapper; +import com.daqing.financial.guarantee.model.response.DgProessManageRes; +import com.daqing.financial.guarantee.service.IDgProcessManageService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.daqing.framework.domain.guarantee.DgProcessManage; +import com.daqing.framework.domain.guarantee.DgProcessManageVisual; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.List; + +/** + *

+ * 流程管理表 服务实现类 + *

+ * + * @author Qyq + * @since 2021-01-15 + */ +@Service +public class DgProcessManageServiceImpl extends ServiceImpl implements IDgProcessManageService { + + @Autowired + private DgProcessManageVisualMapper dgProcessManageVisualMapper; + + @Override + public List processManageList(String userId) { + + int usrId = Integer.parseInt(userId); + return this.baseMapper.processManageList(usrId); + } + + @Override + public List processVisualList(Integer id) { + //根据流程管理id查询可见人id + List visualUserId = dgProcessManageVisualMapper.processVisualList(id); + return visualUserId; + } + + @Override + public Boolean updateUserVisual(Integer id, List ids) { + //先根据主键id删除所有对应可见模板员工 + dgProcessManageVisualMapper.delete(new QueryWrapper() + .eq("process_manage_id",id)); + + //批量新增数据到流程管理可见表 + List list = new ArrayList<>(); + for (Integer i:ids) { + DgProcessManageVisual dgProcessManageVisual = new DgProcessManageVisual(); + dgProcessManageVisual.setProcessManageId(id); + dgProcessManageVisual.setUserId(i); + list.add(dgProcessManageVisual); + } + int i = dgProcessManageVisualMapper.insertUserVisual(list); + if(i>0){ + return true; + }else{ + return false; + } + } +} diff --git a/dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/service/impl/DgProcessManageVisualServiceImpl.java b/dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/service/impl/DgProcessManageVisualServiceImpl.java new file mode 100644 index 00000000..8c2153cd --- /dev/null +++ b/dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/service/impl/DgProcessManageVisualServiceImpl.java @@ -0,0 +1,20 @@ +package com.daqing.financial.guarantee.service.impl; + +import com.daqing.financial.guarantee.mapper.DgProcessManageVisualMapper; +import com.daqing.financial.guarantee.service.IDgProcessManageVisualService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.daqing.framework.domain.guarantee.DgProcessManageVisual; +import org.springframework.stereotype.Service; + +/** + *

+ * 流程管理可见表 服务实现类 + *

+ * + * @author Qyq + * @since 2021-01-15 + */ +@Service +public class DgProcessManageVisualServiceImpl extends ServiceImpl implements IDgProcessManageVisualService { + +} diff --git a/dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/util/MyBatisPlusCodeGenerator.java b/dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/util/MyBatisPlusCodeGenerator.java index 06bfebc6..f852e47d 100644 --- a/dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/util/MyBatisPlusCodeGenerator.java +++ b/dq-financial-guarantee/src/main/java/com/daqing/financial/guarantee/util/MyBatisPlusCodeGenerator.java @@ -25,7 +25,7 @@ public class MyBatisPlusCodeGenerator { public static final String PACKAGE_NAME = "com.daqing.financial.guarantee"; public static void main(String[] args) { - String[] tables = new String[] {"dg_copy_for","dg_process_user","dg_copy_user"};//表名数组 + String[] tables = new String[] {"dg_process_manage_visual","dg_process_manage"};//表名数组 String[] tablePrefixs = new String[] {""};//去掉前缀 executeCode(PACKAGE_NAME,tables,tablePrefixs); } diff --git a/dq-financial-guarantee/src/main/resources/bootstrap.properties b/dq-financial-guarantee/src/main/resources/bootstrap.properties index 7bad9204..69a06a1a 100644 --- a/dq-financial-guarantee/src/main/resources/bootstrap.properties +++ b/dq-financial-guarantee/src/main/resources/bootstrap.properties @@ -1,21 +1,21 @@ #服务名称 -spring.application.name=dq-financial-guarantee -#配置中心地址 -spring.cloud.nacos.config.server-addr=127.0.0.1:8848 -spring.cloud.nacos.config.file-extension=yml -#redis配置 -spring.redis.host=127.0.0.1 -spring.redis.port=6379 -spring.redis.password= -spring.redis.database=0 -spring.redis.timeout=30000 -spring.redis.jedis.pool.max-active=8 -spring.redis.jedis.pool.max-wait=-1 -spring.redis.jedis.pool.max-idle=8 -spring.redis.jedis.pool.min-idle=0 +#spring.application.name=dq-financial-guarantee +##配置中心地址 +#spring.cloud.nacos.config.server-addr=127.0.0.1:8848 +#spring.cloud.nacos.config.file-extension=yml +##redis配置 +#spring.redis.host=127.0.0.1 +#spring.redis.port=6379 +#spring.redis.password= +#spring.redis.database=0 +#spring.redis.timeout=30000 +#spring.redis.jedis.pool.max-active=8 +#spring.redis.jedis.pool.max-wait=-1 +#spring.redis.jedis.pool.max-idle=8 +#spring.redis.jedis.pool.min-idle=0 #本地测试环境 -spring.cloud.nacos.config.namespace=1520c5ea-5f15-4ac1-9eb1-d25924825b99 +#spring.cloud.nacos.config.namespace=1520c5ea-5f15-4ac1-9eb1-d25924825b99 #线上测试环境 #spring.cloud.nacos.config.namespace=5698e60a-9d0b-433f-a69f-12b0a2d23128 @@ -36,19 +36,29 @@ ribbon.ConnectTimeout: 120000 # ##正式环境(prod) ##服务名称 -#spring.application.name=dq-financial-guarantee -##配置中心地址 -#spring.cloud.nacos.config.server-addr=120.78.127.12:8848 -#spring.cloud.nacos.config.namespace=502bfc93-6e2f-44aa-93ad-f074664c6826 -# -#spring.cloud.nacos.config.ext-config[0].data-id=dq-financial-guarantee.yml -#spring.cloud.nacos.config.ext-config[0].group=prod -#spring.cloud.nacos.config.ext-config[0].refresh=true -# -#spring.cloud.nacos.config.ext-config[1].data-id=datasource.yml -#spring.cloud.nacos.config.ext-config[1].group=prod -#spring.cloud.nacos.config.ext-config[1].refresh=true -# -#spring.cloud.nacos.config.ext-config[2].data-id=mybatis.yml -#spring.cloud.nacos.config.ext-config[2].group=prod -#spring.cloud.nacos.config.ext-config[2].refresh=true +spring.application.name=dq-financial-guarantee +#配置中心地址 +spring.cloud.nacos.config.server-addr=120.78.127.12:8848 +spring.cloud.nacos.config.namespace=502bfc93-6e2f-44aa-93ad-f074664c6826 + +spring.cloud.nacos.config.ext-config[0].data-id=dq-financial-guarantee.yml +spring.cloud.nacos.config.ext-config[0].group=prod +spring.cloud.nacos.config.ext-config[0].refresh=true + +spring.cloud.nacos.config.ext-config[1].data-id=datasource.yml +spring.cloud.nacos.config.ext-config[1].group=prod +spring.cloud.nacos.config.ext-config[1].refresh=true + +spring.cloud.nacos.config.ext-config[2].data-id=mybatis.yml +spring.cloud.nacos.config.ext-config[2].group=prod +spring.cloud.nacos.config.ext-config[2].refresh=true + +spring.redis.host=127.0.0.1 +spring.redis.port=6379 +spring.redis.password=dq123456 +spring.redis.database=0 +spring.redis.timeout=30000 +spring.redis.jedis.pool.max-active=8 +spring.redis.jedis.pool.max-wait=-1 +spring.redis.jedis.pool.max-idle=8 +spring.redis.jedis.pool.min-idle=0 diff --git a/dq-financial-guarantee/src/main/resources/mapper/guarantee/DgProcessManageMapper.xml b/dq-financial-guarantee/src/main/resources/mapper/guarantee/DgProcessManageMapper.xml new file mode 100644 index 00000000..9ee0f32b --- /dev/null +++ b/dq-financial-guarantee/src/main/resources/mapper/guarantee/DgProcessManageMapper.xml @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + diff --git a/dq-financial-guarantee/src/main/resources/mapper/guarantee/DgProcessManageVisualMapper.xml b/dq-financial-guarantee/src/main/resources/mapper/guarantee/DgProcessManageVisualMapper.xml new file mode 100644 index 00000000..d6b2b3c1 --- /dev/null +++ b/dq-financial-guarantee/src/main/resources/mapper/guarantee/DgProcessManageVisualMapper.xml @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + INSERT INTO dg_process_manage_visual + (process_manage_id,user_id) + VALUES + + (#{item.processManageId},#{item.userId}) + + + + diff --git a/dq-financial-hrms-auth/src/main/java/com/daqing/financial/hrauth/controller/UserLoginController.java b/dq-financial-hrms-auth/src/main/java/com/daqing/financial/hrauth/controller/UserLoginController.java index a761da71..5cbae0c3 100644 --- a/dq-financial-hrms-auth/src/main/java/com/daqing/financial/hrauth/controller/UserLoginController.java +++ b/dq-financial-hrms-auth/src/main/java/com/daqing/financial/hrauth/controller/UserLoginController.java @@ -156,8 +156,8 @@ public class UserLoginController implements UserLoginControllerApi { headerImg = URLDecoder.decode(imgUrl,encoder); //account = new String(username.getBytes("GBK"),"iso-8859-1"); log.info("account==========="+account+"headerImg============="+headerImg); - response.sendRedirect("http://8.129.127.185/dq/index.html#/login?token="+token+"&account="+account+"&headerImg="+headerImg); - //response.sendRedirect("http://www.huorantech.cn/dq/index.html#/Dashboard?token="+token+"&account="+account+"&headerImg="+headerImg); + //response.sendRedirect("http://8.129.127.185/dq/index.html#/login?token="+token+"&account="+account+"&headerImg="+headerImg); + response.sendRedirect("http://www.huorantech.cn/dq/index.html#/Dashboard?token="+token+"&account="+account+"&headerImg="+headerImg); } }else { userService.weChatBinding(code,response,state); diff --git a/dq-financial-hrms-auth/src/main/java/com/daqing/financial/hrauth/service/impl/UserServiceImpl.java b/dq-financial-hrms-auth/src/main/java/com/daqing/financial/hrauth/service/impl/UserServiceImpl.java index 8057d8d1..a0356ab6 100644 --- a/dq-financial-hrms-auth/src/main/java/com/daqing/financial/hrauth/service/impl/UserServiceImpl.java +++ b/dq-financial-hrms-auth/src/main/java/com/daqing/financial/hrauth/service/impl/UserServiceImpl.java @@ -90,8 +90,8 @@ public class UserServiceImpl extends ServiceImpl imple if(dbUser == null){//openId不存在,返回绑定手机号页面,须另写绑定手机号接口 log.info("dbUser为空,openId不存在,请先绑定手机号哦~~~"); try { - //response.sendRedirect("http://www.huorantech.cn/dq/index.html#/bind-phone?matched="+md5OpenId);//跳转绑定手机号页面 - response.sendRedirect("http://8.129.127.185/dq/index.html#/bind-phone?matched="+md5OpenId);//跳转绑定手机号页面 + response.sendRedirect("http://www.huorantech.cn/dq/index.html#/bind-phone?matched="+md5OpenId);//跳转绑定手机号页面 + //response.sendRedirect("http://8.129.127.185/dq/index.html#/bind-phone?matched="+md5OpenId);//跳转绑定手机号页面 } catch (IOException e) { e.printStackTrace(); } @@ -152,8 +152,8 @@ public class UserServiceImpl extends ServiceImpl imple if (countWeChatId > 0){ try { log.info("微信重复了,我走到了这里............................."); - //response.sendRedirect("http://www.huorantech.cn/dq/index.html#/workbench-manpower?token="+token+"&message=1"); - response.sendRedirect("http://8.129.127.185/dq/index.html#/workbench-manpower?token="+token+"&message=1"); + response.sendRedirect("http://www.huorantech.cn/dq/index.html#/workbench-manpower?token="+token+"&message=1"); + //response.sendRedirect("http://8.129.127.185/dq/index.html#/workbench-manpower?token="+token+"&message=1"); } catch (IOException e) { e.printStackTrace(); } @@ -163,8 +163,8 @@ public class UserServiceImpl extends ServiceImpl imple if (result){ try { log.info("转发成功---------------------------------------"); - //response.sendRedirect("http://www.huorantech.cn/dq/index.html#/workbench-manpower?token="+token); - response.sendRedirect("http://8.129.127.185/dq/index.html#/workbench-manpower?token="+token); + response.sendRedirect("http://www.huorantech.cn/dq/index.html#/workbench-manpower?token="+token); + //response.sendRedirect("http://8.129.127.185/dq/index.html#/workbench-manpower?token="+token); }catch (IOException e){ e.printStackTrace(); } diff --git a/dq-financial-hrms-auth/src/main/resources/bootstrap.properties b/dq-financial-hrms-auth/src/main/resources/bootstrap.properties index f9eefee2..8c32f2a7 100644 --- a/dq-financial-hrms-auth/src/main/resources/bootstrap.properties +++ b/dq-financial-hrms-auth/src/main/resources/bootstrap.properties @@ -1,21 +1,21 @@ #服务名称 -spring.application.name=dq-financial-hrms-auth -#配置中心地址 -spring.cloud.nacos.config.server-addr=127.0.0.1:8848 -spring.cloud.nacos.config.file-extension=yml -#redis配置 -spring.redis.host=127.0.0.1 -spring.redis.port=6379 -spring.redis.password= -spring.redis.database=0 -spring.redis.timeout=30000 -spring.redis.jedis.pool.max-active=8 -spring.redis.jedis.pool.max-wait=-1 -spring.redis.jedis.pool.max-idle=8 -spring.redis.jedis.pool.min-idle=0 +#spring.application.name=dq-financial-hrms-auth +##配置中心地址 +#spring.cloud.nacos.config.server-addr=127.0.0.1:8848 +#spring.cloud.nacos.config.file-extension=yml +##redis配置 +#spring.redis.host=127.0.0.1 +#spring.redis.port=6379 +#spring.redis.password= +#spring.redis.database=0 +#spring.redis.timeout=30000 +#spring.redis.jedis.pool.max-active=8 +#spring.redis.jedis.pool.max-wait=-1 +#spring.redis.jedis.pool.max-idle=8 +#spring.redis.jedis.pool.min-idle=0 #本地测试环境 -spring.cloud.nacos.config.namespace=1520c5ea-5f15-4ac1-9eb1-d25924825b99 +#spring.cloud.nacos.config.namespace=1520c5ea-5f15-4ac1-9eb1-d25924825b99 #线上测试环境 #spring.cloud.nacos.config.namespace=5698e60a-9d0b-433f-a69f-12b0a2d23128 @@ -30,20 +30,30 @@ ribbon.ConnectTimeout: 30000 #正式环境(prod) -#spring.application.name=dq-financial-hrms-auth -# -#spring.cloud.nacos.config.server-addr=120.78.127.12:8848 -#spring.cloud.nacos.config.namespace=b590c830-7ada-44b7-968f-e8d0c81990c4 -##spring.cloud.nacos.config.group=prod -# -#spring.cloud.nacos.config.ext-config[0].data-id=datasource.yml -#spring.cloud.nacos.config.ext-config[0].group=prod -#spring.cloud.nacos.config.ext-config[0].refresh=true -# -#spring.cloud.nacos.config.ext-config[1].data-id=mybatis.yml -#spring.cloud.nacos.config.ext-config[1].group=prod -#spring.cloud.nacos.config.ext-config[1].refresh=true -# -#spring.cloud.nacos.config.ext-config[2].data-id=other.yml -#spring.cloud.nacos.config.ext-config[2].group=prod -#spring.cloud.nacos.config.ext-config[2].refresh=true \ No newline at end of file +spring.application.name=dq-financial-hrms-auth + +spring.cloud.nacos.config.server-addr=120.78.127.12:8848 +spring.cloud.nacos.config.namespace=b590c830-7ada-44b7-968f-e8d0c81990c4 +#spring.cloud.nacos.config.group=prod + +spring.cloud.nacos.config.ext-config[0].data-id=datasource.yml +spring.cloud.nacos.config.ext-config[0].group=prod +spring.cloud.nacos.config.ext-config[0].refresh=true + +spring.cloud.nacos.config.ext-config[1].data-id=mybatis.yml +spring.cloud.nacos.config.ext-config[1].group=prod +spring.cloud.nacos.config.ext-config[1].refresh=true + +spring.cloud.nacos.config.ext-config[2].data-id=other.yml +spring.cloud.nacos.config.ext-config[2].group=prod +spring.cloud.nacos.config.ext-config[2].refresh=true + +spring.redis.host=127.0.0.1 +spring.redis.port=6379 +spring.redis.password=dq123456 +spring.redis.database=0 +spring.redis.timeout=30000 +spring.redis.jedis.pool.max-active=8 +spring.redis.jedis.pool.max-wait=-1 +spring.redis.jedis.pool.max-idle=8 +spring.redis.jedis.pool.min-idle=0 \ No newline at end of file diff --git a/dq-financial-hrms/src/main/resources/bootstrap.properties b/dq-financial-hrms/src/main/resources/bootstrap.properties index 8c9c398e..ab2de425 100644 --- a/dq-financial-hrms/src/main/resources/bootstrap.properties +++ b/dq-financial-hrms/src/main/resources/bootstrap.properties @@ -1,21 +1,21 @@ ##服务名称 -spring.application.name=dq-financial-hrms -#配置中心地址 -spring.cloud.nacos.config.server-addr=127.0.0.1:8848 -spring.cloud.nacos.config.file-extension=yml -#redis配置 -spring.redis.host=127.0.0.1 -spring.redis.port=6379 -spring.redis.password= -spring.redis.database=0 -spring.redis.timeout=30000 -spring.redis.jedis.pool.max-active=8 -spring.redis.jedis.pool.max-wait=-1 -spring.redis.jedis.pool.max-idle=8 -spring.redis.jedis.pool.min-idle=0 +#spring.application.name=dq-financial-hrms +##配置中心地址 +#spring.cloud.nacos.config.server-addr=127.0.0.1:8848 +#spring.cloud.nacos.config.file-extension=yml +##redis配置 +#spring.redis.host=127.0.0.1 +#spring.redis.port=6379 +#spring.redis.password= +#spring.redis.database=0 +#spring.redis.timeout=30000 +#spring.redis.jedis.pool.max-active=8 +#spring.redis.jedis.pool.max-wait=-1 +#spring.redis.jedis.pool.max-idle=8 +#spring.redis.jedis.pool.min-idle=0 #本地测试环境 -spring.cloud.nacos.config.namespace=1520c5ea-5f15-4ac1-9eb1-d25924825b99 +#spring.cloud.nacos.config.namespace=1520c5ea-5f15-4ac1-9eb1-d25924825b99 #线上测试环境 #spring.cloud.nacos.config.namespace=5698e60a-9d0b-433f-a69f-12b0a2d23128 @@ -33,20 +33,30 @@ spring.servlet.multipart.max-request-size=10MB # 正式环境(prod) #服务名称 -#spring.application.name=dq-financial-hrms -##配置中心地址 -#spring.cloud.nacos.config.server-addr=120.78.127.12:8848 -#spring.cloud.nacos.config.namespace=69614b55-1521-421c-ac58-dbe4a5b01b43 -##spring.cloud.nacos.config.group=prod -# -#spring.cloud.nacos.config.ext-config[0].data-id=datasource.yml -#spring.cloud.nacos.config.ext-config[0].group=prod -#spring.cloud.nacos.config.ext-config[0].refresh=true -# -#spring.cloud.nacos.config.ext-config[1].data-id=mybatis.yml -#spring.cloud.nacos.config.ext-config[1].group=prod -#spring.cloud.nacos.config.ext-config[1].refresh=true -# -#spring.cloud.nacos.config.ext-config[2].data-id=other.yml -#spring.cloud.nacos.config.ext-config[2].group=prod -#spring.cloud.nacos.config.ext-config[2].refresh=true \ No newline at end of file +spring.application.name=dq-financial-hrms +#配置中心地址 +spring.cloud.nacos.config.server-addr=120.78.127.12:8848 +spring.cloud.nacos.config.namespace=69614b55-1521-421c-ac58-dbe4a5b01b43 +#spring.cloud.nacos.config.group=prod + +spring.cloud.nacos.config.ext-config[0].data-id=datasource.yml +spring.cloud.nacos.config.ext-config[0].group=prod +spring.cloud.nacos.config.ext-config[0].refresh=true + +spring.cloud.nacos.config.ext-config[1].data-id=mybatis.yml +spring.cloud.nacos.config.ext-config[1].group=prod +spring.cloud.nacos.config.ext-config[1].refresh=true + +spring.cloud.nacos.config.ext-config[2].data-id=other.yml +spring.cloud.nacos.config.ext-config[2].group=prod +spring.cloud.nacos.config.ext-config[2].refresh=true + +spring.redis.host=127.0.0.1 +spring.redis.port=6379 +spring.redis.password=dq123456 +spring.redis.database=0 +spring.redis.timeout=30000 +spring.redis.jedis.pool.max-active=8 +spring.redis.jedis.pool.max-wait=-1 +spring.redis.jedis.pool.max-idle=8 +spring.redis.jedis.pool.min-idle=0 \ No newline at end of file diff --git a/dq-framework-common/src/main/java/com/daqing/framework/model/response/PromptSuccess.java b/dq-framework-common/src/main/java/com/daqing/framework/model/response/PromptSuccess.java index dd0830b8..8a715af9 100644 --- a/dq-framework-common/src/main/java/com/daqing/framework/model/response/PromptSuccess.java +++ b/dq-framework-common/src/main/java/com/daqing/framework/model/response/PromptSuccess.java @@ -32,16 +32,16 @@ public class PromptSuccess { public static final String UPLOAD_FILE_PATH = "//usr//local//nginx//html//admin//headImg//"; // linux图片存放路径 - //public static final String IMAGE_URL_PATH = "http://www.huorantech.cn/headImg/"; // 数据库/预加载图片路径 - public static final String IMAGE_URL_PATH = "http://8.129.127.185:8080/headImg/"; // 数据库/预加载图片路径 + public static final String IMAGE_URL_PATH = "http://www.huorantech.cn/headImg/"; // 数据库/预加载图片路径 + //public static final String IMAGE_URL_PATH = "http://8.129.127.185:8080/headImg/"; // 数据库/预加载图片路径 //public static final String IMAGE_URL_PATH = "http://47.107.237.129:8080/headImg/"; // 数据库/预加载图片路径 public static final String[] LETTERS = {"A","B","C","D","E"}; // 员工姓名重复时自动加的字母,可再添加 public static final String STATUS_REFUSE = "拒绝"; - //public static final String ENCLOSUREFILE_URL_PATH = "http://www.huorantech.cn/enclosureFile/"; // 附件文件存放路径 - public static final String ENCLOSUREFILE_URL_PATH = "http://8.129.127.185:8080/enclosureFile/"; // 附件文件存放路径 + public static final String ENCLOSUREFILE_URL_PATH = "http://www.huorantech.cn/enclosureFile/"; // 附件文件存放路径 + //public static final String ENCLOSUREFILE_URL_PATH = "http://8.129.127.185:8080/enclosureFile/"; // 附件文件存放路径 //public static final String ENCLOSUREFILE_URL_PATH = "http://47.107.237.129:8080/enclosureFile/"; // 附件文件存放路径 public static final String FILE_URL_PATH = "//usr//local//nginx//html//admin//enclosureFile//"; // 附件文件存放路径 diff --git a/dq-framework-model/src/main/java/com/daqing/framework/domain/guarantee/DgProcessManage.java b/dq-framework-model/src/main/java/com/daqing/framework/domain/guarantee/DgProcessManage.java new file mode 100644 index 00000000..63c181fb --- /dev/null +++ b/dq-framework-model/src/main/java/com/daqing/framework/domain/guarantee/DgProcessManage.java @@ -0,0 +1,57 @@ +package com.daqing.framework.domain.guarantee; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * 流程管理表 + *

+ * + * @author Qyq + * @since 2021-01-15 + */ +@Data +@TableName("dg_process_manage") +public class DgProcessManage implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + @TableId(value = "id", type = IdType.AUTO) + private Integer id; + + /** + * 图标 + */ + private String iconImg; + + /** + * 业务管理模块id + */ + private Integer modelId; + + /** + * 审批名称 + */ + private String approvalName; + + /** + * 更新时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date updateTime; + + /** + * 创建时间 + */ + private Date createTime; +} diff --git a/dq-framework-model/src/main/java/com/daqing/framework/domain/guarantee/DgProcessManageVisual.java b/dq-framework-model/src/main/java/com/daqing/framework/domain/guarantee/DgProcessManageVisual.java new file mode 100644 index 00000000..34a60241 --- /dev/null +++ b/dq-framework-model/src/main/java/com/daqing/framework/domain/guarantee/DgProcessManageVisual.java @@ -0,0 +1,39 @@ +package com.daqing.framework.domain.guarantee; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +import java.io.Serializable; + +/** + *

+ * 流程管理可见表 + *

+ * + * @author Qyq + * @since 2021-01-15 + */ +@Data +@TableName("dg_process_manage_visual") +public class DgProcessManageVisual implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + @TableId(value = "id", type = IdType.AUTO) + private Integer id; + + /** + * 流程管理id + */ + private Integer processManageId; + + /** + * 可见人id + */ + private Integer userId; +} diff --git a/dq-govern-gateway/src/main/resources/bootstrap.properties b/dq-govern-gateway/src/main/resources/bootstrap.properties index 6dea21cb..ea5c4549 100644 --- a/dq-govern-gateway/src/main/resources/bootstrap.properties +++ b/dq-govern-gateway/src/main/resources/bootstrap.properties @@ -1,21 +1,21 @@ #服务名称 -spring.application.name=dq-govern-gateway -#配置中心地址 -spring.cloud.nacos.config.server-addr=127.0.0.1:8848 -spring.cloud.nacos.config.file-extension=yml -#redis配置 -spring.redis.host=127.0.0.1 -spring.redis.port=6379 -spring.redis.password= -spring.redis.database=0 -spring.redis.timeout=30000 -spring.redis.jedis.pool.max-active=8 -spring.redis.jedis.pool.max-wait=-1 -spring.redis.jedis.pool.max-idle=8 -spring.redis.jedis.pool.min-idle=0 +#spring.application.name=dq-govern-gateway +##配置中心地址 +#spring.cloud.nacos.config.server-addr=127.0.0.1:8848 +#spring.cloud.nacos.config.file-extension=yml +##redis配置 +#spring.redis.host=127.0.0.1 +#spring.redis.port=6379 +#spring.redis.password= +#spring.redis.database=0 +#spring.redis.timeout=30000 +#spring.redis.jedis.pool.max-active=8 +#spring.redis.jedis.pool.max-wait=-1 +#spring.redis.jedis.pool.max-idle=8 +#spring.redis.jedis.pool.min-idle=0 #本地测试环境 -spring.cloud.nacos.config.namespace=1520c5ea-5f15-4ac1-9eb1-d25924825b99 +#spring.cloud.nacos.config.namespace=1520c5ea-5f15-4ac1-9eb1-d25924825b99 #线上测试环境 #spring.cloud.nacos.config.namespace=5698e60a-9d0b-433f-a69f-12b0a2d23128 @@ -28,21 +28,21 @@ spring.servlet.multipart.max-request-size=10MB # 正式环境(prod) #服务名称 -#spring.application.name=dq-govern-gateway -##配置中心地址 -#spring.cloud.nacos.config.server-addr=120.78.127.12:8848 -#spring.cloud.nacos.config.namespace=68738215-903f-426c-8658-2dcd99b20009 -# -#spring.cloud.nacos.config.ext-config[0].data-id=dq-govern-gateway.yml -#spring.cloud.nacos.config.ext-config[0].group=prod -#spring.cloud.nacos.config.ext-config[0].refresh=true -# -#spring.redis.host=127.0.0.1 -#spring.redis.port=6379 -#spring.redis.password=dq123456 -#spring.redis.database=0 -#spring.redis.timeout=30000 -#spring.redis.jedis.pool.max-active=8 -#spring.redis.jedis.pool.max-wait=-1 -#spring.redis.jedis.pool.max-idle=8 -#spring.redis.jedis.pool.min-idle=0 \ No newline at end of file +spring.application.name=dq-govern-gateway +#配置中心地址 +spring.cloud.nacos.config.server-addr=120.78.127.12:8848 +spring.cloud.nacos.config.namespace=68738215-903f-426c-8658-2dcd99b20009 + +spring.cloud.nacos.config.ext-config[0].data-id=dq-govern-gateway.yml +spring.cloud.nacos.config.ext-config[0].group=prod +spring.cloud.nacos.config.ext-config[0].refresh=true + +spring.redis.host=127.0.0.1 +spring.redis.port=6379 +spring.redis.password=dq123456 +spring.redis.database=0 +spring.redis.timeout=30000 +spring.redis.jedis.pool.max-active=8 +spring.redis.jedis.pool.max-wait=-1 +spring.redis.jedis.pool.max-idle=8 +spring.redis.jedis.pool.min-idle=0 \ No newline at end of file