Commit aae9a864 by tangzhaoqian

审批优化,发起人权限、审批模板、审批图标、无用代码注释、企业注册创建9大模板

parent 2ab32b8c
......@@ -33,24 +33,24 @@ import cn.timer.api.utils.ResultUtil;
@Component
public class BindingResultAspect {
// @annotation配置织入点
@Pointcut("@annotation(cn.timer.api.aspect.lang.annotation.BindingResultCtrol)")
public void bindingResultPointCut()
{
}
// @annotation配置织入点
// @Pointcut("@annotation(cn.timer.api.aspect.lang.annotation.BindingResultCtrol)")
// public void bindingResultPointCut()
// {
// }
// execution 配置织入点 -匹配 cn.timer.api.controller 包下的所有子包的类的方法
@Pointcut("execution(* cn.timer.api.controller.*.*.*(..))")
public void clazzPointCut()
{
@Pointcut("execution(* cn.timer.api.controller.spmk.*.*(..))")
public void clazzPointCut(){
}
//
// @Before("bindingResultPointCut()")
public void doBefore(JoinPoint point) throws Throwable
{
//预留
// public void doBefore(JoinPoint point) throws Throwable
// {
// //预留
// handleDataScope(point);
}
// }
// @Around("bindingResultPointCut() && args(..,bindingResult)")
@Around("clazzPointCut()")
......
......@@ -76,7 +76,7 @@ public class SpmkCustomApproval extends Model<SpmkCustomApproval> {
@ApiModelProperty(value = "关联类型 0无 1转正 2离职 3调岗 4加班 5请假 6出差 7外出 8补卡 9调薪", example = "1")
private Integer assoType;
@ApiModelProperty(value = "所有可见 0否 1是", example = "1")
@ApiModelProperty(value = "可见范围 0部分可见 1所有可见 2禁用", example = "1")
private Integer isAllvisible;
@ApiModelProperty(value = "审批表单 ", example = "审批表单")
......
......@@ -65,8 +65,11 @@ public class WebSecurityConfig implements WebMvcConfigurer {
// WriteNullStringAsEmpty 将字符串类型字段的空值输出为空字符串 ""
// WriteNullNumberAsZero 将数值类型字段的空值输出为0
// WriteNullBooleanAsFalse 将Boolean类型字段的空值输出为false
fastJsonConfig.setSerializerFeatures(SerializerFeature.PrettyFormat, SerializerFeature.WriteNullListAsEmpty,
SerializerFeature.WriteNullStringAsEmpty);
fastJsonConfig.setSerializerFeatures(
SerializerFeature.PrettyFormat,
SerializerFeature.WriteMapNullValue,
SerializerFeature.WriteDateUseDateFormat,
SerializerFeature.WriteNullStringAsEmpty);
// 处理中文乱码问题
List<MediaType> fastMediaTypes = new ArrayList<>();
fastMediaTypes.add(MediaType.APPLICATION_JSON_UTF8);
......
package cn.timer.api.config.specification;
import java.util.List;
import javax.persistence.criteria.CriteriaBuilder;
import javax.persistence.criteria.CriteriaQuery;
import javax.persistence.criteria.Predicate;
import javax.persistence.criteria.Root;
import org.springframework.data.jpa.domain.Specification;
public class SimpleSpecification<T> implements Specification<T> {
private static final long serialVersionUID = 9090560756576906120L;
/**
* 查询的条件列表,是一组列表
*/
private List<SpecificationOperator> opers;
public SimpleSpecification(List<SpecificationOperator> opers) {
this.opers = opers;
}
@Override
public Predicate toPredicate(Root<T> root, CriteriaQuery<?> criteriaQuery, CriteriaBuilder criteriaBuilder) {
int index = 0;
// 通过resultPre来组合多个条件
Predicate resultPre = null;
for (SpecificationOperator op : opers) {
if (index++ == 0) {
resultPre = generatePredicate(root, criteriaBuilder, op);
continue;
}
Predicate pre = generatePredicate(root, criteriaBuilder, op);
if (pre == null)
continue;
if ("and".equalsIgnoreCase(op.getJoin())) {
resultPre = criteriaBuilder.and(resultPre, pre);
} else if ("or".equalsIgnoreCase(op.getJoin())) {
resultPre = criteriaBuilder.or(resultPre, pre);
}
}
return resultPre;
}
/**
* 根据不同的操作符返回特定的查询
*/
private Predicate generatePredicate(Root<T> root, CriteriaBuilder criteriaBuilder, SpecificationOperator op) {
if ("=".equalsIgnoreCase(op.getOper())) {
System.out.println(op.getKey() + "," + op.getValue());
return criteriaBuilder.equal(root.get(op.getKey()), op.getValue());
} else if (">=".equalsIgnoreCase(op.getOper())) {
return criteriaBuilder.ge(root.get(op.getKey()), (Number) op.getValue());
} else if ("<=".equalsIgnoreCase(op.getOper())) {
return criteriaBuilder.le(root.get(op.getKey()), (Number) op.getValue());
} else if (">".equalsIgnoreCase(op.getOper())) {
return criteriaBuilder.gt(root.get(op.getKey()), (Number) op.getValue());
} else if ("<".equalsIgnoreCase(op.getOper())) {
return criteriaBuilder.lt(root.get(op.getKey()), (Number) op.getValue());
} else if (":".equalsIgnoreCase(op.getOper())) {
return criteriaBuilder.like(root.get(op.getKey()), "%" + op.getValue() + "%");
} else if ("l:".equalsIgnoreCase(op.getOper())) {
return criteriaBuilder.like(root.get(op.getKey()), op.getValue() + "%");
} else if (":l".equalsIgnoreCase(op.getOper())) {
return criteriaBuilder.like(root.get(op.getKey()), "%" + op.getValue());
} else if ("null".equalsIgnoreCase(op.getOper())) {
return criteriaBuilder.isNull(root.get(op.getKey()));
} else if ("!null".equalsIgnoreCase(op.getOper())) {
return criteriaBuilder.isNotNull(root.get(op.getKey()));
} else if ("!=".equalsIgnoreCase(op.getOper())) {
return criteriaBuilder.notEqual(root.get(op.getKey()), op.getValue());
}
return null;
}
}
package cn.timer.api.config.specification;
import java.util.ArrayList;
import java.util.List;
import org.springframework.data.jpa.domain.Specification;
/**
* Created by Tang on 2019/11/4.
*/
public class SimpleSpecificationBuilder<T> {
/**
* 条件列表
*/
private List<SpecificationOperator> opers;
/**
* 构造函数,初始化的条件是and
*/
public SimpleSpecificationBuilder(String key, String oper, Object value) {
SpecificationOperator so = new SpecificationOperator();
so.setJoin("and");
so.setKey(key);
so.setOper(oper);
so.setValue(value);
opers = new ArrayList<SpecificationOperator>();
opers.add(so);
}
public SimpleSpecificationBuilder() {
opers = new ArrayList<SpecificationOperator>();
}
/**
* 完成条件的添加
*
* @return
*/
@SuppressWarnings("rawtypes")
public SimpleSpecificationBuilder add(String key, String oper, Object value, String join) {
SpecificationOperator so = new SpecificationOperator();
so.setKey(key);
so.setValue(value);
so.setOper(oper);
so.setJoin(join);
opers.add(so);
return this;
}
/**
* 添加or条件的重载
*
* @return this,方便后续的链式调用
*/
@SuppressWarnings("rawtypes")
public SimpleSpecificationBuilder addOr(String key, String oper, Object value) {
return this.add(key, oper, value, "or");
}
/**
* 添加and的条件
*
* @return
*/
@SuppressWarnings("rawtypes")
public SimpleSpecificationBuilder add(String key, String oper, Object value) {
return this.add(key, oper, value, "and");
}
@SuppressWarnings("rawtypes")
public Specification generateSpecification() {
Specification<T> specification = new SimpleSpecification<T>(opers);
return specification;
}
}
\ No newline at end of file
package cn.timer.api.config.specification;
/**
* Created by konghao on 2016/12/15.
* 操作符类,这个类中存储了键值对和操作符号,另外存储了连接下一个条件的类型是and还是or 创建时通过
* id>=7,其中id就是key,>=就是oper操作符,7就是value 特殊的自定义几个操作符(:表示like %v%,b:表示v%,:b表示%v)
*/
public class SpecificationOperator {
/**
* 操作符的key,如查询时的name,id,address..之类
*/
private String key;
/**
* 操作符的value,具体要查询的值
*/
private Object value;
/**
* 操作符,自己定义的一组操作符,用来方便查询
*/
private String oper;
/**
* 连接的方式:and或者or
*/
private String join;
public String getKey() {
return key;
}
public void setKey(String key) {
this.key = key;
}
public Object getValue() {
return value;
}
public void setValue(Object value) {
this.value = value;
}
public String getOper() {
return oper;
}
public void setOper(String oper) {
this.oper = oper;
}
public String getJoin() {
return join;
}
public void setJoin(String join) {
this.join = join;
}
}
\ No newline at end of file
......@@ -41,6 +41,7 @@ import cn.timer.api.bean.zzgl.ZzglBmgwM;
import cn.timer.api.config.annotation.CurrentUser;
import cn.timer.api.config.annotation.UserBean;
import cn.timer.api.config.enums.CommonEnum;
import cn.timer.api.controller.spmk.service.SpmkServiceImpl;
import cn.timer.api.dao.qyzx.QyzxEmpEntAssoMapper;
import cn.timer.api.dao.qyzx.QyzxEmpLoginMapper;
import cn.timer.api.dao.zzgl.ZzglBmgwMMapper;
......@@ -429,6 +430,10 @@ public class LoginController {
}
return ResultUtil.error("修改手机号/用户名失败");
}
@Autowired
SpmkServiceImpl SpmkService;
/**
* 注册企业
......@@ -512,7 +517,9 @@ public class LoginController {
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
return ResultUtil.error("注册企业失败4");
}
SpmkService.createCustomApproval(qyzxEntInfoM.getId());
return ResultUtil.success("注册企业成功");
} catch (Exception e) {
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
......
......@@ -9,7 +9,6 @@ import javax.validation.Valid;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.validation.BindingResult;
import org.springframework.validation.ObjectError;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
......@@ -17,6 +16,7 @@ import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
......@@ -30,8 +30,6 @@ import cn.hutool.core.lang.Console;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.json.JSONObject;
import cn.timer.api.aspect.lang.annotation.BindingResultCtrol;
import cn.timer.api.aspect.lang.bean.ValidationError;
import cn.timer.api.bean.spmk.SpmkApprovalG;
import cn.timer.api.bean.spmk.SpmkApprovalTemplate;
import cn.timer.api.bean.spmk.SpmkApprovalTemplateG;
......@@ -45,6 +43,7 @@ import cn.timer.api.bean.spmk.SpmkInitiatorConfig;
import cn.timer.api.bean.yggl.YgglMainEmp;
import cn.timer.api.config.annotation.CurrentUser;
import cn.timer.api.config.annotation.UserBean;
import cn.timer.api.controller.spmk.service.SpmkServiceImpl;
import cn.timer.api.controller.zzgl.service.ZzglBmgwMService;
import cn.timer.api.dao.spmk.SpmkApprovalGMapper;
import cn.timer.api.dao.spmk.SpmkApprovalTemplateGMapper;
......@@ -55,7 +54,6 @@ import cn.timer.api.dao.spmk.SpmkApproveSummaryMapper;
import cn.timer.api.dao.spmk.SpmkCustomApprovalMapper;
import cn.timer.api.dao.spmk.SpmkExecutorMapper;
import cn.timer.api.dao.spmk.SpmkInitiatorConfigMapper;
import cn.timer.api.dao.yggl.YgglMainEmpMapper;
import cn.timer.api.dto.spmk.ApprovingDto;
import cn.timer.api.dto.spmk.FlowChildren;
import cn.timer.api.dto.spmk.FromData;
......@@ -74,6 +72,7 @@ import cn.timer.api.utils.router.business.SpmkAssoBusinessFactory;
import cn.timer.api.utils.router.enums.ApproveEnum;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.models.auth.In;
@Api(tags = "3.0审批模块")
@RestController
......@@ -81,7 +80,7 @@ import io.swagger.annotations.ApiOperation;
@RequestMapping(value = "/spmk",
produces = { "application/json","multipart/form-data" })
//@BindingResultCtrol(title = "发起审批")
public class SpmkServiceImpl {
public class SpmkController {
@Autowired
private SpmkApprovalTemplateGMapper spmkApprovalTemplateGMapper;
......@@ -158,7 +157,7 @@ public class SpmkServiceImpl {
@PostMapping(value = "/save_approval_template")
@ApiOperation(value = "5.新增或编辑-审批模板", httpMethod = "POST", notes = "新增或编辑-审批模板")
@ApiOperationSupport(order = 5)
public Result<Object> saveAt(@RequestBody SpmkApprovalTemplateDto spmkApprovalTemplateDto){
public Result<Object> saveAt(@Valid @RequestBody SpmkApprovalTemplateDto spmkApprovalTemplateDto,BindingResult bindingResult){
Integer approvalTemplateGId = spmkApprovalTemplateDto.getApprovalTemplateGId();
if (ObjectUtil.isNull(approvalTemplateGId))
return ResultUtil.error("操作失败!-1");
......@@ -168,7 +167,7 @@ public class SpmkServiceImpl {
// 克隆 SpmkApprovalTemplateDto对象 到 SpmkApprovalTemplate对象,排除属性froms,router
BeanUtil.copyProperties(spmkApprovalTemplateDto, at , "froms","router");
// 序列化 后 写入 SpmkApprovalTemplate对象
at.setFroms(ObjectUtil.serialize(spmkApprovalTemplateDto.getFroms()));
at.setFroms(ObjectUtil.serialize((List<JSONObject>)spmkApprovalTemplateDto.getFroms()));
at.setRouter(ObjectUtil.serialize(spmkApprovalTemplateDto.getRouter()));
if (!at.insertOrUpdate())
......@@ -196,12 +195,17 @@ public class SpmkServiceImpl {
/**
* id查询-审批模板
*/
@GetMapping(value = "/select_approval_template")
@GetMapping(value = "/select_approval_template/{id}")
@ApiOperation(value = "7.id查询-审批模板", httpMethod = "GET", notes = "id查询-审批模板")
@ApiOperationSupport(order = 7)
public Result<Object> selectAtById(@PathVariable int id){
return ResultUtil.data(SpmkApprovalTemplate.builder().id(id).build().selectById(),"操作成功!");
SpmkApprovalTemplate at = SpmkApprovalTemplate.builder().id(id).build().selectById();
SpmkApprovalTemplateDto atd = SpmkApprovalTemplateDto.builder().build();
BeanUtil.copyProperties(at, atd,"froms","router");
atd.setFroms(ObjectUtil.deserialize(at.getFroms()));
atd.setRouter(ObjectUtil.deserialize(at.getRouter()));
return ResultUtil.data(atd,"操作成功!");
}
......@@ -294,7 +298,7 @@ public class SpmkServiceImpl {
@ApiOperation(value = "13.新增或编辑-自定义审批", httpMethod = "POST", notes = "新增或编辑-自定义审批")
@ApiOperationSupport(order = 13)
@Transactional(rollbackFor = Exception.class)
public Result<Object> saveCa(@RequestBody SpmkCustomApprovalDto spmkCustomApprovalDto) throws Exception{
public Result<Object> saveCa(@Valid @RequestBody SpmkCustomApprovalDto spmkCustomApprovalDto,BindingResult bindingResult) throws Exception{
Integer approvalGId = spmkCustomApprovalDto.getApprovalGId();
if (ObjectUtil.isNull(approvalGId))
return ResultUtil.error("操作失败!-1");
......@@ -372,12 +376,13 @@ public class SpmkServiceImpl {
@ApiOperationSupport(order = 15)
public Result<Object> selectCaById(@PathVariable int id){
SpmkCustomApproval ca = SpmkCustomApproval.builder().id(id).build().selectById();
List<SpmkInitiatorConfig> listIc = SpmkInitiatorConfig.builder().build().selectList(new QueryWrapper<SpmkInitiatorConfig>().lambda().eq(SpmkInitiatorConfig::getCustomApprovalId, id));
SpmkCustomApprovalDto caD = SpmkCustomApprovalDto.builder()
.froms(ObjectUtil.deserialize(ca.getFroms()))
.router(ObjectUtil.deserialize(ca.getRouter()))
.build();
BeanUtil.copyProperties(ca, caD,"froms","router");
caD.setInitiatorConfigs(listIc);
return ResultUtil.data(caD,"操作成功!");
}
......@@ -514,6 +519,9 @@ public class SpmkServiceImpl {
SpmkApproveDetail ad = spmkApproveDetailMapper.selectOne(new QueryWrapper<SpmkApproveDetail>().lambda().eq(SpmkApproveDetail::getApproveSummaryId, id));
SpmkApproveDetailDto adD = SpmkApproveDetailDto.builder().build();
if (ad == null) {
return ResultUtil.data(adD, "操作成功!");
}
List<SpmkApproveExecuteRecord> listAer = spmkApproveExecuteRecordMapper.selectListByAsId(id);
BeanUtil.copyProperties(ad, adD, "requestData","froms","router","spmkApproveExecuteRecord");
adD.setRequestData(ObjectUtil.deserialize(ad.getRequestData()));
......@@ -644,6 +652,8 @@ public class SpmkServiceImpl {
@ApiOperationSupport(order = 90)
public Result<Object> deleteApprovalData(@CurrentUser UserBean userBean){
spmkApprovalGMapper.delete(null);
spmkCustomApprovalMapper.delete(null);
spmkApproveSummaryMapper.delete(null);
spmkApproveDetailMapper.delete(null);
spmkApproveExecuteRecordMapper.delete(null);
......@@ -663,5 +673,19 @@ public class SpmkServiceImpl {
return ResultUtil.data(spmkIcons,"获取图标列表成功");
}
@Autowired
SpmkServiceImpl SpmkService;
//TODO 测试-生成 审批组 和 自定义审批
@GetMapping(value = "/test")
@ApiOperation(value = "98.测试-生成 审批组 和 自定义审批", httpMethod = "GET", notes = "测试-生成 审批组 和 自定义审批")
@ApiOperationSupport(order = 98)
public Result<List<SpmkIcon>> createCustomApproval(@RequestParam Integer orgCode){
SpmkService.createCustomApproval(orgCode);
List<SpmkIcon> spmkIcons = SpmkIcon.builder().build().selectAll();
return ResultUtil.data(spmkIcons,"获取图标列表成功");
}
}
package cn.timer.api.controller.spmk.service;
public interface SpmkService {
boolean createCustomApproval(Integer orgCode);
}
package cn.timer.api.controller.spmk.service;
import java.util.ArrayList;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.lang.Console;
import cn.timer.api.bean.spmk.SpmkApprovalG;
import cn.timer.api.bean.spmk.SpmkApprovalTemplate;
import cn.timer.api.bean.spmk.SpmkApprovalTemplateG;
import cn.timer.api.bean.spmk.SpmkCustomApproval;
import cn.timer.api.dao.spmk.SpmkCustomApprovalMapper;
@Service
public class SpmkServiceImpl implements SpmkService{
@Autowired
SpmkCustomApprovalMapper spmkCustomApprovalMapper;
/**
* 根据orgCode查数据库 审批模板 生成 自定义模板
* orgCode 企业id
*/
@Override
public boolean createCustomApproval(Integer orgCode) {
// TODO Auto-generated method stub
List<SpmkApprovalTemplateG> listAtg = SpmkApprovalTemplateG.builder().build()
.selectList(new QueryWrapper<SpmkApprovalTemplateG>().lambda().orderByAsc(SpmkApprovalTemplateG::getId));
List<SpmkApprovalG> listAG = new ArrayList<SpmkApprovalG>(listAtg.size());
for (SpmkApprovalTemplateG spmkApprovalTemplateG : listAtg) {
SpmkApprovalG saG = SpmkApprovalG.builder().build();
BeanUtil.copyProperties(spmkApprovalTemplateG, saG, "id","update_time");
saG.setOrgCode(orgCode);
listAG.add(saG);
}
Console.log(listAG);
SpmkCustomApproval sca = SpmkCustomApproval.builder().build();
List<SpmkApprovalTemplate> listAt = new ArrayList<SpmkApprovalTemplate>();
for (int i = 0,n = listAG.size(); i < n; i++) {
boolean b = listAG.get(i).insert();
if (b) {
listAt = SpmkApprovalTemplate.builder().build().selectList(new QueryWrapper<SpmkApprovalTemplate>()
.lambda()
.eq(SpmkApprovalTemplate::getApprovalTemplateGId, listAtg.get(i).getId()).orderByAsc(SpmkApprovalTemplate::getId));
for (SpmkApprovalTemplate spmkApprovalTemplate : listAt) {
BeanUtil.copyProperties(spmkApprovalTemplate, sca, "id","approval_template_g_id","update_time","create_time");
sca.setOrgCode(orgCode);
sca.setApprovalGId(listAG.get(i).getId());
sca.setIsAllvisible(1);
sca.insert();
}
}
}
return true;
}
}
......@@ -173,7 +173,6 @@ public class YgglController {
loginInfo.setEntryTime(ygglMainEmp.getRzTime());
loginInfo.setRegularTime(ygglMainEmp.getRzTime());
}
return ResultUtil.data(loginInfo, "操作成功!");
}
......
......@@ -39,9 +39,9 @@ public class ZzglBmgwMServiceImpl implements ZzglBmgwMService {
YgglMainEmp one = new LambdaQueryChainWrapper<YgglMainEmp>(ygglMainEmpMapper)
.select(YgglMainEmp::getBmgwId)
.eq(YgglMainEmp::getOrgCode, orgCode).eq(YgglMainEmp::getEmpNum, empNum).one();
Integer getId = one.getBmgwId();
Integer getId = one != null ? one.getBmgwId() : null;
System.out.println(getId);
Set<Integer> all = empNumupdept2(lanzi, bmgws, getId);
Set<Integer> all = one != null ? empNumupdept2(lanzi, bmgws, getId) : new HashSet<Integer>();
all.add(getId);
return ListUtil.toList(all);
}
......
package cn.timer.api.dto.spmk;
import java.util.Date;
import java.util.List;
import javax.persistence.Entity;
import javax.validation.constraints.DecimalMax;
import javax.validation.constraints.DecimalMin;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import cn.hutool.json.JSONObject;
import io.swagger.annotations.ApiModelProperty;
......@@ -20,12 +26,15 @@ public class SpmkApprovalTemplateDto {
@ApiModelProperty(value = "编号 编号", example = "101")
private Integer id;
@NotNull(message = "approvalTemplateGId为空")
@ApiModelProperty(value = "审批模板组id 当前用户ID", example = "101")
private Integer approvalTemplateGId;
@NotBlank(message = "iconUrl为空")
@ApiModelProperty(value = "审批图标地址 ", example = "审批图标地址")
private String iconUrl;
@NotBlank(message = "name为空")
@ApiModelProperty(value = "审批名称 ", example = "审批名称")
private String name;
......@@ -38,6 +47,7 @@ public class SpmkApprovalTemplateDto {
@ApiModelProperty(value = "排序 由于区分关键字,命名后缀加s", example = "101")
private Integer ranks;
@NotBlank(message = "isOpinion为空 是否必填 意见 0是 1否")
@ApiModelProperty(value = "审批意见 是否必填 意见 0是 1否", example = "101")
private Integer isOpinion;
......@@ -47,12 +57,17 @@ public class SpmkApprovalTemplateDto {
@ApiModelProperty(value = "创建时间 ", example = "创建时间")
private Date createTime;
@NotNull(message = "assoType为空")
@DecimalMax(value = "9",message = "assoType 只能为 0无 1转正 2离职 3调岗 4招聘 5加班 6请假 7出差 8外出 9补卡 ")
@DecimalMin(value = "0",message = "assoType 只能为 0无 1转正 2离职 3调岗 4招聘 5加班 6请假 7出差 8外出 9补卡 ")
@ApiModelProperty(value = "关联类型 0无 1转正 2离职 3调岗 4加班 5请假 6出差 7外出 8补卡 9调薪", example = "1")
private Integer assoType;
@NotEmpty(message = "froms为空")
@ApiModelProperty(value = "审批表单 ", example = "审批表单")
private JSONObject froms;
private List<JSONObject> froms;
@NotNull(message = "router为空")
@ApiModelProperty(value = "审批流程 ", example = "审批流程")
private Router router;
......
......@@ -36,9 +36,9 @@ public class SpmkApproveSummaryDto{
private String initiator;
@NotNull(message = "assoType为空")
@DecimalMax(value = "9",message = "assoType 只能为 0无 1转正 2离职 3调岗 4加班 5请假 6出差 7外出 8补卡 9调薪")
@DecimalMin(value = "0",message = "assoType 只能为 0无 1转正 2离职 3调岗 4加班 5请假 6出差 7外出 8补卡 9调薪")
@ApiModelProperty(value = "关联类型 0无 1转正 2离职 3调岗 4加班 5请假 6出差 7外出 8补卡 9调薪", example = "1")
@DecimalMax(value = "9",message = "assoType 只能为 0无 1转正 2离职 3调岗 4招聘 5加班 6请假 7出差 8外出 9补卡 ")
@DecimalMin(value = "0",message = "assoType 只能为 0无 1转正 2离职 3调岗 4招聘 5加班 6请假 7出差 8外出 9补卡 ")
@ApiModelProperty(value = "关联类型 0无 1转正 2离职 3调岗 4招聘 5加班 6请假 7出差 8外出 9补卡", example = "1")
private Integer assoType;
@NotNull(message = "requestData为空")
......
......@@ -6,6 +6,8 @@ import java.util.List;
import javax.validation.constraints.DecimalMax;
import javax.validation.constraints.DecimalMin;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import cn.hutool.json.JSONObject;
import cn.timer.api.bean.spmk.SpmkInitiatorConfig;
......@@ -27,7 +29,7 @@ public class SpmkCustomApprovalDto {
@ApiModelProperty(value = "企业组织代码 企业组织代码", example = "101")
private Integer orgCode;
@NotBlank(message = "approvalGId为空")
@NotNull(message = "approvalGId为空")
@ApiModelProperty(value = "审批组id 当前用户ID", example = "101")
private Integer approvalGId;
......@@ -48,7 +50,6 @@ public class SpmkCustomApprovalDto {
@ApiModelProperty(value = "排序 排序", example = "101")
private Integer ranks;
@NotBlank(message = "isOpinion为空")
@ApiModelProperty(value = "审批意见 是否必填 意见 0是 1否", example = "101")
private Integer isOpinion;
......@@ -58,27 +59,27 @@ public class SpmkCustomApprovalDto {
@ApiModelProperty(value = "创建时间 ", example = "创建时间")
private Date createTime;
@NotBlank(message = "assoType为空")
@DecimalMax(value = "9",message = "assoType 只能为 0无 1转正 2离职 3调岗 4加班 5请假 6出差 7外出 8补卡 9调薪")
@DecimalMin(value = "0",message = "assoType 只能为 0无 1转正 2离职 3调岗 4加班 5请假 6出差 7外出 8补卡 9调薪")
@ApiModelProperty(value = "关联类型 0无 1转正 2离职 3调岗 4加班 5请假 6出差 7外出 8补卡 9调薪", example = "1")
@NotNull(message = "assoType为空")
@DecimalMax(value = "9",message = "assoType 只能为 0无 1转正 2离职 3调岗 4招聘 5加班 6请假 7出差 8外出 9补卡 ")
@DecimalMin(value = "0",message = "assoType 只能为 0无 1转正 2离职 3调岗 4招聘 5加班 6请假 7出差 8外出 9补卡 ")
@ApiModelProperty(value = "关联类型 0无 1转正 2离职 3调岗 4招聘 5加班 6请假 7出差 8外出 9补卡", example = "1")
private Integer assoType;
@NotBlank(message = "isAllvisible为空")
@DecimalMax(value = "1",message = "isAllvisible 只能为 0否 1是")
@DecimalMin(value = "0",message = "isAllvisible 只能为 0否 1是")
@ApiModelProperty(value = "所有可见 0否 1是", example = "1")
@NotNull(message = "isAllvisible为空")
@DecimalMax(value = "1",message = "isAllvisible 只能为 0部分可见 1所有可见 2禁用")
@DecimalMin(value = "0",message = "isAllvisible 只能为 0部分可见 1所有可见 2禁用")
@ApiModelProperty(value = "可见范围 0部分可见 1所有可见 2禁用", example = "1")
private Integer isAllvisible;
@NotBlank(message = "froms为空")
@NotEmpty(message = "froms为空")
@ApiModelProperty(value = "审批表单 ", example = "审批表单")
private List<JSONObject> froms;
@NotBlank(message = "router为空")
@NotNull(message = "router为空")
@ApiModelProperty(value = "审批流程 ", example = "审批流程")
private Router router;
@NotBlank(message = "initiatorConfigs为空")
@NotNull(message = "initiatorConfigs为空")
@ApiModelProperty(value = "可见发起人配置 ", example = "数组类型")
private List<SpmkInitiatorConfig> initiatorConfigs;
......
......@@ -100,7 +100,7 @@ public class RouterUtils {
listUser.get(i).setExecute(EXECUTING);
// 首次发起申请时,写入 审批人名称 至 obj 中
if (isFirse) {
obj.put("current_approver", listUser.get(i).getName());
obj.set("current_approver", listUser.get(i).getName());
}
break user;
......@@ -121,8 +121,11 @@ public class RouterUtils {
List<Relation> listRelations = router.getRelation();
for (int i = 0; i < listRelations.size(); i++) {
// 装配 部门人员
if (RELATION_TYPE_DEPARTMENT.equals(listRelations.get(i).getType())) {
List<YgglMainEmp> listYgglMainEmp = selectOtherlistent(Integer.parseInt(obj.get("orgCode",FromData.class).getValue()), Integer.valueOf(listRelations.get(i).getDepartmentId()));
if (RELATION_TYPE_DEPARTMENT.equals(listRelations.get(i).getType()) && listRelations.get(i).getDepartmentId() != null) {
Console.log("listRelations-----------"+ listRelations);
Console.log("obj-----------"+ obj);
List<YgglMainEmp> listYgglMainEmp = selectOtherlistent(Integer.parseInt(obj.get("orgCode",FromData.class).getValue().trim()), Integer.valueOf(listRelations.get(i).getDepartmentId().trim()));
System.out.println(listYgglMainEmp);
......@@ -547,7 +550,6 @@ public class RouterUtils {
aer2.insert();
for (int i_user2 = 0,n_user2 = listUser.size(); i_user2 < n_user2; i_user2++) {
User u = listUser.get(i_user2);
SpmkExecutor executor = SpmkExecutor.builder()
.approveExecuteRecordId(aer2.getId())
.empNum(Integer.parseInt(listUser.get(i_user2).getId()))
......
......@@ -185,7 +185,7 @@
<delete id="delete">
<!-- <delete id="delete">
DELETE FROM jxgl_admin_jcsz
WHERE id = #{id}
</delete>
......@@ -207,7 +207,7 @@
<select id="pageListCount" resultType="java.lang.Integer">
SELECT count(1)
FROM jxgl_admin_jcsz
</select>
</select> -->
</mapper>
\ No newline at end of file
......@@ -249,7 +249,7 @@
</trim>
</insert>
<delete id="delete" >
<!-- <delete id="delete" >
DELETE FROM jxgl_admin_kpzsz
WHERE id = #{id}
</delete>
......@@ -302,7 +302,7 @@
<select id="pageListCount" resultType="java.lang.Integer">
SELECT count(1)
FROM jxgl_admin_kpzsz
</select>
</select> -->
</mapper>
\ No newline at end of file
......@@ -186,7 +186,7 @@
</trim>
</insert>
<delete id="delete" >
<!-- <delete id="delete" >
DELETE FROM jxgl_admin_zbk
WHERE id = #{id}
</delete>
......@@ -232,7 +232,7 @@
<select id="pageListCount" resultType="java.lang.Integer">
SELECT count(1)
FROM jxgl_admin_zbk
</select>
</select> -->
</mapper>
\ No newline at end of file
......@@ -308,7 +308,7 @@
</trim>
</insert>
<delete id="delete" >
<!-- <delete id="delete" >
DELETE FROM sbgjj_admin_cbry
WHERE id = #{id}
</delete>
......@@ -355,7 +355,7 @@
<select id="pageListCount" resultType="java.lang.Integer">
SELECT count(1)
FROM sbgjj_admin_cbry
</select>
</select> -->
</mapper>
\ No newline at end of file
......@@ -132,7 +132,7 @@
</trim>
</insert>
<delete id="delete" >
<!-- <delete id="delete" >
DELETE FROM sbgjj_asso_cbfa
WHERE id = #{id}
</delete>
......@@ -173,6 +173,6 @@
SELECT count(1)
FROM sbgjj_asso_cbfa
</select>
-->
</mapper>
\ No newline at end of file
......@@ -126,7 +126,7 @@
</foreach>
</insert>
<insert id="insert" parameterType="cn.timer.api.bean.sbgjj.SbgjjAssoCbfzmx" useGeneratedKeys="true" keyProperty="id">
<!-- <insert id="insert" parameterType="cn.timer.api.bean.sbgjj.SbgjjAssoCbfzmx" useGeneratedKeys="true" keyProperty="id">
INSERT INTO sbgjj_asso_cbfzmx
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test ='null != xz'>
......@@ -288,6 +288,6 @@
SELECT count(1)
FROM sbgjj_asso_cbfzmx
</select>
-->
</mapper>
\ No newline at end of file
......@@ -236,7 +236,7 @@
</trim>
</insert>
<delete id="delete" >
<!-- <delete id="delete" >
DELETE FROM sbgjj_asso_yjzd
WHERE id = #{id}
</delete>
......@@ -280,7 +280,7 @@
<select id="pageListCount" resultType="java.lang.Integer">
SELECT count(1)
FROM sbgjj_asso_yjzd
</select>
</select> -->
</mapper>
\ No newline at end of file
......@@ -99,7 +99,7 @@
</select>
<insert id="insert" useGeneratedKeys="true" keyColumn="id" parameterType="cn.timer.api.bean.sbgjj.SbgjjTypeDetails">
<!-- <insert id="insert" useGeneratedKeys="true" keyColumn="id" parameterType="cn.timer.api.bean.sbgjj.SbgjjTypeDetails">
INSERT INTO sbgjj_type_details
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test ='null != name'>
......@@ -233,7 +233,7 @@
<select id="pageListCount" resultType="java.lang.Integer">
SELECT count(1)
FROM sbgjj_type_details
</select>
</select> -->
</mapper>
\ No newline at end of file
......@@ -28,7 +28,7 @@
</sql>
<insert id="insert" useGeneratedKeys="true" keyColumn="id" parameterType="cn.timer.api.bean.sbgjj.SbgjjYjCsbh">
<!-- <insert id="insert" useGeneratedKeys="true" keyColumn="id" parameterType="cn.timer.api.bean.sbgjj.SbgjjYjCsbh">
INSERT INTO sbgjj_yj_csbh
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test ='null != cityCode'>
......@@ -92,7 +92,7 @@
<select id="pageListCount" resultType="java.lang.Integer">
SELECT count(1)
FROM sbgjj_yj_csbh
</select>
</select> -->
</mapper>
\ No newline at end of file
......@@ -106,7 +106,7 @@
AND type IN (2,3) GROUP BY custom_approval_id
</if>
) OR b.is_allvisible = 1)
AND b.is_allvisible <![CDATA[ <> ]]> 2
WHERE a.org_code = #{org_code}
ORDER BY a.ranks, b.ranks
......
......@@ -52,9 +52,9 @@
b.is_opinion SpmkApprovalTemplate_is_opinion,
b.update_time SpmkApprovalTemplate_update_time,
b.create_time SpmkApprovalTemplate_create_time,
b.asso_type SpmkApprovalTemplate_asso_type,
b.asso_type SpmkApprovalTemplate_asso_type<!-- ,
b.froms SpmkApprovalTemplate_froms,
b.router SpmkApprovalTemplate_router
b.router SpmkApprovalTemplate_router -->
</sql>
<select id="selectListAtInAtg" resultMap="BaseResultMapDto">
......
......@@ -66,7 +66,7 @@
and xzs.xzyf = #{xzyf}
</select>
<insert id="insert" parameterType="cn.timer.api.bean.xcgl.XcglAdminXzz" useGeneratedKeys="true" keyProperty="id">
<!-- <insert id="insert" parameterType="cn.timer.api.bean.xcgl.XcglAdminXzz" useGeneratedKeys="true" keyProperty="id">
INSERT INTO xcgl_admin_xzz
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test ='null != name'>
......@@ -179,7 +179,7 @@
<select id="pageListCount" resultType="java.lang.Integer">
SELECT count(1)
FROM xcgl_admin_xzz
</select>
</select> -->
</mapper>
\ No newline at end of file
......@@ -160,7 +160,7 @@
</trim>
</insert>
<delete id="delete" >
<!-- <delete id="delete" >
DELETE FROM xcgl_asso_gztsz
WHERE id = #{id}
</delete>
......@@ -202,7 +202,7 @@
<select id="pageListCount" resultType="java.lang.Integer">
SELECT count(1)
FROM xcgl_asso_gztsz
</select>
</select> -->
</mapper>
\ No newline at end of file
......@@ -124,7 +124,7 @@
</insert>
<insert id="insert" useGeneratedKeys="true" keyColumn="id" parameterType="cn.timer.api.bean.xcgl.XcglAssoGztzt">
<!-- <insert id="insert" useGeneratedKeys="true" keyColumn="id" parameterType="cn.timer.api.bean.xcgl.XcglAssoGztzt">
INSERT INTO xcgl_asso_gztzt
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test ='null != userid'>
......@@ -224,6 +224,6 @@
SELECT count(1)
FROM xcgl_asso_gztzt
</select>
-->
</mapper>
\ No newline at end of file
......@@ -249,11 +249,6 @@
</trim>
</insert>
<delete id="delete" >
DELETE FROM xcgl_asso_jsgzzx
WHERE id = #{id}
</delete>
<update id="jsgzzxupdate" parameterType="cn.timer.api.bean.xcgl.XcglAssoJsgzzx">
UPDATE xcgl_asso_jsgzzx
<set>
......@@ -274,6 +269,10 @@
WHERE id = #{id}
</update>
<!-- <delete id="delete" >
DELETE FROM xcgl_asso_jsgzzx
WHERE id = #{id}
</delete>
<select id="load" resultMap="BaseResultMap">
SELECT <include refid="Base_Column_List" />
......@@ -290,7 +289,7 @@
<select id="pageListCount" resultType="java.lang.Integer">
SELECT count(1)
FROM xcgl_asso_jsgzzx
</select>
</select> -->
</mapper>
\ No newline at end of file
......@@ -131,7 +131,7 @@
</trim>
</insert>
<delete id="delete" >
<!-- <delete id="delete" >
DELETE FROM xcgl_asso_jxgz
WHERE id = #{id}
</delete>
......@@ -165,7 +165,7 @@
<select id="pageListCount" resultType="java.lang.Integer">
SELECT count(1)
FROM xcgl_asso_jxgz
</select>
</select> -->
<select id="selectPayrollGroupList" resultMap="PayGroupedDataMap">
select jxgz.id as zid,
......
......@@ -184,10 +184,6 @@
</trim>
</insert>
<delete id="delete" >
DELETE FROM xcgl_asso_xzb
WHERE id = #{id}
</delete>
<update id="ModifyImportedSalary" parameterType="cn.timer.api.bean.xcgl.XcglAssoXzb">
UPDATE xcgl_asso_xzb
......@@ -196,6 +192,11 @@
and xzyf = #{xzyf}
and xzxid = #{xzxid}
</update>
<!-- <delete id="delete" >
DELETE FROM xcgl_asso_xzb
WHERE id = #{id}
</delete>
<update id="update" parameterType="cn.timer.api.bean.xcgl.XcglAssoXzb">
UPDATE xcgl_asso_xzb
......@@ -225,7 +226,7 @@
<select id="pageListCount" resultType="java.lang.Integer">
SELECT count(1)
FROM xcgl_asso_xzb
</select>
</select> -->
</mapper>
\ No newline at end of file
......@@ -116,7 +116,7 @@
</trim>
</insert>
<delete id="delete" >
<!-- <delete id="delete" >
DELETE FROM xcgl_asso_xzdadx
WHERE id = #{id}
</delete>
......@@ -152,6 +152,6 @@
SELECT count(1)
FROM xcgl_asso_xzdadx
</select>
-->
</mapper>
\ No newline at end of file
......@@ -42,6 +42,13 @@
</insert>
<delete id="Recorddelete" >
DELETE FROM xcgl_asso_xzdaz
WHERE xzdadxid = #{xzdadxid}
</delete>
<!--
<insert id="insert" useGeneratedKeys="true" keyColumn="id" parameterType="cn.timer.api.bean.xcgl.XcglAssoXzdaz">
INSERT INTO xcgl_asso_xzdaz
<trim prefix="(" suffix=")" suffixOverrides=",">
......@@ -67,12 +74,8 @@
</if>
</trim>
</insert>
<delete id="Recorddelete" >
DELETE FROM xcgl_asso_xzdaz
WHERE xzdadxid = #{xzdadxid}
</delete>
<delete id="delete" >
DELETE FROM xcgl_asso_xzdaz
WHERE id = #{id}
......@@ -104,7 +107,7 @@
<select id="pageListCount" resultType="java.lang.Integer">
SELECT count(1)
FROM xcgl_asso_xzdaz
</select>
</select> -->
</mapper>
\ No newline at end of file
......@@ -137,10 +137,10 @@
</trim>
</insert>
<delete id="delete" >
<!-- <delete id="delete" >
DELETE FROM xcgl_asso_xzdazdy
WHERE id = #{id}
</delete>
</delete> -->
<update id="dazdyupdate" parameterType="cn.timer.api.bean.xcgl.XcglAssoXzdazdy">
UPDATE xcgl_asso_xzdazdy
......@@ -154,7 +154,7 @@
WHERE id = #{id}
</update>
<!--
<select id="load" resultMap="BaseResultMap">
SELECT <include refid="Base_Column_List" />
FROM xcgl_asso_xzdazdy
......@@ -170,7 +170,7 @@
<select id="pageListCount" resultType="java.lang.Integer">
SELECT count(1)
FROM xcgl_asso_xzdazdy
</select>
</select> -->
<select id="selectFixedSalaryStaff" resultMap="FixedSalaryStaffMap">
select emp.emp_num empnum,
......
......@@ -91,7 +91,7 @@
</delete>
<insert id="insert" useGeneratedKeys="true" keyColumn="id" parameterType="cn.timer.api.bean.xcgl.XcglAssoXzury">
<!-- <insert id="insert" useGeneratedKeys="true" keyColumn="id" parameterType="cn.timer.api.bean.xcgl.XcglAssoXzury">
INSERT INTO xcgl_asso_xzury
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test ='null != xzzid'>
......@@ -149,6 +149,6 @@
SELECT count(1)
FROM xcgl_asso_xzury
</select>
-->
</mapper>
\ No newline at end of file
......@@ -150,10 +150,10 @@
</trim>
</insert>
<delete id="delete" >
<!-- <delete id="delete" >
DELETE FROM xcgl_asso_zxfjkc
WHERE id = #{id}
</delete>
</delete> -->
<update id="updateXcglAssoZxfjkc" parameterType="cn.timer.api.bean.xcgl.XcglAssoZxfjkc">
UPDATE xcgl_asso_zxfjkc
......@@ -173,7 +173,7 @@
</update>
<select id="load" resultMap="BaseResultMap">
<!-- <select id="load" resultMap="BaseResultMap">
SELECT <include refid="Base_Column_List" />
FROM xcgl_asso_zxfjkc
WHERE id = #{id}
......@@ -189,6 +189,6 @@
SELECT count(1)
FROM xcgl_asso_zxfjkc
</select>
-->
</mapper>
\ No newline at end of file
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