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<List<ApprovalRuleMeasureRespDTO>> listMeasure(ContextCacheUser currentUser, ApprovalRuleItemMeasureQuery query) {
|
List<ApprovalRuleItemMeasure> list = approvalRuleItemMeasureService.list(query);
|
List<ApprovalRuleMeasureRespDTO> 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<List<ApprovalRuleMeasurePageRespDTO>> listMeasureByPage(ContextCacheUser currentUser, PageQuery<ApprovalRuleItemMeasureQuery> query) {
|
|
Page<ApprovalRuleItemMeasure> page = new Page<>(query.getPageIndex(), query.getPageSize());
|
List<ApprovalRuleItemMeasure> list = approvalRuleItemMeasureService.listBypage(page,query.getSearchParams());
|
List<ApprovalRuleMeasurePageRespDTO> 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);
|
}
|
}
|