From 16c02433021fded4dc6493508a09ba158842c8d1 Mon Sep 17 00:00:00 2001
From: jiaosong <jiaosong6760@dingtalk.com>
Date: 星期四, 17 八月 2023 17:02:54 +0800
Subject: [PATCH] #设备导入

---
 server/src/main/java/doumeemes/service/business/impl/DeviceServiceImpl.java |   73 ++++++++++++++++++++++++++++++++++++
 1 files changed, 72 insertions(+), 1 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 efb5075..278b18a 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,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(), "瀵逛笉璧凤紝鎮ㄦ棤鏉冮檺杩涜璇ユ搷浣滐紒");
+        }
+        //瑙f瀽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") +"-";

--
Gitblit v1.9.3