diff --git a/src/main/java/cn/timer/api/aspect/BindingResultAspect.java b/src/main/java/cn/timer/api/aspect/BindingResultAspect.java index 0011b82..21089cf 100644 --- a/src/main/java/cn/timer/api/aspect/BindingResultAspect.java +++ b/src/main/java/cn/timer/api/aspect/BindingResultAspect.java @@ -7,11 +7,7 @@ import java.util.List; import org.aspectj.lang.JoinPoint; import org.aspectj.lang.ProceedingJoinPoint; import org.aspectj.lang.Signature; -import org.aspectj.lang.annotation.Around; -import org.aspectj.lang.annotation.Aspect; -import org.aspectj.lang.annotation.Pointcut; import org.aspectj.lang.reflect.MethodSignature; -import org.springframework.stereotype.Component; import org.springframework.validation.BeanPropertyBindingResult; import org.springframework.validation.ObjectError; @@ -25,12 +21,12 @@ import cn.timer.api.aspect.lang.bean.ValidationError; import cn.timer.api.utils.ResultUtil; /** - * 校验信息返回 + * 校验信息返回-(闲置) * * @author TZQ */ -@Aspect -@Component +//@Aspect +//@Component public class BindingResultAspect { // @annotation配置织入点 @@ -40,7 +36,7 @@ public class BindingResultAspect { // } // execution 配置织入点 -匹配 cn.timer.api.controller 包下的所有子包的类的方法 - @Pointcut("execution(* cn.timer.api.controller.spmk.*.*(..))") +// @Pointcut("execution(* cn.timer.api.controller.spmk.*.*(..))") public void clazzPointCut(){ } @@ -53,45 +49,41 @@ public class BindingResultAspect { // } // @Around("bindingResultPointCut() && args(..,bindingResult)") - @Around("clazzPointCut()") - public Object doAround(ProceedingJoinPoint joinPoint) throws Throwable { - Long startTime = System.currentTimeMillis(); - Object retVal; - Object[] objs = joinPoint.getArgs(); - List<Object> listObj = CollectionUtil.toList(objs); - BeanPropertyBindingResult optional = (BeanPropertyBindingResult)listObj.stream() - .filter(p -> "BeanPropertyBindingResult".equals(ClassUtil.getClassName(p, true))) - .findFirst() - .orElse(null); - if(optional != null && optional.hasErrors()){ - List<ObjectError> ls = optional.getAllErrors(); - List<ValidationError> listVe = new ArrayList<ValidationError>(); - ValidationError ve; - for (ObjectError one : ls) { - - String fieldString = one.getCodes().length >= 1 ? one.getCodes()[0] : ""; - if (fieldString != null) { - fieldString = fieldString.substring(fieldString.lastIndexOf(".") + 1); - } - -// for (String str : one.getCodes()) { -// System.err.println(str); +// @Around("clazzPointCut()") +// public Object doAround(ProceedingJoinPoint joinPoint) throws Throwable { +// Long startTime = System.currentTimeMillis(); +// Object retVal; +// Object[] objs = joinPoint.getArgs(); +// List<Object> listObj = CollectionUtil.toList(objs); +// BeanPropertyBindingResult optional = (BeanPropertyBindingResult)listObj.stream() +// .filter(p -> "BeanPropertyBindingResult".equals(ClassUtil.getClassName(p, true))) +// .findFirst() +// .orElse(null); +// if(optional != null && optional.hasErrors()){ +// List<ObjectError> ls = optional.getAllErrors(); +// List<ValidationError> listVe = new ArrayList<ValidationError>(); +// ValidationError ve; +// for (ObjectError one : ls) { +// +// String fieldString = one.getCodes().length >= 1 ? one.getCodes()[0] : ""; +// if (fieldString != null) { +// fieldString = fieldString.substring(fieldString.lastIndexOf(".") + 1); // } - - ve = ValidationError.builder().field(fieldString).msg(one.getDefaultMessage()).build(); - listVe.add(ve); - - } - retVal = ResultUtil.error(listVe); - }else { - retVal = joinPoint.proceed(joinPoint.getArgs()); - } - Console.log("返回内容 {}: " ,JSONObject.toJSONString(retVal)); - Long endtime = System.currentTimeMillis(); - Console.log("执行耗时为{}:" ,endtime-startTime + "ms"); - - return retVal; - } +// +// ve = ValidationError.builder().field(fieldString).msg(one.getDefaultMessage()).build(); +// listVe.add(ve); +// +// } +// retVal = ResultUtil.error(listVe); +// }else { +// retVal = joinPoint.proceed(joinPoint.getArgs()); +// } +// Console.log("返回内容 {}: " ,JSONObject.toJSONString(retVal)); +// Long endtime = System.currentTimeMillis(); +// Console.log("执行耗时为{}:" ,endtime-startTime + "ms"); +// +// return retVal; +// } protected void handleDataScope(final JoinPoint joinPoint) { diff --git a/src/main/java/cn/timer/api/config/enuminterface/YgEnumInterface.java b/src/main/java/cn/timer/api/config/enuminterface/YgEnumInterface.java index 93052d4..e8be24a 100644 --- a/src/main/java/cn/timer/api/config/enuminterface/YgEnumInterface.java +++ b/src/main/java/cn/timer/api/config/enuminterface/YgEnumInterface.java @@ -18,7 +18,7 @@ import cn.timer.api.dto.yggl.YgbintuDto; import lombok.Getter; /** - * @date 2020年3月23日 + * @date 2020年3月23日 * @author 翁东州 * @方法中文名称: */ @@ -28,29 +28,32 @@ public interface YgEnumInterface { * 男女 */ @Getter - enum sex implements YgEnumInterface{ - MAN(0,"男"),WOMAN(1,"女"); - + enum sex implements YgEnumInterface { + MAN(0, "男"), WOMAN(1, "女"); + private Integer type; private String name; - + sex(Integer type, String name) { this.type = type; this.name = name; } + public static String isMan(String index) { - sex mow = (index == null || index.length() == 0) ? sex.MAN : (index.indexOf(sex.MAN.name)!= -1)||(index.indexOf(sex.MAN.type)!= -1) ? sex.MAN:sex.WOMAN; - return mow.type.toString(); + sex mow = (index == null || index.length() == 0) ? sex.MAN + : (index.indexOf(sex.MAN.name) != -1) || (index.indexOf(sex.MAN.type) != -1) ? sex.MAN : sex.WOMAN; + return mow.type.toString(); } } + /** * 员工类型 */ @Getter - enum YgJobType implements YgEnumInterface{ - QUANZHI(0, "全"),SHIXI(1, "实习"),JIANZHI(2, "兼"),LWPQ(3, "劳务派遣"), - LAOWU(4, "劳务"),PAIQIAN(5, "派遣"),WAIBAO(6, "外包"),TUIXIU(7, "退休"); + enum YgJobType implements YgEnumInterface { + QUANZHI(0, "全"), SHIXI(1, "实习"), JIANZHI(2, "兼"), LWPQ(3, "劳务派遣"), LAOWU(4, "劳务"), PAIQIAN(5, "派遣"), + WAIBAO(6, "外包"), TUIXIU(7, "退休"); private Integer type; @@ -63,45 +66,49 @@ public interface YgEnumInterface { public static String choose(String index) { YgJobType result = YgJobType.QUANZHI; - if(index == null || index.length() == 0) return result.type.toString(); + if (index == null || index.length() == 0) + return result.type.toString(); for (YgJobType item : YgJobType.values()) { - if (index.indexOf(item.getType()) !=-1 ||index.indexOf(item.getName()) !=-1 ) result = item; + if (index.indexOf(item.getType()) != -1 || index.indexOf(item.getName()) != -1) + result = item; } return result.type.toString(); } } - + /** * 员工状态 */ @Getter - enum jobStatus implements YgEnumInterface{ - SHIYONG(0,"试用"),ZHENSHI(1,"正式"),LIZHIZHONG(2,"离职中"),YILIZHI(3,"已离职"); - + enum jobStatus implements YgEnumInterface { + SHIYONG(0, "试用"), ZHENSHI(1, "正式"), LIZHIZHONG(2, "离职中"), YILIZHI(3, "已离职"); + private Integer type; private String name; - + jobStatus(Integer type, String name) { this.type = type; this.name = name; } + public static String isZhen(String index) { - jobStatus zos = (index == null || index.length() == 0) ? YgEnumInterface.jobStatus.ZHENSHI: (index.indexOf(jobStatus.ZHENSHI.name)!= -1)||(index.indexOf(jobStatus.ZHENSHI.type)!= -1) ? jobStatus.ZHENSHI:jobStatus.SHIYONG; + jobStatus zos = (index == null || index.length() == 0) ? YgEnumInterface.jobStatus.ZHENSHI + : (index.indexOf(jobStatus.ZHENSHI.name) != -1) || (index.indexOf(jobStatus.ZHENSHI.type) != -1) + ? jobStatus.ZHENSHI + : jobStatus.SHIYONG; return zos.type.toString(); } - - + } - + /** * 入职日期 */ @Getter - enum rzTime implements YgEnumInterface{ - ZHEN("--","yyyy-M-d"),XIE("//","yyyy/M/d"), - DIAN("..","yyyy.M.d"),NYR("年月日","yyyy年M月d日"); - + enum rzTime implements YgEnumInterface { + ZHEN("--", "yyyy-M-d"), XIE("//", "yyyy/M/d"), DIAN("..", "yyyy.M.d"), NYR("年月日", "yyyy年M月d日"); + private String type; private String name; @@ -110,124 +117,151 @@ public interface YgEnumInterface { this.type = type; this.name = name; } - + public static String tranTime(String index) { - //String str ="2013/11/12"; + // String str ="2013/11/12"; if (index == null) { return null; } - + String p = "年|月|日|号|时|/|//-"; String result = index.replaceAll(p, "-"); String p2 = "-$"; String result2 = result.replaceAll(p2, ""); return result2; } - - - /* - * public static String tranTime(String index) { DateFormat zhenFormat = new - * SimpleDateFormat(ZHEN.name); String result = zhenFormat.format(new Date()); - * if (index == null || index.length() == 0) return result; Pattern pattern = - * Pattern.compile("^[0-9]{8}$"); if (pattern.matcher(index).matches()) { result - * = index.substring(0, 4) + "-" + index.substring(4, 6) + "-" + - * index.substring(6, 8); return result; } String s = - * index.replaceAll("([1-9]+[0-9]*|0)(\\.[\\d]+)?", ""); for (rzTime item : - * rzTime.values()) { if (s.indexOf(item.type) != -1) { DateFormat dateFormat = - * new SimpleDateFormat(item.name); try { result = new - * SimpleDateFormat(ZHEN.name).format(dateFormat.parse(index)); return result; } - * catch (ParseException e) { e.printStackTrace(); return result; } } } return - * result; } - */ - - - + +// public static String tranTime(String index) { +// DateFormat zhenFormat = new SimpleDateFormat(ZHEN.name); +// String result = zhenFormat.format(new Date()); +// if (index == null || index.length() == 0) +// return result; +// Pattern pattern = Pattern.compile("^[0-9]{8}$"); +// if (pattern.matcher(index).matches()) { +// result = index.substring(0, 4) + "-" + index.substring(4, 6) + "-" + index.substring(6, 8); +// return result; +// } +// String s = index.replaceAll("([1-9]+[0-9]*|0)(\\.[\\d]+)?", ""); +// for (rzTime item : rzTime.values()) { +// if (s.indexOf(item.type) != -1) { +// DateFormat dateFormat = new SimpleDateFormat(item.name); +// try { +// result = new SimpleDateFormat(ZHEN.name).format(dateFormat.parse(index)); +// return result; +// } catch (ParseException e) { +// e.printStackTrace(); +// return result; +// } +// } +// } +// return result; +// } + public static String tranTime2(String result) { - String isYear ="^(?:(?!0000)[0-9]{4} -(?:(?:0[1-9]|1[0-2]) -(?:0[1-9]|1[0-9]|2[0-8]) |(?:0[13-9]|1[0-2]) -(?:29|30) |(?:0[13578]|1[02]) -31 )|(?:[0-9]{2}(?:0[48]|[2468][048]|[13579][26])|(?:0[48]|[2468][048]|[13579][26])00) -02 -29 )$"; + String isYear = "^(?:(?!0000)[0-9]{4} -(?:(?:0[1-9]|1[0-2]) -(?:0[1-9]|1[0-9]|2[0-8]) |(?:0[13-9]|1[0-2]) -(?:29|30) |(?:0[13578]|1[02]) -31 )|(?:[0-9]{2}(?:0[48]|[2468][048]|[13579][26])|(?:0[48]|[2468][048]|[13579][26])00) -02 -29 )$"; Pattern pattern = Pattern.compile(isYear); if (pattern.matcher(result).matches()) { return result; - }else { - result = new SimpleDateFormat(ZHEN.name).format(new Date()); + } else { + result = new SimpleDateFormat(ZHEN.name).format(new Date()); return result; } - + } } + /** * 试用期 */ @Getter - enum syq implements YgEnumInterface{ - ZERO(0,"无"),ONE(1,"一"),TWO(2,"二"),THREE(3,"三"),FOUR(4,"四"),FIVE(5,"五"),SIX(6,"六"); - + enum syq implements YgEnumInterface { + ZERO(0, "无"), ONE(1, "一"), TWO(2, "二"), THREE(3, "三"), FOUR(4, "四"), FIVE(5, "五"), SIX(6, "六"); + private Integer type; private String name; - + syq(Integer type, String name) { this.type = type; this.name = name; } + public static String choose(String index) { syq result = syq.ZERO; - if (index == null || index.length() == 0) result.type.toString(); + if (index == null || index.length() == 0) + result.type.toString(); for (syq item : syq.values()) { - if (index.indexOf(item.getName()) !=-1 ||index.indexOf(item.getType()) !=-1 ) result=item; + if (index.indexOf(item.getName()) != -1 || index.indexOf(item.getType()) != -1) + result = item; } return result.type.toString(); } } - + /** * 工龄 */ @Getter - enum workage implements YgEnumInterface{ - //NEW(0,183),HALF(1,365),ONE(2,548),ONEHALF(3,730),TWO(4,913),LONG(5,10000); - NEW(0,30,0),ROOKIE(31,183,0),HALF(184,365,0),ONE(366,548,0),ONEHALF(549,730,0),TWO(731,1000,0),LONG(1001,10000,0); + enum workage implements YgEnumInterface { + // NEW(0,183),HALF(1,365),ONE(2,548),ONEHALF(3,730),TWO(4,913),LONG(5,10000); + NEW(0, 30, 0), ROOKIE(31, 183, 0), HALF(184, 365, 0), ONE(366, 548, 0), ONEHALF(549, 730, 0), TWO(731, 1000, 0), + LONG(1001, 10000, 0); + private Integer begin; private Integer end; private Integer number; - workage(Integer begin, Integer end,Integer number) { + + workage(Integer begin, Integer end, Integer number) { this.begin = begin; this.end = end; this.number = number; } + public static Map<String, Integer> choose(List<YgbintuDto> bintu) { for (YgbintuDto b : bintu) { Integer index = b.getWorkage(); for (workage item : workage.values()) { - if (index>= item.begin && index<=item.end) item.number++; + if (index >= item.begin && index <= item.end) + item.number++; } } Map<String, Integer> result = new HashMap<String, Integer>(); result.put("本月新入职", NEW.number); - result.put("x<0.5", NEW.number+ROOKIE.number); + result.put("x<0.5", NEW.number + ROOKIE.number); result.put("0.5<x<1", HALF.number); result.put("1<x<1.5", ONE.number); result.put("1.5<x<2", ONEHALF.number); result.put("2<x<3", TWO.number); result.put("x++", LONG.number); - NEW.number=0;ROOKIE.number=0;HALF.number=0;ONE.number=0;ONEHALF.number=0;TWO.number=0;LONG.number=0; + NEW.number = 0; + ROOKIE.number = 0; + HALF.number = 0; + ONE.number = 0; + ONEHALF.number = 0; + TWO.number = 0; + LONG.number = 0; return result; } } + /** * 年龄 */ @Getter - enum age implements YgEnumInterface{ - //NEW(0,183),HALF(1,365),ONE(2,548),ONEHALF(3,730),TWO(4,913),LONG(5,10000); - CHILD(1,17,0),TEEN(18,25,0),YOUNG(26,32,0),MAN(33,38,0),MIDDLE(39,45,0),OLD(46,1000,0); + enum age implements YgEnumInterface { + // NEW(0,183),HALF(1,365),ONE(2,548),ONEHALF(3,730),TWO(4,913),LONG(5,10000); + CHILD(1, 17, 0), TEEN(18, 25, 0), YOUNG(26, 32, 0), MAN(33, 38, 0), MIDDLE(39, 45, 0), OLD(46, 1000, 0); + private Integer begin; private Integer end; private Integer number; - age(Integer begin, Integer end,Integer number) { + + age(Integer begin, Integer end, Integer number) { this.begin = begin; this.end = end; this.number = number; } + public static Map<String, Integer> choose(List<YgbintuDto> bintu) { Integer average = 0; Integer i = 0; @@ -235,7 +269,9 @@ public interface YgEnumInterface { for (YgbintuDto b : bintu) { Integer index = b.getAge(); for (; i < age.values().length; i++) { - if (index>= age.values()[i].begin && index<=age.values()[i].end) age.values()[i].number++;j++; + if (index >= age.values()[i].begin && index <= age.values()[i].end) + age.values()[i].number++; + j++; } average = average + index; } @@ -246,9 +282,14 @@ public interface YgEnumInterface { result.put("32-38", MAN.number); result.put("38-45", MIDDLE.number); result.put("45以上", OLD.number); - Integer pInjun = j>0 ?(average/j) :0; + Integer pInjun = j > 0 ? (average / j) : 0; result.put("平均年龄", pInjun); - CHILD.number =0;TEEN.number=0;YOUNG.number=0;MAN.number=0;MIDDLE.number=0;OLD.number=0; + CHILD.number = 0; + TEEN.number = 0; + YOUNG.number = 0; + MAN.number = 0; + MIDDLE.number = 0; + OLD.number = 0; return result; } } diff --git a/src/main/java/cn/timer/api/config/exception/GlobalExceptionHandler.java b/src/main/java/cn/timer/api/config/exception/GlobalExceptionHandler.java index 04cb09e..0035ea3 100644 --- a/src/main/java/cn/timer/api/config/exception/GlobalExceptionHandler.java +++ b/src/main/java/cn/timer/api/config/exception/GlobalExceptionHandler.java @@ -1,11 +1,19 @@ package cn.timer.api.config.exception; +import java.util.ArrayList; +import java.util.List; + import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.validation.ObjectError; +import org.springframework.web.bind.MethodArgumentNotValidException; import org.springframework.web.bind.annotation.ExceptionHandler; import org.springframework.web.bind.annotation.RestControllerAdvice; import cn.hutool.core.util.StrUtil; +import cn.hutool.json.JSONObject; +import cn.hutool.json.JSONUtil; +import cn.timer.api.aspect.lang.bean.ValidationError; import cn.timer.api.utils.Result; import cn.timer.api.utils.ResultUtil; @@ -57,4 +65,31 @@ public class GlobalExceptionHandler { } return ResultUtil.error(e.getCode(), e.getMessage()); } + + /** + * 自定义验证异常 + */ + @ExceptionHandler(MethodArgumentNotValidException.class) + public Object validExceptionHandler(MethodArgumentNotValidException e) + { +// log.error("1--------"+e.getMessage()); +// log.error("2--------"+JSONUtil.parse(e.getBindingResult().getAllErrors())); +// String message = e.getBindingResult().getFieldError().getDefaultMessage(); +// String field = e.getBindingResult().getFieldError().getField(); + List<ObjectError> ls = e.getBindingResult().getAllErrors(); + List<ValidationError> listVe = new ArrayList<ValidationError>(); + ValidationError ve; + for (ObjectError one : ls) { + + String fieldString = one.getCodes().length >= 1 ? one.getCodes()[0] : ""; + if (fieldString != null) { + fieldString = fieldString.substring(fieldString.lastIndexOf(".") + 1); + } + + ve = ValidationError.builder().field(fieldString).msg(one.getDefaultMessage()).build(); + listVe.add(ve); + + } + return ResultUtil.error(listVe); + } } diff --git a/src/main/java/cn/timer/api/config/exception/ValidationMsg.java b/src/main/java/cn/timer/api/config/exception/ValidationMsg.java new file mode 100644 index 0000000..084f58e --- /dev/null +++ b/src/main/java/cn/timer/api/config/exception/ValidationMsg.java @@ -0,0 +1,24 @@ +package cn.timer.api.config.exception; + +public class ValidationMsg { + + public static final String NULL = "参数必须为空"; + public static final String NOTNULL = "参数值不能为空"; + public static final String NOTEMPTY = "参数值不能为空"; + public static final String NOTBLANK = "参数键值不能为空"; + public static final String ASSERTTRUE = "参数值必须为true"; + public static final String ASSERTFALSE = "参数值必须为false"; + public static final String PATTERN = "参数值格式不符"; + public static final String SIZE = "参数长度不符"; + public static final String MIN = "参数值太小"; + public static final String MAX = "参数值太大"; + public static final String DECIMALMIN = "参数值太小"; + public static final String DECIMALMAX = "参数值太大"; + public static final String DIGITS = "参数值大小不在有效范围内"; + public static final String PAST = "参数值必须为过去日期"; + public static final String FUTURE = "参数值必须为未来日期"; + public static final String EMAIL = "参数值格式必须为邮箱地址"; + public static final String LENGTH = "参数值长度不在有效范围内"; + public static final String RANGE = "参数值不在有效范围内"; + +} diff --git a/src/main/java/cn/timer/api/config/interceptor/MyConfiguration.java b/src/main/java/cn/timer/api/config/interceptor/MyConfiguration.java index 66f8528..3069a1a 100644 --- a/src/main/java/cn/timer/api/config/interceptor/MyConfiguration.java +++ b/src/main/java/cn/timer/api/config/interceptor/MyConfiguration.java @@ -22,9 +22,10 @@ public class MyConfiguration { // 创建配置类 FastJsonConfig config = new FastJsonConfig(); config.setSerializerFeatures( - SerializerFeature.WriteNullListAsEmpty, - SerializerFeature.WriteMapNullValue, - SerializerFeature.WriteNullStringAsEmpty + SerializerFeature.PrettyFormat +// SerializerFeature.WriteNullListAsEmpty, +// SerializerFeature.WriteMapNullValue, +// SerializerFeature.WriteNullStringAsEmpty ); //此处是全局处理方式 diff --git a/src/main/java/cn/timer/api/config/interceptor/WebSecurityConfig.java b/src/main/java/cn/timer/api/config/interceptor/WebSecurityConfig.java index 182236f..efb1987 100644 --- a/src/main/java/cn/timer/api/config/interceptor/WebSecurityConfig.java +++ b/src/main/java/cn/timer/api/config/interceptor/WebSecurityConfig.java @@ -75,7 +75,7 @@ public class WebSecurityConfig implements WebMvcConfigurer { // 2.添加fastJson的配置信息,比如,是否需要格式化返回的json数据 FastJsonConfig fastJsonConfig = new FastJsonConfig(); // 时间格式化 - // fastJsonConfig.setDateFormat("yyyy-MM-dd HH:mm:ss"); + fastJsonConfig.setDateFormat("yyyy-MM-dd HH:mm:ss"); // fastJsonConfig.setDateFormat("yyyy-MM-dd"); // 空值特别处理 // WriteNullListAsEmpty 将Collection类型字段的字段空值输出为[] diff --git a/src/main/java/cn/timer/api/controller/spmk/SpmkController.java b/src/main/java/cn/timer/api/controller/spmk/SpmkController.java index b99575c..8e10849 100644 --- a/src/main/java/cn/timer/api/controller/spmk/SpmkController.java +++ b/src/main/java/cn/timer/api/controller/spmk/SpmkController.java @@ -9,6 +9,8 @@ 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.annotation.Validated; +import org.springframework.web.bind.MethodArgumentNotValidException; import org.springframework.web.bind.annotation.DeleteMapping; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; @@ -167,7 +169,7 @@ public class SpmkController { @PostMapping(value = "/save_approval_template") @ApiOperation(value = "5.新增或编辑-审批模板", httpMethod = "POST", notes = "新增或编辑-审批模板") @ApiOperationSupport(order = 5) - public Result<Object> saveAt(@Valid @RequestBody SpmkApprovalTemplateDto spmkApprovalTemplateDto,BindingResult bindingResult){ + public Result<Object> saveAt(@Validated @RequestBody SpmkApprovalTemplateDto spmkApprovalTemplateDto){ Integer approvalTemplateGId = spmkApprovalTemplateDto.getApprovalTemplateGId(); if (ObjectUtil.isNull(approvalTemplateGId)) return ResultUtil.error("操作失败!-1"); @@ -415,8 +417,7 @@ public class SpmkController { @ApiOperation(value = "17.发起审批", httpMethod = "POST", notes = "发起审批") @ApiOperationSupport(order = 17) @Transactional(rollbackFor = Exception.class) -// @BindingResultCtrol(title = "发起审批") - public Result<Object> saveCa(@CurrentUser UserBean userBean,@Valid @RequestBody SpmkApproveSummaryDto spmkApproveSummaryDto,BindingResult bindingResult) throws Exception{ + public Result<Object> saveCa(@CurrentUser UserBean userBean,@Validated @RequestBody SpmkApproveSummaryDto spmkApproveSummaryDto) throws Exception{ YgglMainEmp ygglMainEmp = YgglMainEmp.builder().build().selectOne(new QueryWrapper<YgglMainEmp>() .lambda() .select(YgglMainEmp::getHeadUrl,YgglMainEmp::getName) @@ -545,7 +546,7 @@ public class SpmkController { @Transactional(rollbackFor = Exception.class) @ApiOperationSupport(order = 20) // @BindingResultCtrol(title = "审批人审批") - public Result<Object> approving(@Valid @RequestBody ApprovingDto approvingDto, BindingResult bindingResult) throws Exception { + public Result<Object> approving(@Validated @RequestBody ApprovingDto approvingDto) throws Exception { SpmkApproveDetail ad = SpmkApproveDetail.builder().build().selectOne(new QueryWrapper<SpmkApproveDetail>() .lambda() .select(SpmkApproveDetail::getId, @@ -615,7 +616,7 @@ public class SpmkController { @PostMapping(value = "/select_my_approve") @ApiOperation(value = "21.查询列表-我审批的/抄送我的-分页", httpMethod = "POST", notes = "查询列表-我审批的-关键字、审批状态、发起时间-分页") @ApiOperationSupport(order = 21) - public Result<Object> selectMyAs(@CurrentUser UserBean userBean, @RequestBody MySummaryQueryDto mySummaryQueryDto) { + public Result<Object> selectMyAs(@CurrentUser UserBean userBean, @Validated @RequestBody MySummaryQueryDto mySummaryQueryDto) throws MethodArgumentNotValidException{ IPage<SpmkApproveSummary> page = new Page<SpmkApproveSummary>( mySummaryQueryDto.getCurrentPage() == null ? 1 : mySummaryQueryDto.getCurrentPage(), mySummaryQueryDto.getTotalPage() == null ? 10 : mySummaryQueryDto.getTotalPage()); @@ -625,7 +626,6 @@ public class SpmkController { IPage<SpmkApproveSummary> pageAs = spmkApproveSummaryMapper.selectPageByQueryForEmpNum(page, mySummaryQueryDto); List<SpmkApproveSummary> listAs = pageAs.getRecords(); - return ResultUtil.data(pageAs, listAs, "操作成功!"); } @@ -681,7 +681,6 @@ public class SpmkController { @ApiOperation(value = "90.(开发使用)删除-审批数据", httpMethod = "DELETE", notes = "审批组、自定义审批、审批汇总、审批详情、审批执行记录、审批执行人记录 所有数据") @ApiOperationSupport(order = 90) public Result<Object> deleteApprovalData(@CurrentUser UserBean userBean){ - spmkApprovalGMapper.delete(null); spmkCustomApprovalMapper.delete(null); spmkApproveSummaryMapper.delete(null); diff --git a/src/main/java/cn/timer/api/controller/yggl/YgglController.java b/src/main/java/cn/timer/api/controller/yggl/YgglController.java index 1309627..2184c8a 100644 --- a/src/main/java/cn/timer/api/controller/yggl/YgglController.java +++ b/src/main/java/cn/timer/api/controller/yggl/YgglController.java @@ -1548,7 +1548,7 @@ public class YgglController { updateWrapper.eq("emp_num", empNum); UpdateWrapper<YgglMainLzb> updateWrapper1 = new UpdateWrapper<YgglMainLzb>(); updateWrapper1.eq("emp_num", empNum); - YgglMainEmp.builder().empNum(lzygQueryDto.getEmpNum()).jobStatus(3).build().update(updateWrapper); + YgglMainEmp.builder().empNum(lzygQueryDto.getEmpNum()).jobStatus(YgEnumInterface.jobStatus.LIZHIZHONG.getType()).build().update(updateWrapper); YgglMainLzb.builder().jobStatus(YgEnumInterface.jobStatus.LIZHIZHONG.getType()).lzTime(lzygQueryDto.getLzTime()) .lzyy(lzygQueryDto.getLzyy()).lzbz(lzygQueryDto.getLzbz()).build().update(updateWrapper1); @@ -1816,7 +1816,7 @@ public class YgglController { @ApiOperation(value = "查询员工列表", httpMethod = "GET", notes = "接口发布说明") @ApiOperationSupport(order = 62) public Result<List<YgQueryDto>> queryEmpMessage(@CurrentUser UserBean userBean) { - List<YgQueryDto> ygQueryDto = ygglMainEmpMapper.queryEmpMessage(userBean); + List<YgQueryDto> ygQueryDto = ygglMainEmpMapper.queryEmpMessage(userBean.getOrgCode()); for (YgQueryDto yg : ygQueryDto) { if (StringUtil.isEmpty(yg.getHeadUrl())) { yg.setHeadUrl(""); diff --git a/src/main/java/cn/timer/api/dao/yggl/YgglMainEmpMapper.java b/src/main/java/cn/timer/api/dao/yggl/YgglMainEmpMapper.java index 6931f99..a7d2aac 100644 --- a/src/main/java/cn/timer/api/dao/yggl/YgglMainEmpMapper.java +++ b/src/main/java/cn/timer/api/dao/yggl/YgglMainEmpMapper.java @@ -2,6 +2,7 @@ package cn.timer.api.dao.yggl; import java.util.List; +import org.apache.ibatis.annotations.Param; import org.springframework.stereotype.Repository; import org.springframework.web.bind.annotation.PathVariable; @@ -46,7 +47,7 @@ public interface YgglMainEmpMapper extends BaseMapper<YgglMainEmp> { * @param userBean * @return */ - List<YgQueryDto> queryEmpMessage(UserBean userBean); + List<YgQueryDto> queryEmpMessage(@Param("orgCode") Integer orgCode); /** diff --git a/src/main/java/cn/timer/api/dto/spmk/ApprovingDto.java b/src/main/java/cn/timer/api/dto/spmk/ApprovingDto.java index a87e4dc..53c0ef2 100644 --- a/src/main/java/cn/timer/api/dto/spmk/ApprovingDto.java +++ b/src/main/java/cn/timer/api/dto/spmk/ApprovingDto.java @@ -2,6 +2,7 @@ package cn.timer.api.dto.spmk; import javax.validation.constraints.NotNull; +import cn.timer.api.config.exception.ValidationMsg; import io.swagger.annotations.ApiModelProperty; import lombok.AllArgsConstructor; import lombok.Builder; @@ -14,22 +15,22 @@ import lombok.NoArgsConstructor; @AllArgsConstructor public class ApprovingDto { - @NotNull(message = "asId为空") + @NotNull(message = ValidationMsg.NOTNULL) @ApiModelProperty(value = "审批汇总id", example = "2", required = true) private Integer asId; - @NotNull(message = "executeRecordId为空") + @NotNull(message = ValidationMsg.NOTNULL) @ApiModelProperty(value = "审批执行记录id", example = "10", required = true) private Integer executeRecordId; - @NotNull(message = "executorId为空") + @NotNull(message = ValidationMsg.NOTNULL) @ApiModelProperty(value = "执行人记录id", example = "10", required = true) private Integer executorId; @ApiModelProperty(value = "意见", example = "同意、拒绝") private String opinion; - @NotNull(message = "sts为空") + @NotNull(message = ValidationMsg.NOTNULL) @ApiModelProperty(value = "状态 2同意 3拒绝 4转派", example = "2", required = true) private Integer sts; diff --git a/src/main/java/cn/timer/api/dto/spmk/MySummaryQueryDto.java b/src/main/java/cn/timer/api/dto/spmk/MySummaryQueryDto.java index 3172332..805ea1d 100644 --- a/src/main/java/cn/timer/api/dto/spmk/MySummaryQueryDto.java +++ b/src/main/java/cn/timer/api/dto/spmk/MySummaryQueryDto.java @@ -2,9 +2,11 @@ package cn.timer.api.dto.spmk; import javax.validation.constraints.DecimalMax; import javax.validation.constraints.DecimalMin; +import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotNull; import javax.validation.constraints.Size; +import cn.timer.api.config.exception.ValidationMsg; import cn.timer.api.utils.Page; import io.swagger.annotations.ApiModelProperty; import lombok.AllArgsConstructor; @@ -34,9 +36,9 @@ public class MySummaryQueryDto extends Page{ @ApiModelProperty(value = "结束时间 ", example = "2020-10-10 10:10:10") private String endTime; - @NotNull(message = "type为空") - @DecimalMax(value = "2",message = "type 只能为 0我发起的 1抄送我的 2我审批的") - @DecimalMin(value = "0",message = "type 只能为 0我发起的 1抄送我的 2我审批的") + @NotNull(message = ValidationMsg.NOTNULL) + @DecimalMax(value = "2",message = ValidationMsg.DECIMALMAX+" 只能为 0我发起的 1抄送我的 2我审批的") + @DecimalMin(value = "0",message = ValidationMsg.DECIMALMIN+" 只能为 0我发起的 1抄送我的 2我审批的") @ApiModelProperty(value = "0我发起的 1抄送我的 2我审批的", example = "0") private Integer type; diff --git a/src/main/java/cn/timer/api/dto/spmk/SpmkApprovalTemplateDto.java b/src/main/java/cn/timer/api/dto/spmk/SpmkApprovalTemplateDto.java index 81b39e8..f7cb1f1 100644 --- a/src/main/java/cn/timer/api/dto/spmk/SpmkApprovalTemplateDto.java +++ b/src/main/java/cn/timer/api/dto/spmk/SpmkApprovalTemplateDto.java @@ -11,6 +11,7 @@ import javax.validation.constraints.NotEmpty; import javax.validation.constraints.NotNull; import cn.hutool.json.JSONObject; +import cn.timer.api.config.exception.ValidationMsg; import io.swagger.annotations.ApiModelProperty; import lombok.AllArgsConstructor; import lombok.Builder; @@ -26,15 +27,15 @@ public class SpmkApprovalTemplateDto { @ApiModelProperty(value = "编号 编号", example = "101") private Integer id; - @NotNull(message = "approvalTemplateGId为空") + @NotNull(message = ValidationMsg.NOTNULL) @ApiModelProperty(value = "审批模板组id 当前用户ID", example = "101") private Integer approvalTemplateGId; - @NotBlank(message = "iconUrl为空") + @NotBlank(message = ValidationMsg.NOTBLANK) @ApiModelProperty(value = "审批图标地址 ", example = "审批图标地址") private String iconUrl; - @NotBlank(message = "name为空") + @NotBlank(message = ValidationMsg.NOTBLANK) @ApiModelProperty(value = "审批名称 ", example = "审批名称") private String name; @@ -47,7 +48,7 @@ public class SpmkApprovalTemplateDto { @ApiModelProperty(value = "排序 由于区分关键字,命名后缀加s", example = "101") private Integer ranks; - @NotBlank(message = "isOpinion为空 是否必填 意见 0是 1否") + @NotBlank(message = ValidationMsg.NOTBLANK) @ApiModelProperty(value = "审批意见 是否必填 意见 0是 1否", example = "101") private Integer isOpinion; @@ -57,17 +58,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补卡 ") + @NotNull(message = ValidationMsg.NOTNULL) + @DecimalMax(value = "9",message = ValidationMsg.DECIMALMAX +" 只能为 0无 1转正 2离职 3调岗 4招聘 5加班 6请假 7出差 8外出 9补卡 ") + @DecimalMin(value = "0",message = ValidationMsg.DECIMALMIN +" 只能为 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为空") + @NotEmpty(message = ValidationMsg.NOTEMPTY) @ApiModelProperty(value = "审批表单 ", example = "审批表单") private List<JSONObject> froms; - @NotNull(message = "router为空") + @NotNull(message = ValidationMsg.NOTNULL) @ApiModelProperty(value = "审批流程 ", example = "审批流程") private Router router; diff --git a/src/main/java/cn/timer/api/dto/spmk/SpmkApproveSummaryDto.java b/src/main/java/cn/timer/api/dto/spmk/SpmkApproveSummaryDto.java index 9ab025e..d176e9a 100644 --- a/src/main/java/cn/timer/api/dto/spmk/SpmkApproveSummaryDto.java +++ b/src/main/java/cn/timer/api/dto/spmk/SpmkApproveSummaryDto.java @@ -8,6 +8,7 @@ import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotNull; import cn.hutool.json.JSONObject; +import cn.timer.api.config.exception.ValidationMsg; import io.swagger.annotations.ApiModelProperty; import lombok.AllArgsConstructor; import lombok.Builder; @@ -23,36 +24,36 @@ import lombok.NoArgsConstructor; @AllArgsConstructor public class SpmkApproveSummaryDto{ - @NotBlank(message = "title为空") + @NotBlank(message = ValidationMsg.NOTBLANK) @ApiModelProperty(value = "标题 ", example = "标题", required = true) private String title; - @NotBlank(message = "approveName为空") + @NotBlank(message = ValidationMsg.NOTBLANK) @ApiModelProperty(value = "审批名称 ", example = "审批名称", required = true) private String approveName; @ApiModelProperty(value = "摘要", example = "摘要", required = true) private String digest; - @NotBlank(message = "initiator为空") + @NotBlank(message = ValidationMsg.NOTBLANK) @ApiModelProperty(value = "发起人名称 ", example = "发起人名称", required = true) 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补卡 ") + @NotNull(message = ValidationMsg.NOTNULL) + @DecimalMax(value = "9",message = ValidationMsg.DECIMALMAX +" 只能为 0无 1转正 2离职 3调岗 4招聘 5加班 6请假 7出差 8外出 9补卡 ") + @DecimalMin(value = "0",message = ValidationMsg.DECIMALMIN +" 只能为 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为空") + @NotNull(message = ValidationMsg.NOTNULL) @ApiModelProperty(value = "申请数据 ", example = "申请数据", required = true) private JSONObject requestData; - @NotNull(message = "froms为空") + @NotNull(message = ValidationMsg.NOTNULL) @ApiModelProperty(value = "审批表单 ", example = "数组", required = true) private List<JSONObject> froms; - @NotNull(message = "router为空") + @NotNull(message = ValidationMsg.NOTNULL) @ApiModelProperty(value = "审批流程", example = "审批流程", required = true) private Router router; diff --git a/src/main/resources/mapping/spmk/SpmkApproveSummaryMapper.xml b/src/main/resources/mapping/spmk/SpmkApproveSummaryMapper.xml index dfee12e..2dfcc4a 100644 --- a/src/main/resources/mapping/spmk/SpmkApproveSummaryMapper.xml +++ b/src/main/resources/mapping/spmk/SpmkApproveSummaryMapper.xml @@ -107,9 +107,9 @@ WHERE a.org_code = #{param.orgCode} <if test="param.query != null and param.query != ''"> and ( - a.title like CONCAT(#{param.query},'%') or - a.initiator like CONCAT(#{param.query},'%') or - a.id like CONCAT(#{param.query},'%') + a.title like CONCAT('%',#{param.query},'%') or + a.initiator like CONCAT('%',#{param.query},'%') or + a.id like CONCAT('%',#{param.query},'%') ) </if> <if test="param.sts != null"> @@ -159,9 +159,9 @@ </if> <if test="param.query != null and param.query != ''"> and ( - a.title like CONCAT(#{param.query},'%') or - a.initiator like CONCAT(#{param.query},'%') or - a.id like CONCAT(#{param.query},'%') + a.title like CONCAT('%',#{param.query},'%') or + a.initiator like CONCAT('%',#{param.query},'%') or + a.id like CONCAT('%',#{param.query},'%') ) </if> <if test="param.startTime != null and param.startTime != ''"> diff --git a/src/main/resources/mapping/yggl/YgglMainEmpMapper.xml b/src/main/resources/mapping/yggl/YgglMainEmpMapper.xml index cf1eba2..8e09c78 100644 --- a/src/main/resources/mapping/yggl/YgglMainEmpMapper.xml +++ b/src/main/resources/mapping/yggl/YgglMainEmpMapper.xml @@ -193,9 +193,9 @@ <!-- 查询员工信息 搜索 分页 --> <select id="queryEmpMessage" resultType="cn.timer.api.dto.yggl.YgQueryDto"> SELECT - a. NAME empName, + a.name empName, a.emp_num empNum, - b. NAME deptName, + b.name deptName, a.rz_time rzTime, a.job_type jobType, a.phone phone,