Merge remote-tracking branch 'origin/master'

master
guochaojie 4 months ago
commit 857f57d62d

@ -5,6 +5,8 @@ import jnpf.entity.*;
import java.util.*;
import com.baomidou.mybatisplus.extension.service.IService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import jnpf.model.recycledeliveryorder.OrderStatisticsRequest;
import jnpf.model.recycledeliveryorder.OrderStatisticsResponse;
/**
*
@ -35,4 +37,11 @@ public interface RecycleCleanOrderService extends IService<RecycleCleanOrderEnti
void saveOrUpdate(RecycleCleanOrderForm recycleCleanOrderForm,String id, boolean isSave) throws Exception;
/**
*
*
* @param request
* @return list
*/
List<OrderStatisticsResponse> cleanCount(OrderStatisticsRequest request);
}

@ -48,4 +48,12 @@ public interface RecycleDeliveryOrderService extends IService<RecycleDeliveryOrd
* @return list
*/
List<RecycleDeliveryOrderEntity> getList();
/**
*
*
* @param request
* @return list
*/
List<OrderStatisticsResponse> deliveryCount(OrderStatisticsRequest request);
}

@ -41,7 +41,6 @@ public interface RecycleDeviceService extends IService<RecycleDeviceEntity> {
List<RecycleDeviceEntity> queryRecycleSaffDeviceList(RecycleDevicePagination recycleDevicePagination);
/**
*
*
@ -49,4 +48,17 @@ public interface RecycleDeviceService extends IService<RecycleDeviceEntity> {
*/
List<String> getInfoByDeviceCode(List<String> deviceCodes);
/**
* id
*
* @param stationIds id
*/
List<String> getCodeByStationIds(List<String> stationIds);
/**
* id
*
* @param companyId id
*/
List<String> getStationByCompanyId(String companyId);
}

