lyhzzz 8 bulan lalu
induk
melakukan
3aa11d41aa

+ 1 - 0
src/main/java/com/fdkankan/agent/service/IAgentNewCameraService.java

@@ -20,6 +20,7 @@ public interface IAgentNewCameraService extends IService<AgentNewCamera> {
     void giveCamera(CameraParam param);
 
     List<Long> getBySubAgent(Integer subAgentId);
+    List<AgentNewCamera> getBySubAgent(Long cameraId,Integer subAgentId);
 
     HashMap<Long, AgentNewCamera> getMapByCameraIds(List<Long> voCameraIds,Integer agentId);
 

+ 15 - 4
src/main/java/com/fdkankan/agent/service/impl/AgentNewCameraServiceImpl.java

@@ -55,10 +55,12 @@ public class AgentNewCameraServiceImpl extends ServiceImpl<IAgentNewCameraMapper
         giveCamera(param.getId(),param.getAgentId(),param.getSubAgentId());
     }
     public void giveCamera(Long cameraId,Integer agentId,Integer subAgentId) {
-        AgentNewCamera agentNewCamera = this.getByCameraId(cameraId,agentId);
-        if(agentNewCamera == null){
-            agentNewCamera = new AgentNewCamera();
-        }
+        CameraParam param = new CameraParam();
+        param.setId(cameraId);
+        param.setAgentId(agentId);
+        this.unBindCamera(param);
+
+        AgentNewCamera agentNewCamera = new AgentNewCamera();
         agentNewCamera.setCameraId(cameraId);
         agentNewCamera.setAgentId(agentId);
         agentNewCamera.setSubAgentId(subAgentId);
@@ -70,6 +72,8 @@ public class AgentNewCameraServiceImpl extends ServiceImpl<IAgentNewCameraMapper
     public void unBindCamera(CameraParam param) {
         AgentNewCamera agentNewCamera = this.getByCameraId(param.getId(),param.getAgentId());
         if(agentNewCamera != null){
+            param.setAgentId(agentNewCamera.getSubAgentId());
+            this.unBindCamera(param);
             this.removeById(agentNewCamera.getId());
         }
     }
@@ -102,6 +106,13 @@ public class AgentNewCameraServiceImpl extends ServiceImpl<IAgentNewCameraMapper
         List<AgentNewCamera> list = this.list(wrapper);
         return list.stream().map(AgentNewCamera::getCameraId).collect(Collectors.toList());
     }
+    @Override
+    public List<AgentNewCamera> getBySubAgent(Long cameraId,Integer subAgentId) {
+        LambdaQueryWrapper<AgentNewCamera> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(AgentNewCamera::getSubAgentId,subAgentId);
+        wrapper.eq(AgentNewCamera::getCameraId,cameraId);
+        return this.list(wrapper);
+    }
 
     @Override
     public HashMap<Long, AgentNewCamera> getMapByCameraIds(List<Long> voCameraIds,Integer agentId) {

+ 16 - 1
src/main/java/com/fdkankan/agent/service/impl/ExcelServiceImpl.java

@@ -4,7 +4,9 @@ import com.alibaba.excel.EasyExcel;
 import com.alibaba.excel.ExcelWriter;
 import com.alibaba.excel.write.metadata.WriteSheet;
 import com.fdkankan.agent.common.ResultCode;
+import com.fdkankan.agent.entity.AgentNewCamera;
 import com.fdkankan.agent.entity.Camera;
+import com.fdkankan.agent.entity.CameraDetail;
 import com.fdkankan.agent.exception.BusinessException;
 import com.fdkankan.agent.service.IAgentNewCameraService;
 import com.fdkankan.agent.service.ICameraDetailService;
@@ -111,11 +113,24 @@ public class ExcelServiceImpl implements IExcelService {
                 continue;
             }
             if(StringUtils.isNotBlank(snCode)){
-                Camera camera = cameraService.getBySnCodeAndAgentId(snCode,agentId);
+                Camera camera = cameraService.getBySnCode(snCode);
                 if(camera == null){
                     errorIndex.add(index);
                     continue;
                 }
+                CameraDetail cameraDetail = cameraDetailService.getByCameraId(camera.getId());
+                if(cameraDetail == null){
+                    errorIndex.add(index);
+                    continue;
+                }
+                if(!cameraDetail.getAgentId().equals(agentId)){
+                    List<AgentNewCamera> bySubAgent = agentNewCameraService.getBySubAgent(camera.getId(), agentId);
+                    if(bySubAgent.isEmpty()){
+                        errorIndex.add(index);
+                        continue;
+                    }
+                }
+
                 cameraIds.add(camera.getId());
             }
             snCodes.add(snCode);