zss
8 天以前 4e276e66c8ab3e62b49d46b80d0605482b91b982
无人值守
已添加6个文件
314 ■■■■■ 文件已修改
src/main/java/com/ruoyi/unattended/controller/UnattendedOperationController.java 111 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/unattended/mapper/UnattendedOperationMapper.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/unattended/pojo/UnattendedOperation.java 106 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/unattended/pojo/vo/UnattendedOperationVo.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/unattended/service/UnattendedOperationService.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/unattended/service/impl/UnattendedOperationServiceImpl.java 46 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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));
    }
}
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> {
}
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;
}
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;
}
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);
}
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;
    }
}