From 194c2c6390d99f11fff405b3cf150b32fd224aa3 Mon Sep 17 00:00:00 2001 From: jiaosong <jiaosong6760@dingtalk.com> Date: 星期四, 17 八月 2023 18:02:28 +0800 Subject: [PATCH] #设备导入 --- server/src/main/java/doumeemes/service/business/impl/DeviceServiceImpl.java | 98 +++++++++++++++++++++++++++++++++++------------- 1 files changed, 71 insertions(+), 27 deletions(-) diff --git a/server/src/main/java/doumeemes/service/business/impl/DeviceServiceImpl.java b/server/src/main/java/doumeemes/service/business/impl/DeviceServiceImpl.java index 278b18a..1c900a7 100644 --- a/server/src/main/java/doumeemes/service/business/impl/DeviceServiceImpl.java +++ b/server/src/main/java/doumeemes/service/business/impl/DeviceServiceImpl.java @@ -1,5 +1,6 @@ package doumeemes.service.business.impl; +import com.baomidou.mybatisplus.extension.api.R; import doumeemes.core.constants.ResponseStatus; import doumeemes.core.exception.BusinessException; import doumeemes.core.model.ApiResponse; @@ -11,13 +12,8 @@ import doumeemes.core.utils.Utils; import doumeemes.core.utils.excel.EasyExcelUtil; import doumeemes.core.utils.redis.RedisUtil; -import doumeemes.dao.business.DepartmentMapper; -import doumeemes.dao.business.DeviceMapper; -import doumeemes.dao.business.UserDeviceMapper; -import doumeemes.dao.business.model.CompanyUser; -import doumeemes.dao.business.model.Department; -import doumeemes.dao.business.model.Device; -import doumeemes.dao.business.model.UserDevice; +import doumeemes.dao.business.*; +import doumeemes.dao.business.model.*; import doumeemes.dao.ext.dto.DeviceImportDTO; import doumeemes.dao.ext.dto.QueryDeviceExtDTO; import doumeemes.dao.ext.vo.DeviceExtListVO; @@ -36,8 +32,8 @@ import org.springframework.util.CollectionUtils; import org.springframework.web.multipart.MultipartFile; -import java.util.Date; -import java.util.List; +import java.util.*; +import java.util.stream.Collectors; /** * 鐢熶骇璁惧淇℃伅琛⊿ervice瀹炵幇 @@ -60,6 +56,12 @@ @Autowired private DepartmentMapper departmentMapper; + + @Autowired + private ProceduresMapper proceduresMapper; + + @Autowired + private WarehouseLocationMapper warehouseLocationMapper; @Override public Integer create(Device device) { @@ -279,7 +281,8 @@ if(plansList == null || plansList.size()==0){ throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(), "瀵煎叆鏁版嵁鍐呭鏈夎锛�"); } - + List<String> departName = new ArrayList<>(); + List<String> procedureName = new ArrayList<>(); plansList.forEach(s->{ if (StringUtils.isBlank(s.getDeviceName()) @@ -290,14 +293,53 @@ || StringUtils.isBlank(s.getFinishWarehouseLocationName())){ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"瀵煎叆鏁版嵁鍐呭鏈夎"); } + departName.add(s.getDepartName()); + procedureName.add(s.getProcedureName()); }); - QueryWrapper<Department> wrapper = new QueryWrapper<>(); - wrapper.lambda().eq(Department::getRootId,user.getRootDepartment().getId()); - departmentMapper.selectList(wrapper); plansList.forEach(s->{ + + QueryWrapper<Department> wrapper = new QueryWrapper<>(); + wrapper.lambda() + .eq(Department::getRootId,user.getRootDepartment().getId()) + .eq(Department::getName,departName) + .last("limit 1"); + Department department = departmentMapper.selectOne(wrapper); + if(Objects.isNull(department)){ + throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"宸ュ巶鍚嶇О涓嶅瓨鍦�"); + } + + QueryWrapper<Procedures> proceduresQuery = new QueryWrapper<>(); + proceduresQuery.lambda() + .eq(Procedures::getRootDepartId,user.getRootDepartment().getId()) + .eq(Procedures::getDepartId,department.getId()) + .eq(Procedures::getName,s.getProcedureName()); + Procedures procedures = proceduresMapper.selectOne(proceduresQuery); + if(Objects.isNull(procedures)){ + 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); + + Map<String, WarehouseLocation> collect = warehouseLocations.stream().collect(Collectors.toMap(w -> w.getUnionName(), w -> w)); Device device = new Device(); device.setDeleted(Constants.ZERO); @@ -306,24 +348,26 @@ device.setUpdateUser(user.getId()); device.setUpdateTime(new Date()); // device.setRemark(); -// device.setRootDepartId(); -// device.setDepartId(); -// device.setProcedureId(); -// device.setCode(); -// device.setType(); -// device.setName(); -// device.setModel(); -// device.setStatus(); + device.setRootDepartId(department.getRootId()); + device.setDepartId(procedures.getId()); + device.setProcedureId(procedures.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.setName(s.getDeviceName()); + device.setModel(s.getModel()); + device.setStatus(Constants.ZERO); // device.setSupplier(); -// device.setStationCode(); + device.setStationCode(s.getStationCode()); // device.setGroupId(); // device.setSerialNum(); -// device.setProduceWarehouseLocationId(); -// device.setProduceWarehouseId(); -// device.setFinishWarehouseLocationId(); -// device.setFinishWarehouseId(); -// device.setUserIds(); + device.setProduceWarehouseLocationId(collect.get(s.getProduceWarehouseLocationName()).getId()); + device.setFinishWarehouseLocationId(collect.get(s.getFinishWarehouseLocationName()).getId()); deviceMapper.insert(device); + if(StringUtils.isNotBlank(s.getUserIds())){ + this.dealDeviceUserId(Constants.ZERO,device.getUserIds(),device.getId(),user); + } + }); } -- Gitblit v1.9.3