package com.gkhy.safePlatform.specialWork.service.impl; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.gkhy.safePlatform.commons.co.ContextCacheUser; import com.gkhy.safePlatform.commons.enums.E; import com.gkhy.safePlatform.commons.enums.ResultCodes; import com.gkhy.safePlatform.commons.exception.AusinessException; import com.gkhy.safePlatform.commons.exception.BusinessException; import com.gkhy.safePlatform.commons.query.PageQuery; import com.gkhy.safePlatform.commons.vo.ResultVO; import com.gkhy.safePlatform.commons.vo.SearchResultVO; import com.gkhy.safePlatform.specialWork.entity.ApprovalRuleItemMeasure; import com.gkhy.safePlatform.specialWork.enums.MeasureTypeEnum; import com.gkhy.safePlatform.specialWork.enums.RuleMeasureOptEnum; import com.gkhy.safePlatform.specialWork.enums.RuleMeasureStatusEnum; import com.gkhy.safePlatform.specialWork.enums.WorkTypeEnum; import com.gkhy.safePlatform.specialWork.model.dto.req.*; import com.gkhy.safePlatform.specialWork.model.dto.resp.ApprovalRuleMeasurePageRespDTO; import com.gkhy.safePlatform.specialWork.model.dto.resp.ApprovalRuleMeasureRespDTO; import com.gkhy.safePlatform.specialWork.model.query.db.ApprovalRuleItemMeasureQuery; import com.gkhy.safePlatform.specialWork.service.RuleMeasureService; import com.gkhy.safePlatform.specialWork.service.baseService.ApprovalRuleItemMeasureService; import com.gkhy.safePlatform.specialWork.service.baseService.ApprovalRuleUnitItemService; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.ArrayList; import java.util.List; @Service("ruleMeasureServiceImpl") public class RuleMeasureServiceImpl implements RuleMeasureService { @Autowired private ApprovalRuleItemMeasureService approvalRuleItemMeasureService; @Autowired private ApprovalRuleUnitItemService approvalRuleUnitItemService; @Override public ResultVO saveMeasure(ContextCacheUser currentUser, ApprovalRuleItemMeasureAddReqDTO addReqDTO) { if (!WorkTypeEnum.checkWorkType(addReqDTO.getWorkType())) { throw new AusinessException(E.DATA_PARAM_CHECK_INVALID,"作业类型不合法!"); } if(!MeasureTypeEnum.checkMeasureType(addReqDTO.getType())){ throw new AusinessException(E.DATA_PARAM_CHECK_INVALID,"安全措施类型不合法!"); } ApprovalRuleItemMeasure measure = new ApprovalRuleItemMeasure(); //如果是选择类型,正确值就不能为空 if(addReqDTO.getType().equals(MeasureTypeEnum.TYPE_CHOSE.getType())){ if(null == RuleMeasureOptEnum.parse(addReqDTO.getCorrectVal())){ throw new AusinessException(E.DATA_PARAM_CHECK_INVALID,"正确值不合法!"); } measure.setCorrectVal(addReqDTO.getCorrectVal()); } measure.setContext(addReqDTO.getContext()); measure.setWorkType(addReqDTO.getWorkType()); measure.setType(addReqDTO.getType()); measure.setCreateUid(currentUser.getUid()); measure.setCreateUname(currentUser.getUsername()); int i = approvalRuleItemMeasureService.saveOne(measure); if(i > 0){ return new ResultVO(ResultCodes.OK); } return new ResultVO(ResultCodes.SERVER_ADD_ERROR); } @Override public ResultVO modMeasure(ContextCacheUser currentUser, ApprovalRuleItemMeasureModReqDTO modReqDTO) { if (!WorkTypeEnum.checkWorkType(modReqDTO.getWorkType())) { throw new AusinessException(E.DATA_PARAM_CHECK_INVALID,"作业类型不合法!"); } if(!MeasureTypeEnum.checkMeasureType(modReqDTO.getType())){ throw new AusinessException(E.DATA_PARAM_CHECK_INVALID,"安全措施类型不合法!"); } ApprovalRuleItemMeasure measure = new ApprovalRuleItemMeasure(); //如果是选择类型,正确值就不能为空 if(modReqDTO.getType().equals(MeasureTypeEnum.TYPE_CHOSE.getType())){ if(null == RuleMeasureOptEnum.parse(modReqDTO.getCorrectVal())){ throw new AusinessException(E.DATA_PARAM_CHECK_INVALID,"正确值不合法!"); } measure.setCorrectVal(modReqDTO.getCorrectVal()); } measure.setId(modReqDTO.getId()); measure.setContext(modReqDTO.getContext()); measure.setWorkType(modReqDTO.getWorkType()); measure.setType(modReqDTO.getType()); measure.setModifiedUid(currentUser.getUid()); measure.setModifiedUname(currentUser.getUsername()); int i = approvalRuleItemMeasureService.updateOne(measure); if(i > 0){ return new ResultVO(ResultCodes.OK); } return new ResultVO(ResultCodes.SERVER_UPDATE_ERROR); } @Override public ResultVO deleteByIds(ContextCacheUser currentUser, DeleteForm deleteForm) { //判断是否被审批项绑定 int count = approvalRuleUnitItemService.countByMeasureIds(deleteForm.getIds()); if(count > 0){ throw new AusinessException(E.DATA_BING_RELATION,"存在安全措施被审批项绑定,不可删除!"); } int i = approvalRuleItemMeasureService.updateStatusByIds(deleteForm.getIds()); if(i > 0){ return new ResultVO(ResultCodes.OK); } return new ResultVO(ResultCodes.SERVER_DEL_ERROR); } @Override public ResultVO> listMeasure(ContextCacheUser currentUser, ApprovalRuleItemMeasureQuery query) { List list = approvalRuleItemMeasureService.list(query); List respList = new ArrayList<>(); list.forEach(measure -> { ApprovalRuleMeasureRespDTO respDTO = new ApprovalRuleMeasureRespDTO(); BeanUtils.copyProperties(measure,respDTO); respList.add(respDTO); }); return new ResultVO<>(ResultCodes.OK,respList); } @Override public SearchResultVO> listMeasureByPage(ContextCacheUser currentUser, PageQuery query) { Page page = new Page<>(query.getPageIndex(), query.getPageSize()); List list = approvalRuleItemMeasureService.listBypage(page,query.getSearchParams()); List respList = new ArrayList<>(); list.forEach(measure -> { ApprovalRuleMeasurePageRespDTO respDTO = new ApprovalRuleMeasurePageRespDTO(); BeanUtils.copyProperties(measure,respDTO); respList.add(respDTO); }); return new SearchResultVO<>( true, page.getCurrent(), page.getSize(), page.getPages(), page.getTotal(), respList, ResultCodes.OK); } }