소스 검색

修改bug

suntianwu 3 년 전
부모
커밋
cd02deec74

+ 15 - 6
src/main/java/com/care/bms/service/DeviceService.java

@@ -385,6 +385,13 @@ public class DeviceService {
             if (StringUtils.isEmpty(companyId)){
                 return false;
             }
+            QueryWrapper<CareOrganization> queryWrapper1 = new QueryWrapper<>();
+            queryWrapper1.lambda().eq(CareOrganization::getCompanyId,companyId);
+            CareOrganization careOrganization = this.careOrganizationService.getOne(queryWrapper1);
+            if (careOrganization == null){
+                return false;
+            }
+
             // 通过synDevUrl获取data
             JSONObject jsonObject = HttpUtil.httpGet(synDevUrl + "?companyId=" + companyId);
             int code = jsonObject.getInt("code");
@@ -392,25 +399,27 @@ public class DeviceService {
                 JSONArray data = jsonObject.getJSONArray("data");
                 Iterator it = data.iterator();
 
+                List<CareDevice> list = new ArrayList<>();
                 while (it.hasNext()) {
                     JSONObject obj = (JSONObject) it.next();
-
-                    QueryWrapper<CareOrganization> queryWrapper1 = new QueryWrapper<>();
-                    queryWrapper1.lambda().eq(CareOrganization::getCompanyId,companyId);
-                    CareOrganization careOrganization = this.careOrganizationService.getOne(queryWrapper1);
                     if(careOrganization != null) {
                         CareDevice careDevice = new CareDevice();
                         careDevice.setDevCode(obj.getStr("mdid"));
                         careDevice.setOrgId(careOrganization.getId());
                         careDevice.setTopic("/companyId/" + careDevice.getDevCode() + "/event");
                         careDevice.setTopicInstall("/companyId/" + careDevice.getDevCode() + "/control");
-                        careDeviceService.synDev(careDevice);
+                        list.add(careDevice);
                     } else {
                         continue;
                     }
                 }
+                if (!list.isEmpty()) {
+                    careDeviceService.synDev(list);
+                    return true;
+                } else {
+                    return false;
+                }
 
-                return true;
             } else {
                 return false;
             }

+ 1 - 1
src/main/java/com/care/common/mapper/CareDeviceMapper.java

@@ -36,5 +36,5 @@ public interface CareDeviceMapper extends BaseMapper<CareDevice> {
     );
     void updateDevChamb(@Param("id") Long id);
 
-    void synDev(CareDevice careDevice);
+    void synDev(List<CareDevice> list);
 }

+ 1 - 1
src/main/java/com/care/common/service/CareDeviceService.java

@@ -31,5 +31,5 @@ public interface CareDeviceService extends IService<CareDevice> {
 
     void updateDevChamb(Long id);
 
-    void synDev(CareDevice careDevice);
+    void synDev(List<CareDevice> list);
 }

+ 2 - 2
src/main/java/com/care/common/service/impl/CareDeviceServiceImpl.java

@@ -107,8 +107,8 @@ public class CareDeviceServiceImpl extends ServiceImpl<CareDeviceMapper, CareDev
     }
 
     @Override
-    public void synDev(CareDevice careDevice){
-        this.baseMapper.synDev(careDevice);
+    public void synDev(List<CareDevice> list){
+        this.baseMapper.synDev(list);
     }
 
     public static void main(String[] args) throws UnsupportedEncodingException {

+ 9 - 3
src/main/resources/mybatis/CareDeviceMapper.xml

@@ -78,10 +78,16 @@
         update care_device set chamb_id=null where id=#{id}
      </update>
 
-    <insert id = "synDev">
+    <insert id="synDev" parameterType="java.util.List">
         insert into care_device(org_id,dev_code,topic,topic_install,create_time)
-        values(#{orgId},#{devCode},#{topic},#{topicInstall},now())
-        on duplicate key update
+        values
+        <foreach collection ="list" item="item" index= "index" separator =",">
+            (
+            #{item.orgId}, #{item.devCode}, #{item.topic},
+            #{item.topicInstall},now()
+            )
+        </foreach>
+        ON DUPLICATE KEY UPDATE
         org_id = values(org_id),
         topic = values(topic),
         topic_install = values(topic_install)