设备事件

master
guochaojie 4 months ago
parent 83af3321d2
commit 75e88503f1

@ -9,7 +9,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
* V3.5 * V3.5
* https://www.jnpfsoft.com * https://www.jnpfsoft.com
* JNPF * JNPF
* 2024-06-18 * 2024-07-01
*/ */
public interface RecycleDeviceEventMapper extends BaseMapper<RecycleDeviceEventEntity> { public interface RecycleDeviceEventMapper extends BaseMapper<RecycleDeviceEventEntity> {

@ -11,7 +11,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
* V3.5 * V3.5
* https://www.jnpfsoft.com * https://www.jnpfsoft.com
* JNPF * JNPF
* 2024-06-18 * 2024-07-01
*/ */
public interface RecycleDeviceEventService extends IService<RecycleDeviceEventEntity> { public interface RecycleDeviceEventService extends IService<RecycleDeviceEventEntity> {
List<RecycleDeviceEventEntity> getList(RecycleDeviceEventPagination recycleDeviceEventPagination); List<RecycleDeviceEventEntity> getList(RecycleDeviceEventPagination recycleDeviceEventPagination);

@ -36,7 +36,7 @@ import jnpf.permission.entity.UserEntity;
* V3.5 * V3.5
* https://www.jnpfsoft.com * https://www.jnpfsoft.com
* JNPF * JNPF
* 2024-06-18 * 2024-07-01
*/ */
@Service @Service
public class RecycleDeviceEventServiceImpl extends ServiceImpl<RecycleDeviceEventMapper, RecycleDeviceEventEntity> implements RecycleDeviceEventService{ public class RecycleDeviceEventServiceImpl extends ServiceImpl<RecycleDeviceEventMapper, RecycleDeviceEventEntity> implements RecycleDeviceEventService{
@ -173,45 +173,35 @@ public class RecycleDeviceEventServiceImpl extends ServiceImpl<RecycleDeviceEven
} }
if(ObjectUtil.isNotEmpty(recycleDeviceEventPagination.getBucketCode())){ if(ObjectUtil.isNotEmpty(recycleDeviceEventPagination.getEventType())){
recycleDeviceEventNum++; recycleDeviceEventNum++;
List<String> idList = new ArrayList<>(); List<String> idList = new ArrayList<>();
try { try {
String[][] bucketCode = JsonUtil.getJsonToBean(recycleDeviceEventPagination.getBucketCode(),String[][].class); String[][] eventType = JsonUtil.getJsonToBean(recycleDeviceEventPagination.getEventType(),String[][].class);
for(int i=0;i<bucketCode.length;i++){ for(int i=0;i<eventType.length;i++){
if(bucketCode[i].length>0){ if(eventType[i].length>0){
idList.add(JsonUtil.getObjectToString(Arrays.asList(bucketCode[i]))); idList.add(JsonUtil.getObjectToString(Arrays.asList(eventType[i])));
} }
} }
}catch (Exception e1){ }catch (Exception e1){
try { try {
List<String> bucketCode = JsonUtil.getJsonToList(recycleDeviceEventPagination.getBucketCode(),String.class); List<String> eventType = JsonUtil.getJsonToList(recycleDeviceEventPagination.getEventType(),String.class);
if(bucketCode.size()>0){ if(eventType.size()>0){
idList.addAll(bucketCode); idList.addAll(eventType);
} }
}catch (Exception e2){ }catch (Exception e2){
idList.add(String.valueOf(recycleDeviceEventPagination.getBucketCode())); idList.add(String.valueOf(recycleDeviceEventPagination.getEventType()));
} }
} }
recycleDeviceEventQueryWrapper.lambda().and(t->{ recycleDeviceEventQueryWrapper.lambda().and(t->{
idList.forEach(tt->{ idList.forEach(tt->{
t.like(RecycleDeviceEventEntity::getBucketCode, tt).or(); t.like(RecycleDeviceEventEntity::getEventType, tt).or();
}); });
}); });
} }
if(ObjectUtil.isNotEmpty(recycleDeviceEventPagination.getEventType())){
recycleDeviceEventNum++;
String value = recycleDeviceEventPagination.getEventType() instanceof List ?
JsonUtil.getObjectToString(recycleDeviceEventPagination.getEventType()) :
String.valueOf(recycleDeviceEventPagination.getEventType());
recycleDeviceEventQueryWrapper.lambda().like(RecycleDeviceEventEntity::getEventType,value);
}
if(ObjectUtil.isNotEmpty(recycleDeviceEventPagination.getIsLocal())){ if(ObjectUtil.isNotEmpty(recycleDeviceEventPagination.getIsLocal())){
recycleDeviceEventNum++; recycleDeviceEventNum++;
@ -229,10 +219,13 @@ public class RecycleDeviceEventServiceImpl extends ServiceImpl<RecycleDeviceEven
if(ObjectUtil.isNotEmpty(recycleDeviceEventPagination.getEventTime())){ if(ObjectUtil.isNotEmpty(recycleDeviceEventPagination.getEventTime())){
recycleDeviceEventNum++; recycleDeviceEventNum++;
String value = recycleDeviceEventPagination.getEventTime() instanceof List ? List EventTimeList = JsonUtil.getJsonToList(recycleDeviceEventPagination.getEventTime(),String.class);
JsonUtil.getObjectToString(recycleDeviceEventPagination.getEventTime()) : Long fir = Long.valueOf(String.valueOf(EventTimeList.get(0)));
String.valueOf(recycleDeviceEventPagination.getEventTime()); Long sec = Long.valueOf(String.valueOf(EventTimeList.get(1)));
recycleDeviceEventQueryWrapper.lambda().like(RecycleDeviceEventEntity::getEventTime,value);
recycleDeviceEventQueryWrapper.lambda().ge(RecycleDeviceEventEntity::getEventTime, new Date(fir))
.le(RecycleDeviceEventEntity::getEventTime, DateUtil.stringToDate(DateUtil.daFormatYmd(sec) + " 23:59:59"));
} }

@ -5,24 +5,16 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.tags.Tag;
import jnpf.base.ActionResult; import jnpf.base.ActionResult;
import jnpf.base.UserInfo;
import jnpf.base.vo.PageListVO; import jnpf.base.vo.PageListVO;
import jnpf.base.vo.PaginationVO; import jnpf.base.vo.PaginationVO;
import jnpf.entity.RecycleBucketEntity; import jnpf.entity.*;
import jnpf.entity.RecycleCameraEntity;
import jnpf.entity.RecycleDeviceEntity;
import jnpf.entity.SimCardEntity;
import jnpf.model.recycledevice.Command; import jnpf.model.recycledevice.Command;
import jnpf.model.recycledevice.RecycleDeviceConstant; import jnpf.model.recycledevice.RecycleDeviceConstant;
import jnpf.model.recycledevice.RecycleDeviceForm; import jnpf.model.recycledevice.RecycleDeviceForm;
import jnpf.model.recycledevice.RecycleDevicePagination; import jnpf.model.recycledevice.RecycleDevicePagination;
import jnpf.service.RecycleBucketService; import jnpf.service.*;
import jnpf.service.RecycleCameraService; import jnpf.util.*;
import jnpf.service.RecycleDeviceService;
import jnpf.service.SimCardService;
import jnpf.util.GeneraterSwapUtil;
import jnpf.util.JsonUtil;
import jnpf.util.StringUtil;
import jnpf.util.UserProvider;
import jnpf.utils.CustomerMqttClient; import jnpf.utils.CustomerMqttClient;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import oracle.jdbc.proxy.annotation.Post; import oracle.jdbc.proxy.annotation.Post;
@ -35,6 +27,7 @@ import javax.annotation.Resource;
import javax.validation.Valid; import javax.validation.Valid;
import java.io.IOException; import java.io.IOException;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@ -67,6 +60,8 @@ public class RecycleDeviceController {
@Resource @Resource
private RecycleCameraService cameraService; private RecycleCameraService cameraService;
@Resource @Resource
private RecycleDeviceEventService eventService;
@Resource
private CustomerMqttClient mqttClient; private CustomerMqttClient mqttClient;
@ -267,8 +262,24 @@ public class RecycleDeviceController {
@Operation(summary = "远程发送命令") @Operation(summary = "远程发送命令")
@PostMapping("/command") @PostMapping("/command")
public ActionResult command(@RequestBody Command command) { public ActionResult command(@RequestBody Command command) {
UserInfo userInfo = userProvider.get();
Date nowDate = DateUtil.getNowDate();
String deviceCode = command.getDeviceCode(); String deviceCode = command.getDeviceCode();
mqttClient.publish(deviceCode + "/command", JSONUtil.toJsonStr(command)); mqttClient.publish(deviceCode + "/command", JSONUtil.toJsonStr(command));
//记录命令下发
RecycleDeviceEventEntity event = new RecycleDeviceEventEntity();
event.setDeviceCode(command.getDeviceCode());
if (null != command.getData() && !"".equals(command.getData().toString()))
event.setBucketCode(command.getData().toString());
event.setEventTime(nowDate);
event.setEventType(command.getCmd().getValue());
event.setEventDesc("手动远程控制,命令下发!");
event.setCompanyId(userInfo.getOrganizeId());
event.setCreateTime(nowDate);
event.setCreateUserId(userInfo.getUserId());
eventService.save(event);
return ActionResult.success("命令已发送!"); return ActionResult.success("命令已发送!");
} }

@ -34,7 +34,7 @@ import org.springframework.transaction.annotation.Transactional;
* @ V3.5 * @ V3.5
* @ https://www.jnpfsoft.com * @ https://www.jnpfsoft.com
* @ JNPF * @ JNPF
* @ 2024-06-18 * @ 2024-07-01
*/ */
@Slf4j @Slf4j
@RestController @RestController

@ -25,7 +25,7 @@ public class RecycleDeliveryOrderEntity {
@TableField(value = "ORDER_NO" , updateStrategy = FieldStrategy.IGNORED) @TableField(value = "ORDER_NO" , updateStrategy = FieldStrategy.IGNORED)
private String orderNo; private String orderNo;
@TableField(value = "DEVICE_ORDER_NO" , updateStrategy = FieldStrategy.IGNORED) @TableField(value = "DEVICE_ORDER_NO" , updateStrategy = FieldStrategy.IGNORED)
private Integer deviceOrderNo; private String deviceOrderNo;
@TableField(value = "DEVICE_CODE" , updateStrategy = FieldStrategy.IGNORED) @TableField(value = "DEVICE_CODE" , updateStrategy = FieldStrategy.IGNORED)
private String deviceCode; private String deviceCode;
@TableField(value = "BUCKET_CODE" , updateStrategy = FieldStrategy.IGNORED) @TableField(value = "BUCKET_CODE" , updateStrategy = FieldStrategy.IGNORED)

@ -9,7 +9,7 @@ import java.util.Date;
* @ V3.5 * @ V3.5
* @ https://www.jnpfsoft.com * @ https://www.jnpfsoft.com
* @ JNPF * @ JNPF
* @ 2024-06-18 * @ 2024-07-01
*/ */
@Data @Data
@TableName("nx_recycle_device_event") @TableName("nx_recycle_device_event")
@ -52,4 +52,10 @@ public class RecycleDeviceEventEntity {
private String organizeJsonId; private String organizeJsonId;
@TableField("F_FLOW_ID") @TableField("F_FLOW_ID")
private String flowId; private String flowId;
@TableField("ORDER_NO")
private String orderNo;
@TableField("PHONE")
private String phone;
@TableField("ORDER_TYPE")
private String orderType;
} }

@ -10,7 +10,7 @@ import com.fasterxml.jackson.annotation.JsonProperty;
* @ V3.5 * @ V3.5
* @ https://www.jnpfsoft.com * @ https://www.jnpfsoft.com
* @ JNPF * @ JNPF
* @ 2024-06-18 * @ 2024-07-01
*/ */
@Data @Data
public class RecycleDeviceEventForm { public class RecycleDeviceEventForm {
@ -25,11 +25,11 @@ public class RecycleDeviceEventForm {
private Object bucketCode; private Object bucketCode;
/** 门号 **/ /** 门号 **/
@JsonProperty("doorNum") @JsonProperty("doorNum")
private String doorNum; private Object doorNum;
/** 事件类型 **/ /** 事件类型 **/
@JsonProperty("eventType") @JsonProperty("eventType")
private String eventType; private Object eventType;
/** 事件时间 **/ /** 发生时间 **/
@JsonProperty("eventTime") @JsonProperty("eventTime")
private String eventTime; private String eventTime;
/** 事件描述 **/ /** 事件描述 **/

@ -11,7 +11,7 @@ import java.util.List;
* @ V3.5 * @ V3.5
* @ https://www.jnpfsoft.com * @ https://www.jnpfsoft.com
* @ JNPF * @ JNPF
* @ 2024-06-18 * @ 2024-07-01
*/ */
@Data @Data
public class RecycleDeviceEventPagination extends Pagination { public class RecycleDeviceEventPagination extends Pagination {
@ -30,9 +30,6 @@ public class RecycleDeviceEventPagination extends Pagination {
/** 设备编码 */ /** 设备编码 */
@JsonProperty("deviceCode") @JsonProperty("deviceCode")
private Object deviceCode; private Object deviceCode;
/** 桶编码 */
@JsonProperty("bucketCode")
private Object bucketCode;
/** 事件类型 */ /** 事件类型 */
@JsonProperty("eventType") @JsonProperty("eventType")
private Object eventType; private Object eventType;

@ -227,30 +227,37 @@
<jnpf-form-tip-item label="租户" prop="tenantId"> <jnpf-form-tip-item label="租户" prop="tenantId">
<JnpfOrganizeSelect v-model="dataForm.tenantId" @change="changeData('tenantId', -1)" <JnpfOrganizeSelect v-model="dataForm.tenantId" @change="changeData('tenantId', -1)"
placeholder="请选择" selectType="all" :ableIds="ableAll.tenantIdableIds" clearable placeholder="请选择" selectType="all" :ableIds="ableAll.tenantIdableIds" clearable
:style='{ "width": "100%" }'> :style='{"width":"100%"}'>
</JnpfOrganizeSelect> </JnpfOrganizeSelect>
</jnpf-form-tip-item> </jnpf-form-tip-item>
</el-col> </el-col>
<!-- 表单结束 --> <!-- 表单结束 -->
</template> </template>
</el-form> </el-form>
<SelectDialog v-if="selectDialogVisible" :config="currTableConf" :formData="dataForm" ref="selectDialog" <SelectDialog v-if="selectDialogVisible" :config="currTableConf" :formData="dataForm"
@select="addForSelect" @close="selectDialogVisible = false" /> ref="selectDialog" @select="addForSelect" @close="selectDialogVisible=false"/>
</el-row> </el-row>
</div> </div>
</transition> </transition>
</template> </template>
<script> <script>
import request from '@/utils/request' import request from '@/utils/request'
import { mapGetters } from "vuex"; import {mapGetters} from "vuex";
import { getDataInterfaceRes } from '@/api/systemData/dataInterface' import {getDataInterfaceRes} from '@/api/systemData/dataInterface'
import { getDictionaryDataSelector } from '@/api/systemData/dictionary' import {getDictionaryDataSelector} from '@/api/systemData/dictionary'
import { getDefaultCurrentValueUserId } from '@/api/permission/user' import {getDefaultCurrentValueUserId} from '@/api/permission/user'
import { getDefaultCurrentValueDepartmentId } from '@/api/permission/organize' import {getDefaultCurrentValueDepartmentId} from '@/api/permission/organize'
import { getDateDay, getLaterData, getBeforeData, getBeforeTime, getLaterTime } from '@/components/Generator/utils/index.js' import {
import { thousandsFormat } from "@/components/Generator/utils/index" getDateDay,
getLaterData,
getBeforeData,
getBeforeTime,
getLaterTime
} from '@/components/Generator/utils/index.js'
import {thousandsFormat} from "@/components/Generator/utils/index"
export default { export default {
components: {}, components: {},
props: [], props: [],
@ -319,8 +326,29 @@ export default {
tenantId: [], tenantId: [],
}, },
tableRequiredData: {}, tableRequiredData: {},
dataRule: dataRule:
{ {
bucketName: [
{
required: true,
message: '请输入',
trigger: 'blur'
},
],
showName: [
{
required: true,
message: '请输入',
trigger: 'blur'
},
],
doorNum: [
{
required: true,
message: '请选择',
trigger: 'change'
},
],
deviceCode: [ deviceCode: [
{ {
required: true, required: true,
@ -328,6 +356,118 @@ export default {
trigger: 'change' trigger: 'change'
}, },
], ],
isShow: [
{
required: true,
message: '请至少选择一个',
trigger: 'change'
},
],
showOrd: [
{
required: true,
message: '数字文本',
trigger: ["blur", "change"]
},
],
status: [
{
required: true,
message: '不能为空',
trigger: 'change'
},
],
productCode: [
{
required: true,
message: '请至少选择一个',
trigger: 'change'
},
],
price: [
{
required: true,
message: '数字文本',
trigger: ["blur", "change"]
},
],
fullSet: [
{
required: true,
message: '不能为空',
trigger: 'change'
},
],
fullStatus: [
{
required: true,
message: '不能为空',
trigger: 'change'
},
],
currentWeight: [
{
required: true,
message: '请输入',
trigger: 'blur'
},
],
smogSet: [
{
required: true,
message: '请至少选择一个',
trigger: 'change'
},
],
smogStatus: [
{
required: true,
message: '不能为空',
trigger: 'change'
},
],
containerWeight: [
{
required: true,
message: '请输入',
trigger: 'blur'
},
],
warningWeight: [
{
required: true,
message: '请输入',
trigger: 'blur'
},
],
closeDelay: [
{
required: true,
message: '请输入',
trigger: 'blur'
},
],
bagNo: [
{
required: true,
message: '请输入',
trigger: 'blur'
},
],
deliveryDoorStatus: [
{
required: true,
message: '不能为空',
trigger: 'change'
},
],
cleanDoorStatus: [
{
required: true,
message: '不能为空',
trigger: 'change'
},
],
}, },
doorNumOptions: [{ "fullName": "1号", "id": "1" }, { "fullName": "2号", "id": "2" }, { "fullName": "3号", "id": "3" }, { "fullName": "4号", "id": "4" }, { "fullName": "5号", "id": "5" }, { "fullName": "6号", "id": "6" }, { "fullName": "7号", "id": "7" }, { "fullName": "8号", "id": "8" }, { "fullName": "9号", "id": "9" }, { "fullName": "10号", "id": "10" }, { "fullName": "11号", "id": "11" }, { "fullName": "12号", "id": "12" }], doorNumOptions: [{ "fullName": "1号", "id": "1" }, { "fullName": "2号", "id": "2" }, { "fullName": "3号", "id": "3" }, { "fullName": "4号", "id": "4" }, { "fullName": "5号", "id": "5" }, { "fullName": "6号", "id": "6" }, { "fullName": "7号", "id": "7" }, { "fullName": "8号", "id": "8" }, { "fullName": "9号", "id": "9" }, { "fullName": "10号", "id": "10" }, { "fullName": "11号", "id": "11" }, { "fullName": "12号", "id": "12" }],
doorNumProps: { "label": "fullName", "value": "id" }, doorNumProps: { "label": "fullName", "value": "id" },

@ -7,73 +7,73 @@
<el-form ref="formRef" :model="dataForm" size="small" label-width="100px" label-position="right" > <el-form ref="formRef" :model="dataForm" size="small" label-width="100px" label-position="right" >
<template v-if="!loading"> <template v-if="!loading">
<el-col :span="24" > <el-col :span="24" >
<jnpf-form-tip-item label="设备编码" <jnpf-form-tip-item label="设备编码"
prop="deviceCode" > prop="deviceCode" >
<p>{{ dataForm.deviceCode }} </p> <p>{{dataForm.deviceCode}}</p>
</jnpf-form-tip-item> </jnpf-form-tip-item>
</el-col> </el-col>
<el-col :span="24" > <el-col :span="24" >
<jnpf-form-tip-item label="桶编码" <jnpf-form-tip-item label="桶编码"
prop="bucketCode" > prop="bucketCode" >
<p>{{dataForm.bucketCode}}</p> <p>{{dataForm.bucketCode}}</p>
</jnpf-form-tip-item> </jnpf-form-tip-item>
</el-col> </el-col>
<el-col :span="24" > <el-col :span="24" >
<jnpf-form-tip-item label="门号" <jnpf-form-tip-item label="门号"
prop="doorNum" > prop="doorNum" >
<p>{{dataForm.doorNum}}</p> <p>{{ dataForm.doorNum }} </p>
</jnpf-form-tip-item> </jnpf-form-tip-item>
</el-col> </el-col>
<el-col :span="24" > <el-col :span="24" >
<jnpf-form-tip-item label="事件类型" <jnpf-form-tip-item label="事件类型"
prop="eventType" > prop="eventType" >
<p>{{dataForm.eventType}}</p> <p>{{ dataForm.eventType }} </p>
</jnpf-form-tip-item> </jnpf-form-tip-item>
</el-col> </el-col>
<el-col :span="24" > <el-col :span="24" >
<jnpf-form-tip-item label="事件时间" <jnpf-form-tip-item label="发生时间"
prop="eventTime" > prop="eventTime" >
<p>{{dataForm.eventTime}}</p> <p>{{dataForm.eventTime}}</p>
</jnpf-form-tip-item> </jnpf-form-tip-item>
</el-col> </el-col>
<el-col :span="24" > <el-col :span="24" >
<jnpf-form-tip-item label="事件描述" <jnpf-form-tip-item label="事件描述"
prop="eventDesc" > prop="eventDesc" >
<p>{{dataForm.eventDesc}}</p> <p>{{dataForm.eventDesc}}</p>
</jnpf-form-tip-item> </jnpf-form-tip-item>
</el-col> </el-col>
<el-col :span="24" > <el-col :span="24" >
<jnpf-form-tip-item label="本地调用" <jnpf-form-tip-item label="本地调用"
prop="isLocal" > prop="isLocal" >
<p>{{ dataForm.isLocal }} </p> <p>{{ dataForm.isLocal }} </p>
</jnpf-form-tip-item> </jnpf-form-tip-item>
</el-col> </el-col>
<el-col :span="24" > <el-col :span="24" >
<jnpf-form-tip-item label="事件结果" <jnpf-form-tip-item label="事件结果"
prop="eventResult" > prop="eventResult" >
<p>{{ dataForm.eventResult }} </p> <p>{{ dataForm.eventResult }} </p>
</jnpf-form-tip-item> </jnpf-form-tip-item>
</el-col> </el-col>
<el-col :span="24" > <el-col :span="24" >
<jnpf-form-tip-item label="创建用户" <jnpf-form-tip-item label="创建用户"
prop="createUserId" > prop="createUserId" >
<p>{{dataForm.createUserId}}</p> <p>{{dataForm.createUserId}}</p>
</jnpf-form-tip-item> </jnpf-form-tip-item>
</el-col> </el-col>
<el-col :span="24" > <el-col :span="24" >
<jnpf-form-tip-item label="创建时间" <jnpf-form-tip-item label="创建时间"
prop="createTime" > prop="createTime" >
<p>{{dataForm.createTime}}</p> <p>{{dataForm.createTime}}</p>
</jnpf-form-tip-item> </jnpf-form-tip-item>
</el-col> </el-col>
<el-col :span="24" > <el-col :span="24" >
<jnpf-form-tip-item label="所属组织" <jnpf-form-tip-item label="所属组织"
prop="organizeJsonId" > prop="organizeJsonId" >
<p>{{dataForm.organizeJsonId}}</p> <p>{{dataForm.organizeJsonId}}</p>
</jnpf-form-tip-item> </jnpf-form-tip-item>
</el-col> </el-col>
<el-col :span="24" > <el-col :span="24" >
<jnpf-form-tip-item label="部门" <jnpf-form-tip-item label="部门"
prop="departmentId" > prop="departmentId" >
<p>{{dataForm.departmentId}}</p> <p>{{dataForm.departmentId}}</p>
</jnpf-form-tip-item> </jnpf-form-tip-item>
@ -107,8 +107,8 @@
id :'', id :'',
deviceCode : "", deviceCode : "",
bucketCode : "", bucketCode : "",
doorNum : '', doorNum : "",
eventType : '', eventType : "",
eventTime : '', eventTime : '',
eventDesc : '', eventDesc : '',
isLocal : '', isLocal : '',
@ -118,9 +118,12 @@
organizeJsonId : "", organizeJsonId : "",
departmentId : "", departmentId : "",
}, },
deviceCodeOptions:[{"fullName":"选项一","id":"1"},{"fullName":"选项二","id":"2"}], deviceCodeProps:{"label":"device_name","value":"device_code" },
deviceCodeProps:{"label":"fullName","value":"id" }, bucketCodeProps:{"label":"bucket_name","value":"bucket_code" },
bucketCodeProps:{"label":"device_name","value":"device_code" }, doorNumOptions:[{"fullName":"1号","id":"1"},{"fullName":"2号","id":"2"},{"fullName":"3号","id":"3"},{"fullName":"4号","id":"4"},{"fullName":"5号","id":"5"},{"fullName":"6号","id":"6"},{"fullName":"7号","id":"7"},{"fullName":"8号","id":"8"},{"fullName":"9号","id":"9"},{"fullName":"10号","id":"10"},{"fullName":"11号","id":"11"},{"fullName":"12号","id":"12"}],
doorNumProps:{"label":"fullName","value":"id" },
eventTypeOptions:[{"fullName":"登录成功","id":"login"},{"fullName":"配置变更","id":"change"},{"fullName":"重启设备","id":"reboot"},{"fullName":"重启应用","id":"restart"},{"fullName":"更新应用","id":"update"},{"fullName":"投递开门","id":"deliveryOpen"},{"fullName":"投递关门","id":"deliveryClose"},{"fullName":"延时关门","id":"delay"},{"fullName":"清运开门","id":"cleanOpen"},{"fullName":"抓拍","id":"snapshot"},{"fullName":"秤体校准","id":"adjust"},{"fullName":"秤体清零","id":"clear"},{"fullName":"获取状态","id":"status"}],
eventTypeProps:{"label":"fullName","value":"id" },
isLocalOptions:[{"fullName":"本地","id":"1"},{"fullName":"远程","id":"2"}], isLocalOptions:[{"fullName":"本地","id":"1"},{"fullName":"远程","id":"2"}],
isLocalProps:{"label":"fullName","value":"id" }, isLocalProps:{"label":"fullName","value":"id" },
eventResultOptions:[{"fullName":"成功","id":"1"},{"fullName":"失败","id":"0"}], eventResultOptions:[{"fullName":"成功","id":"1"},{"fullName":"失败","id":"0"}],

File diff suppressed because one or more lines are too long

@ -13,7 +13,7 @@
<el-col :span="24" > <el-col :span="24" >
<jnpf-form-tip-item <jnpf-form-tip-item
label="设备编码" prop="deviceCode" > label="设备编码" prop="deviceCode" >
<JnpfSelect v-model="dataForm.deviceCode" @change="changeData('deviceCode',-1)" <JnpfSelect v-model="dataForm.deviceCode" @change="changeData('deviceCode',-1)"
placeholder="请选择" clearable :style='{"width":"100%"}' :options="deviceCodeOptions" :props="deviceCodeProps" > placeholder="请选择" clearable :style='{"width":"100%"}' :options="deviceCodeOptions" :props="deviceCodeProps" >
</JnpfSelect> </JnpfSelect>
</jnpf-form-tip-item> </jnpf-form-tip-item>
@ -21,7 +21,7 @@
<el-col :span="24" > <el-col :span="24" >
<jnpf-form-tip-item <jnpf-form-tip-item
label="桶编码" prop="bucketCode" > label="桶编码" prop="bucketCode" >
<JnpfSelect v-model="dataForm.bucketCode" @change="changeData('bucketCode',-1)" <JnpfSelect v-model="dataForm.bucketCode" @change="changeData('bucketCode',-1)"
placeholder="请选择" clearable :style='{"width":"100%"}' :options="bucketCodeOptions" :props="bucketCodeProps" > placeholder="请选择" clearable :style='{"width":"100%"}' :options="bucketCodeOptions" :props="bucketCodeProps" >
</JnpfSelect> </JnpfSelect>
</jnpf-form-tip-item> </jnpf-form-tip-item>
@ -29,31 +29,32 @@
<el-col :span="24" > <el-col :span="24" >
<jnpf-form-tip-item <jnpf-form-tip-item
label="门号" prop="doorNum" > label="门号" prop="doorNum" >
<JnpfInput v-model="dataForm.doorNum" @change="changeData('doorNum',-1)" <JnpfSelect v-model="dataForm.doorNum" @change="changeData('doorNum',-1)"
placeholder="请输入" clearable :style='{"width":"100%"}'> placeholder="请选择" clearable :style='{"width":"100%"}' :options="doorNumOptions" :props="doorNumProps" >
</JnpfInput> </JnpfSelect>
</jnpf-form-tip-item> </jnpf-form-tip-item>
</el-col> </el-col>
<el-col :span="24" > <el-col :span="24" >
<jnpf-form-tip-item <jnpf-form-tip-item
label="事件类型" prop="eventType" > label="事件类型" prop="eventType" >
<JnpfInput v-model="dataForm.eventType" @change="changeData('eventType',-1)" <JnpfSelect v-model="dataForm.eventType" @change="changeData('eventType',-1)"
placeholder="请输入" clearable :style='{"width":"100%"}'> placeholder="请选择" clearable :style='{"width":"100%"}' :options="eventTypeOptions" :props="eventTypeProps" >
</JnpfInput> </JnpfSelect>
</jnpf-form-tip-item> </jnpf-form-tip-item>
</el-col> </el-col>
<el-col :span="24" > <el-col :span="24" >
<jnpf-form-tip-item <jnpf-form-tip-item
label="事件时间" prop="eventTime" > label="发生时间" prop="eventTime" >
<JnpfInput v-model="dataForm.eventTime" @change="changeData('eventTime',-1)" <JnpfDatePicker v-model="dataForm.eventTime" @change="changeData('eventTime',-1)"
placeholder="请输入" clearable :style='{"width":"100%"}'> :startTime="dateTime(false,1,1,'','')" :endTime="dateTime(false,1,1,'','')" placeholder="请选择" clearable :style='{"width":"100%"}' type="datetime" format="yyyy-MM-dd HH:mm:ss" >
</JnpfInput> </JnpfDatePicker>
</jnpf-form-tip-item> </jnpf-form-tip-item>
</el-col> </el-col>
<el-col :span="24" > <el-col :span="24" >
<jnpf-form-tip-item <jnpf-form-tip-item
label="事件描述" prop="eventDesc" > label="事件描述" prop="eventDesc" >
<JnpfInput v-model="dataForm.eventDesc" @change="changeData('eventDesc',-1)" <JnpfInput v-model="dataForm.eventDesc" @change="changeData('eventDesc',-1)"
placeholder="请输入" clearable :style='{"width":"100%"}'> placeholder="请输入" clearable :style='{"width":"100%"}'>
</JnpfInput> </JnpfInput>
</jnpf-form-tip-item> </jnpf-form-tip-item>
@ -61,7 +62,7 @@
<el-col :span="24" > <el-col :span="24" >
<jnpf-form-tip-item <jnpf-form-tip-item
label="本地调用" prop="isLocal" > label="本地调用" prop="isLocal" >
<JnpfRadio v-model="dataForm.isLocal" @change="changeData('isLocal',-1)" <JnpfRadio v-model="dataForm.isLocal" @change="changeData('isLocal',-1)"
optionType="button" direction="horizontal" size="small" :options="isLocalOptions" :props="isLocalProps" > optionType="button" direction="horizontal" size="small" :options="isLocalOptions" :props="isLocalProps" >
</JnpfRadio> </JnpfRadio>
</jnpf-form-tip-item> </jnpf-form-tip-item>
@ -69,7 +70,7 @@
<el-col :span="24" > <el-col :span="24" >
<jnpf-form-tip-item <jnpf-form-tip-item
label="事件结果" prop="eventResult" > label="事件结果" prop="eventResult" >
<JnpfRadio v-model="dataForm.eventResult" @change="changeData('eventResult',-1)" <JnpfRadio v-model="dataForm.eventResult" @change="changeData('eventResult',-1)"
optionType="button" direction="horizontal" size="small" :options="eventResultOptions" :props="eventResultProps" > optionType="button" direction="horizontal" size="small" :options="eventResultOptions" :props="eventResultProps" >
</JnpfRadio> </JnpfRadio>
</jnpf-form-tip-item> </jnpf-form-tip-item>
@ -77,7 +78,7 @@
<el-col :span="24" > <el-col :span="24" >
<jnpf-form-tip-item <jnpf-form-tip-item
label="创建用户" prop="createUserId" > label="创建用户" prop="createUserId" >
<JnpfOpenData v-model="dataForm.createUserId" @change="changeData('createUserId',-1)" <JnpfOpenData v-model="dataForm.createUserId" @change="changeData('createUserId',-1)"
placeholder="系统自动生成" readonly :style='{"width":"100%"}' type="currUser" > placeholder="系统自动生成" readonly :style='{"width":"100%"}' type="currUser" >
</JnpfOpenData> </JnpfOpenData>
</jnpf-form-tip-item> </jnpf-form-tip-item>
@ -85,7 +86,7 @@
<el-col :span="24" > <el-col :span="24" >
<jnpf-form-tip-item <jnpf-form-tip-item
label="创建时间" prop="createTime" > label="创建时间" prop="createTime" >
<JnpfOpenData v-model="dataForm.createTime" @change="changeData('createTime',-1)" <JnpfOpenData v-model="dataForm.createTime" @change="changeData('createTime',-1)"
placeholder="系统自动生成" readonly :style='{"width":"100%"}' type="currTime" > placeholder="系统自动生成" readonly :style='{"width":"100%"}' type="currTime" >
</JnpfOpenData> </JnpfOpenData>
</jnpf-form-tip-item> </jnpf-form-tip-item>
@ -93,7 +94,7 @@
<el-col :span="24" > <el-col :span="24" >
<jnpf-form-tip-item <jnpf-form-tip-item
label="所属组织" prop="organizeJsonId" > label="所属组织" prop="organizeJsonId" >
<JnpfOpenData v-model="dataForm.organizeJsonId" @change="changeData('organizeJsonId',-1)" <JnpfOpenData v-model="dataForm.organizeJsonId" @change="changeData('organizeJsonId',-1)"
placeholder="系统自动生成" readonly :style='{"width":"100%"}' type="currOrganize" showLevel="all" > placeholder="系统自动生成" readonly :style='{"width":"100%"}' type="currOrganize" showLevel="all" >
</JnpfOpenData> </JnpfOpenData>
</jnpf-form-tip-item> </jnpf-form-tip-item>
@ -101,7 +102,7 @@
<el-col :span="24" > <el-col :span="24" >
<jnpf-form-tip-item <jnpf-form-tip-item
label="部门" prop="departmentId" > label="部门" prop="departmentId" >
<JnpfOpenData v-model="dataForm.departmentId" @change="changeData('departmentId',-1)" <JnpfOpenData v-model="dataForm.departmentId" @change="changeData('departmentId',-1)"
placeholder="系统自动生成" readonly :style='{"width":"100%"}' type="currPosition" > placeholder="系统自动生成" readonly :style='{"width":"100%"}' type="currPosition" >
</JnpfOpenData> </JnpfOpenData>
</jnpf-form-tip-item> </jnpf-form-tip-item>
@ -172,8 +173,8 @@
dataForm: { dataForm: {
deviceCode : undefined, deviceCode : undefined,
bucketCode : undefined, bucketCode : undefined,
doorNum : undefined, doorNum : undefined,
eventType : undefined, eventType : undefined,
eventTime : undefined, eventTime : undefined,
eventDesc : undefined, eventDesc : undefined,
isLocal : undefined, isLocal : undefined,
@ -187,10 +188,14 @@
dataRule: dataRule:
{ {
}, },
deviceCodeOptions:[{"fullName":"选项一","id":"1"},{"fullName":"选项二","id":"2"}], deviceCodeOptions:[],
deviceCodeProps:{"label":"fullName","value":"id" }, deviceCodeProps:{"label":"device_name","value":"device_code" },
bucketCodeOptions:[], bucketCodeOptions:[],
bucketCodeProps:{"label":"device_name","value":"device_code" }, bucketCodeProps:{"label":"bucket_name","value":"bucket_code" },
doorNumOptions:[{"fullName":"1号","id":"1"},{"fullName":"2号","id":"2"},{"fullName":"3号","id":"3"},{"fullName":"4号","id":"4"},{"fullName":"5号","id":"5"},{"fullName":"6号","id":"6"},{"fullName":"7号","id":"7"},{"fullName":"8号","id":"8"},{"fullName":"9号","id":"9"},{"fullName":"10号","id":"10"},{"fullName":"11号","id":"11"},{"fullName":"12号","id":"12"}],
doorNumProps:{"label":"fullName","value":"id" },
eventTypeOptions:[{"fullName":"登录成功","id":"login"},{"fullName":"配置变更","id":"change"},{"fullName":"重启设备","id":"reboot"},{"fullName":"重启应用","id":"restart"},{"fullName":"更新应用","id":"update"},{"fullName":"投递开门","id":"deliveryOpen"},{"fullName":"投递关门","id":"deliveryClose"},{"fullName":"延时关门","id":"delay"},{"fullName":"清运开门","id":"cleanOpen"},{"fullName":"抓拍","id":"snapshot"},{"fullName":"秤体校准","id":"adjust"},{"fullName":"秤体清零","id":"clear"},{"fullName":"获取状态","id":"status"}],
eventTypeProps:{"label":"fullName","value":"id" },
isLocalOptions:[{"fullName":"本地","id":"1"},{"fullName":"远程","id":"2"}], isLocalOptions:[{"fullName":"本地","id":"1"},{"fullName":"远程","id":"2"}],
isLocalProps:{"label":"fullName","value":"id" }, isLocalProps:{"label":"fullName","value":"id" },
eventResultOptions:[{"fullName":"成功","id":"1"},{"fullName":"失败","id":"0"}], eventResultOptions:[{"fullName":"成功","id":"1"},{"fullName":"失败","id":"0"}],
@ -199,7 +204,7 @@
isEdit:false, isEdit:false,
interfaceRes: { interfaceRes: {
deviceCode:[] , deviceCode:[] ,
bucketCode:[] , bucketCode:[{"dataType":"varchar","defaultValue":"","field":"device_code","fieldName":"","id":"ow3vw72","jnpfKey":"select","relationField":"deviceCode","required":"0"}] ,
doorNum:[] , doorNum:[] ,
eventType:[] , eventType:[] ,
eventTime:[] , eventTime:[] ,
@ -301,8 +306,34 @@
} }
}, },
dataAll(){ dataAll(){
this.getdeviceCodeOptions();
this.getbucketCodeOptions(); this.getbucketCodeOptions();
}, },
getdeviceCodeOptions() {
const index = this.childIndex
let templateJsonList = JSON.parse(JSON.stringify(this.interfaceRes.deviceCode))
for (let i = 0; i < templateJsonList.length; i++) {
let json = templateJsonList[i];
if(json.relationField){
let relationFieldAll = json.relationField.split("-");
let val = json.defaultValue;
if(relationFieldAll.length>1 && index>-1){
val = this.dataForm[relationFieldAll[0]+'List']&&this.dataForm[relationFieldAll[0]+'List'].length?this.dataForm[relationFieldAll[0]+'List'][index][relationFieldAll[1]]:''
}else {
val = this.dataForm[relationFieldAll]
}
json.defaultValue = val
}
}
let template ={
paramList:templateJsonList
}
getDataInterfaceRes('564713894723988869',template).then(res => {
let data = res.data
this.deviceCodeOptions = data
this.changeDataFormData(1,'deviceCode','deviceCode',index,'')
})
},
getbucketCodeOptions() { getbucketCodeOptions() {
const index = this.childIndex const index = this.childIndex
let templateJsonList = JSON.parse(JSON.stringify(this.interfaceRes.bucketCode)) let templateJsonList = JSON.parse(JSON.stringify(this.interfaceRes.bucketCode))
@ -322,7 +353,7 @@
let template ={ let template ={
paramList:templateJsonList paramList:templateJsonList
} }
getDataInterfaceRes('563706688754953029',template).then(res => { getDataInterfaceRes('565524506681020549',template).then(res => {
let data = res.data let data = res.data
this.bucketCodeOptions = data this.bucketCodeOptions = data
this.changeDataFormData(1,'bucketCode','bucketCode',index,'') this.changeDataFormData(1,'bucketCode','bucketCode',index,'')

@ -19,27 +19,22 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<el-form-item label="桶编码"> <el-form-item label="事件类型">
<JnpfSelect v-model="query.bucketCode" placeholder="请选择" clearable <JnpfSelect v-model="query.eventType" placeholder="请选择" clearable
:options="bucketCodeOptions" :options="eventTypeOptions"
:props="bucketCodeProps" multiple > :props="eventTypeProps" multiple >
</JnpfSelect> </JnpfSelect>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<el-form-item label="事件类型"> <el-form-item label="本地调用">
<el-input v-model="query.eventType" placeholder="请输入" clearable> </el-input> <JnpfSelect v-model="query.isLocal" placeholder="请选择" clearable
:options="isLocalOptions"
:props="isLocalProps" >
</JnpfSelect>
</el-form-item> </el-form-item>
</el-col> </el-col>
<template v-if="showAll"> <template v-if="showAll">
<el-col :span="6">
<el-form-item label="本地调用">
<JnpfSelect v-model="query.isLocal" placeholder="请选择" clearable
:options="isLocalOptions"
:props="isLocalProps" >
</JnpfSelect>
</el-form-item>
</el-col>
<el-col :span="6"> <el-col :span="6">
<el-form-item label="事件结果"> <el-form-item label="事件结果">
<JnpfSelect v-model="query.eventResult" placeholder="请选择" clearable <JnpfSelect v-model="query.eventResult" placeholder="请选择" clearable
@ -50,7 +45,10 @@
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<el-form-item label="事件时间"> <el-form-item label="事件时间">
<el-input v-model="query.eventTime" placeholder="请输入" clearable> </el-input> <JnpfDateRangePicker v-model="query.eventTime"
format="yyyy-MM-dd HH:mm:ss" startPlaceholder="开始日期"
endPlaceholder="结束日期" >
</JnpfDateRangePicker>
</el-form-item> </el-form-item>
</el-col> </el-col>
</template> </template>
@ -85,34 +83,35 @@
</el-tooltip> </el-tooltip>
</div> </div>
</div> </div>
<JNPF-table v-loading="listLoading" :data="list" @sort-change='sortChange' <JNPF-table v-loading="listLoading" :data="list" @sort-change='sortChange'
:span-method="arraySpanMethod" :span-method="arraySpanMethod"
> >
<el-table-column label="设备编码" prop="deviceCode" algin="left" <el-table-column
prop="deviceCode"
label="设备编码" align="left"
> >
<template slot-scope="scope"> </el-table-column>
{{ scope.row.deviceCode}}
</template>
</el-table-column>
<el-table-column <el-table-column
prop="bucketCode" prop="bucketCode"
label="桶编码" align="left" label="桶编码" align="left"
> >
</el-table-column> </el-table-column>
<el-table-column <el-table-column label="门号" prop="doorNum" algin="left"
prop="doorNum"
label="门号" align="left"
> >
</el-table-column> <template slot-scope="scope">
<el-table-column {{ scope.row.doorNum}}
prop="eventType" </template>
label="事件类型" align="left" </el-table-column>
<el-table-column label="事件类型" prop="eventType" algin="left"
> >
</el-table-column> <template slot-scope="scope">
{{ scope.row.eventType}}
</template>
</el-table-column>
<el-table-column <el-table-column
prop="eventTime" prop="eventTime"
label="事件时间" align="left" label="发生时间" align="left"
> >
</el-table-column> </el-table-column>
<el-table-column <el-table-column
@ -140,16 +139,6 @@
<el-table-column <el-table-column
prop="createTime" prop="createTime"
label="创建时间" align="left" label="创建时间" align="left"
>
</el-table-column>
<el-table-column
prop="organizeJsonId"
label="所属组织" align="left"
>
</el-table-column>
<el-table-column
prop="departmentId"
label="部门" align="left"
> >
</el-table-column> </el-table-column>
<el-table-column label="操作" <el-table-column label="操作"
@ -160,7 +149,7 @@
</el-button> </el-button>
<el-button type="text" class="JNPF-table-delBtn" @click="handleDel(scope.row.id)"> <el-button type="text" class="JNPF-table-delBtn" @click="handleDel(scope.row.id)">
</el-button> </el-button>
<el-button type="text" <el-button type="text"
@click="goDetail(scope.row.id)">详情 @click="goDetail(scope.row.id)">详情
</el-button> </el-button>
</template> </template>
@ -227,7 +216,6 @@
detailVisible: false, detailVisible: false,
query: { query: {
deviceCode:undefined, deviceCode:undefined,
bucketCode:undefined,
eventType:undefined, eventType:undefined,
isLocal:undefined, isLocal:undefined,
eventResult:undefined, eventResult:undefined,
@ -255,10 +243,14 @@
flowListVisible: false, flowListVisible: false,
flowList: [], flowList: [],
exportBoxVisible: false, exportBoxVisible: false,
deviceCodeOptions:[{"fullName":"选项一","id":"1"},{"fullName":"选项二","id":"2"}], deviceCodeOptions:[],
deviceCodeProps:{"label":"fullName","value":"id" }, deviceCodeProps:{"label":"device_name","value":"device_code" },
bucketCodeOptions:[], bucketCodeOptions:[],
bucketCodeProps:{"label":"device_name","value":"device_code" }, bucketCodeProps:{"label":"bucket_name","value":"bucket_code" },
doorNumOptions:[{"fullName":"1号","id":"1"},{"fullName":"2号","id":"2"},{"fullName":"3号","id":"3"},{"fullName":"4号","id":"4"},{"fullName":"5号","id":"5"},{"fullName":"6号","id":"6"},{"fullName":"7号","id":"7"},{"fullName":"8号","id":"8"},{"fullName":"9号","id":"9"},{"fullName":"10号","id":"10"},{"fullName":"11号","id":"11"},{"fullName":"12号","id":"12"}],
doorNumProps:{"label":"fullName","value":"id" },
eventTypeOptions:[{"fullName":"登录成功","id":"login"},{"fullName":"配置变更","id":"change"},{"fullName":"重启设备","id":"reboot"},{"fullName":"重启应用","id":"restart"},{"fullName":"更新应用","id":"update"},{"fullName":"投递开门","id":"deliveryOpen"},{"fullName":"投递关门","id":"deliveryClose"},{"fullName":"延时关门","id":"delay"},{"fullName":"清运开门","id":"cleanOpen"},{"fullName":"抓拍","id":"snapshot"},{"fullName":"秤体校准","id":"adjust"},{"fullName":"秤体清零","id":"clear"},{"fullName":"获取状态","id":"status"}],
eventTypeProps:{"label":"fullName","value":"id" },
isLocalOptions:[{"fullName":"本地","id":"1"},{"fullName":"远程","id":"2"}], isLocalOptions:[{"fullName":"本地","id":"1"},{"fullName":"远程","id":"2"}],
isLocalProps:{"label":"fullName","value":"id" }, isLocalProps:{"label":"fullName","value":"id" },
eventResultOptions:[{"fullName":"成功","id":"1"},{"fullName":"失败","id":"0"}], eventResultOptions:[{"fullName":"成功","id":"1"},{"fullName":"失败","id":"0"}],
@ -276,7 +268,7 @@
created() { created() {
this.getColumnList(), this.getColumnList(),
this.initSearchDataAndListData() this.initSearchDataAndListData()
this.getbucketCodeOptions(); this.getdeviceCodeOptions();
this.queryData = JSON.parse(JSON.stringify(this.query)) this.queryData = JSON.parse(JSON.stringify(this.query))
}, },
methods: { methods: {
@ -427,10 +419,10 @@
} }
this.exportList = exportList this.exportList = exportList
}, },
getbucketCodeOptions() { getdeviceCodeOptions() {
getDataInterfaceRes('563706688754953029').then(res => { getDataInterfaceRes('564713894723988869').then(res => {
let data = res.data let data = res.data
this.bucketCodeOptions = data this.deviceCodeOptions = data
}) })
}, },
goDetail(id){ goDetail(id){

File diff suppressed because one or more lines are too long
Loading…
Cancel
Save