jiaosong
2023-08-17 16c02433021fded4dc6493508a09ba158842c8d1
#设备导入
已修改5个文件
123 ■■■■■ 文件已修改
server/src/main/java/doumeemes/api/ext/DeviceExtController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/src/main/java/doumeemes/service/business/DeviceService.java 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/src/main/java/doumeemes/service/business/impl/DeviceServiceImpl.java 73 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/src/main/java/doumeemes/service/ext/DeviceExtService.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/src/main/java/doumeemes/service/ext/impl/DeviceExtServiceImpl.java 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/src/main/java/doumeemes/api/ext/DeviceExtController.java
@@ -244,7 +244,7 @@
            Iterator<String> it = multipartRequest.getFileNames();
            while (it.hasNext()) {
                MultipartFile file = multipartRequest.getFile((String) it.next());
                deviceExtService.importPlans(file);
                deviceService.importPlans(file);
                break;
            }
        }
server/src/main/java/doumeemes/service/business/DeviceService.java
@@ -5,6 +5,8 @@
import doumeemes.core.model.PageData;
import doumeemes.core.model.PageWrap;
import doumeemes.dao.business.model.Device;
import org.springframework.web.multipart.MultipartFile;
import java.util.List;
/**
@@ -16,7 +18,7 @@
    /**
     * 创建
     *
     *
     * @param device 实体对象
     * @return Integer
     */
@@ -80,7 +82,7 @@
     * @return List<Device>
     */
    List<Device> findList(Device device);
    /**
     * 分页查询
     *
@@ -100,4 +102,12 @@
    ApiResponse insert(Device device);
    void dealDeviceUserId(Integer type, String userIds, Integer deviceId, LoginUserInfo userInfo);
    /**
     * 获取批量导入设备信息
     *
     * @param file
     */
    void importPlans(MultipartFile file);
}
server/src/main/java/doumeemes/service/business/impl/DeviceServiceImpl.java
@@ -1,5 +1,7 @@
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;
@@ -7,12 +9,16 @@
import doumeemes.core.utils.Constants;
import doumeemes.core.utils.DateUtil;
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.ext.dto.DeviceImportDTO;
import doumeemes.dao.ext.dto.QueryDeviceExtDTO;
import doumeemes.dao.ext.vo.DeviceExtListVO;
import doumeemes.service.business.DeviceService;
@@ -26,7 +32,9 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import org.springframework.web.multipart.MultipartFile;
import java.util.Date;
import java.util.List;
@@ -49,6 +57,9 @@
    private DeviceExtService deviceExtService;
    @Autowired
    private UserDeviceMapper userDeviceMapper;
    @Autowired
    private DepartmentMapper departmentMapper;
    @Override
    public Integer create(Device device) {
@@ -106,7 +117,7 @@
        QueryWrapper<Device> wrapper = new QueryWrapper<>(device);
        return deviceMapper.selectList(wrapper);
    }
    @Override
    public PageData<Device> findPage(PageWrap<Device> pageWrap) {
        IPage<Device> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
@@ -256,6 +267,66 @@
        }
    }
    @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(),"导入数据内容有误");
            }
        });
        QueryWrapper<Department> wrapper = new QueryWrapper<>();
        wrapper.lambda().eq(Department::getRootId,user.getRootDepartment().getId());
        departmentMapper.selectList(wrapper);
        plansList.forEach(s->{
            Device device = new Device();
            device.setDeleted(Constants.ZERO);
            device.setCreateUser(user.getId());
            device.setCreateTime(new Date());
            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.setSupplier();
//            device.setStationCode();
//            device.setGroupId();
//            device.setSerialNum();
//            device.setProduceWarehouseLocationId();
//            device.setProduceWarehouseId();
//            device.setFinishWarehouseLocationId();
//            device.setFinishWarehouseId();
//            device.setUserIds();
            deviceMapper.insert(device);
        });
    }
    public synchronized String  getNextCode(Integer comId ){
        String prefix =  "S-" + DateUtil.getDate(new Date(),"yyyyMMdd") +"-";
server/src/main/java/doumeemes/service/ext/DeviceExtService.java
@@ -29,10 +29,4 @@
    List<DeviceExtListVO> getDeviceByCondition(QueryDeviceExtDTO queryDeviceExtDTO);
    /**
     * 获取批量导入设备信息
     *
     * @param file
     */
    void importPlans(MultipartFile file);
}
server/src/main/java/doumeemes/service/ext/impl/DeviceExtServiceImpl.java
@@ -91,33 +91,5 @@
        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(),"导入数据内容有误");
            }
        });
    }
}