| | |
| | | > |
| | | <el-table-column label="åºå·" width="55" fixed><template slot-scope="scope" >{{scope.$index+1}}</template></el-table-column> |
| | | <el-table-column prop="name" label="åç§°"></el-table-column> |
| | | <el-table-column prop="hkId" label="广æç¹å¯ä¸æ è¯" min-width="200"></el-table-column> |
| | | <el-table-column prop="channelInfo" label="广æç¹ç±»å"></el-table-column> |
| | | <el-table-column prop="channelNo" label="ééå·"></el-table-column> |
| | | <el-table-column prop="regionName" label="åºååç§°"></el-table-column> |
| | | <el-table-column prop="hkId" label="å¯ä¸æ è¯" min-width="200"></el-table-column> |
| | | <el-table-column prop="channelInfo" label="ç±»å"></el-table-column> |
| | | <el-table-column prop="channelNo" label="设å¤å·"></el-table-column> |
| | | <el-table-column prop="regionName" label="åºåç¼ç "></el-table-column> |
| | | <el-table-column prop="hkDate" label="忥æ¶é´"></el-table-column> |
| | | </el-table> |
| | | <pagination |
| | |
| | | </pagination> |
| | | </template> |
| | | <!-- æ°å»º/ä¿®æ¹ --> |
| | | <!-- <OperaDeviceWindow ref="operaDeviceWindow" @success="handlePageChange"/>--> |
| | | <OperaDeviceWindow ref="operaDeviceWindow" @success="handlePageChange"/> |
| | | </TableLayout> |
| | | </template> |
| | | |
| | |
| | | regionPathName: '', |
| | | isEntrance: '', |
| | | online: '', |
| | | type: 3 |
| | | type: 4 |
| | | }, |
| | | options: [] |
| | | } |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <TableLayout :permissions="['business:device:query']"> |
| | | <!-- æç´¢è¡¨å --> |
| | | <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline> |
| | | <el-form-item title="åç§°" prop="name"> |
| | | <el-input v-model="searchForm.name" placeholder="请è¾å
¥åç§°" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <section> |
| | | <el-button type="primary" @click="search">æç´¢</el-button> |
| | | <el-button @click="reset">éç½®</el-button> |
| | | </section> |
| | | </el-form> |
| | | <!-- è¡¨æ ¼åå页 --> |
| | | <template v-slot:table-wrap> |
| | | <ul class="toolbar"> |
| | | <li><el-button type="primary" @click="synchronousData">忥</el-button></li> |
| | | </ul> |
| | | <el-table |
| | | :height="tableHeightNew" |
| | | v-loading="isWorking.search" |
| | | :data="tableData.list" |
| | | stripe |
| | | > |
| | | <el-table-column label="åºå·" width="55" fixed><template slot-scope="scope" >{{scope.$index+1}}</template></el-table-column> |
| | | <el-table-column prop="name" label="åç§°"></el-table-column> |
| | | <el-table-column prop="hkId" label="广æç¹å¯ä¸æ è¯" min-width="200"></el-table-column> |
| | | <el-table-column prop="channelInfo" label="广æç¹ç±»å"></el-table-column> |
| | | <el-table-column prop="channelNo" label="ééå·"></el-table-column> |
| | | <el-table-column prop="regionName" label="åºååç§°"></el-table-column> |
| | | <el-table-column prop="hkDate" label="忥æ¶é´"></el-table-column> |
| | | </el-table> |
| | | <pagination |
| | | @size-change="handleSizeChange" |
| | | @current-change="handlePageChange" |
| | | :pagination="tableData.pagination" |
| | | > |
| | | </pagination> |
| | | </template> |
| | | <!-- æ°å»º/ä¿®æ¹ --> |
| | | <!-- <OperaDeviceWindow ref="operaDeviceWindow" @success="handlePageChange"/>--> |
| | | </TableLayout> |
| | | </template> |
| | | |
| | | <script> |
| | | import BaseTable from '@/components/base/BaseTable' |
| | | import TableLayout from '@/layouts/TableLayout' |
| | | import Pagination from '@/components/common/Pagination' |
| | | import OperaDeviceWindow from '@/components/business/OperaDeviceWindow' |
| | | import { syncDevices, updateEntranceById } from '@/api/business/device' |
| | | export default { |
| | | name: 'Device', |
| | | extends: BaseTable, |
| | | components: { TableLayout, Pagination, OperaDeviceWindow }, |
| | | data () { |
| | | return { |
| | | // æç´¢ |
| | | searchForm: { |
| | | doorName: '', |
| | | regionPathName: '', |
| | | isEntrance: '', |
| | | online: '', |
| | | type: 3 |
| | | }, |
| | | options: [] |
| | | } |
| | | }, |
| | | created () { |
| | | this.config({ |
| | | module: '设å¤ä¿¡æ¯è¡¨', |
| | | api: '/business/device', |
| | | 'field.id': 'id', |
| | | 'field.main': 'id' |
| | | }) |
| | | this.search() |
| | | }, |
| | | methods: { |
| | | changeManufature(e, row) { |
| | | updateEntranceById({ |
| | | id: row.id, |
| | | isEntrance: e |
| | | }) |
| | | }, |
| | | synchronousData () { |
| | | this.$dialog.actionConfirm('æä½ç¡®è®¤æé', 'æ¨ç¡®è®¤åæ¥å
¨é¨ä¿¡æ¯åï¼') |
| | | .then(() => { |
| | | this.isWorking.delete = true |
| | | syncDevices({type: 3}) |
| | | .then(res => { |
| | | this.$tip.apiSuccess(res || '忥æå') |
| | | this.search() |
| | | }) |
| | | .catch(e => { |
| | | // this.$tip.apiFailed(e) |
| | | }) |
| | | .finally(() => { |
| | | this.isWorking.delete = false |
| | | }) |
| | | }) |
| | | .catch(() => {}) |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | |
| | | public static final String SIGN_IN_ATTENTION ="SIGN_IN_ATTENTION" ; |
| | | public static final String SIGN_IN_QRCODE_PREFIX ="SIGN_IN_QRCODE_PREFIX" ; |
| | | public static final String JK_PLAN_MAX_CLUSTER ="JK_PLAN_MAX_CLUSTER" ; |
| | | public static final String JK_PLAN_DISTANCECLUSTER ="JK_PLAN_DISTANCECLUSTER" ; |
| | | public static final String JK_PLAN_DISTANCE_CLUSTER ="JK_PLAN_DISTANCE_CLUSTER" ; |
| | | |
| | | /** |
| | | * æä½ç±»åï¼ç¨äºåæ¥å£éªè¯åç» |
| | |
| | | }else if(Constants.equalsInteger(param.getType(),Constants.THREE)){ |
| | | //åæ¥å¹¿æ |
| | | result = hkSyncDeviceService.syncHkBroadcast(param); |
| | | }else if(Constants.equalsInteger(param.getType(),Constants.FOUR)){ |
| | | //åæ¥å¹¿æ |
| | | result = hkSyncDeviceService.syncHkBroadcastDevice(param); |
| | | } |
| | | return ApiResponse.success(result); |
| | | } |
| | |
| | | *å页è·å广æç¹ï¼åé¡µï¼ |
| | | * @return |
| | | */ |
| | | public static BaseResponse<BaseListPageResponse<FetchAudioChannelInfoResponse>> fetchAudioDevice(FetchAudioChannelRequest param){ |
| | | log.info("ãæµ·åº·è·åå页è·å广æç¹ã================å¼å§===="+JSONObject.toJSONString(param)); |
| | | public static BaseResponse<BaseListPageResponse<FetchAudioDeviceInfoResponse>> fetchAudioDevice(FetchAudioDeviceRequest param){ |
| | | log.info("ãæµ·åº·è·åå页è·å广æè®¾å¤ã================å¼å§===="+JSONObject.toJSONString(param)); |
| | | try { |
| | | String res = HKTools.fetchAudioDevice(JSONObject.toJSONString(param)); |
| | | TypeReference typeReference = |
| | | new TypeReference< BaseResponse<BaseListPageResponse<FetchAudioChannelInfoResponse>> >(){}; |
| | | BaseResponse<BaseListPageResponse<FetchAudioChannelInfoResponse>> result = JSONObject.parseObject(res, typeReference.getType()); |
| | | logResult(result,"海康è·åå页è·å广æç¹"); |
| | | new TypeReference< BaseResponse<BaseListPageResponse<FetchAudioDeviceInfoResponse>> >(){}; |
| | | BaseResponse<BaseListPageResponse<FetchAudioDeviceInfoResponse>> result = JSONObject.parseObject(res, typeReference.getType()); |
| | | logResult(result,"海康è·åå页è·å广æè®¾å¤"); |
| | | return result; |
| | | }catch (Exception e){ |
| | | log.error("ãæµ·åº·è·åå页è·å广æç¹ã================失败====ï¼\n"+ e.getMessage()); |
| | | log.error("ãæµ·åº·è·åå页è·å广æè®¾å¤ã================失败====ï¼\n"+ e.getMessage()); |
| | | } |
| | | return null; |
| | | } |
| | |
| | | package com.doumee.core.tsp; |
| | | |
| | | import java.math.BigDecimal; |
| | | import java.util.ArrayList; |
| | | import java.util.Arrays; |
| | | import java.util.List; |
| | | import java.util.*; |
| | | |
| | | import com.doumee.core.utils.Constants; |
| | | import com.doumee.dao.admin.request.SketchCateModel; |
| | |
| | | cList.add(doublePointNew.getCustomer()); |
| | | sketchCateModel.setTotalNum(Constants.formatBigdecimal(sketchCateModel.getTotalNum()).add(Constants.formatBigdecimal(doublePointNew.getCustomer().getTotalNum()))); |
| | | } |
| | | sortPointByCenterPoint(cluster,cList); |
| | | sketchCateModel.setCustomerList(cList); |
| | | sketchCateModel.setStartPoint(cList.get(0)); |
| | | sketchCateModel.setTotalCustomer(cList.size()); |
| | |
| | | return list; |
| | | } |
| | | |
| | | private void sortPointByCenterPoint(CentroidCluster<DoublePointNew> cluster, List<JkSketchCustomer> cList) { |
| | | double clat = Constants.formatBigdecimal(cList.get(0).getLatitude()).doubleValue(); |
| | | double clong = Constants.formatBigdecimal(cList.get(0).getLongitude()).doubleValue(); |
| | | if(cluster!=null || cluster.getCenter() != null || cluster.getCenter().getPoint() != null && cluster.getCenter().getPoint().length>=2){ |
| | | clong = cluster.getCenter().getPoint()[1]; |
| | | clat = cluster.getCenter().getPoint()[0]; |
| | | } |
| | | for(JkSketchCustomer c : cList){ |
| | | double latDiff = Constants.formatBigdecimal(c.getLatitude()).doubleValue() - clat; |
| | | double lonDiff = Constants.formatBigdecimal(c.getLongitude()).doubleValue() - clong; |
| | | c.setDistanceCenter(Math.sqrt(latDiff * latDiff + lonDiff * lonDiff)); // 欧æ°è·ç¦» |
| | | } |
| | | Collections.sort(cList, (p1, p2) -> Double.compare(p1.getDistanceCenter(), p2.getDistanceCenter())); |
| | | } |
| | | |
| | | public class DoublePointNew extends DoublePoint{ |
| | | private JkSketchCustomer customer; |
| | | |
| | |
| | | // æ§è¡ç®æ³ |
| | | Assignment solution = routing.solveWithParameters(searchParameters); |
| | | if(solution ==null){ |
| | | log.error("è§åç»æ=============æªæ¾å°æä¼è·¯çº¿ï¼" ); |
| | | throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"æªæ¾å°æä¼è·¯çº¿ï¼"); |
| | | } |
| | | // æå°è·¯çº¿ |
| | |
| | | @ExcelColumn(name="æåºç ") |
| | | private Integer sortnum; |
| | | |
| | | @ApiModelProperty(value = "ç±»å 0é¨ç¦ 1è½¦åº 2LED 3广æ", example = "1") |
| | | @ExcelColumn(name="ç±»å 0é¨ç¦ 1è½¦åº 2LED 3广æ") |
| | | @ApiModelProperty(value = "ç±»å 0é¨ç¦ 1è½¦åº 2LED 3广æç¹ 4广æè®¾å¤", example = "1") |
| | | @ExcelColumn(name="ç±»å 0é¨ç¦ 1è½¦åº 2LED 3广æç¹ 4广æè®¾å¤") |
| | | private Integer type; |
| | | @ApiModelProperty(value = "æ¯å¦ååºåºå
¥å£ 0䏿¯ 1æ¯", example = "1") |
| | | @ExcelColumn(name="æ¯å¦ååºåºå
¥å£ 0䏿¯ 1æ¯") |
| | |
| | | //@ExcelColumn(name="ç¶æ 0æ£å¸¸ ç¦ç¨") |
| | | @TableField(exist = false) |
| | | private String endSteps; |
| | | @ApiModelProperty(value = "è·ç¦»ä¸å¿ç¹è·ç¦»", example = "1") |
| | | @TableField(exist = false) |
| | | private double distanceCenter; |
| | | @ApiModelProperty(value = "åçç»é´å®¢æ·ä½ç½®è·ç¦»æ°ç»ï¼[{a:12,b:100},{a:13,b:200},...],aï¼å®¢æ·ç¼ç ï¼bï¼ä¸å®¢æ·aä¹é´çè·ç¦»") |
| | | @TableField(exist = false) |
| | | private List<DistanceMapParam> distanceMapParamList; |
| | |
| | | String syncHkLed(Device param); |
| | | |
| | | String syncHkBroadcast(Device param); |
| | | String syncHkBroadcastDevice(Device param); |
| | | String dealVisitEventIccm(EventVisitIccmRequest param, HttpServletResponse response); |
| | | |
| | | String dealPlatformStatusEvent(EventPlatformRequest param, HttpServletResponse response); |
| | |
| | | c.setNeedList(Constants.equalsInteger(model.getForceUpdate(),0)?needList:customerList); |
| | | return c; |
| | | } |
| | | |
| | | /** |
| | | * å¼å§å¼æ¥æ§è¡çº¿è·¯ä¼åä»»å¡ |
| | | * @param model |
| | |
| | | int maxnum =100,distance = 500; |
| | | try { |
| | | maxnum = Integer.parseInt(systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.JK_PLAN_MAX_CLUSTER).getCode()); |
| | | distance = Integer.parseInt(systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.JK_PLAN_DISTANCECLUSTER).getCode()); |
| | | distance = Integer.parseInt(systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.JK_PLAN_DISTANCE_CLUSTER).getCode()); |
| | | }catch (Exception e){ |
| | | } |
| | | List<JkSketchCustomer> allCustomerList = model.getCustomerList(); |
| | |
| | | //æé ä¼åæ°æ®æ¨¡å |
| | | dataModel.initDataInfo(vehicleNumber1,demands1,demands2,vehicleCapacities1,distanceMatrix1,vehicleMaxNodes); |
| | | TspSolver.startSearch(dataModel); |
| | | JkSketch nowModel = jkSketchMapper.selectById(model.getId()); |
| | | if(StringUtils.equals(model.getJobId(), nowModel.getJobId())){ |
| | | log.error( "ä¼åç»æå·²å¤±æï¼éæè¿ä¸æ¬¡æä½ï¼"); |
| | | return; |
| | | } |
| | | dealSearchSolution(model, customerList,dataModel); |
| | | }catch (Exception e){ |
| | | e.printStackTrace(); |
| | | jkSketchMapper.update(null,new UpdateWrapper<JkSketch>().lambda() |
| | | .eq(JkSketch::getId,model.getId() ) |
| | | .eq(JkSketch::getJobId,model.getJobId() ) |
| | | .set(JkSketch::getPlanLineInfo,"æè¿ä¸æ¬¡çº¿è·¯ä¼å失败ï¼") |
| | | .set(JkSketch::getPlanLineInfo,"æè¿ä¸æ¬¡çº¿è·¯ä¼å失败ï¼"+e.getMessage()) |
| | | .set(JkSketch::getStatus,Constants.THREE) |
| | | .set(JkSketch::getPlanLineEndDate,new Date())); |
| | | } |
| | |
| | | int maxnum =100,distance = 500; |
| | | try { |
| | | maxnum = Integer.parseInt(systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.JK_PLAN_MAX_CLUSTER).getCode()); |
| | | distance = Integer.parseInt(systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.JK_PLAN_DISTANCECLUSTER).getCode()); |
| | | distance = Integer.parseInt(systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.JK_PLAN_DISTANCE_CLUSTER).getCode()); |
| | | }catch (Exception e){ |
| | | } |
| | | int totalNum = 0; |
| | |
| | | if(dataModel.getSolutions()==null || dataModel.getSolutions().size()==0){ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"线路ã"+line.getLineName()+"ãè°æ´å¤±è´¥ ï¼æªè·å¾æä¼äº¤éè§åæ¹æ¡ï¼"); |
| | | } |
| | | JkSketch nowModel = jkSketchMapper.selectById(model.getId()); |
| | | if(StringUtils.equals(model.getJobId(), nowModel.getJobId())){ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"线路ã"+line.getLineName()+"ãè°æ´å¤±è´¥ ï¼éæè¿ä¸æ¬¡æä½ï¼"); |
| | | } |
| | | |
| | | TspSolverSolutions so = dataModel.getSolutions().get(0); |
| | | List<Integer> routes = so.getRouteIndex(); |
| | | totalDistance += so.getDistance(); |
| | |
| | | jkSketchCustomerMapper.updateById(allList); |
| | | } |
| | | jkSketchMapper.update(null,new UpdateWrapper<JkSketch>().lambda() |
| | | // .eq(JkSketch::getId,model.getId() ) |
| | | .eq(JkSketch::getId,model.getId() ) |
| | | .eq(JkSketch::getJobId,model.getJobId() ) |
| | | .set(success,JkSketch::getDistance,totalDistance) |
| | | .set(JkSketch::getPlanLineInfo,success?"æè¿ä¸æ¬¡çº¿è·¯è°æ´æå":"æè¿ä¸æ¬¡çº¿è·¯è°æ´å¤±è´¥ï¼") |
| | |
| | | int index =0; |
| | | for(JkSketchCustomer c : customers){ |
| | | if(index ==0){ |
| | | if(c.getStartDistance() >0){ |
| | | if(Constants.formatLongNum(c.getStartDistance()) >0){ |
| | | lineDistance+= Constants.formatLongNum(c.getStartDistance()); |
| | | }else{ |
| | | lineDistance += DistanceCalculator.calculateDistanceDecinal(c.getLatitude(),c.getLongitude(),cLatitude,cLongitude); |
| | | } |
| | | } |
| | | if(index == customers.size()-1){ |
| | | if(c.getEndDistance() >0){ |
| | | if(Constants.formatLongNum(c.getEndDistance())>0){ |
| | | lineDistance+= Constants.formatLongNum(c.getEndDistance()); |
| | | }else{ |
| | | lineDistance += DistanceCalculator.calculateDistanceDecinal(c.getLatitude(),c.getLongitude(),cLatitude,cLongitude); |
| | |
| | | .set(JkSketchLine::getIsdeleted,Constants.ONE) |
| | | .eq(JkSketchLine::getIsdeleted,Constants.ZERO) |
| | | .eq(JkSketchLine::getType,Constants.ONE) |
| | | .eq(JkSketchLine::getSketchId,model.getId()) |
| | | .eq(JkSketchLine::getDateInfo,model.getDateInfo())); |
| | | jkSketchCustomerMapper.update(null,new UpdateWrapper<JkSketchCustomer>().lambda() |
| | | .set(JkSketchCustomer::getIsdeleted,Constants.ONE) |
| | | .eq(JkSketchCustomer::getIsdeleted,Constants.ZERO) |
| | | .eq(JkSketchCustomer::getType,Constants.ONE) |
| | | .eq(JkSketchCustomer::getSketchId,model.getId()) |
| | | .eq(JkSketchCustomer::getDateInfo,model.getDateInfo())); |
| | | if(sketchLineList.size()>0){ |
| | | jkSketchLineMapper.insert(sketchLineList); |
| | |
| | | } |
| | | jkSketchMapper.update(null,new UpdateWrapper<JkSketch>().lambda() |
| | | .eq(JkSketch::getId,model.getId() ) |
| | | .eq(JkSketch::getJobId,model.getJobId() ) |
| | | // .eq(JkSketch::getJobId,model.getJobId() ) |
| | | .set(JkSketch::getLineNum,sketchLineList.size() ) |
| | | .set(JkSketch::getOptStatus,Constants.ONE)//å·²çæä¼å线路 |
| | | .set(JkSketch::getDistance,totalDistance) |
| | |
| | | }else{ |
| | | jkSketchMapper.update(null,new UpdateWrapper<JkSketch>().lambda() |
| | | .eq(JkSketch::getId,model.getId() ) |
| | | .eq(JkSketch::getJobId,model.getJobId() ) |
| | | // .eq(JkSketch::getJobId,model.getJobId() ) |
| | | .set(JkSketch::getPlanLineInfo,"æè¿ä¸æ¬¡çº¿è·¯ä¼å失败,æªæ¾å°æä¼è·¯çº¿ï¼") |
| | | .set(JkSketch::getStatus,Constants.THREE) |
| | | .set(JkSketch::getPlanLineEndDate,date)); |
| | |
| | | .set(JkSketchLine::getIsdeleted,Constants.ONE) |
| | | .eq(JkSketchLine::getIsdeleted,Constants.ZERO) |
| | | .eq(JkSketchLine::getType,Constants.ONE) |
| | | .eq(JkSketchLine::getSketchId,model.getId()) |
| | | .eq(JkSketchLine::getDateInfo,model.getDateInfo())); |
| | | jkSketchCustomerMapper.update(null,new UpdateWrapper<JkSketchCustomer>().lambda() |
| | | .set(JkSketchCustomer::getIsdeleted,Constants.ONE) |
| | | .eq(JkSketchCustomer::getIsdeleted,Constants.ZERO) |
| | | .eq(JkSketchCustomer::getType,Constants.ONE) |
| | | .eq(JkSketchCustomer::getSketchId,model.getId()) |
| | | .eq(JkSketchCustomer::getDateInfo,model.getDateInfo())); |
| | | if(sketchLineList.size()>0){ |
| | | jkSketchLineMapper.insert(sketchLineList); |
| | |
| | | return null; |
| | | } |
| | | @Override |
| | | public String syncHkBroadcastDevice(Device param){ |
| | | |
| | | return null; |
| | | } |
| | | @Override |
| | | // @Async |
| | | public String syncPrivilege(PrivilegeGroupRequest param){ |
| | | |
| | |
| | | Constants.DEALING_HK_SYNCDEVICE =false; |
| | | } |
| | | } |
| | | @Override |
| | | // @Async |
| | | public String syncHkBroadcastDevice(Device param){ |
| | | if(Constants.DEALING_HK_SYNCDEVICE){ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "忥任塿£å¨æ§è¡å¦ï¼è¯·ç¨åæ¥çç»æï¼") ; |
| | | } |
| | | Constants.DEALING_HK_SYNCDEVICE =true; |
| | | try { |
| | | List<Device> deleteList = new ArrayList<>(); |
| | | List<Device> addList = new ArrayList<>(); |
| | | List<Device> editList = new ArrayList<>(); |
| | | Date date = new Date(); |
| | | //æ¥è¯¢å
¨é¨å¹¿æç¹è®¾å¤æ°æ® |
| | | List<Device> allList = deviceMapper.selectList(new QueryWrapper<Device>().lambda() |
| | | .eq(Device::getType,Constants.FOUR)); |
| | | List<FetchAudioDeviceInfoResponse> allHkList = getAllBroadcastDeviceList(); |
| | | /** |
| | | * è·åå¢å æ¹æ°æ®éå |
| | | */ |
| | | getBroadcastDeviceDataChangeList(allList,allHkList,addList,editList,deleteList,date); |
| | | if(deleteList.size()>0){ |
| | | //é»è¾å é¤ |
| | | for(Device d : deleteList){ |
| | | deviceMapper.updateById(d); |
| | | } |
| | | } |
| | | if(addList.size()>0){ |
| | | deviceMapper.insert(addList); |
| | | } |
| | | if(editList.size()>0){ |
| | | for(Device d : editList){ |
| | | deviceMapper.updateById(d); |
| | | } |
| | | } |
| | | return "åæ¥æ°æ®ï¼æ°å¢ã"+addList.size()+"ãæ¡ï¼æ´æ°ã"+editList.size()+"ãæ¡ï¼å é¤ã"+deleteList.size()+"ãæ¡"; |
| | | }catch (Exception e){ |
| | | e.printStackTrace(); |
| | | throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(), "åæ¥å¤±è´¥ï¼"); |
| | | }finally { |
| | | Constants.DEALING_HK_SYNCDEVICE =false; |
| | | } |
| | | } |
| | | |
| | | private void getBroadcastDataChangeList(List<Device> allList, List<FetchAudioChannelInfoResponse> allHkList, List<Device> addList, List<Device> editList, List<Device> deleteList, Date date) { |
| | | if(allHkList!=null && allHkList.size()>0){ |
| | |
| | | } |
| | | //夿è·åå é¤çé¨ç¦è®¾å¤ï¼é»è¾å é¤ |
| | | getDeleteBroadcastList(allList,allHkList,deleteList,date); |
| | | } |
| | | private void getBroadcastDeviceDataChangeList(List<Device> allList, List<FetchAudioDeviceInfoResponse> allHkList, List<Device> addList, List<Device> editList, List<Device> deleteList, Date date) { |
| | | if(allHkList!=null && allHkList.size()>0){ |
| | | //è·å海康å
¨é¨é¨ç¦ç»æ°æ® |
| | | for(FetchAudioDeviceInfoResponse device : allHkList){ |
| | | Device model = getExistedBroadcastDevice(device,allList); |
| | | if(model !=null){ |
| | | //妿已åå¨ï¼åæ´æ°æ°æ® |
| | | model = initBroadcastDeviceDataByHkData(model,device,date); |
| | | editList.add(model); |
| | | }else{ |
| | | //妿ä¸åå¨ï¼åæ°å¢æ°æ® |
| | | model = new Device(); |
| | | model = initBroadcastDeviceDataByHkData(model,device,date); |
| | | model.setIsEntrance(Constants.ZERO); |
| | | addList.add(model); |
| | | } |
| | | } |
| | | } |
| | | //夿è·åå é¤çé¨ç¦è®¾å¤ï¼é»è¾å é¤ |
| | | getDeleteBroadcastDeviceList(allList,allHkList,deleteList,date); |
| | | } |
| | | |
| | | @Override |
| | |
| | | throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(), "对ä¸èµ·ï¼æµ·åº·åæ¥æ°æ®å¤±è´¥~"); |
| | | } |
| | | BaseListPageResponse<FetchAudioChannelInfoResponse> r = response.getData(); |
| | | curTotal += 100; |
| | | if(curTotal >= r.getTotal()){ |
| | | hasNext = false; |
| | | } |
| | | if(r.getList() == null || r.getList().size()==0){ |
| | | hasNext =false; |
| | | }else{ |
| | | allDoorList.addAll(r.getList()); |
| | | } |
| | | curPage++; |
| | | } |
| | | return allDoorList; |
| | | } |
| | | /** |
| | | * è·åå
¨é¨å¹¿æç¹æ°æ® |
| | | * @return |
| | | */ |
| | | public List<FetchAudioDeviceInfoResponse> getAllBroadcastDeviceList(){ |
| | | List<FetchAudioDeviceInfoResponse> allDoorList = new ArrayList<>(); |
| | | Date date = new Date(); |
| | | boolean hasNext = true; |
| | | int curTotal = 0; |
| | | int curPage = 1; |
| | | while (hasNext){ |
| | | //å页éåå¾ªç¯æ¥è¯¢ææé¨ç¦è®¾å¤æ°æ® |
| | | FetchAudioDeviceRequest param = new FetchAudioDeviceRequest(); |
| | | param.setPageNo(curPage); |
| | | param.setPageSize(100); |
| | | BaseResponse<BaseListPageResponse<FetchAudioDeviceInfoResponse>> response = HKService.fetchAudioDevice(param); |
| | | if(response == null || !StringUtils.equals(response.getCode(), HKConstants.RESPONSE_SUCCEE)){ |
| | | throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(), "对ä¸èµ·ï¼æµ·åº·åæ¥æ°æ®å¤±è´¥~"); |
| | | } |
| | | BaseListPageResponse<FetchAudioDeviceInfoResponse> r = response.getData(); |
| | | curTotal += 100; |
| | | if(curTotal >= r.getTotal()){ |
| | | hasNext = false; |
| | |
| | | model.setResourceType(device.getAudioChannelType()); |
| | | model.setStatus(device.getState()); |
| | | model.setRegionName(device.getRegionName()); |
| | | return model; |
| | | } |
| | | private Device initBroadcastDeviceDataByHkData(Device model, FetchAudioDeviceInfoResponse device, Date date) { |
| | | model.setIsdeleted(Constants.ZERO); |
| | | model.setHkDate(date); |
| | | model.setHkId(device.getDeviceIndexCode()); |
| | | model.setName(device.getDeviceName()); |
| | | model.setHkStatus(Constants.ONE); |
| | | model.setType(Constants.THREE); |
| | | model.setChannelNo(device.getDeviceCode()); |
| | | model.setChannelInfo(device.getDeviceType()); |
| | | model.setResourceType(device.getDeviceType()); |
| | | model.setStatus(Constants.ZERO); |
| | | model.setRemark(device.getDesc()); |
| | | model.setRegionName(device.getRegionIndexCode()); |
| | | return model; |
| | | } |
| | | private Device initDoorDataByHkData(Device model, DoorsInfoResponse door, Date date, List<AcsDeviceInfoResponse> allHkList) { |
| | |
| | | } |
| | | return null; |
| | | } |
| | | private Device getExistedBroadcastDevice(FetchAudioDeviceInfoResponse device, List<Device> allList) { |
| | | if(allList.size()>0){ |
| | | for(Device r : allList){ |
| | | if(StringUtils.equals(r.getHkId(), device.getDeviceIndexCode())){ |
| | | //表示æªå é¤ |
| | | return r; |
| | | } |
| | | } |
| | | } |
| | | return null; |
| | | } |
| | | private Device getExistedDevice(AcsDeviceInfoResponse device, List<Device> allList) { |
| | | if(allList.size()>0){ |
| | | for(Device r : allList){ |
| | |
| | | private void getDeleteBroadcastList(List<Device> allList, List<FetchAudioChannelInfoResponse> allHkList,List<Device> deleteList ,Date date) { |
| | | if(allList!=null && allList.size()>0){ |
| | | for(Device device : allList){ |
| | | if(isDeletedBroadcast(device,allHkList)){ |
| | | device.setIsdeleted(Constants.ONE); |
| | | device.setEditDate(date); |
| | | deleteList.add(device); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | private void getDeleteBroadcastDeviceList(List<Device> allList, List<FetchAudioDeviceInfoResponse> allHkList,List<Device> deleteList ,Date date) { |
| | | if(allList!=null && allList.size()>0){ |
| | | for(Device device : allList){ |
| | | if(isDeletedBroadcastDevice(device,allHkList)){ |
| | | device.setIsdeleted(Constants.ONE); |
| | | device.setEditDate(date); |
| | |
| | | return true; |
| | | |
| | | } |
| | | private boolean isDeletedBroadcastDevice(Device device, List<FetchAudioChannelInfoResponse> allHkList) { |
| | | private boolean isDeletedBroadcast(Device device, List<FetchAudioChannelInfoResponse> allHkList) { |
| | | if(allHkList.size()>0){ |
| | | for(FetchAudioChannelInfoResponse r : allHkList){ |
| | | if(StringUtils.equals(device.getHkId(), r.getAudioChannelIndexCode())){ |
| | |
| | | return true; |
| | | |
| | | } |
| | | private boolean isDeletedBroadcastDevice(Device device, List<FetchAudioDeviceInfoResponse> allHkList) { |
| | | if(allHkList.size()>0){ |
| | | for(FetchAudioDeviceInfoResponse r : allHkList){ |
| | | if(StringUtils.equals(device.getHkId(), r.getDeviceIndexCode())){ |
| | | //表示æªå é¤ |
| | | return false; |
| | | } |
| | | } |
| | | } |
| | | return true; |
| | | |
| | | } |
| | | private boolean isDeletedDevice(Device device, List<AcsDeviceInfoResponse> allHkList) { |
| | | if(allHkList.size()>0){ |
| | | for(AcsDeviceInfoResponse r : allHkList){ |