From 4e276e66c8ab3e62b49d46b80d0605482b91b982 Mon Sep 17 00:00:00 2001
From: zss <zss@example.com>
Date: 星期二, 20 一月 2026 17:13:33 +0800
Subject: [PATCH] 无人值守
---
src/main/java/com/ruoyi/unattended/service/UnattendedOperationService.java | 17 ++
src/main/java/com/ruoyi/unattended/service/impl/UnattendedOperationServiceImpl.java | 46 +++++++
src/main/java/com/ruoyi/unattended/pojo/UnattendedOperation.java | 106 +++++++++++++++++
src/main/java/com/ruoyi/unattended/pojo/vo/UnattendedOperationVo.java | 20 +++
src/main/java/com/ruoyi/unattended/controller/UnattendedOperationController.java | 111 ++++++++++++++++++
src/main/java/com/ruoyi/unattended/mapper/UnattendedOperationMapper.java | 14 ++
6 files changed, 314 insertions(+), 0 deletions(-)
diff --git a/src/main/java/com/ruoyi/unattended/controller/UnattendedOperationController.java b/src/main/java/com/ruoyi/unattended/controller/UnattendedOperationController.java
new file mode 100644
index 0000000..3e8ad49
--- /dev/null
+++ b/src/main/java/com/ruoyi/unattended/controller/UnattendedOperationController.java
@@ -0,0 +1,111 @@
+package com.ruoyi.unattended.controller;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.account.pojo.Account;
+import com.ruoyi.account.service.AccountService;
+import com.ruoyi.framework.web.domain.AjaxResult;
+import com.ruoyi.unattended.pojo.UnattendedOperation;
+import com.ruoyi.unattended.service.UnattendedOperationService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.format.annotation.DateTimeFormat;
+import org.springframework.util.CollectionUtils;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
+import java.util.List;
+
+/**
+ * 鏃犱汉鍊煎畧
+ */
+@RestController
+@RequestMapping("/environmentAccess")
+@Api(tags = "鏃犱汉鍊煎畧")
+public class UnattendedOperationController {
+
+ @Resource
+ private UnattendedOperationService unattendedOperationService;
+
+
+ /**
+ * 鏂板
+ * @param unattendedOperation
+ * @return
+ */
+ @PostMapping("/weighbridgeSystemAdd")
+ @ApiOperation("鏂板")
+ public AjaxResult add(@RequestBody UnattendedOperation unattendedOperation) {
+ return AjaxResult.success(unattendedOperationService.save(unattendedOperation));
+ }
+
+ /**
+ * 鍒犻櫎
+ * @param ids
+ * @return
+ */
+ @DeleteMapping("/weighbridgeSystemDelete")
+ @ApiOperation("鍒犻櫎")
+ public AjaxResult delQualityInspect(@RequestBody List<Integer> ids) {
+ if(CollectionUtils.isEmpty(ids)){
+ return AjaxResult.error("璇烽�夋嫨鑷冲皯涓�鏉℃暟鎹�");
+ }
+ //鍒犻櫎妫�楠屽崟
+ return AjaxResult.success(unattendedOperationService.removeBatchByIds(ids));
+ }
+
+ /**
+ * 淇敼
+ * @param unattendedOperation
+ * @return
+ */
+ @PutMapping("/weighbridgeSystemUpdate")
+ @ApiOperation("淇敼")
+ public AjaxResult update(@RequestBody UnattendedOperation unattendedOperation) {
+ return AjaxResult.success(unattendedOperationService.updateById(unattendedOperation));
+ }
+
+ /**
+ *鍒嗛〉鏌ヨ
+ * @param page
+ * @return
+ */
+ @GetMapping("/weighbridgeSystemPage")
+ @ApiOperation("鍒嗛〉鏌ヨ")
+ public AjaxResult weighbridgeSystemPage(Page page,UnattendedOperation unattendedOperation) {
+ if (ObjectUtils.isNotNull(unattendedOperation.getPlateNumber())){
+ return AjaxResult.success(unattendedOperationService.page(page, new QueryWrapper<UnattendedOperation>().lambda()
+ .eq(UnattendedOperation::getPlateNumber, unattendedOperation.getPlateNumber())));
+ }
+ return AjaxResult.success(unattendedOperationService.page(page));
+ }
+
+ /**
+ *璇︽儏
+ * @return
+ */
+ @GetMapping("/weighbridgeSystemInfo")
+ @ApiOperation("璇︽儏")
+ public AjaxResult accountListPage(Long id) {
+ return AjaxResult.success(unattendedOperationService.getById(id));
+ }
+
+ /**
+ *缁熻
+ * @return
+ */
+ @GetMapping("/weighbridgeDailyReport")
+ @ApiOperation("缁熻")
+ public AjaxResult weighbridgeDailyReport(String startDate,String endDate) {
+ DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
+ LocalDateTime startDateTime = LocalDateTime.parse(startDate, dateTimeFormatter);
+ LocalDateTime endDateTime = LocalDateTime.parse(endDate, dateTimeFormatter);
+ return AjaxResult.success(unattendedOperationService.weighbridgeDailyReport(startDateTime,endDateTime));
+ }
+
+
+
+}
diff --git a/src/main/java/com/ruoyi/unattended/mapper/UnattendedOperationMapper.java b/src/main/java/com/ruoyi/unattended/mapper/UnattendedOperationMapper.java
new file mode 100644
index 0000000..c215d9c
--- /dev/null
+++ b/src/main/java/com/ruoyi/unattended/mapper/UnattendedOperationMapper.java
@@ -0,0 +1,14 @@
+package com.ruoyi.unattended.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.account.pojo.AccountReconciliation;
+import com.ruoyi.unattended.pojo.UnattendedOperation;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+@Mapper
+public interface UnattendedOperationMapper extends BaseMapper<UnattendedOperation> {
+
+}
diff --git a/src/main/java/com/ruoyi/unattended/pojo/UnattendedOperation.java b/src/main/java/com/ruoyi/unattended/pojo/UnattendedOperation.java
new file mode 100644
index 0000000..ad1aaf7
--- /dev/null
+++ b/src/main/java/com/ruoyi/unattended/pojo/UnattendedOperation.java
@@ -0,0 +1,106 @@
+package com.ruoyi.unattended.pojo;
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ruoyi.framework.aspectj.lang.annotation.Excel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import javax.validation.constraints.NotBlank;
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+import java.util.Date;
+
+/**
+ * 鏃犱汉鍊煎畧
+ */
+@TableName(value = "unattended_operation")
+@Data
+public class UnattendedOperation implements Serializable {
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 搴忓彿
+ */
+ @TableId(type = IdType.AUTO)
+ private Long id;
+
+ /**
+ * 杞︾墝鍙�
+ */
+ @Excel(name = "杞︾墝鍙�")
+ private String plateNumber;
+
+ @ApiModelProperty(value = "绉伴噸鏃堕棿")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ private LocalDateTime weightTime;
+
+ /**
+ * 鐨噸
+ */
+ @Excel(name = "鐨噸")
+ private BigDecimal tareWeight;
+
+ /**
+ * 姣涢噸
+ */
+ @Excel(name = "姣涢噸")
+ private BigDecimal grossWeight;
+
+ /**
+ * 鍋忕Щ
+ */
+ private BigDecimal positionOffset;
+
+ /**
+ * 鍙告満
+ */
+ private String driverName;
+
+ /**
+ * 鑱旂郴鐢佃瘽
+ */
+ private String contactPhone;
+
+ /**
+ * 璐х墿
+ */
+ private String cargoName;
+
+ /**
+ * 鍦扮缂栧彿
+ */
+ private String weighbridgeNumber;
+
+ /**
+ * 澶囨敞
+ */
+ @Excel(name = "澶囨敞")
+ private String remark;
+
+
+
+ @ApiModelProperty(value = "鍒涘缓鏃堕棿")
+ @TableField(fill = FieldFill.INSERT)
+ private LocalDateTime createTime;
+
+ @ApiModelProperty(value = "鍒涘缓鐢ㄦ埛")
+ @TableField(fill = FieldFill.INSERT)
+ private Integer createUser;
+
+ @ApiModelProperty(value = "淇敼鏃堕棿")
+ @TableField(fill = FieldFill.INSERT_UPDATE)
+ private LocalDateTime updateTime;
+
+ @ApiModelProperty(value = "淇敼鐢ㄦ埛")
+ @TableField(fill = FieldFill.INSERT_UPDATE)
+ private Integer updateUser;
+
+ @ApiModelProperty(value = "绉熸埛ID")
+ @TableField(fill = FieldFill.INSERT)
+ private Long tenantId;
+
+}
diff --git a/src/main/java/com/ruoyi/unattended/pojo/vo/UnattendedOperationVo.java b/src/main/java/com/ruoyi/unattended/pojo/vo/UnattendedOperationVo.java
new file mode 100644
index 0000000..ebdf6a2
--- /dev/null
+++ b/src/main/java/com/ruoyi/unattended/pojo/vo/UnattendedOperationVo.java
@@ -0,0 +1,20 @@
+package com.ruoyi.unattended.pojo.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.time.LocalDate;
+
+@Data
+public class UnattendedOperationVo {
+
+ private Long tripCount;
+
+ private Long cargoVolume;
+
+ private BigDecimal deviationRate;
+
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ private LocalDate date;
+}
diff --git a/src/main/java/com/ruoyi/unattended/service/UnattendedOperationService.java b/src/main/java/com/ruoyi/unattended/service/UnattendedOperationService.java
new file mode 100644
index 0000000..1e72209
--- /dev/null
+++ b/src/main/java/com/ruoyi/unattended/service/UnattendedOperationService.java
@@ -0,0 +1,17 @@
+package com.ruoyi.unattended.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.account.pojo.AccountReconciliation;
+import com.ruoyi.unattended.pojo.UnattendedOperation;
+import com.ruoyi.unattended.pojo.vo.UnattendedOperationVo;
+
+import java.time.LocalDateTime;
+import java.util.List;
+
+public interface UnattendedOperationService extends IService<UnattendedOperation> {
+
+
+ List<UnattendedOperationVo> weighbridgeDailyReport(LocalDateTime startDate, LocalDateTime endDate);
+}
diff --git a/src/main/java/com/ruoyi/unattended/service/impl/UnattendedOperationServiceImpl.java b/src/main/java/com/ruoyi/unattended/service/impl/UnattendedOperationServiceImpl.java
new file mode 100644
index 0000000..76df4e4
--- /dev/null
+++ b/src/main/java/com/ruoyi/unattended/service/impl/UnattendedOperationServiceImpl.java
@@ -0,0 +1,46 @@
+package com.ruoyi.unattended.service.impl;
+
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.account.mapper.AccountReconciliationMapper;
+import com.ruoyi.account.pojo.AccountReconciliation;
+import com.ruoyi.account.service.AccountReconciliationService;
+import com.ruoyi.unattended.mapper.UnattendedOperationMapper;
+import com.ruoyi.unattended.pojo.UnattendedOperation;
+import com.ruoyi.unattended.pojo.vo.UnattendedOperationVo;
+import com.ruoyi.unattended.service.UnattendedOperationService;
+import lombok.AllArgsConstructor;
+import org.springframework.stereotype.Service;
+
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+@AllArgsConstructor
+@Service
+public class UnattendedOperationServiceImpl extends ServiceImpl<UnattendedOperationMapper, UnattendedOperation> implements UnattendedOperationService {
+
+
+ private UnattendedOperationMapper unattendedOperationMapper;
+
+ @Override
+ public List<UnattendedOperationVo> weighbridgeDailyReport(LocalDateTime startDate, LocalDateTime endDate) {
+ List<UnattendedOperation> unattendedOperations = unattendedOperationMapper.selectList(Wrappers.<UnattendedOperation>lambdaQuery().between(UnattendedOperation::getWeightTime, startDate, endDate));
+ Map<LocalDateTime, List<UnattendedOperation>> listMap = unattendedOperations.stream().collect(Collectors.groupingBy(UnattendedOperation::getWeightTime));
+ List<UnattendedOperationVo> list = listMap.entrySet().stream().map(entry -> {
+ UnattendedOperationVo unattendedOperationVo = new UnattendedOperationVo();
+ unattendedOperationVo.setDate(entry.getKey().toLocalDate());
+ unattendedOperationVo.setTripCount((long) entry.getValue().size());
+ unattendedOperationVo.setCargoVolume(entry.getValue().stream().map(UnattendedOperation::getGrossWeight).mapToLong(BigDecimal::longValue).sum());
+ long sum = entry.getValue().stream().map(UnattendedOperation::getPositionOffset).mapToLong(BigDecimal::longValue).sum();
+ unattendedOperationVo.setDeviationRate(BigDecimal.valueOf(sum).divide(BigDecimal.valueOf(entry.getValue().size()), 4, BigDecimal.ROUND_HALF_UP));
+ return unattendedOperationVo;
+ }).collect(Collectors.toList());
+ return list;
+ }
+}
--
Gitblit v1.9.3