Commit 227d40fc authored by chenyuxi's avatar chenyuxi

feat: 入离职改造

parent f8b6d731
......@@ -20,6 +20,7 @@ import com.alibaba.excel.annotation.ExcelProperty;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.yifu.cloud.plus.v1.yifu.archives.entity.SysAutoDictItem;
import com.yifu.cloud.plus.v1.yifu.common.core.vo.RowIndex;
import com.yifu.cloud.plus.v1.yifu.common.mybatis.base.BaseEntity;
import io.swagger.v3.oas.annotations.media.Schema;
......@@ -30,6 +31,7 @@ import org.hibernate.validator.constraints.Length;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
import java.util.List;
/**
* 字典项
......@@ -156,4 +158,6 @@ public class SysAutoDictItemVo extends RowIndex implements Serializable {
@ExcelProperty("项目编码,标识此字典项为那个项目所有")
private String deptNo;
private List<SysAutoDictItem> sysAutoDictItemList;
}
......@@ -17,14 +17,21 @@
package com.yifu.cloud.plus.v1.yifu.archives.controller;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yifu.cloud.plus.v1.yifu.archives.entity.SysAutoDictItem;
import com.yifu.cloud.plus.v1.yifu.archives.service.SysAutoDictItemService;
import com.yifu.cloud.plus.v1.yifu.archives.vo.SysAutoDictItemSearchVo;
import com.yifu.cloud.plus.v1.yifu.archives.vo.SysAutoDictItemVo;
import com.yifu.cloud.plus.v1.yifu.archives.vo.TSettleDomainSelectVo;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.CommonConstants;
import com.yifu.cloud.plus.v1.yifu.common.core.util.Common;
import com.yifu.cloud.plus.v1.yifu.common.core.util.ErrorMessage;
import com.yifu.cloud.plus.v1.yifu.common.core.util.R;
import com.yifu.cloud.plus.v1.yifu.common.log.annotation.SysLog;
import com.yifu.cloud.plus.v1.yifu.common.security.annotation.Inner;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
......@@ -51,7 +58,7 @@ public class SysAutoDictItemController {
private final SysAutoDictItemService sysAutoDictItemService;
/**
* 简单分页查询
* @param page 分页对象
......@@ -152,4 +159,32 @@ public class SysAutoDictItemController {
public void export(HttpServletResponse response, @RequestBody SysAutoDictItemSearchVo searchVo) {
sysAutoDictItemService.listExport(response,searchVo);
}
/**
* 获取项目配置下的字典列表
* @param sysAutoDictItem 字典项
* @return R<List<SysAutoDictItem>>
* @author chenyuxi
*/
@Operation(summary = "获取项目配置下的字典列表")
@GetMapping("/selectByDeptNo" )
public R<List<SysAutoDictItem>> selectByDeptNo(SysAutoDictItemSearchVo sysAutoDictItem) {
if(Common.isEmpty(sysAutoDictItem.getDeptNo())){
return R.failed("项目编号不能为空");
}
return R.ok(sysAutoDictItemService.selectByDeptNo(sysAutoDictItem));
}
@Inner
@PostMapping("/getSettleDomainSelectVoById")
public SysAutoDictItemVo getInnerSettleDomainSelectVoByUserId(@RequestBody SysAutoDictItemVo dictItemVo) {
SysAutoDictItemVo settleDomainSelectVo = new SysAutoDictItemVo();
LambdaQueryWrapper<SysAutoDictItem> dictQuery = Wrappers.<SysAutoDictItem>lambdaQuery()
.eq(SysAutoDictItem::getDeptNo, dictItemVo.getDeptNo())
.eq(SysAutoDictItem::getDelFlag, CommonConstants.NOT_DELETE_FLAG);
List<SysAutoDictItem> list = sysAutoDictItemService.list(dictQuery);
settleDomainSelectVo.setSysAutoDictItemList(list);
return settleDomainSelectVo;
}
}
......@@ -48,4 +48,12 @@ public interface SysAutoDictItemService extends IService<SysAutoDictItem> {
void listExport(HttpServletResponse response, SysAutoDictItemSearchVo searchVo);
List<SysAutoDictItem> noPageDiy(SysAutoDictItemSearchVo searchVo);
/**
* 获取项目配置下的字典列表
* @param searchVo 字典项
* @return R<List<SysAutoDictItem>>
* @author chenyuxi
*/
List<SysAutoDictItem> selectByDeptNo(SysAutoDictItemSearchVo searchVo);
}
......@@ -249,4 +249,25 @@ public class SysAutoDictItemServiceImpl extends ServiceImpl<SysAutoDictItemMappe
BeanUtil.copyProperties(excel, insert);
this.save(insert);
}
/**
* 获取项目配置下的字典列表
*
* @param searchVo 字典项
* @return R<List < SysAutoDictItem>>
* @author chenyuxi
*/
@Override
public List<SysAutoDictItem> selectByDeptNo(SysAutoDictItemSearchVo searchVo) {
LambdaQueryWrapper<SysAutoDictItem> wrapper = Wrappers.lambdaQuery();
wrapper.eq(SysAutoDictItem::getDelFlag,CommonConstants.NOT_DELETE_FLAG);
if (Common.isNotNull(searchVo.getDeptNo())){
wrapper.eq(SysAutoDictItem::getDeptNo,searchVo.getDeptNo());
}
if (Common.isNotNull(searchVo.getType())){
wrapper.eq(SysAutoDictItem::getType,searchVo.getType());
}
wrapper.orderByAsc(BaseEntity::getCreateTime);
return baseMapper.selectList(wrapper);
}
}
......@@ -556,4 +556,22 @@ public class ArchivesDaprUtil {
public R<Boolean> saveRegistPreInfo(EmployeeRegistrationPreVo preVo) {
return HttpDaprUtil.invokeMethodPost(daprArchivesProperties.getAppUrl(),daprArchivesProperties.getAppId(),"/employeeregistrationpre/inner/saveRegistPreInfo", JSON.toJSONString(preVo), Boolean.class, SecurityConstants.FROM_IN);
}
/**
* 获取项目字典项
* @param
* @author chenyuxi
* @since 1.9.8
* @Param
* @return
**/
public R<SysAutoDictItemVo> getDictListByDeptNo(String deptNo){
SysAutoDictItemVo dictItemVo = new SysAutoDictItemVo();
dictItemVo.setDeptNo(deptNo);
R<SysAutoDictItemVo> res = HttpDaprUtil.invokeMethodPost(daprArchivesProperties.getAppUrl(),daprArchivesProperties.getAppId(),"/tsettledomain/getSettleDomainSelectVoById",dictItemVo, SysAutoDictItemVo.class, SecurityConstants.FROM_IN);
if (Common.isEmpty(res)){
return R.failed("获取派单校验需要的档案信息失败!");
}
return res;
}
}
......@@ -10,6 +10,7 @@ import com.yifu.cloud.plus.v1.csp.vo.EmployeeRegistrationUpdateVo;
import com.yifu.cloud.plus.v1.yifu.archives.entity.TEmployeeProjectBelongDept;
import com.yifu.cloud.plus.v1.yifu.archives.vo.EmployeeRegistrationPreVo;
import com.yifu.cloud.plus.v1.yifu.archives.vo.TEmployeeProjectBelongDeptSearchCspVo;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.CommonConstants;
import com.yifu.cloud.plus.v1.yifu.common.core.util.Common;
import com.yifu.cloud.plus.v1.yifu.common.core.util.ErrorMessage;
import com.yifu.cloud.plus.v1.yifu.common.core.util.R;
......@@ -56,6 +57,8 @@ public class EmployeeRegistrationController {
@Operation(description = "简单分页查询")
@GetMapping("/page")
public R<IPage<EmployeeRegistration>> getEmployeeRegistrationPage(Page<EmployeeRegistration> page, EmployeeRegistrationSearchVo employeeRegistration) {
// 1.9.8:客户服务平台仅展示来源是“客户端”的数据
employeeRegistration.setDataSource(CommonConstants.ONE_STRING);
return new R<>(employeeRegistrationService.getEmployeeRegistrationPage(page, employeeRegistration));
}
......@@ -149,8 +152,8 @@ public class EmployeeRegistrationController {
@Operation(description = "批量新增入离职登记表")
@SysLog("批量新增入离职登记表")
@PostMapping("/importListAdd")
public R<List<ErrorMessage>> importListAdd(@RequestBody MultipartFile file,String deptId) {
return employeeRegistrationService.importDiy(file.getInputStream(),deptId);
public R<List<ErrorMessage>> importListAdd(@RequestBody MultipartFile file,String deptId,String dataSource) {
return employeeRegistrationService.importDiy(file.getInputStream(),deptId, dataSource);
}
/**
......
......@@ -50,7 +50,7 @@ public interface EmployeeRegistrationService extends IService<EmployeeRegistrati
* @param inputStream 文件流
* @return
*/
R<List<ErrorMessage>> importDiy(InputStream inputStream,String deptId);
R<List<ErrorMessage>> importDiy(InputStream inputStream,String deptId, String dataSource);
/**
* 入离职登记新增
......
......@@ -22,6 +22,7 @@ import com.yifu.cloud.plus.v1.csp.service.TOperationLogService;
import com.yifu.cloud.plus.v1.csp.vo.*;
import com.yifu.cloud.plus.v1.yifu.admin.api.entity.SysUser;
import com.yifu.cloud.plus.v1.yifu.admin.api.vo.SysCspDeptVo;
import com.yifu.cloud.plus.v1.yifu.archives.entity.SysAutoDictItem;
import com.yifu.cloud.plus.v1.yifu.archives.entity.TEmployeeProjectBelongDept;
import com.yifu.cloud.plus.v1.yifu.archives.vo.*;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.ClientNameConstants;
......@@ -108,6 +109,9 @@ public class EmployeeRegistrationServiceImpl extends ServiceImpl<EmployeeRegistr
if (isSsc) {
employeeRegistration.setCustomerUserLoginname(null);
}
// 前端客服的所有项目权限赋值
employeeRegistration.setType(CommonConstants.TWO_STRING);
initSearchVo(employeeRegistration);
return baseMapper.getEmployeeRegistrationPage(page, employeeRegistration);
}
......@@ -185,6 +189,17 @@ public class EmployeeRegistrationServiceImpl extends ServiceImpl<EmployeeRegistr
*/
@Override
public void listHrExport(HttpServletResponse response, EmployeeRegistrationSearchVo searchVo) {
// 1.9.8: 前端客服去掉指定人查询
YifuUser user = SecurityUtils.getUser();
long roleId = 1839501715787390978L;
boolean isSsc = this.haveRole(user, roleId);
if (isSsc) {
searchVo.setCustomerUserLoginname(null);
}
searchVo.setType(CommonConstants.TWO_STRING);
// 1.9.8: 前端客服的所有项目权限赋值
initSearchVo(searchVo);
String fileName = "入离职待办任务表批量导出" + DateUtil.getThisTime() + ".xlsx";
//获取要导出的列表
List<EmployeeRegistrationHrExportVo> list = new ArrayList<>();
......@@ -281,7 +296,8 @@ public class EmployeeRegistrationServiceImpl extends ServiceImpl<EmployeeRegistr
}
@Override
public R<List<ErrorMessage>> importDiy(InputStream inputStream, String deptId) {
public R<List<ErrorMessage>> importDiy(InputStream inputStream, String deptId, String dataSource) {
List<ErrorMessage> errorMessageList = new ArrayList<>();
ExcelUtil<EmployeeRegistrationVo> util1 = new ExcelUtil<>(EmployeeRegistrationVo.class);
YifuUser user = SecurityUtils.getUser();
......@@ -293,6 +309,19 @@ public class EmployeeRegistrationServiceImpl extends ServiceImpl<EmployeeRegistr
return R.ok(errorMessageList);
}
TSettleDomainSelectVo selectVo = domainR.getData();
// 1.9.8:获取项目配置的字典值
List<String> postConfigList = new ArrayList<>();
R<SysAutoDictItemVo> domainDictR = archivesDaprUtil.getDictListByDeptNo(selectVo.getDepartNo());
if (Common.isNotNull(domainDictR) && Common.isNotNull(domainDictR.getData()) && Common.isNotNull(domainDictR.getData().getSysAutoDictItemList())) {
List<SysAutoDictItem> dictItemList = domainDictR.getData().getSysAutoDictItemList();
for(SysAutoDictItem sysAutoDictItem : dictItemList){
if("post_type".equals(sysAutoDictItem.getType())){
postConfigList.add(sysAutoDictItem.getLabel());
}
}
}
// 写法2:
// 匿名内部类 不用额外写一个DemoDataListener
// 这里 需要指定读用哪个class去读,然后读取第一个sheet 文件流会自动关闭
......@@ -336,7 +365,7 @@ public class EmployeeRegistrationServiceImpl extends ServiceImpl<EmployeeRegistr
*/
private void saveData() {
log.info("{}条数据,开始存储数据库!", cachedDataList.size());
importEmployeeRegistration(cachedDataList, errorMessageList, user, selectVo);
importEmployeeRegistration(cachedDataList, errorMessageList, user, selectVo, postConfigList, dataSource);
log.info("存储数据库成功!");
}
}).sheet().doRead();
......@@ -348,7 +377,13 @@ public class EmployeeRegistrationServiceImpl extends ServiceImpl<EmployeeRegistr
}
private void importEmployeeRegistration(List<EmployeeRegistrationVo> excelVOList,
List<ErrorMessage> errorMessageList, YifuUser user, TSettleDomainSelectVo selectVo) {
List<ErrorMessage> errorMessageList, YifuUser user, TSettleDomainSelectVo selectVo,
List<String> postConfigList, String dataSource) {
// 1.9.8新增来源区分
// 没有来源默认是:1客户端
if(Common.isEmpty(dataSource)){
dataSource = CommonConstants.ONE_STRING;
}
Map<String, String> exitMap = new HashMap<>();
EmployeeRegistrationVo excel;
......@@ -375,11 +410,19 @@ public class EmployeeRegistrationServiceImpl extends ServiceImpl<EmployeeRegistr
continue;
}
insert.setDeptNo(selectVo.getDepartNo());
// 1.9.8:新增校验
if(CommonConstants.TWO_STRING.equals(dataSource) && Common.isNotNull(postConfigList) && !postConfigList.contains(insert.getPosition())){
errorMessageList.add(new ErrorMessage(excel.getRowIndex(), "岗位不在项目配置的岗位配置项里", excel));
continue;
}
String error = registCheck(insert);
if (null != error) {
errorMessageList.add(new ErrorMessage(excel.getRowIndex(), error, excel));
continue;
}
// 1.9.8:新增赋值
insert.setDataSource(dataSource);
initRegistInfo(insert, user, selectVo);
insertList.add(insert);
//新增记录,新增操作记录
......@@ -499,6 +542,7 @@ public class EmployeeRegistrationServiceImpl extends ServiceImpl<EmployeeRegistr
return R.ok();
}
@Override
public R registAdd(EmployeeRegistration registration) {
//提交校验内容:
//1、身份证号位数、手机号码位数及格式,就职岗位下拉选择“内勤、揽投员、其他”
......@@ -507,6 +551,12 @@ public class EmployeeRegistrationServiceImpl extends ServiceImpl<EmployeeRegistr
if (null != errorInfo) {
return R.failed(errorInfo);
} else {
// 1.9.8: 没有来源默认是:1客户端
if(Common.isEmpty(registration.getDataSource())){
registration.setDataSource(CommonConstants.ONE_STRING);
}
// 1.9.8: 赋值【最新的客服名称】
registration.setCustomerUsernameNew(registration.getCustomerUsername());
baseMapper.insert(registration);
}
//企业微信消息提醒
......@@ -517,6 +567,7 @@ public class EmployeeRegistrationServiceImpl extends ServiceImpl<EmployeeRegistr
return R.ok();
}
@Override
public R confirmSubmit(EmployeeRegistration registration) {
YifuUser user = SecurityUtils.getUser();
EmployeeRegistration registrationNow = baseMapper.selectById(registration.getId());
......@@ -544,6 +595,7 @@ public class EmployeeRegistrationServiceImpl extends ServiceImpl<EmployeeRegistr
return R.ok();
}
@Override
public R updateRegist(EmployeeRegistration registration) {
YifuUser user = SecurityUtils.getUser();
EmployeeRegistration registrationNow = baseMapper.selectById(registration.getId());
......@@ -696,6 +748,9 @@ public class EmployeeRegistrationServiceImpl extends ServiceImpl<EmployeeRegistr
insert.setCustomerUserLoginname(selectVo.getCsLoginName());
insert.setDeptName(selectVo.getDepartName());
insert.setDeptId(selectVo.getId());
// 1.9.8: 新增字段
insert.setCustomerUsernameNew(selectVo.getCsName());
}
//发送企业微信待办
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment