| | |
| | | </el-form> |
| | | <!-- 表格和分页 --> |
| | | <template v-slot:table-wrap> |
| | | <ul class="toolbar" v-permissions="['business:device:create', 'business:device:delete']"> |
| | | <li><el-button type="primary" :loading="isWorking.delete" @click="synchronousData">同步</el-button></li> |
| | | <li><el-button type="primary" @click="$refs.operaDeviceWindow.open('新建广播')" icon="el-icon-plus" v-permissions="['business:device:create']">新建</el-button></li> |
| | | <li><el-button @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['business:device:delete']">删除</el-button></li> |
| | | </ul> |
| | | <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 type="selection" width="55"></el-table-column> |
| | | <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="唯一标识" ></el-table-column> |
| | | <el-table-column prop="regionPathName" label="所在位置"></el-table-column> |
| | | <el-table-column prop="no" label="序列号" ></el-table-column> |
| | | <el-table-column prop="ip" label="IP地址" ></el-table-column> |
| | | <el-table-column prop="port" label="端口" ></el-table-column> |
| | | <el-table-column prop="doorId" label="账号"></el-table-column> |
| | | <el-table-column prop="doorName" label="密码" align="center"> |
| | | <template slot-scope="{row}"> |
| | | <span :class=" 'blue'">{{row.showPwd?row.doorName:'******'}}</span> |
| | | <el-button style="margin-left: 10px" v-if="row.doorName!=null" |
| | | @click.native.p.prevent="showPassward(row)" type="text"> |
| | | <i class="el-icon-view" :class="row.showPwd?'red':'blue'" :title="row.showPwd?'隐藏':'显示'"></i> |
| | | </el-button> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="editDate" label="最近更新时间"></el-table-column> |
| | | <el-table-column |
| | | label="操作" |
| | | align="center" |
| | | min-width="120" |
| | | fixed="right" |
| | | > |
| | | <template slot-scope="{row}"> |
| | | <el-button type="text" @click="$refs.operaDeviceWindow.open('编辑广播', row)" icon="el-icon-edit" v-permissions="['business:device:update']">编辑</el-button> |
| | | <el-button type="text" @click="send(row)" icon="el-icon-edit" v-permissions="['business:device:update']">发送播报</el-button> |
| | | <el-button type="text" class="red" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['business:device:delete']">删除</el-button> |
| | | </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" |
| | |
| | | > |
| | | </pagination> |
| | | </template> |
| | | <el-dialog |
| | | :visible.sync="visibleSend" |
| | | style="z-index: 100000" |
| | | append-to-body |
| | | width="50%" |
| | | height="50%" |
| | | :title="'发送播报-'+ form.name" |
| | | > |
| | | <el-form :model="form" ref="form" > |
| | | <el-form-item label="播报内容" prop="name" required> |
| | | <el-input v-model="form.sendInfo" type="textarea" placeholder="请输入播报内容" v-trim/> |
| | | </el-form-item> |
| | | </el-form> |
| | | <template v-slot:footer > |
| | | <el-button @click="sendBobao()" type="primary" :loading="isWorkSending">确认</el-button> |
| | | <el-button @click="sendClose()">返回</el-button> |
| | | </template> |
| | | </el-dialog> |
| | | <!-- 新建/修改 --> |
| | | <OperaDeviceBroadcastWindow ref="operaDeviceWindow" @success="handlePageChange"/> |
| | | <OperaDeviceWindow ref="operaDeviceWindow" @success="handlePageChange"/> |
| | | </TableLayout> |
| | | </template> |
| | | |
| | |
| | | import BaseTable from '@/components/base/BaseTable' |
| | | import TableLayout from '@/layouts/TableLayout' |
| | | import Pagination from '@/components/common/Pagination' |
| | | import OperaDeviceBroadcastWindow from '@/components/business/OperaDeviceBroadcastWindow' |
| | | import { syncDevices } from '@/api/business/device' |
| | | import OperaDeviceWindow from '@/components/business/OperaDeviceWindow' |
| | | import { syncDevices, updateEntranceById } from '@/api/business/device' |
| | | export default { |
| | | name: 'Device', |
| | | extends: BaseTable, |
| | | components: { TableLayout, Pagination, OperaDeviceBroadcastWindow }, |
| | | components: { TableLayout, Pagination, OperaDeviceWindow }, |
| | | data () { |
| | | return { |
| | | // 搜索 |
| | |
| | | online: '', |
| | | type: 4 |
| | | }, |
| | | isWorkSending: false, |
| | | form: { |
| | | sendInfo: '', |
| | | id: '', |
| | | hkId: '', |
| | | name: '' |
| | | }, |
| | | visibleSend: false, |
| | | options: [] |
| | | } |
| | | }, |
| | |
| | | this.search() |
| | | }, |
| | | methods: { |
| | | showPassward (row) { |
| | | if (!row.showPwd) { |
| | | this.$set(row, 'showPwd', true) |
| | | } else { |
| | | this.$set(row, 'showPwd', false) |
| | | } |
| | | }, |
| | | sendBobao () { |
| | | if (!this.form.sendInfo) { |
| | | return |
| | | } |
| | | this.$dialog.actionConfirm('确认进行广播播报吗?', '操作确认提醒') |
| | | .then(() => { |
| | | this.isWorkSending = true |
| | | this.api.sendBobao(this.form) |
| | | .then(res => { |
| | | this.$tip.apiSuccess(res || '播报请求成功') |
| | | this.sendClose() |
| | | }) |
| | | .catch(e => { |
| | | }) |
| | | .finally(() => { |
| | | this.isWorkSending = false |
| | | }) |
| | | }) |
| | | .catch(() => {}) |
| | | }, |
| | | send (row) { |
| | | this.visibleSend = true |
| | | this.form = { sendInfo: '', id: row.id, hkId: row.hkId, name: row.name } |
| | | }, |
| | | sendClose () { |
| | | this.visibleSend = false |
| | | this.isWorkSending = false |
| | | this.form = { sendInfo: '', id: '', hkId: '', name: '' } |
| | | changeManufature(e, row) { |
| | | updateEntranceById({ |
| | | id: row.id, |
| | | isEntrance: e |
| | | }) |
| | | }, |
| | | synchronousData () { |
| | | this.$dialog.actionConfirm('操作确认提醒', '您确认同步全部信息吗?') |
| | | .then(() => { |
| | | this.isWorking.delete = true |
| | | syncDevices({ type: 4 }) |
| | | syncDevices({type: 3}) |
| | | .then(res => { |
| | | this.$tip.apiSuccess(res || '同步成功') |
| | | this.search() |
| | | }) |
| | | .catch(e => { |
| | | // this.$tip.apiFailed(e) |
| | | // this.$tip.apiFailed(e) |
| | | }) |
| | | .finally(() => { |
| | | this.isWorking.delete = false |
| | |
| | | <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-column |
| | | label="操作" |
| | | align="center" |
| | | min-width="120" |
| | | fixed="right" |
| | | > |
| | | <template slot-scope="{row}"> |
| | | <el-button type="text" @click="send(row)" icon="el-icon-edit" >发送播报</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | <pagination |
| | | @size-change="handleSizeChange" |
| | |
| | | </pagination> |
| | | </template> |
| | | <!-- 新建/修改 --> |
| | | <el-dialog |
| | | :visible.sync="visibleSend" |
| | | style="z-index: 100000" |
| | | append-to-body |
| | | width="50%" |
| | | height="50%" |
| | | :title="'发送播报-'+ form.name" |
| | | > |
| | | <el-form :model="form" ref="form" > |
| | | <el-form-item label="播报内容" prop="name" required> |
| | | <el-input v-model="form.sendInfo" type="textarea" placeholder="请输入播报内容" v-trim/> |
| | | </el-form-item> |
| | | </el-form> |
| | | <template v-slot:footer > |
| | | <el-button @click="sendBobao()" type="primary" :loading="isWorkSending">确认</el-button> |
| | | <el-button @click="sendClose()">返回</el-button> |
| | | </template> |
| | | </el-dialog> |
| | | <!-- <OperaDeviceWindow ref="operaDeviceWindow" @success="handlePageChange"/>--> |
| | | </TableLayout> |
| | | </template> |
| | | |
| | |
| | | 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 }, |
| | | components: { TableLayout, Pagination, OperaDeviceWindow }, |
| | | data () { |
| | | return { |
| | | // 搜索 |
| | |
| | | online: '', |
| | | type: 3 |
| | | }, |
| | | isWorkSending: false, |
| | | form: { |
| | | sendInfo: '', |
| | | id: '', |
| | | hkId: '', |
| | | name: '' |
| | | }, |
| | | visibleSend: false, |
| | | options: [] |
| | | } |
| | | }, |
| | |
| | | this.search() |
| | | }, |
| | | methods: { |
| | | sendBobao () { |
| | | if (!this.form.sendInfo) { |
| | | return |
| | | } |
| | | this.$dialog.actionConfirm('确认进行广播播报吗?', '操作确认提醒') |
| | | .then(() => { |
| | | this.isWorkSending = true |
| | | this.api.sendBobao(this.form) |
| | | .then(res => { |
| | | this.$tip.apiSuccess(res || '播报请求成功') |
| | | this.sendClose() |
| | | }) |
| | | .catch(e => { |
| | | }) |
| | | .finally(() => { |
| | | this.isWorkSending = false |
| | | }) |
| | | }) |
| | | .catch(() => {}) |
| | | }, |
| | | send (row) { |
| | | this.visibleSend = true |
| | | this.form = { sendInfo: '', id: row.id, hkId: row.hkId, name: row.name } |
| | | }, |
| | | sendClose () { |
| | | this.visibleSend = false |
| | | this.isWorkSending = false |
| | | this.form = { sendInfo: '', id: '', hkId: '', name: '' } |
| | | }, |
| | | changeManufature (e, row) { |
| | | changeManufature(e, row) { |
| | | updateEntranceById({ |
| | | id: row.id, |
| | | isEntrance: e |
| | |
| | | this.$dialog.actionConfirm('操作确认提醒', '您确认同步全部信息吗?') |
| | | .then(() => { |
| | | this.isWorking.delete = true |
| | | syncDevices({ type: 3 }) |
| | | syncDevices({type: 3}) |
| | | .then(res => { |
| | | this.$tip.apiSuccess(res || '同步成功') |
| | | this.search() |
| | | }) |
| | | .catch(e => { |
| | | // this.$tip.apiFailed(e) |
| | | // this.$tip.apiFailed(e) |
| | | }) |
| | | .finally(() => { |
| | | this.isWorking.delete = false |
| | |
| | | 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" ; |
| | | |
| | | /** |
| | | * 操作类型,用于做接口验证分组 |
| | |
| | | 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(),"未找到最优路线!"); |
| | | } |
| | | // 打印路线 |
| | | resultSolution(data, routing, manager, solution); |
| | | long end =System.currentTimeMillis(); |
| | | log.error("规划结束=============耗时=========="+(end -start)+"(ms)"+(end -start)/1000 +"s"+(end -start)/60/1000 +"m"); |
| | | log.error("规划结束=============耗时=========="+(end -start)+"(ms)"+(end -start)/1000 +"s"+(end -start)/60/1000 +"m"); |
| | | } |
| | | static void resultSolution( DataModel data, RoutingModel routing, RoutingIndexManager manager, Assignment solution) { |
| | | long maxRouteDistance = 0; |
| | |
| | | package com.doumee.dao.business.model; |
| | | |
| | | import com.alibaba.fastjson.JSONObject; |
| | | import com.baomidou.mybatisplus.annotation.TableField; |
| | | import com.doumee.core.annotation.excel.ExcelColumn; |
| | | import com.doumee.service.business.third.model.LoginUserModel; |
| | | import io.swagger.annotations.ApiModel; |
| | |
| | | import com.baomidou.mybatisplus.annotation.TableName; |
| | | import lombok.Data; |
| | | |
| | | import java.math.BigDecimal; |
| | | import java.util.Date; |
| | | |
| | | /** |
| | |
| | | @ExcelColumn(name="排序码") |
| | | private Integer sortnum; |
| | | |
| | | @ApiModelProperty(value = "类型 0门禁 1车库 2LED 3广播点 4广播设备 5断路器空开 6海康电表", example = "1") |
| | | @ExcelColumn(name="类型 0门禁 1车库 2LED 3广播点 4广播设备 5断路器空开 6海康电表") |
| | | @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是") |
| | |
| | | @ApiModelProperty(value = "门禁点名称") |
| | | @ExcelColumn(name="门禁点名称") |
| | | private String doorName; |
| | | @ApiModelProperty(value = "播报内容") |
| | | @TableField(exist = false) |
| | | private String sendInfo; |
| | | @ApiModelProperty(value = "配置参数") |
| | | @TableField(exist = false) |
| | | private JSONObject doorNameObj; |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | |
| | | 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 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) { |
| | | AcsDeviceInfoResponse device = getDeviceByDoorid(door.getParentIndexCode(),allHkList); |
| | | model.setIsdeleted(Constants.ZERO); |