package com.gkhy.safePlatform.emergency.service.impl; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.gkhy.safePlatform.commons.co.ContextCacheUser; import com.gkhy.safePlatform.commons.enums.ResultCodes; import com.gkhy.safePlatform.commons.query.PageQuery; import com.gkhy.safePlatform.commons.utils.BeanCopyUtils; import com.gkhy.safePlatform.commons.utils.StringUtils; import com.gkhy.safePlatform.commons.vo.ResultVO; import com.gkhy.safePlatform.commons.vo.SearchResultVO; import com.gkhy.safePlatform.emergency.entity.*; import com.gkhy.safePlatform.emergency.enums.EmergencyResultCodes; import com.gkhy.safePlatform.emergency.excepiton.EmergencyException; import com.gkhy.safePlatform.emergency.model.dto.req.EmergencyWorkApproveReqDTO; import com.gkhy.safePlatform.emergency.model.dto.resp.EmergencyWorkApproveDetailRespDTO; import com.gkhy.safePlatform.emergency.model.dto.resp.EmergencyWorkApprovePageRespDTO; import com.gkhy.safePlatform.emergency.query.EmergencyWorkApproveQuery; import com.gkhy.safePlatform.emergency.query.db.EmergencyWorkApproveDBQuery; import com.gkhy.safePlatform.emergency.service.EmergencyWorkApproveService; import com.gkhy.safePlatform.emergency.service.baseService.EmergencyWorkApproveInfoService; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.Date; import java.util.List; @Service("emergencyWorkApproveService") public class EmergencyWorkApproveServiceImpl implements EmergencyWorkApproveService { @Autowired private EmergencyWorkApproveInfoService workApproveInfoService; @Override public SearchResultVO> selectWorkApproveList(PageQuery query) { Long pageIndex = query.getPageIndex(); Long pageSize = query.getPageSize(); Page page = new Page<>(pageIndex, pageSize); EmergencyWorkApproveDBQuery EmergencyWorkApproveDBQuery = new EmergencyWorkApproveDBQuery(); if (query.getSearchParams() != null) { BeanUtils.copyProperties(query.getSearchParams(), EmergencyWorkApproveDBQuery); } List emergencyWorkApproveInfoPageDOList = workApproveInfoService.selectWorkApproveList(page, EmergencyWorkApproveDBQuery); List respList = BeanCopyUtils.copyBeanList(emergencyWorkApproveInfoPageDOList, EmergencyWorkApprovePageRespDTO.class); return new SearchResultVO<>( true, pageIndex, pageSize,page.getPages(), page.getTotal(), respList, ResultCodes.OK ); } @Override public ResultVO addWorkApprove(ContextCacheUser currentUser, EmergencyWorkApproveReqDTO EmergencyWorkApproveReqDTO) { // 业务类型 if (EmergencyWorkApproveReqDTO.getRelateType()==null){ throw new EmergencyException(EmergencyResultCodes.APPROVE_RELATE_ID_NULL); } // 业务主表id if (EmergencyWorkApproveReqDTO.getRelateId()==null){ throw new EmergencyException(EmergencyResultCodes.APPROVE_RELATE_TYPE_NULL); } // 审批人 if (EmergencyWorkApproveReqDTO.getApprovePersonId()==null){ throw new EmergencyException(EmergencyResultCodes.APPROVE_PERSON_NULL); } // 审批状态 if (EmergencyWorkApproveReqDTO.getApproveStatus()==null){ throw new EmergencyException(EmergencyResultCodes.APPROVE_STATUS_NULL); } Date nowDate = new Date(); Long uid = currentUser.getUid(); String uName = currentUser.getRealName(); //1.新增应急审批 EmergencyWorkApproveInfo EmergencyWorkApproveInfo = new EmergencyWorkApproveInfo(); BeanUtils.copyProperties(EmergencyWorkApproveReqDTO, EmergencyWorkApproveInfo); EmergencyWorkApproveInfo.setDelFlag(false); EmergencyWorkApproveInfo.setCreateUid(uid); EmergencyWorkApproveInfo.setGmtCreate(nowDate); EmergencyWorkApproveInfo.setSubmitPersonId(uid); EmergencyWorkApproveInfo.setSubmitPersonName(uName); EmergencyWorkApproveInfo.setSort(1); workApproveInfoService.addWorkApprove(EmergencyWorkApproveInfo); return new ResultVO(ResultCodes.OK); } @Override public ResultVO updateWorkApprove(ContextCacheUser currentUser, EmergencyWorkApproveReqDTO emergencyWorkApproveReqDTO) { Date nowDate = new Date(); Long uid = currentUser.getUid(); String uName = currentUser.getRealName(); // 更新原审批记录 EmergencyWorkApproveInfo emergencyWorkApproveInfo = new EmergencyWorkApproveInfo(); emergencyWorkApproveInfo.setId(emergencyWorkApproveReqDTO.getId()); emergencyWorkApproveInfo.setUpdateUid(uid); emergencyWorkApproveInfo.setGmtModitify(nowDate); emergencyWorkApproveInfo.setApproveStatus(emergencyWorkApproveReqDTO.getApproveStatus()); emergencyWorkApproveInfo.setApproveResult(emergencyWorkApproveReqDTO.getApproveResult()); emergencyWorkApproveInfo.setApproveMemo(emergencyWorkApproveReqDTO.getApproveMemo()); workApproveInfoService.updateWorkApprove(emergencyWorkApproveInfo); //新增下级审批记录 if (emergencyWorkApproveReqDTO.getApproveStatus() == 2){ EmergencyWorkApproveInfo newEmergencyWorkApproveInfo = new EmergencyWorkApproveInfo(); BeanUtils.copyProperties(emergencyWorkApproveReqDTO,newEmergencyWorkApproveInfo); newEmergencyWorkApproveInfo.setId(null); newEmergencyWorkApproveInfo.setDelFlag(false); newEmergencyWorkApproveInfo.setCreateUid(uid); newEmergencyWorkApproveInfo.setGmtCreate(nowDate); newEmergencyWorkApproveInfo.setSubmitPersonId(uid); newEmergencyWorkApproveInfo.setSubmitPersonName(uName); newEmergencyWorkApproveInfo.setApproveResult(null); newEmergencyWorkApproveInfo.setApproveMemo(null); newEmergencyWorkApproveInfo.setSort(newEmergencyWorkApproveInfo.getSort()+1); workApproveInfoService.addWorkApprove(newEmergencyWorkApproveInfo); } return new ResultVO(ResultCodes.OK); } @Override public ResultVO getWorkApproveById(Long id) { EmergencyWorkApproveInfoDetailDO EmergencyWorkApproveInfoDetailDO = workApproveInfoService.selectWorkApproveById(id); if (EmergencyWorkApproveInfoDetailDO==null){ throw new EmergencyException(EmergencyResultCodes.APPROVE_NOT_EXIST); } EmergencyWorkApproveDetailRespDTO emergencyWorkApproveDetailRespDTO = new EmergencyWorkApproveDetailRespDTO(); BeanUtils.copyProperties(EmergencyWorkApproveInfoDetailDO, emergencyWorkApproveDetailRespDTO); return new ResultVO<>(ResultCodes.OK, emergencyWorkApproveDetailRespDTO); } @Override public ResultVO batchDeleteWorkApprove(String ids) { if (!StringUtils.isBlank(ids)) { String[] idArr = ids.split(","); for (String id : idArr) { deleteWorkApprove(Long.valueOf(id)); } } return new ResultVO(ResultCodes.OK); } private void deleteWorkApprove(Long id) { workApproveInfoService.deleteWorkApproveById(id); } }