Browse Source

增加单位与设备绑定。

zhengqiang 5 năm trước cách đây
mục cha
commit
4151569c4b

+ 1 - 0
common/src/main/java/com/jpsoft/smart/modules/base/dao/CompanyDeviceRelationDAO.java

@@ -18,4 +18,5 @@ public interface CompanyDeviceRelationDAO {
 	List<CompanyDeviceRelation> list();
 	List<CompanyDeviceRelation> search(Map<String,Object> searchParams,List<Sort> sortList);
     List<DeviceInfo> findDeviceByCompanyId(String companyId);
+	int deleteByCompanyId(String companyId);
 }

+ 1 - 0
common/src/main/java/com/jpsoft/smart/modules/base/service/CompanyDeviceRelationService.java

@@ -16,4 +16,5 @@ public interface CompanyDeviceRelationService {
 	List<CompanyDeviceRelation> list();
 	Page<CompanyDeviceRelation> pageSearch(Map<String, Object> searchParams,int pageNum,int pageSize,boolean count,List<Sort> sortList);
 	List<DeviceInfo> findDeviceByCompanyId(String companyId);
+	int deleteByCompanyId(String companyId);
 }

+ 5 - 0
common/src/main/java/com/jpsoft/smart/modules/base/service/impl/CompanyDeviceRelationServiceImpl.java

@@ -74,4 +74,9 @@ public class CompanyDeviceRelationServiceImpl implements CompanyDeviceRelationSe
 	public List<DeviceInfo> findDeviceByCompanyId(String companyId) {
 		return companyDeviceRelationDAO.findDeviceByCompanyId(companyId);
 	}
+
+	@Override
+	public int deleteByCompanyId(String companyId) {
+		return companyDeviceRelationDAO.deleteByCompanyId(companyId);
+	}
 }

+ 3 - 0
common/src/main/resources/mapper/base/CompanyDeviceRelation.xml

@@ -38,6 +38,9 @@
     <delete id="delete" parameterType="string">
         delete from base_company_device_relation where id_=#{id,jdbcType=VARCHAR}
     </delete>
+    <delete id="deleteByCompanyId" parameterType="string">
+        delete from base_company_device_relation where company_id=#{0}
+    </delete>
     <update id="update" parameterType="com.jpsoft.smart.modules.base.entity.CompanyDeviceRelation">
         update base_company_device_relation
         <set>

+ 62 - 3
web/src/main/java/com/jpsoft/smart/modules/base/controller/CompanyInfoController.java

@@ -2,17 +2,17 @@ package com.jpsoft.smart.modules.base.controller;
 
 import com.github.pagehelper.Page;
 import com.jpsoft.smart.modules.base.dto.CompanyInfoDTO;
-import com.jpsoft.smart.modules.base.entity.CompanyPosition;
-import com.jpsoft.smart.modules.base.entity.PersonInfo;
+import com.jpsoft.smart.modules.base.entity.*;
+import com.jpsoft.smart.modules.base.service.CompanyDeviceRelationService;
 import com.jpsoft.smart.modules.base.service.CompanyPositionService;
 import com.jpsoft.smart.modules.base.service.PersonInfoService;
 import com.jpsoft.smart.modules.common.utils.PojoUtils;
 import com.jpsoft.smart.modules.common.dto.Sort;
 import com.jpsoft.smart.modules.common.dto.MessageResult;
-import com.jpsoft.smart.modules.base.entity.CompanyInfo;
 import com.jpsoft.smart.modules.base.service.CompanyInfoService;
 import com.jpsoft.smart.modules.sys.entity.User;
 import com.jpsoft.smart.modules.sys.service.UserService;
+import com.rabbitmq.client.AMQP;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiImplicitParams;
@@ -21,6 +21,8 @@ import org.apache.commons.lang3.StringUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.transaction.interceptor.TransactionAspectSupport;
 import org.springframework.web.bind.annotation.*;
 
 import javax.servlet.http.HttpServletRequest;
@@ -47,6 +49,9 @@ public class CompanyInfoController {
     @Autowired
     private PersonInfoService personInfoService;
 
+    @Autowired
+    private CompanyDeviceRelationService companyDeviceRelationService;
+
     @ApiOperation(value="创建空记录")
     @GetMapping("create")
     public MessageResult<CompanyInfoDTO> create(){
@@ -369,4 +374,58 @@ public class CompanyInfoController {
 
         return msgResult;
     }
+
+    @GetMapping("queryBindDeviceList")
+    public MessageResult<List> queryBindDeviceList(String companyId){
+        MessageResult<List> messageResult = new MessageResult<>();
+
+        try {
+            List<DeviceInfo> deviceList = companyDeviceRelationService.findDeviceByCompanyId(companyId);
+
+            messageResult.setData(deviceList);
+            messageResult.setResult(true);
+        }
+        catch (Exception ex){
+            logger.error(ex.getMessage(),ex);
+            messageResult.setResult(false);
+            messageResult.setMessage(ex.getMessage());
+        }
+
+        return messageResult;
+    }
+
+    @Transactional(rollbackFor = Exception.class)
+    @PostMapping("bindDevice")
+    public MessageResult<String> bindDevice(String companyId,String deviceIds,@ModelAttribute String subject){
+        MessageResult<String> messageResult = new MessageResult<>();
+
+        try {
+            String[] arr = deviceIds.split(",");
+
+            companyDeviceRelationService.deleteByCompanyId(companyId);
+
+            for (String deviceId : arr) {
+                CompanyDeviceRelation cdr = new CompanyDeviceRelation();
+                cdr.setId(UUID.randomUUID().toString());
+                cdr.setCompanyId(companyId);
+                cdr.setDeviceId(deviceId);
+
+                cdr.setCreateBy(subject);
+                cdr.setCreateTime(new Date());
+
+                companyDeviceRelationService.insert(cdr);
+            }
+
+            messageResult.setResult(true);
+        }
+        catch (Exception ex){
+            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+
+            logger.error(ex.getMessage(),ex);
+            messageResult.setResult(false);
+            messageResult.setMessage(ex.getMessage());
+        }
+
+        return messageResult;
+    }
 }