package doumeemes.service.ext.impl;
|
|
import doumeemes.core.constants.ResponseStatus;
|
import doumeemes.core.exception.BusinessException;
|
import doumeemes.core.model.LoginUserInfo;
|
import doumeemes.core.model.PageData;
|
import doumeemes.core.model.PageWrap;
|
import doumeemes.core.utils.Constants;
|
import doumeemes.core.utils.excel.EasyExcelUtil;
|
import doumeemes.dao.ext.dto.DeviceImportDTO;
|
import doumeemes.dao.ext.dto.QueryDeviceExtDTO;
|
import doumeemes.dao.ext.dto.QueryUserDeviceExtDTO;
|
import doumeemes.dao.ext.dto.SalaryParamImportDTO;
|
import doumeemes.dao.ext.vo.DeviceExtListVO;
|
import doumeemes.service.ext.DeviceExtService;
|
import doumeemes.dao.ext.DeviceExtMapper;
|
import com.github.pagehelper.PageHelper;
|
import com.github.pagehelper.PageInfo;
|
import doumeemes.service.ext.UserDeviceExtService;
|
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.web.multipart.MultipartFile;
|
|
import java.util.List;
|
|
/**
|
* 生产设备信息Service实现
|
* @author 江蹄蹄
|
* @date 2022/04/20 10:59
|
*/
|
@Service
|
public class DeviceExtServiceImpl implements DeviceExtService {
|
|
@Autowired
|
private DeviceExtMapper deviceExtMapper;
|
|
@Autowired
|
private UserDeviceExtService userDeviceExtService;
|
|
@Override
|
public PageData<DeviceExtListVO> findPage(PageWrap<QueryDeviceExtDTO> pageWrap) {
|
PageHelper.startPage(pageWrap.getPage(), pageWrap.getCapacity());
|
List<DeviceExtListVO> result = deviceExtMapper.selectList(pageWrap.getModel());
|
return PageData.from(new PageInfo<>(result));
|
}
|
|
|
@Override
|
public PageData<DeviceExtListVO> getListByCondition(PageWrap<QueryDeviceExtDTO> pageWrap) {
|
PageHelper.startPage(pageWrap.getPage(), pageWrap.getCapacity());
|
List<DeviceExtListVO> result = deviceExtMapper.selectList(pageWrap.getModel());
|
QueryUserDeviceExtDTO queryUserDeviceExtDTO = new QueryUserDeviceExtDTO();
|
result.forEach(i->{
|
queryUserDeviceExtDTO.setDeviceId(i.getId());
|
i.setUserDeviceExtListVOS(userDeviceExtService.getList(queryUserDeviceExtDTO));
|
});
|
return PageData.from(new PageInfo<>(result));
|
}
|
|
@Override
|
public List<DeviceExtListVO> getListByCondition(QueryDeviceExtDTO dto) {
|
List<DeviceExtListVO> result = deviceExtMapper.selectList(dto);
|
return result;
|
}
|
|
|
@Override
|
public List<DeviceExtListVO> getDeviceByCondition(QueryDeviceExtDTO dto) {
|
LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
|
if(!Constants.equalsInteger(user.getType(),Constants.USERTYPE.COM)){
|
throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "对不起,您无权限进行该操作!");
|
}
|
//只能查看当前根组织的数据
|
dto.setRootDepartId(user.getRootDepartment().getId());
|
dto.setDepartId(user.getCurComDepartment().getId());
|
//数据权限
|
List<Integer> dataPermission = user.getDepartPermissionList();
|
if(dataPermission!=null){
|
if(dataPermission.size() == 0){
|
//只能看自己的
|
dto.setPmodelUserId(user.getId());
|
}else{
|
//否则走数据权限
|
dto.setDepartIds(dataPermission);
|
}
|
}
|
List<DeviceExtListVO> result = deviceExtMapper.getListByCondition(dto);
|
return result;
|
}
|
|
@Transactional(rollbackFor = {Exception.class,BusinessException.class})
|
@Override
|
public void importPlans(MultipartFile file) {
|
LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
|
if(!Constants.equalsInteger(user.getType(),Constants.USERTYPE.COM)){
|
throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "对不起,您无权限进行该操作!");
|
}
|
//解析excel
|
List<DeviceImportDTO> plansList = EasyExcelUtil.importExcel(file, 1, 1, DeviceImportDTO.class);
|
if(plansList == null || plansList.size()==0){
|
throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(), "导入数据内容有误!");
|
}
|
|
plansList.forEach(s->{
|
|
if (StringUtils.isBlank(s.getDeviceName())
|
|| s.getDeviceName().length() > 50
|
|| StringUtils.isBlank(s.getDepartName())
|
|| StringUtils.isBlank(s.getProcedureName())
|
|| StringUtils.isBlank(s.getProduceWarehouseLocationName())
|
|| StringUtils.isBlank(s.getFinishWarehouseLocationName())){
|
throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"导入数据内容有误");
|
}
|
});
|
|
|
|
|
}
|
}
|