@ -1,8 +1,11 @@
package jnpf.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import jnpf.entity.*;
import jnpf.mapper.RecycleCleanOrderMapper;
import jnpf.model.recycledeliveryorder.OrderStatisticsRequest;
import jnpf.model.recycledeliveryorder.OrderStatisticsResponse;
import jnpf.service.*;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import jnpf.model.recyclecleanorder.*;
@ -28,6 +31,9 @@ import jnpf.model.QueryModel;
import java.util.stream.Collectors;
import jnpf.base.model.ColumnDataModel;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.compress.utils.Lists;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.core.metadata.IPage;
@ -56,6 +62,7 @@ import javax.annotation.Resource;
* 2024-06-18
*/
@Service
@Slf4j
public class RecycleCleanOrderServiceImpl extends ServiceImpl<RecycleCleanOrderMapper, RecycleCleanOrderEntity> implements RecycleCleanOrderService {
@Autowired
private GeneraterSwapUtil generaterSwapUtil;
@ -66,6 +73,12 @@ public class RecycleCleanOrderServiceImpl extends ServiceImpl<RecycleCleanOrderM
@Resource
private RecycleCleanOrderMapper cleanOrderMapper;
@Resource
private RecycleDeliveryOrderServiceImpl recycleDeliveryOrderService;
@Resource
private RecycleDeviceService recycleDeviceService;
@Override
public List<RecycleCleanOrderEntity> getList(RecycleCleanOrderPagination recycleCleanOrderPagination) {
return getTypeList(recycleCleanOrderPagination, recycleCleanOrderPagination.getDataType());
@ -359,4 +372,47 @@ public class RecycleCleanOrderServiceImpl extends ServiceImpl<RecycleCleanOrderM
this.saveOrUpdate(entity);
}
@Override
public List<OrderStatisticsResponse> cleanCount(OrderStatisticsRequest request) {
log.info("查询清运统计request:{}", request);
List<String> finalDeviceCodes = Lists.newArrayList();
//只勾选了商户 则查询商户底下的所有设备编码
if (StringUtils.isNoneBlank(request.getCompanyId()) && CollectionUtils.isEmpty(request.getStationIds()) && CollectionUtils.isEmpty(request.getDeviceCodes())) {
List<String> stationIds = recycleDeviceService.getStationByCompanyId(request.getCompanyId());
List<String> deviceCodes = recycleDeviceService.getCodeByStationIds(stationIds);
finalDeviceCodes.addAll(deviceCodes);
} else if (StringUtils.isNoneBlank(request.getCompanyId()) && CollectionUtils.isNotEmpty(request.getStationIds()) && CollectionUtils.isEmpty(request.getDeviceCodes())) {
//勾选了回收站 但是没勾选设备
List<String> deviceCodes = recycleDeviceService.getCodeByStationIds(request.getStationIds());
finalDeviceCodes.addAll(deviceCodes);
} else {
finalDeviceCodes.addAll(request.getDeviceCodes());
}
Date[] date = recycleDeliveryOrderService.getMonthStartAndEndDate(request.getYear(), request.getMonth());
LambdaQueryWrapper<RecycleCleanOrderEntity> wrapper = new LambdaQueryWrapper<>(RecycleCleanOrderEntity.class)
.between(RecycleCleanOrderEntity::getCreatorTime, date[0], date[1]);
wrapper.in(RecycleCleanOrderEntity::getDeviceCode, finalDeviceCodes);
if (ObjectUtil.isNotEmpty(request.getAuditStatus())) {
wrapper.eq(RecycleCleanOrderEntity::getAdjustStatus, request.getAuditStatus());
}
List<RecycleCleanOrderEntity> list = this.list(wrapper);
if (CollectionUtils.isEmpty(list)) {
return Collections.emptyList();
}
List<OrderStatisticsResponse> responses = recycleDeliveryOrderService.fillMonthWithDays(request.getYear(), request.getMonth());
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd", Locale.getDefault());
//根据创建时间分类
Map<String, List<RecycleCleanOrderEntity>> dateCollect = list.stream().collect(Collectors.groupingBy(entity -> dateFormat.format(entity.getCreatorTime())));
for (OrderStatisticsResponse response : responses) {
if (dateCollect.containsKey(response.getDate())) {
List<RecycleCleanOrderEntity> orderEntities = dateCollect.get(response.getDate());
response.setWeight(orderEntities.stream().map(RecycleCleanOrderEntity::getWeight).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
response.setAdjustWeight(orderEntities.stream().map(RecycleCleanOrderEntity::getAdjustWeight).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
response.setPrice(orderEntities.stream().map(RecycleCleanOrderEntity::getTotalPrice).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
response.setAdjustPrice(orderEntities.stream().map(RecycleCleanOrderEntity::getAdjustPrice).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
}
}
return responses;
}
}

@ -1,6 +1,7 @@
package jnpf.service.impl;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.json.JSON;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@ -8,6 +9,7 @@ import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.google.common.collect.Lists;
import jnpf.base.UserInfo;
import jnpf.base.model.ColumnDataModel;
import jnpf.database.model.superQuery.SuperJsonModel;
@ -19,6 +21,7 @@ import jnpf.permission.entity.UserEntity;
import jnpf.service.*;
import jnpf.util.*;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@ -31,6 +34,8 @@ import java.math.RoundingMode;
import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.YearMonth;
import java.time.ZoneId;
import java.util.*;
import java.util.regex.Pattern;
import java.util.stream.Collectors;
@ -59,6 +64,8 @@ public class RecycleDeliveryOrderServiceImpl extends ServiceImpl<RecycleDelivery
private CompanyService companyService;
@Resource
private EnterpriseAccountBillService enterpriseAccountBillService;
@Resource
private RecycleDeviceService recycleDeviceService;
@Override
@ -646,6 +653,91 @@ public class RecycleDeliveryOrderServiceImpl extends ServiceImpl<RecycleDelivery
return this.list(wrapper);
}
@Override
public List<OrderStatisticsResponse> deliveryCount(OrderStatisticsRequest request) {
log.info("查询投递统计request:{}", request);
List<String> finalDeviceCodes = Lists.newArrayList();
//只勾选了商户 则查询商户底下的所有设备编码
if (StringUtils.isNoneBlank(request.getCompanyId()) && CollectionUtils.isEmpty(request.getStationIds()) && CollectionUtils.isEmpty(request.getDeviceCodes())) {
List<String> stationIds = recycleDeviceService.getStationByCompanyId(request.getCompanyId());
List<String> deviceCodes = recycleDeviceService.getCodeByStationIds(stationIds);
finalDeviceCodes.addAll(deviceCodes);
} else if (StringUtils.isNoneBlank(request.getCompanyId()) && CollectionUtils.isNotEmpty(request.getStationIds()) && CollectionUtils.isEmpty(request.getDeviceCodes())) {
//勾选了商户和回收站 但是没勾选设备
List<String> deviceCodes = recycleDeviceService.getCodeByStationIds(request.getStationIds());
finalDeviceCodes.addAll(deviceCodes);
} else {
finalDeviceCodes.addAll(request.getDeviceCodes());
}
//处理时间查询条件
Date[] date = this.getMonthStartAndEndDate(request.getYear(), request.getMonth());
LambdaQueryWrapper<RecycleDeliveryOrderEntity> wrapper = new LambdaQueryWrapper<>(RecycleDeliveryOrderEntity.class)
.between(RecycleDeliveryOrderEntity::getCreatorTime, date[0], date[1]);
wrapper.in(RecycleDeliveryOrderEntity::getDeviceCode, finalDeviceCodes);
//查询条件
if (ObjectUtil.isNotEmpty(request.getAuditStatus())) {
wrapper.eq(RecycleDeliveryOrderEntity::getAdjustStatus, request.getAuditStatus());
}
List<RecycleDeliveryOrderEntity> list = this.list(wrapper);
if (CollectionUtils.isEmpty(list)) {
return Collections.emptyList();
}
List<OrderStatisticsResponse> responses = this.fillMonthWithDays(request.getYear(), request.getMonth());
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd", Locale.getDefault());
//根据创建时间分类
Map<String, List<RecycleDeliveryOrderEntity>> dateCollect = list.stream().collect(Collectors.groupingBy(entity -> dateFormat.format(entity.getCreatorTime())));
for (OrderStatisticsResponse response : responses) {
if (dateCollect.containsKey(response.getDate())) {
List<RecycleDeliveryOrderEntity> orderEntities = dateCollect.get(response.getDate());
response.setWeight(orderEntities.stream().map(RecycleDeliveryOrderEntity::getReportWeight).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
response.setAdjustWeight(orderEntities.stream().map(RecycleDeliveryOrderEntity::getAdjustWeight).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
response.setPrice(orderEntities.stream().map(RecycleDeliveryOrderEntity::getTotalPrice).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
response.setAdjustPrice(orderEntities.stream().map(RecycleDeliveryOrderEntity::getAdjustPrice).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
}
}
return responses;
}
/**
*
*
* @param year
* @param month
* @return list
*/
public List<OrderStatisticsResponse> fillMonthWithDays(int year, int month) {
List<OrderStatisticsResponse> result = Lists.newArrayList();
YearMonth yearMonth = YearMonth.of(year, month);
LocalDate startOfMonth = yearMonth.atDay(1);
LocalDate endOfMonth = yearMonth.atEndOfMonth();
while (!startOfMonth.isAfter(endOfMonth)) {
OrderStatisticsResponse response = new OrderStatisticsResponse();
response.setDate(startOfMonth.toString());
result.add(response);
startOfMonth = startOfMonth.plusDays(1);
}
return result;
}
/**
*
*
* @param year
* @param month
* @return
*/
public Date[] getMonthStartAndEndDate(int year, int month) {
LocalDate startDate = LocalDate.of(year, month, 1);
LocalDate endDate = startDate.plusMonths(1).minusDays(1);
Date startDateAsDate = Date.from(startDate.atStartOfDay(ZoneId.systemDefault()).toInstant());
Date endDateAsDate = Date.from(endDate.atTime(23, 59, 59).atZone(ZoneId.systemDefault()).toInstant()); // 可选:包含该天的最后一秒钟
return new Date[]{startDateAsDate, endDateAsDate};
}
/**
*
*

@ -481,4 +481,24 @@ public class RecycleDeviceServiceImpl extends ServiceImpl<RecycleDeviceMapper, R
}
return list.stream().map(RecycleDeviceEntity::getBeLongCompanyId).collect(Collectors.toList());
}
@Override
public List<String> getCodeByStationIds(List<String> stationIds) {
List<RecycleDeviceEntity> list = this.list(new LambdaQueryWrapper<>(RecycleDeviceEntity.class)
.in(RecycleDeviceEntity::getBeLongStationId, stationIds));
if (CollectionUtils.isEmpty(list)) {
return Collections.emptyList();
}
return list.stream().map(RecycleDeviceEntity::getDeviceCode).distinct().collect(Collectors.toList());
}
@Override
public List<String> getStationByCompanyId(String companyId) {
List<RecycleDeviceEntity> list = this.list(new LambdaQueryWrapper<>(RecycleDeviceEntity.class)
.eq(RecycleDeviceEntity::getBeLongCompanyId, companyId));
if (CollectionUtils.isEmpty(list)) {
return Collections.emptyList();
}
return list.stream().map(RecycleDeviceEntity::getBeLongStationId).distinct().collect(Collectors.toList());
}
}

@ -7,6 +7,7 @@ import jnpf.base.vo.PageListVO;
import jnpf.base.vo.PaginationVO;
import jnpf.entity.RecycleCleanOrderEntity;
import jnpf.model.recyclecleanorder.*;
import jnpf.model.recycledeliveryorder.OrderStatisticsRequest;
import jnpf.service.RecycleCleanOrderService;
import jnpf.service.RecycleDeviceService;
import jnpf.util.GeneraterSwapUtil;
@ -17,6 +18,7 @@ import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
@ -237,4 +239,10 @@ public class RecycleCleanOrderController {
else return ActionResult.fail("审核失败");
}
@Operation(summary = "清运统计")
@PostMapping("/cleanCount")
public ActionResult cleanCount(@RequestBody @Validated OrderStatisticsRequest request) {
return ActionResult.success(recycleCleanOrderService.cleanCount(request));
}
}

@ -17,6 +17,7 @@ import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
@ -230,4 +231,10 @@ public class RecycleDeliveryOrderController {
return ActionResult.success("审核成功");
}
@Operation(summary = "投递统计")
@PostMapping("/deliveryCount")
public ActionResult deliveryCount(@RequestBody @Validated OrderStatisticsRequest request) {
return ActionResult.success(recycleDeliveryOrderService.deliveryCount(request));
}
}

@ -211,8 +211,7 @@ public class RecycleOrderController {
@Operation(summary = "统计计算")
@PostMapping("/compute")
public ActionResult compute(@RequestBody RecycleOrderRequest request) {
List<RecycleOrderResponse> list = recycleOrderService.compute(request);
return ActionResult.success(list);
return ActionResult.success(recycleOrderService.compute(request));
}
}

@ -0,0 +1,45 @@
package jnpf.model.recycledeliveryorder;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.util.List;
@Data
public class OrderStatisticsRequest {
/**
* id
*/
@NotBlank(message = "商户id 不能为空")
private String companyId;
/**
* id
*/
private List<String> stationIds;
/**
*
*/
private List<String> deviceCodes;
/**
*
*/
@NotNull(message = "统计年份不能为空")
private int year;
/**
*
*/
@NotNull(message = "统计月份不能为空")
private int month;
/**
*
*/
private int auditStatus;
}

@ -0,0 +1,45 @@
package jnpf.model.recycledeliveryorder;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.math.BigDecimal;
@Data
@NoArgsConstructor
@AllArgsConstructor
public class OrderStatisticsResponse implements Serializable {
/**
* YYYY-mm-dd
*/
private String date;
/**
*
*/
private BigDecimal weight;
/**
*
*/
private BigDecimal adjustWeight;
/**
*
*/
private BigDecimal price;
/**
*
*/
private BigDecimal adjustPrice;
}

@ -2,7 +2,7 @@ import request from "@/utils/request";
// 远程设备指令
export function recycleDeviceCmd(data) {
data.optTime = new Date();
data.optTime = Date.now();
return request({
url: `/api/scm/RecycleDevice/command`,
method: "POST",
@ -12,6 +12,30 @@ export function recycleDeviceCmd(data) {
/*
** 设备指令
*/
// 申请控制
export function cmdApply(deviceCode) {
let data = {
orderNo: "",
deviceCode: deviceCode,
cmd: "apply",
data: "",
optTime: "",
remark: "申请控制"
};
return recycleDeviceCmd(data);
}
// 结束控制
export function cmdExit(deviceCode) {
let data = {
orderNo: "",
deviceCode: deviceCode,
cmd: "exit",
data: "",
optTime: "",
remark: "结束控制"
};
return recycleDeviceCmd(data);
}
// 配置更新
export function cmdChange(deviceCode) {
let data = {
@ -72,21 +96,15 @@ export function cmdSnapshot(deviceCode) {
};
return recycleDeviceCmd(data);
}
// 获取状态
export function cmdStatus(deviceCode) {
let data = {
orderNo: "",
deviceCode: deviceCode,
cmd: "status",
data: "",
optTime: "",
remark: "获取状态"
};
return recycleDeviceCmd(data);
}
// 设备指令
export function cmdDevice(cmd, deviceCode) {
switch (cmd) {
case "apply":
return cmdApply(deviceCode);
break;
case "exit":
return cmdExit(deviceCode);
break;
case "change":
return cmdChange(deviceCode);
break;
@ -102,9 +120,6 @@ export function cmdDevice(cmd, deviceCode) {
case "snapshot":
return cmdSnapshot(deviceCode);
break;
case "status":
return cmdStatus(deviceCode);
break;
default:
break;
}
@ -172,6 +187,18 @@ export function cmdClear(deviceCode, bucketCode) {
};
return recycleDeviceCmd(data);
}
// 获取状态
export function cmdStatus(deviceCode, bucketCode) {
let data = {
orderNo: "",
deviceCode: deviceCode,
cmd: "status",
data: bucketCode,
optTime: "",
remark: "获取状态"
};
return recycleDeviceCmd(data);
}
// 桶指令
export function cmdBucket(cmd, deviceCode, bucketCode) {
switch (cmd) {
@ -190,6 +217,9 @@ export function cmdBucket(cmd, deviceCode, bucketCode) {
case "clear":
return cmdClear(deviceCode, bucketCode);
break;
case "status":
return cmdStatus(deviceCode, bucketCode);
break;
default:
break;
}

@ -98,7 +98,27 @@
</el-col>
<el-col :span="8">
<jnpf-form-tip-item label="所属设备" prop="deviceCode">
<JnpfPopupSelect
<PopupSelectDeviceCode
v-model="dataForm.deviceCode"
@change="changeData('deviceCode', -1)"
:rowIndex="null"
:formData="dataForm"
:templateJson="interfaceRes.deviceCode"
placeholder="请选择"
propsValue="deviceCode"
popupWidth="800px"
popupTitle="选择数据"
popupType="dialog"
relationField="deviceName"
field="deviceCode"
interfaceId="564713894723988869"
:pageSize="20"
:columnOptions="deviceCodecolumnOptions"
clearable
:style="{ width: '100%' }"
>
</PopupSelectDeviceCode>
<!-- <JnpfPopupSelect
v-model="dataForm.deviceCode"
@change="changeData('deviceCode', -1)"
:rowIndex="null"
@ -117,7 +137,7 @@
clearable
:style="{ width: '100%' }"
>
</JnpfPopupSelect>
</JnpfPopupSelect> -->
</jnpf-form-tip-item>
</el-col>
<el-col :span="8">
@ -703,8 +723,8 @@ export default {
],
doorNumProps: { label: "fullName", value: "id" },
deviceCodecolumnOptions: [
{ label: "设备编码", value: "device_code" },
{ label: "设备名称", value: "device_name" }
{ label: "设备编码", value: "deviceCode" },
{ label: "设备名称", value: "deviceName" }
],
isShowOptions: [
{ fullName: "关闭", id: "0" },
@ -1056,35 +1076,35 @@ export default {
//
dataFormSubmit(type) {
if (this.dataForm.price == null && !this.useUnifiedConfig) {
this.$message.error('请选择配置或输入回收单价');
this.$message.error("请选择配置或输入回收单价");
return;
}
if (this.useUnifiedConfig) {
this.dataForm.price = null;
}
if (this.dataForm.fullSet == null && !this.usefullSetConfig) {
this.$message.error('请选择配置或选择满溢报警');
this.$message.error("请选择配置或选择满溢报警");
return;
}
if (this.usefullSetConfig) {
this.dataForm.fullSet = "-1";
}
if (this.dataForm.smogSet == null && !this.useSmogSetConfig) {
this.$message.error('请选择配置或选择烟雾报警');
this.$message.error("请选择配置或选择烟雾报警");
return;
}
if (this.useSmogSetConfig) {
this.dataForm.smogSet = "-1";
}
if (this.dataForm.warningWeight == null && !this.warningWeightConfig) {
this.$message.error('请选择配置或输入重量上限');
this.$message.error("请选择配置或输入重量上限");
return;
}
if (this.warningWeightConfig) {
this.dataForm.warningWeight = null;
}
if (this.dataForm.closeDelay == null && !this.closeDelayConfig) {
this.$message.error('请选择配置或输入关门延时');
this.$message.error("请选择配置或输入关门延时");
return;
}
if (this.closeDelayConfig) {

@ -11,7 +11,15 @@
<el-row class="cmd">
<el-col class="cmd-device">
<el-row style="padding: 15px;">
<div>投递柜({{ row.deviceCode }})</div>
<div>
投递柜({{ row.deviceCode }})
<span style="color: #F05E1C;"
>提醒如不发起指令页面将在<span
style="color:#E83015;padding: 0px 5px;font-size:large;"
>{{ countdown }}</span
>秒后退出</span
>
</div>
</el-row>
<el-row style="padding: 15px;">
<el-col :span="6">
@ -66,16 +74,6 @@
<div><i class="el-icon-camera-solid el-icon--right"></i></div>
</el-button>
</el-col>
<el-col :span="6">
<el-button
type="primary"
style="width: 80%;"
@click="fnCmdDeviceDo('status')"
>
<div>获取状态</div>
<div><i class="el-icon-s-data el-icon--right"></i></div>
</el-button>
</el-col>
</el-row>
</el-col>
<el-col v-for="(bucketItem, index) in row.buckets" class="cmd-bucket">
@ -165,6 +163,22 @@
<div><i class="el-icon-refresh-left el-icon--right"></i></div>
</el-button>
</el-col>
<el-col :span="4">
<el-button
type="success"
style="width: 80%;"
@click="
fnCmdBucketDo(
'status',
bucketItem.deviceCode,
bucketItem.bucketCode
)
"
>
<div>获取状态</div>
<div><i class="el-icon-refresh-left el-icon--right"></i></div>
</el-button>
</el-col>
</el-row>
</el-col>
</el-row>
@ -183,15 +197,39 @@ export default {
visible: false,
detailVisible: false,
loading: false,
row: {}
row: {},
countdown: 60,
intervalId: null
};
},
computed: {},
watch: {},
created() {},
watch: {
visible: function(isShow) {
if (isShow) {
this.fnCmdDeviceDo('apply')
this.countdown = 60;
this.intervalId = setInterval(() => {
if (this.countdown < 1) {
this.visible = false;
}
this.countdown = this.countdown - 1;
}, 1000);
} else {
this.fnCmdDeviceDo('exit')
if (this.intervalId) {
clearInterval(this.intervalId);
this.countdown = 0;
}
}
}
},
created() {
console.log("hi2");
},
mounted() {},
methods: {
fnCmdDeviceDo(cmdName) {
this.countdown = 60;
cmdDevice(cmdName, this.row.deviceCode).then(res => {
if (res.code == 200) {
this.$message({
@ -207,6 +245,7 @@ export default {
});
},
fnCmdBucketDo(cmd, deviceCode, bucketCode) {
this.countdown = 60;
cmdBucket(cmd, deviceCode, bucketCode).then(res => {
if (res.code == 200) {
this.$message({

@ -262,15 +262,16 @@
</div>
</template>
</el-table-column>
<el-table-column label="投口状态" width="200" algin="center">
<el-table-column label="投口状态" width="280" algin="center">
<template slot-scope="scope">
<div v-for="(item, index) in scope.row.buckets">
<el-row>
<el-col :span="14">
<div>{{ item.showName }} {{ item.currentWeight }} KG</div>
<el-col :span="24">
<div>桶名称{{ item.showName }} 当前{{ item.currentWeight }} KG 预警{{ item.warningWeightWeight }} KG</div>
</el-col>
<el-col :span="10">
<!-- <el-col :span="10">
<div>
{{ item.progress }}
<el-progress
:percentage="item.progress"
:color="[
@ -280,7 +281,7 @@
]"
></el-progress>
</div>
</el-col>
</el-col> -->
</el-row>
</div>
</template>
@ -747,7 +748,7 @@ export default {
smogStatus.title = "投递柜内有桶烟雾报警";
}
o1.progress = Math.ceil(
(o1.currentWeight / o1.warningWeight) * 100
(parseInt(o1.currentWeight) / parseInt(o1.warningWeight)) * 100
);
return o1;
});

Loading…
Cancel
Save