package doumeemes.service.business.impl; import doumeemes.core.constants.ResponseStatus; import doumeemes.core.exception.BusinessException; import doumeemes.core.model.ApiResponse; import doumeemes.core.model.LoginUserInfo; import doumeemes.core.model.PageData; import doumeemes.core.model.PageWrap; import doumeemes.core.utils.Constants; import doumeemes.core.utils.Utils; import doumeemes.dao.business.WorkorderCheckAttrMapper; import doumeemes.dao.business.dto.CreateCheckAttrDTO; import doumeemes.dao.business.model.CheckAttr; import doumeemes.dao.business.model.Workorder; import doumeemes.dao.business.model.WorkorderCheckAttr; import doumeemes.dao.ext.CheckAttrExtMapper; import doumeemes.dao.ext.WorkorderCheckAttrExtMapper; import doumeemes.dao.ext.WorkorderExtMapper; import doumeemes.dao.ext.dto.QueryWorkorderCheckAttrExtDTO; import doumeemes.dao.ext.vo.WorkorderCheckAttrExtListVO; import doumeemes.service.business.WorkorderCheckAttrService; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import org.apache.commons.lang3.StringUtils; import org.apache.shiro.SecurityUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; import java.util.Date; import java.util.List; /** * 工单类-检点属性关联表Service实现 * @author 江蹄蹄 * @since 2022/06/06 15:08 */ @Service public class WorkorderCheckAttrServiceImpl implements WorkorderCheckAttrService { @Autowired private WorkorderCheckAttrMapper workorderCheckAttrMapper; @Autowired private WorkorderExtMapper workorderExtMapper; @Autowired private CheckAttrExtMapper checkAttrExtMapper; @Autowired private WorkorderCheckAttrExtMapper workorderCheckAttrExtMapper; @Override public Integer create(WorkorderCheckAttr workorderCheckAttr) { workorderCheckAttrMapper.insert(workorderCheckAttr); return workorderCheckAttr.getId(); } @Override public ApiResponse deleteById(Integer id) { QueryWorkorderCheckAttrExtDTO query=new QueryWorkorderCheckAttrExtDTO(); query.setId(id); List result = workorderCheckAttrExtMapper.findallList(query); if(result.size()>0){ WorkorderCheckAttrExtListVO wca=result.get(0); if(wca!=null&&(Constants.equalsInteger(Constants.WORKORDER_STATUS.done,wca.getWorkorderstatus())||Constants.equalsInteger(Constants.WORKORDER_STATUS.baogong,wca.getWorkorderstatus()))){ return ApiResponse.failed("工单已完工/已报工状态下不允许删除!"); }else{ WorkorderCheckAttr workorderCheckAttr=workorderCheckAttrMapper.selectById(wca.getId()); workorderCheckAttr.setDeleted(Constants.ONE); workorderCheckAttrMapper.updateById(workorderCheckAttr); return ApiResponse.success(null); } }else{ return ApiResponse.failed("数据不存在!"); } } @Override public void delete(WorkorderCheckAttr workorderCheckAttr) { UpdateWrapper deleteWrapper = new UpdateWrapper<>(workorderCheckAttr); workorderCheckAttrMapper.delete(deleteWrapper); } @Override public void deleteByIdInBatch(List ids) { if (CollectionUtils.isEmpty(ids)) { return; } workorderCheckAttrMapper.deleteBatchIds(ids); } @Override public void updateById(WorkorderCheckAttr workorderCheckAttr) { workorderCheckAttrMapper.updateById(workorderCheckAttr); } @Override public void updateByIdInBatch(List workorderCheckAttrs) { if (CollectionUtils.isEmpty(workorderCheckAttrs)) { return; } for (WorkorderCheckAttr workorderCheckAttr: workorderCheckAttrs) { this.updateById(workorderCheckAttr); } } @Override public WorkorderCheckAttr findById(Integer id) { return workorderCheckAttrMapper.selectById(id); } @Override public WorkorderCheckAttr findOne(WorkorderCheckAttr workorderCheckAttr) { QueryWrapper wrapper = new QueryWrapper<>(workorderCheckAttr); return workorderCheckAttrMapper.selectOne(wrapper); } @Override public List findList(WorkorderCheckAttr workorderCheckAttr) { QueryWrapper wrapper = new QueryWrapper<>(workorderCheckAttr); return workorderCheckAttrMapper.selectList(wrapper); } @Override public PageData findPage(PageWrap pageWrap) { IPage page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity()); QueryWrapper queryWrapper = new QueryWrapper<>(); Utils.MP.blankToNull(pageWrap.getModel()); queryWrapper.lambda() .eq(pageWrap.getModel().getId() != null, WorkorderCheckAttr::getId, pageWrap.getModel().getId()) .eq(pageWrap.getModel().getDeleted() != null, WorkorderCheckAttr::getDeleted, pageWrap.getModel().getDeleted()) .eq(pageWrap.getModel().getCreateUser() != null, WorkorderCheckAttr::getCreateUser, pageWrap.getModel().getCreateUser()) .ge(pageWrap.getModel().getCreateTime() != null, WorkorderCheckAttr::getCreateTime, Utils.Date.getStart(pageWrap.getModel().getCreateTime())) .le(pageWrap.getModel().getCreateTime() != null, WorkorderCheckAttr::getCreateTime, Utils.Date.getEnd(pageWrap.getModel().getCreateTime())) .eq(pageWrap.getModel().getUpdateUser() != null, WorkorderCheckAttr::getUpdateUser, pageWrap.getModel().getUpdateUser()) .ge(pageWrap.getModel().getUpdateTime() != null, WorkorderCheckAttr::getUpdateTime, Utils.Date.getStart(pageWrap.getModel().getUpdateTime())) .le(pageWrap.getModel().getUpdateTime() != null, WorkorderCheckAttr::getUpdateTime, Utils.Date.getEnd(pageWrap.getModel().getUpdateTime())) .eq(pageWrap.getModel().getRemark() != null, WorkorderCheckAttr::getRemark, pageWrap.getModel().getRemark()) .eq(pageWrap.getModel().getRootDepartId() != null, WorkorderCheckAttr::getRootDepartId, pageWrap.getModel().getRootDepartId()) .eq(pageWrap.getModel().getDepartId() != null, WorkorderCheckAttr::getDepartId, pageWrap.getModel().getDepartId()) .eq(pageWrap.getModel().getPlanId() != null, WorkorderCheckAttr::getPlanId, pageWrap.getModel().getPlanId()) .eq(pageWrap.getModel().getWorkorderId() != null, WorkorderCheckAttr::getWorkorderId, pageWrap.getModel().getWorkorderId()) .eq(pageWrap.getModel().getAttrId() != null, WorkorderCheckAttr::getAttrId, pageWrap.getModel().getAttrId()) .eq(pageWrap.getModel().getVal() != null, WorkorderCheckAttr::getVal, pageWrap.getModel().getVal()) ; for(PageWrap.SortData sortData: pageWrap.getSorts()) { if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) { queryWrapper.orderByDesc(sortData.getProperty()); } else { queryWrapper.orderByAsc(sortData.getProperty()); } } return PageData.from(workorderCheckAttrMapper.selectPage(page, queryWrapper)); } @Override public long count(WorkorderCheckAttr workorderCheckAttr) { QueryWrapper wrapper = new QueryWrapper<>(workorderCheckAttr); return workorderCheckAttrMapper.selectCount(wrapper); } @Override @Transactional public ApiResponse insertData(CreateCheckAttrDTO param) { LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); List attrList = param.getAttrList(); if(param.getId() == null || attrList == null || attrList.size() ==0){ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "对不起,请求参数不正确!"); } Workorder mp = new Workorder(); mp.setDeleted(Constants.ZERO); mp.setId(param.getId()); mp.setRootDepartId(user.getRootDepartment().getId()); mp = workorderExtMapper.selectOne(mp); if(mp== null){ throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(), "对不起,工单记录不存在!"); } for(int i=0;i