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<WorkorderCheckAttrExtListVO> 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<WorkorderCheckAttr> deleteWrapper = new UpdateWrapper<>(workorderCheckAttr);
|
workorderCheckAttrMapper.delete(deleteWrapper);
|
}
|
|
@Override
|
public void deleteByIdInBatch(List<Integer> ids) {
|
if (CollectionUtils.isEmpty(ids)) {
|
return;
|
}
|
workorderCheckAttrMapper.deleteBatchIds(ids);
|
}
|
|
@Override
|
public void updateById(WorkorderCheckAttr workorderCheckAttr) {
|
workorderCheckAttrMapper.updateById(workorderCheckAttr);
|
}
|
|
@Override
|
public void updateByIdInBatch(List<WorkorderCheckAttr> 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<WorkorderCheckAttr> wrapper = new QueryWrapper<>(workorderCheckAttr);
|
return workorderCheckAttrMapper.selectOne(wrapper);
|
}
|
|
@Override
|
public List<WorkorderCheckAttr> findList(WorkorderCheckAttr workorderCheckAttr) {
|
QueryWrapper<WorkorderCheckAttr> wrapper = new QueryWrapper<>(workorderCheckAttr);
|
return workorderCheckAttrMapper.selectList(wrapper);
|
}
|
|
@Override
|
public PageData<WorkorderCheckAttr> findPage(PageWrap<WorkorderCheckAttr> pageWrap) {
|
IPage<WorkorderCheckAttr> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
|
QueryWrapper<WorkorderCheckAttr> 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<WorkorderCheckAttr> wrapper = new QueryWrapper<>(workorderCheckAttr);
|
return workorderCheckAttrMapper.selectCount(wrapper);
|
}
|
|
@Override
|
@Transactional
|
public ApiResponse insertData(CreateCheckAttrDTO param) {
|
LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
|
List<WorkorderCheckAttr> 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<attrList.size();i++){
|
WorkorderCheckAttr wa=attrList.get(i);
|
CheckAttr attr = checkAttrExtMapper.selectById(wa.getAttrId()) ;
|
if(attr == null || !Constants.equalsInteger(attr.getRootDepartId(),mp.getRootDepartId())|| !Constants.equalsInteger(attr.getProcedureId(),mp.getProcedureId())){
|
throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(), "对不起,请选择正确的检点属性!");
|
}
|
if( Constants.equalsInteger(attr.getIsRequired(),Constants.ONE) && StringUtils.isBlank(wa.getVal())){
|
throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(), "对不起,请按要求完成必填项输入");
|
}
|
wa.setWorkorderId(param.getId());
|
wa.setDeleted(Constants.ZERO);
|
wa.setCreateTime(new Date());
|
wa.setCreateUser(user.getId());
|
wa.setRootDepartId(user.getRootDepartment().getId());
|
wa.setDepartId(user.getCurComDepartment().getId());
|
wa.setPlanId(mp.getPlanId());
|
workorderCheckAttrMapper.insert(wa);
|
}
|
return ApiResponse.success(null);
|
}
|
}
|