From 2916c4c250268482d8dd31aa9cc00b950f6b7cc9 Mon Sep 17 00:00:00 2001
From: jiaosong <jiaosong6760@dingtalk.com>
Date: 星期五, 25 八月 2023 17:32:37 +0800
Subject: [PATCH] # 企业端用户

---
 server/src/main/java/doumeemes/service/business/impl/UnitServiceImpl.java          |    6 ++-
 server/src/main/java/doumeemes/api/ext/UnitExtController.java                      |    6 +-
 server/src/main/java/doumeemes/service/business/impl/CompanyUserServiceImpl.java   |    7 +++
 server/src/main/resources/mappers/ProceduresExtMapper.xml                          |    2 
 server/src/main/java/doumeemes/service/business/impl/DeviceServiceImpl.java        |   72 ++++++++++++++++++++++++++++-------
 server/src/main/java/doumeemes/service/ext/impl/WorkorderRecordExtServiceImpl.java |    2 
 server/src/main/java/doumeemes/service/business/CompanyUserService.java            |    8 +++-
 7 files changed, 78 insertions(+), 25 deletions(-)

diff --git a/server/src/main/java/doumeemes/api/ext/UnitExtController.java b/server/src/main/java/doumeemes/api/ext/UnitExtController.java
index 19a5176..0859f39 100644
--- a/server/src/main/java/doumeemes/api/ext/UnitExtController.java
+++ b/server/src/main/java/doumeemes/api/ext/UnitExtController.java
@@ -37,7 +37,7 @@
 
     @Autowired
     private UnitExtService unitExtService;
-    
+
     @Autowired
     private UnitService unitService;
 
