| | |
| | | package doumeemes.service.business.impl; |
| | | |
| | | import com.baomidou.mybatisplus.extension.api.R; |
| | | import doumeemes.biz.system.SystemDictBiz; |
| | | import doumeemes.core.constants.ResponseStatus; |
| | | import doumeemes.core.exception.BusinessException; |
| | | import doumeemes.core.model.ApiResponse; |
| | |
| | | import doumeemes.dao.ext.dto.DeviceImportDTO; |
| | | import doumeemes.dao.ext.dto.QueryDeviceExtDTO; |
| | | import doumeemes.dao.ext.vo.DeviceExtListVO; |
| | | import doumeemes.dao.system.SystemDictDataMapper; |
| | | import doumeemes.dao.system.model.SystemDictData; |
| | | import doumeemes.service.business.DeviceService; |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | | import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; |
| | |
| | | |
| | | @Autowired |
| | | private WarehouseLocationMapper warehouseLocationMapper; |
| | | |
| | | @Autowired |
| | | private WarehouseMapper warehouseMapper; |
| | | |
| | | |
| | | @Autowired |
| | | private SystemDictDataMapper systemDictDataMapper; |
| | | |
| | | @Override |
| | | public Integer create(Device device) { |
| | |
| | | @Override |
| | | public Device findOne(Device device) { |
| | | QueryWrapper<Device> wrapper = new QueryWrapper<>(device); |
| | | return deviceMapper.selectOne(wrapper); |
| | | return deviceMapper.selectOne(wrapper.last("limit 1")); |
| | | } |
| | | |
| | | @Override |
| | |
| | | } |
| | | |
| | | } |
| | | QueryDeviceExtDTO queryDeviceExtDTO=new QueryDeviceExtDTO(); |
| | | Device queryDeviceExtDTO=new Device(); |
| | | queryDeviceExtDTO.setDeleted(Constants.ZERO); |
| | | queryDeviceExtDTO.setCode(device.getCode()); |
| | | queryDeviceExtDTO.setRootDepartId(user.getRootDepartment().getId()); |
| | | List<DeviceExtListVO> list= deviceExtService.getListByCondition(queryDeviceExtDTO); |
| | | List<Device> list= this.findList(queryDeviceExtDTO); |
| | | |
| | | /* QueryDeviceExtDTO queryDeviceExtDTO1=new QueryDeviceExtDTO(); |
| | | queryDeviceExtDTO1.setDeleted(Constants.ZERO); |
| | |
| | | queryDeviceExtDTO1.setRootDepartId(user.getRootDepartment().getId()); |
| | | List<DeviceExtListVO> list1= deviceExtService.getListByCondition(queryDeviceExtDTO1);*/ |
| | | if(list.size()>0){ |
| | | return ApiResponse.failed("设备编码,不允许添加"); |
| | | return ApiResponse.failed("设备编码已存在,不允许添加"); |
| | | } |
| | | device.setDeleted(Constants.ZERO); |
| | | device.setCreateTime(new Date()); |
| | |
| | | userDeviceMapper.delete(new QueryWrapper<UserDevice>().eq("DEVICE_ID",deviceId)); |
| | | } |
| | | if(StringUtils.isNotEmpty(userIds)){ |
| | | String [] ids=userIds.split(","); |
| | | String [] ids=userIds.replace(" ","").split("[.,;,]"); |
| | | for (String id : ids) { |
| | | CompanyUser companyUser = companyUserService.findById(Integer.valueOf(id)); |
| | | UserDevice userDevice = new UserDevice(); |
| | |
| | | } |
| | | List<String> departName = new ArrayList<>(); |
| | | List<String> procedureName = new ArrayList<>(); |
| | | plansList.forEach(s->{ |
| | | |
| | | int num =0; |
| | | for(DeviceImportDTO s : plansList){ |
| | | if (StringUtils.isBlank(s.getDeviceName()) |
| | | || s.getDeviceName().length() > 50 |
| | | || StringUtils.isBlank(s.getDepartName()) |
| | |
| | | || StringUtils.isBlank(s.getFinishWarehouseLocationName())){ |
| | | throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"导入数据内容有误"); |
| | | } |
| | | if(isRepeatCode(s,num,plansList)){ |
| | | throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"文档中设备号【"+s.getDeviceCode()+"】重复!"); |
| | | } |
| | | departName.add(s.getDepartName()); |
| | | procedureName.add(s.getProcedureName()); |
| | | }); |
| | | |
| | | |
| | | num++; |
| | | } |
| | | |
| | | plansList.forEach(s->{ |
| | | |
| | | QueryWrapper<Department> wrapper = new QueryWrapper<>(); |
| | | wrapper.lambda() |
| | | .eq(Department::getRootId,user.getRootDepartment().getId()) |
| | | .eq(Department::getName,departName) |
| | | .eq(Department::getName,s.getDepartName()) |
| | | .last("limit 1"); |
| | | Department department = departmentMapper.selectOne(wrapper); |
| | | if(Objects.isNull(department)){ |
| | |
| | | QueryWrapper<Procedures> proceduresQuery = new QueryWrapper<>(); |
| | | proceduresQuery.lambda() |
| | | .eq(Procedures::getRootDepartId,user.getRootDepartment().getId()) |
| | | .eq(Procedures::getDepartId,department.getId()) |
| | | .eq(Procedures::getOrgId,department.getId()) |
| | | .eq(Procedures::getName,s.getProcedureName()); |
| | | Procedures procedures = proceduresMapper.selectOne(proceduresQuery); |
| | | if(Objects.isNull(procedures)){ |
| | | throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"工序名称已存在"); |
| | | throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"工序名称不存在"); |
| | | } |
| | | QueryDeviceExtDTO queryDeviceExtDTO=new QueryDeviceExtDTO(); |
| | | queryDeviceExtDTO.setDeleted(Constants.ZERO); |
| | | queryDeviceExtDTO.setCode(s.getDeviceCode()); |
| | | queryDeviceExtDTO.setRootDepartId(user.getRootDepartment().getId()); |
| | | List<DeviceExtListVO> list= deviceExtService.getListByCondition(queryDeviceExtDTO); |
| | | if(list.size() > 0){ |
| | | throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"设备编码不存在"); |
| | | } |
| | | // QueryDeviceExtDTO queryDeviceExtDTO=new QueryDeviceExtDTO(); |
| | | // queryDeviceExtDTO.setDeleted(Constants.ZERO); |
| | | // queryDeviceExtDTO.setCode(s.getDeviceCode()); |
| | | // queryDeviceExtDTO.setRootDepartId(user.getRootDepartment().getId()); |
| | | // List<DeviceExtListVO> list= deviceExtService.getListByCondition(queryDeviceExtDTO); |
| | | // if(list.size() > 0){ |
| | | // throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"设备编码不存在"); |
| | | // } |
| | | |
| | | |
| | | |
| | | QueryWrapper<WarehouseLocation> warehouseLocationQuery = new QueryWrapper<>(); |
| | | warehouseLocationQuery.lambda() |
| | | .eq(WarehouseLocation::getRootDepartId,department.getRootId()) |
| | | .eq(WarehouseLocation::getUnionName |
| | | ,Arrays.asList(s.getFinishWarehouseLocationName(),s.getProduceWarehouseLocationName())); |
| | | if(Objects.equals(list.size(),2)){ |
| | | throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"库位信息已存在"); |
| | | } |
| | | List<WarehouseLocation> warehouseLocations = warehouseLocationMapper.selectList(warehouseLocationQuery); |
| | | ,s.getProduceWarehouseLocationName()).last("limit 1"); |
| | | |
| | | Map<String, WarehouseLocation> collect = warehouseLocations.stream().collect(Collectors.toMap(w -> w.getUnionName(), w -> w)); |
| | | WarehouseLocation warehouseLocation = warehouseLocationMapper.selectOne(warehouseLocationQuery); |
| | | |
| | | if (Objects.isNull(warehouseLocation)){ |
| | | throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"待生产货位不存在"); |
| | | } |
| | | |
| | | QueryWrapper<SystemDictData> systemDictDataQuery = new QueryWrapper<>(); |
| | | systemDictDataQuery.lambda() |
| | | .eq(SystemDictData::getDictId,3) |
| | | .eq(SystemDictData::getCode,"混合"); |
| | | SystemDictData systemDictData = systemDictDataMapper.selectOne(systemDictDataQuery); |
| | | |
| | | warehouseLocationQuery.clear(); |
| | | warehouseLocationQuery.lambda() |
| | | .eq(WarehouseLocation::getRootDepartId,department.getRootId()) |
| | | .eq(WarehouseLocation::getSystemDicDataId,systemDictData.getId()) |
| | | .eq(WarehouseLocation::getUnionName,s.getFinishWarehouseLocationName()).last("limit 1"); |
| | | |
| | | WarehouseLocation finishWarehouseLocations = warehouseLocationMapper.selectOne(warehouseLocationQuery); |
| | | |
| | | if (Objects.isNull(finishWarehouseLocations)){ |
| | | throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"已完工货位不是混合属性"); |
| | | } |
| | | |
| | | Map<String, WarehouseLocation> collect =new HashMap<>(); |
| | | collect.put(warehouseLocation.getUnionName(),warehouseLocation); |
| | | collect.put(finishWarehouseLocations.getUnionName(),finishWarehouseLocations); |
| | | |
| | | Device device = new Device(); |
| | | device.setDeleted(Constants.ZERO); |
| | |
| | | device.setUpdateUser(user.getId()); |
| | | device.setUpdateTime(new Date()); |
| | | // device.setRemark(); |
| | | device.setRootDepartId(department.getRootId()); |
| | | device.setDepartId(procedures.getId()); |
| | | device.setRootDepartId(user.getRootDepartment().getId()); |
| | | device.setDepartId(user.getCurComDepartment().getId()); |
| | | device.setProcedureId(procedures.getId()); |
| | | device.setCode(StringUtils.isNotBlank(s.getDeviceCode()) ? s.getDeviceCode() : this.getNextCode(user.getCompany().getId())); |
| | | |
| | | device.setCode(StringUtils.isNotBlank(device.getCode()) ? device.getCode() : this.getNextCode(user.getCompany().getId())); |
| | | device.setType(StringUtils.isNotBlank(device.getCode()) ? device.getCode().trim().equals("设备") ? 1 : 0 : 1); |
| | | |
| | | Device ttt=new Device(); |
| | | ttt.setDeleted(Constants.ZERO); |
| | | ttt.setCode(device.getCode()); |
| | | ttt.setRootDepartId(user.getRootDepartment().getId()); |
| | | if(findOne(ttt) !=null){ |
| | | throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"设备编码【"+device.getCode()+"重复】,不允许添加"); |
| | | } |
| | | |
| | | |
| | | if(StringUtils.isNotBlank(s.getType()) && StringUtils.equals("设备组",s.getType())){ |
| | | device.setType(0); |
| | | }else{ |
| | | device.setType(1); |
| | | } |
| | | // device.setType(StringUtils.isNotBlank(device.getCode()) ? device.getCode().trim().equals("设备") ? 1 : 0 : 1); |
| | | device.setName(s.getDeviceName()); |
| | | device.setModel(s.getModel()); |
| | | device.setStatus(Constants.ZERO); |
| | | // device.setSupplier(); |
| | | device.setStationCode(s.getStationCode()); |
| | | // device.setGroupId(); |
| | | // device.setSerialNum(); |
| | | device.setProduceWarehouseLocationId(collect.get(s.getProduceWarehouseLocationName()).getId()); |
| | | device.setFinishWarehouseLocationId(collect.get(s.getFinishWarehouseLocationName()).getId()); |
| | | device.setProduceWarehouseLocationId(Optional.ofNullable(collect.get(s.getProduceWarehouseLocationName())).map(m->m.getId()).orElseThrow(null)); |
| | | device.setFinishWarehouseLocationId(Optional.ofNullable(collect.get(s.getFinishWarehouseLocationName())).map(m->m.getId()).orElseThrow(null)); |
| | | deviceMapper.insert(device); |
| | | if(StringUtils.isNotBlank(s.getUserIds())){ |
| | | this.dealDeviceUserId(Constants.ZERO,device.getUserIds(),device.getId(),user); |
| | | |
| | | QueryWrapper<CompanyUser> companyUserQuery = new QueryWrapper<>(); |
| | | |
| | | companyUserQuery.lambda() |
| | | .eq(CompanyUser::getComDepartId,user.getComDepartment().getId()) |
| | | .in(CompanyUser::getPhone,Arrays.asList(s.getUserIds().split("[.,;,]"))); |
| | | List<CompanyUser> list1 = companyUserService.findList(companyUserQuery); |
| | | if (!CollectionUtils.isEmpty(list1)){ |
| | | List<String> collect1 = list1.stream().map(c -> c.getId().toString()).collect(Collectors.toList()); |
| | | this.dealDeviceUserId(Constants.ZERO,StringUtils.join(collect1,","),device.getId(),user); |
| | | } |
| | | |
| | | } |
| | | |
| | | }); |
| | | } |
| | | |
| | | private boolean isRepeatCode(DeviceImportDTO s,int num,List<DeviceImportDTO> plansList) { |
| | | if(StringUtils.isNotBlank(s.getDeviceCode())){ |
| | | int tNum = 0; |
| | | for(DeviceImportDTO d :plansList){ |
| | | if(num != tNum && StringUtils.equals(s.getDeviceCode(), d.getDeviceCode())){ |
| | | return true; |
| | | } |
| | | tNum++; |
| | | } |
| | | } |
| | | return false; |
| | | } |
| | | |
| | | |
| | | public synchronized String getNextCode(Integer comId ){ |
| | | String prefix = "S-" + DateUtil.getDate(new Date(),"yyyyMMdd") +"-"; |