liuxm
2024-06-06 cda0faf3128ed97e7519d1ca04be079aea64dd93
添加验证和异常处理
6个文件已修改
206 ■■■■■ 已修改文件
pms-parent/pms-global/src/main/java/com/dy/pmsGlobal/aop/ExceptionHandlerAdvice.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pms-parent/pms-global/src/main/java/com/dy/pmsGlobal/pojoPr/PrProductionNode.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pms-parent/pms-global/src/main/java/com/dy/pmsGlobal/pojoPr/PrProductionProcess.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pms-parent/pms-web-product/src/main/java/com/dy/pmsProduct/process/ProcessCtrl.java 53 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pms-parent/pms-web-product/src/main/java/com/dy/pmsProduct/taskPlan/AssemblyPlanCtrl.java 117 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pms-parent/pms-web-product/src/main/java/com/dy/pmsProduct/taskPlan/DevOpsPlanCtrl.java 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pms-parent/pms-global/src/main/java/com/dy/pmsGlobal/aop/ExceptionHandlerAdvice.java
@@ -3,6 +3,7 @@
import com.dy.common.webUtil.BaseResponse;
import com.dy.common.webUtil.BaseResponseUtils;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.MethodArgumentNotValidException;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestControllerAdvice;
@@ -11,6 +12,18 @@
@RestControllerAdvice
@Slf4j
public class ExceptionHandlerAdvice {
    @ExceptionHandler(MethodArgumentNotValidException.class)
    public BaseResponse<?> handleValidationExceptions(MethodArgumentNotValidException ex) {
        log.error("[handleValidationExceptions]", ex);
        StringBuilder sb = new StringBuilder();
        ex.getBindingResult().getAllErrors().forEach(error -> {
//            String fieldName = ((org.springframework.validation.FieldError) error).getField();
            String errorMessage = error.getDefaultMessage();
            sb.append(errorMessage).append(";");
        });
        return BaseResponseUtils.buildException(sb.substring(0, sb.length() - 1));
    }
    /**
     * 处理系统异常,兜底处理所有异常
     */
pms-parent/pms-global/src/main/java/com/dy/pmsGlobal/pojoPr/PrProductionNode.java
@@ -46,25 +46,25 @@
    /**
     * 节点作业内容
     */
    @NotEmpty(message = "节点作业内容不能为空")
    @NotEmpty(message = "请输入节点作业内容")
    public String content;
    /**
     * 是否开始节点,1是,0否
     */
    @NotNull(message = "是否开始节点不能为空")
    @NotNull(message = "请选择是否生产开始")
    public Boolean isStart;
    /**
     * 是否结束节点,1是,0否
     */
    @NotNull(message = "是否结束节点不能为空")
    @NotNull(message = "请选择是否生产结束")
    public Boolean isEnd;
    /**
     * 是否记录设备周期,1是,0否
     */
    @NotNull(message = "是否记录设备周期不能为空")
    @NotNull(message = "请选择是否记录设备周期")
    public Boolean isRecord;
    /**
pms-parent/pms-global/src/main/java/com/dy/pmsGlobal/pojoPr/PrProductionProcess.java
@@ -37,7 +37,7 @@
     * 产品实体编号
     */
    @JSONField(serializeUsing= ObjectWriterImplToString.class)
    @NotNull(message = "产品不能为空")
    @NotNull(message = "请选择产品")
    public Long proId;
    /**
@@ -49,7 +49,7 @@
    /**
     * 名称
     */
    @NotEmpty(message = "名称不能为空")
    @NotEmpty(message = "请输入名称")
    public String name;
    /**
pms-parent/pms-web-product/src/main/java/com/dy/pmsProduct/process/ProcessCtrl.java
@@ -32,23 +32,13 @@
    /**
     * 保存
     * @param  process
     * @param bindingResult
     * @return
     */
    @PostMapping(path="save")
    @SsoPowerAop(power = "-1")
    @Log("保存生产流程")
    public BaseResponse<Boolean> save(@RequestBody @Valid PrProductionProcess process, BindingResult bindingResult){
        if (bindingResult != null && bindingResult.hasErrors()) {
            return BaseResponseUtils.buildFail(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage());
        }
        int count;
        try {
            count = sv.save(process);
        }catch (Exception e){
            log.error("保存生产流程异常", e);
            return BaseResponseUtils.buildException(e.getMessage());
        }
    public BaseResponse<Boolean> save(@RequestBody @Valid PrProductionProcess process){
        int count = sv.save(process);
        if (count <= 0) {
            return BaseResponseUtils.buildFail("数据库存储失败");
        } else {
@@ -59,23 +49,13 @@
    /**
     * 更新
     * @param process
     * @param bindingResult
     * @return
     */
    @PostMapping(path="update")
    @SsoPowerAop(power = "-1")
    @Log("更新生产流程")
    public BaseResponse<Boolean> update(@RequestBody @Valid PrProductionProcess process, BindingResult bindingResult){
        int count;
        try {
            if (bindingResult != null && bindingResult.hasErrors()) {
                return BaseResponseUtils.buildFail(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage());
            }
            count = sv.update(process);
        }catch (Exception e){
            log.error("更新生产流程异常", e);
            return BaseResponseUtils.buildException(e.getMessage());
        }
    public BaseResponse<Boolean> update(@RequestBody @Valid PrProductionProcess process){
        int count = sv.update(process);
        if (count <= 0) {
            return BaseResponseUtils.buildFail("数据库存储失败");
        } else {
@@ -91,13 +71,8 @@
    @SsoPowerAop(power = "-1")
    @Log("根据ID查询生产流程")
    public BaseResponse<PrProductionProcess> one(Long id){
        try{
            PrProductionProcess process=sv.selectById(id);
            return BaseResponseUtils.buildSuccess(process);
        }catch (Exception e){
            log.error("根据ID查询生产流程异常", e);
            return BaseResponseUtils.buildException(e.getMessage());
        }
        PrProductionProcess process=sv.selectById(id);
        return BaseResponseUtils.buildSuccess(process);
    }
    /**
@@ -109,13 +84,8 @@
    @SsoPowerAop(power = "-1")
    @Log("分页查询生产流程")
    public BaseResponse<QueryResultVo<List<PrProductionProcess>>> some(@RequestBody QueryVo vo){
        try {
            QueryResultVo<List<PrProductionProcess>> list = sv.selectSome(vo) ;
            return BaseResponseUtils.buildSuccess(list);
        }catch (Exception e){
            log.error("分页查询生产流程异常", e);
            return BaseResponseUtils.buildException(e.getMessage());
        }
        QueryResultVo<List<PrProductionProcess>> list = sv.selectSome(vo) ;
        return BaseResponseUtils.buildSuccess(list);
    }
    /**
@@ -126,11 +96,6 @@
    @SsoPowerAop(power = "-1")
    @Log("查询所有生产流程")
    public BaseResponse<List<Map<String,String>>> queryAll(Long proId){
        try {
            return BaseResponseUtils.buildSuccess(sv.queryAll(proId));
        }catch (Exception e){
            log.error("查询所有生产流程异常", e);
            return BaseResponseUtils.buildException(e.getMessage());
        }
        return BaseResponseUtils.buildSuccess(sv.queryAll(proId));
    }
}
pms-parent/pms-web-product/src/main/java/com/dy/pmsProduct/taskPlan/AssemblyPlanCtrl.java
@@ -41,17 +41,8 @@
    @PostMapping(path="save")
    @SsoPowerAop(power = "-1")
    @Log("保存组装任务计划")
    public BaseResponse<Boolean> save(@RequestBody @Valid PrAssemblyPlan plan, BindingResult bindingResult){
        if (bindingResult != null && bindingResult.hasErrors()) {
            return BaseResponseUtils.buildFail(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage());
        }
        int count;
        try {
            count = sv.save(plan);
        }catch (Exception e){
            log.error("保存组装任务计划异常", e);
            return BaseResponseUtils.buildException(e.getMessage());
        }
    public BaseResponse<Boolean> save(@RequestBody @Valid PrAssemblyPlan plan){
        int count = sv.save(plan);
        if (count <= 0) {
            return BaseResponseUtils.buildFail("数据库存储失败");
        } else {
@@ -62,23 +53,13 @@
    /**
     * 更新
     * @param plan
     * @param bindingResult
     * @return
     */
    @PostMapping(path="update")
    @SsoPowerAop(power = "-1")
    @Log("更新组装任务计划")
    public BaseResponse<Boolean> update(@RequestBody @Valid PrAssemblyPlan plan, BindingResult bindingResult){
        int count;
        try {
            if (bindingResult != null && bindingResult.hasErrors()) {
                return BaseResponseUtils.buildFail(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage());
            }
            count = sv.update(plan);
        }catch (Exception e){
            log.error("更新组装任务计划异常", e);
            return BaseResponseUtils.buildException(e.getMessage());
        }
    public BaseResponse<Boolean> update(@RequestBody @Valid PrAssemblyPlan plan){
        int count = sv.update(plan);
        if (count <= 0) {
            return BaseResponseUtils.buildFail("数据库存储失败");
        } else {
@@ -90,13 +71,7 @@
    @SsoPowerAop(power = "-1")
    @Log("更新任务计划状态")
    public BaseResponse<Boolean> updateStatus(@RequestBody PrAssemblyPlan plan){
        int count;
        try {
            count = sv.updateStatus(plan);
        }catch (Exception e){
            log.error("更新组装任务计划异常", e);
            return BaseResponseUtils.buildException(e.getMessage());
        }
        int count = sv.updateStatus(plan);
        if (count <= 0) {
            return BaseResponseUtils.buildFail("数据库存储失败");
        } else {
@@ -111,13 +86,8 @@
    @SsoPowerAop(power = "-1")
    @Log("根据ID查询组装任务计划")
    public BaseResponse<PrAssemblyPlan> one(Long id){
        try{
            PrAssemblyPlan plan=sv.selectById(id);
            return BaseResponseUtils.buildSuccess(plan);
        }catch (Exception e){
            log.error("根据ID查询组装任务计划异常", e);
            return BaseResponseUtils.buildException(e.getMessage());
        }
        PrAssemblyPlan plan=sv.selectById(id);
        return BaseResponseUtils.buildSuccess(plan);
    }
    /**
@@ -129,13 +99,8 @@
    @SsoPowerAop(power = "-1")
    @Log("分页查询组装任务计划")
    public BaseResponse<QueryResultVo<List<PrAssemblyPlan>>> some(@RequestBody QueryVo vo){
        try {
            QueryResultVo<List<PrAssemblyPlan>> list = sv.selectSome(vo) ;
            return BaseResponseUtils.buildSuccess(list);
        }catch (Exception e){
            log.error("分页查询组装任务计划异常", e);
            return BaseResponseUtils.buildException(e.getMessage());
        }
        QueryResultVo<List<PrAssemblyPlan>> list = sv.selectSome(vo) ;
        return BaseResponseUtils.buildSuccess(list);
    }
    /**
@@ -144,34 +109,24 @@
    @PostMapping(path="addEquip")
    @SsoPowerAop(power = "-1")
    @Log("增加设备号")
    public BaseResponse<Boolean> addEquip(@RequestBody QueryVo vo){
    public BaseResponse<?> addEquip(@RequestBody QueryVo vo){
        if(vo.addNum == null || vo.addNum <= 0 || vo.planId == null){
            return BaseResponseUtils.buildFail("参数错误");
        }
        try {
            int count = sv.addEquip(vo.planId,vo.addNum);
            if (count <= 0) {
                return BaseResponseUtils.buildFail("数据库存储失败");
            } else {
                return BaseResponseUtils.buildSuccess(true);
            }
        }catch (Exception e){
            log.error("增加设备号异常", e);
            return BaseResponseUtils.buildException(e.getMessage());
        int count = sv.addEquip(vo.planId,vo.addNum);
        if (count <= 0) {
            return BaseResponseUtils.buildFail("数据库存储失败");
        } else {
            return BaseResponseUtils.buildSuccess(true);
        }
    }
    @PostMapping(path="someEquip")
    @SsoPowerAop(power = "-1")
    @Log("查询设备号")
    @Log("分页查询设备号")
    public BaseResponse<QueryResultVo<List<PrEquip>>> someEquip(@RequestBody QueryVo queryVo){
        try {
            QueryResultVo<List<PrEquip>> list = sv.selectSomeEquip(queryVo) ;
            return BaseResponseUtils.buildSuccess(list);
        }catch (Exception e){
            log.error("分页查询组装任务计划异常", e);
            return BaseResponseUtils.buildException(e.getMessage());
        }
        QueryResultVo<List<PrEquip>> list = sv.selectSomeEquip(queryVo) ;
        return BaseResponseUtils.buildSuccess(list);
    }
    @GetMapping(path="exportEquip")
@@ -179,26 +134,22 @@
    @Log("导出设备号")
    public void exportEquip(Long batchId, HttpServletResponse response){
        Date start = new Date() ;
        try{
            List<Converter> list = new ArrayList<>();
        List<Converter> list = new ArrayList<>();
            List<PrEquip> equipList = sv.selectEquipByBatchId(batchId) ;
            // 使用并行流提高性能
            equipList.parallelStream().forEach(equip -> {
                ExcelVo vo = new ExcelVo();
                vo.equipNo = equip.equipNo;
                try {
                    vo.qrCode = QrCodeUtil.genQrCode(vo.equipNo);
                } catch (IOException | WriterException e) {
                    e.printStackTrace();
                }
                list.add(vo);
            });
            log.info("导出设备号耗时:"+(new Date().getTime()-start.getTime())+"ms");
            QrCodeUtil.downloadExcel(response, fileName,sheetName,list);
            log.info("导出设备号耗时:"+(new Date().getTime()-start.getTime())+"ms");
        }catch (Exception e){
            log.error("导出设备号异常", e);
        }
        List<PrEquip> equipList = sv.selectEquipByBatchId(batchId) ;
        // 使用并行流提高性能
        equipList.parallelStream().forEach(equip -> {
            ExcelVo vo = new ExcelVo();
            vo.equipNo = equip.equipNo;
            try {
                vo.qrCode = QrCodeUtil.genQrCode(vo.equipNo);
            } catch (IOException | WriterException e) {
                e.printStackTrace();
            }
            list.add(vo);
        });
        log.info("导出设备号耗时:"+(new Date().getTime()-start.getTime())+"ms");
        QrCodeUtil.downloadExcel(response, fileName,sheetName,list);
        log.info("导出设备号耗时:"+(new Date().getTime()-start.getTime())+"ms");
    }
}
pms-parent/pms-web-product/src/main/java/com/dy/pmsProduct/taskPlan/DevOpsPlanCtrl.java
@@ -33,10 +33,7 @@
    @PostMapping(path="save")
    @SsoPowerAop(power = "-1")
    @Log("保存组装任务计划")
    public BaseResponse<Boolean> save(@RequestBody @Valid PrDevOpsPlan plan, BindingResult bindingResult){
        if (bindingResult != null && bindingResult.hasErrors()) {
            return BaseResponseUtils.buildFail(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage());
        }
    public BaseResponse<Boolean> save(@RequestBody @Valid PrDevOpsPlan plan){
        int count = sv.save(plan);
        if (count <= 0) {
            return BaseResponseUtils.buildFail("数据库存储失败");
@@ -48,16 +45,12 @@
    /**
     * 更新
     * @param plan
     * @param bindingResult
     * @return
     */
    @PostMapping(path="update")
    @SsoPowerAop(power = "-1")
    @Log("更新组装任务计划")
    public BaseResponse<Boolean> update(@RequestBody @Valid PrDevOpsPlan plan, BindingResult bindingResult){
        if (bindingResult != null && bindingResult.hasErrors()) {
            return BaseResponseUtils.buildFail(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage());
        }
    public BaseResponse<Boolean> update(@RequestBody @Valid PrDevOpsPlan plan){
        int count = sv.update(plan);
        if (count <= 0) {
            return BaseResponseUtils.buildFail("数据库存储失败");