@@ -46,9 +46,9 @@
     @PostMapping("/create")
     @RequiresPermissions("ext:unitext:create")
     public ApiResponse create(@RequestBody Unit unit) {
-        Integer result=unitService.create(unit);
+        Integer result = unitService.create(unit);
         if(result==0){
-            return ApiResponse.failed("鍚屼竴鍗曚綅绫诲瀷涓嬪悕绉颁笉鑳介噸澶�");
+            return ApiResponse.failed("鍗曚綅鍚嶇О涓嶈兘閲嶅");
         }else{
             return ApiResponse.success(result);
         }
diff --git a/server/src/main/java/doumeemes/service/business/CompanyUserService.java b/server/src/main/java/doumeemes/service/business/CompanyUserService.java
index eaaedc7..50e002b 100644
--- a/server/src/main/java/doumeemes/service/business/CompanyUserService.java
+++ b/server/src/main/java/doumeemes/service/business/CompanyUserService.java
@@ -1,5 +1,6 @@
 package doumeemes.service.business;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import doumeemes.core.model.PageData;
 import doumeemes.core.model.PageWrap;
 import doumeemes.dao.business.model.CompanyUser;
@@ -16,7 +17,7 @@
 
     /**
      * 鍒涘缓
-     * 
+     *
      * @param companyUser 瀹炰綋瀵硅薄
      * @return Integer
      */
@@ -80,7 +81,10 @@
      * @return List<CompanyUser>
      */
     List<CompanyUser> findList(CompanyUser companyUser);
-  
+
+
+    List<CompanyUser> findList(QueryWrapper<CompanyUser> wrapper);
+
     /**
      * 鍒嗛〉鏌ヨ
      *
diff --git a/server/src/main/java/doumeemes/service/business/impl/CompanyUserServiceImpl.java b/server/src/main/java/doumeemes/service/business/impl/CompanyUserServiceImpl.java
index d04f82d..6706a00 100644
--- a/server/src/main/java/doumeemes/service/business/impl/CompanyUserServiceImpl.java
+++ b/server/src/main/java/doumeemes/service/business/impl/CompanyUserServiceImpl.java
@@ -94,7 +94,12 @@
         QueryWrapper<CompanyUser> wrapper = new QueryWrapper<>(companyUser);
         return companyUserMapper.selectList(wrapper);
     }
-  
+
+    @Override
+    public List<CompanyUser> findList(QueryWrapper<CompanyUser> wrapper) {
+        return companyUserMapper.selectList(wrapper);
+    }
+
     @Override
     public PageData<CompanyUser> findPage(PageWrap<CompanyUser> pageWrap) {
         IPage<CompanyUser> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
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 dc253be..b2148a5 100644
--- a/server/src/main/java/doumeemes/service/business/impl/DeviceServiceImpl.java
+++ b/server/src/main/java/doumeemes/service/business/impl/DeviceServiceImpl.java
@@ -1,6 +1,7 @@
 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;
@@ -17,6 +18,8 @@
 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;
@@ -62,6 +65,13 @@
 
     @Autowired
     private WarehouseLocationMapper  warehouseLocationMapper;
+
+    @Autowired
+    private WarehouseMapper  warehouseMapper;
+
+
+    @Autowired
+    private SystemDictDataMapper systemDictDataMapper;
 
     @Override
     public Integer create(Device device) {
@@ -329,17 +339,41 @@
                 throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"璁惧缂栫爜涓嶅瓨鍦�");
             }
 
+
+
             QueryWrapper<WarehouseLocation> warehouseLocationQuery = new QueryWrapper<>();
             warehouseLocationQuery.lambda()
                                     .eq(WarehouseLocation::getRootDepartId,department.getRootId())
-                                    .in(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);
+                                    .eq(WarehouseLocation::getUnionName
+                                            ,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);
@@ -348,8 +382,8 @@
             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(device.getCode()) ? device.getCode() : this.getNextCode(user.getCompany().getId()));
@@ -357,15 +391,23 @@
             device.setName(s.getDeviceName());
             device.setModel(s.getModel());
             device.setStatus(Constants.ZERO);
-//            device.setSupplier();
             device.setStationCode(s.getStationCode());
-//            device.setGroupId();
-//            device.setSerialNum();
-            device.setProduceWarehouseLocationId(Optional.ofNullable(collect.get(s.getProduceWarehouseLocationName())).map(m->m.getId()).orElse(null));
-            device.setFinishWarehouseLocationId(Optional.ofNullable(collect.get(s.getFinishWarehouseLocationName())).map(m->m.getId()).orElse(null));
+            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().trim(),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);
+                }
+
             }
 
         });
diff --git a/server/src/main/java/doumeemes/service/business/impl/UnitServiceImpl.java b/server/src/main/java/doumeemes/service/business/impl/UnitServiceImpl.java
index c8c6f48..bf5f49e 100644
--- a/server/src/main/java/doumeemes/service/business/impl/UnitServiceImpl.java
+++ b/server/src/main/java/doumeemes/service/business/impl/UnitServiceImpl.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;
@@ -50,7 +52,7 @@
             find.setDeleted(Constants.ZERO);
             find.setName(unit.getName());
             if( this.count(find)>0){
-                throw new RuntimeException("鍚屼竴鍗曚綅绫诲瀷涓嬪悕绉颁笉鑳介噸澶�");
+                throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"鍗曚綅鍚嶇О涓嶈兘閲嶅");
             }else{
                 unitMapper.insert(unit);
             }
@@ -163,7 +165,7 @@
         QueryWrapper<Unit> wrapper = new QueryWrapper<>(unit);
         return unitMapper.selectList(wrapper);
     }
-  
+
     @Override
     public PageData<Unit> findPage(PageWrap<Unit> pageWrap) {
         IPage<Unit> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
diff --git a/server/src/main/java/doumeemes/service/ext/impl/WorkorderRecordExtServiceImpl.java b/server/src/main/java/doumeemes/service/ext/impl/WorkorderRecordExtServiceImpl.java
index a323db6..09bf3d7 100644
--- a/server/src/main/java/doumeemes/service/ext/impl/WorkorderRecordExtServiceImpl.java
+++ b/server/src/main/java/doumeemes/service/ext/impl/WorkorderRecordExtServiceImpl.java
@@ -1813,7 +1813,7 @@
             wreev.setProcedureName(re.getProcedureName());
             wreev.setUnintname(unintname);
             if(re.getOmodel().getPlanNum() != null){
-                wreev.setPlanNum(re.getOmodel().getPlanNum()+unintname );
+                wreev.setPlanNum(re.getOmodel().getPlanNum().toString() );
             }
             wreev.setMaterialDonetype(re.getMaterialDonetype());
             wreev.setDeviceCode(re.getDeviceCode()+"|"+re.getDeviceName());
diff --git a/server/src/main/resources/mappers/ProceduresExtMapper.xml b/server/src/main/resources/mappers/ProceduresExtMapper.xml
index 46eb6d9..91d4744 100644
--- a/server/src/main/resources/mappers/ProceduresExtMapper.xml
+++ b/server/src/main/resources/mappers/ProceduresExtMapper.xml
@@ -562,7 +562,7 @@
                dmodel.id as dmodelRouteProductId
         FROM `procedures` `a`
         LEFT JOIN route_procedure `dmodel`  on dmodel.PROCEDURE_ID=a.id
-        where dmodel.ROUTE_ID=#{routeId} and dmodel.DELETED=0 and `a`.`DELETED`=0
+        where dmodel.ROUTE_ID=#{routeId} and dmodel.DELETED=0 and `a`.`DELETED`=0 order by a.SORTNUM asc
     </select>
 
 

--
Gitblit v1.9.3