Parcourir la source

年审代办功能

Qchen il y a 2 ans
Parent
commit
6df4aef492

+ 0 - 12
src/main/java/com/ydtech/modules/inv/controller/InvReceivableController.java

@@ -16,21 +16,9 @@ import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
-import org.springframework.core.io.ClassPathResource;
-import org.springframework.core.io.Resource;
-import org.springframework.core.io.ResourceLoader;
-import org.springframework.core.io.UrlResource;
-import org.springframework.http.HttpHeaders;
-import org.springframework.http.HttpStatus;
-import org.springframework.http.MediaType;
-import org.springframework.http.ResponseEntity;
-import org.springframework.util.ResourceUtils;
 import org.springframework.web.bind.annotation.*;
 
-import javax.servlet.http.HttpServletResponse;
 import java.io.*;
-import java.net.MalformedURLException;
-import java.net.URLEncoder;
 import java.nio.file.Files;
 import java.nio.file.Path;
 import java.nio.file.Paths;

+ 38 - 0
src/main/java/com/ydtech/modules/ser/controller/SerAnnualAuditOrderController.java

@@ -0,0 +1,38 @@
+package com.ydtech.modules.ser.controller;
+
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.ydtech.core.page.HttpResult;
+import com.ydtech.core.page.PageResult;
+import com.ydtech.modules.base.controller.BaseController;
+import com.ydtech.modules.ser.model.SerAnnualAuditOrder;
+import com.ydtech.modules.ser.model.vo.SerAnnualAuditOrderQueryVo;
+import com.ydtech.modules.ser.service.SerAnnualAuditOrderService;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+@RestController
+@RequestMapping("/ser/annualAuditOrder")
+public class SerAnnualAuditOrderController extends BaseController {
+    @Autowired
+    private SerAnnualAuditOrderService serAnnualAuditOrderService;
+
+    @ApiOperation("年审代办订单查询")
+    @PostMapping("annualAuditOrderPage")
+    public HttpResult annualAuditOrderPage(@RequestBody SerAnnualAuditOrderQueryVo serAnnualAuditOrderQueryVo){
+        IPage<SerAnnualAuditOrder> getAnnualAuditOrderPage = serAnnualAuditOrderService.getAnnualAuditOrderPage(serAnnualAuditOrderQueryVo);
+        PageResult pageResult = buildPageResponse(getAnnualAuditOrderPage);
+        return HttpResult.ok(pageResult);
+    }
+
+
+    @ApiOperation("年审代办订单生成")
+    @PostMapping("addAnnualAuditOrder")
+    public HttpResult annualAuditOrder(@RequestBody SerAnnualAuditOrder serAnnualAuditOrder){
+        return serAnnualAuditOrderService.addAnnualAuditOrder(serAnnualAuditOrder);
+    }
+}

+ 38 - 0
src/main/java/com/ydtech/modules/ser/controller/SerCarInfoController.java

@@ -0,0 +1,38 @@
+package com.ydtech.modules.ser.controller;
+
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.ydtech.core.page.HttpResult;
+import com.ydtech.modules.fnc.entity.InsPlySettleHx;
+import com.ydtech.modules.ser.model.SerCarInfo;
+import com.ydtech.modules.ser.service.SerCarInfoService;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+@RestController
+@RequestMapping("/ser/carInfo")
+public class SerCarInfoController {
+    @Autowired
+    private SerCarInfoService serCarInfoService;
+
+    @ApiOperation("车辆信息根据userid查询")
+    @PostMapping("queryByUserId")
+    public HttpResult queryCarInfoByUserId(){
+        return serCarInfoService.queryCarInfoByUserId();
+    }
+
+    @ApiOperation("车辆信息新增")
+    @PostMapping("addCarInfo")
+    public HttpResult addCarInfo(@RequestBody SerCarInfo serCarInfo){
+        return serCarInfoService.addCarInfo(serCarInfo);
+    }
+
+    @ApiOperation("车辆信息编辑")
+    @PostMapping("updateCarInfo")
+    public HttpResult updateCarInfo(@RequestBody SerCarInfo serCarInfo) {
+        return serCarInfoService.updateCarInfo(serCarInfo);
+    }
+}

+ 7 - 0
src/main/java/com/ydtech/modules/ser/dao/SerAnnualAuditOrderMapper.java

@@ -0,0 +1,7 @@
+package com.ydtech.modules.ser.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ydtech.modules.ser.model.SerAnnualAuditOrder;
+
+public interface SerAnnualAuditOrderMapper extends BaseMapper<SerAnnualAuditOrder> {
+}

+ 7 - 0
src/main/java/com/ydtech/modules/ser/dao/SerCarInfoMapper.java

@@ -0,0 +1,7 @@
+package com.ydtech.modules.ser.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ydtech.modules.ser.model.SerCarInfo;
+
+public interface SerCarInfoMapper extends BaseMapper<SerCarInfo> {
+}

+ 92 - 0
src/main/java/com/ydtech/modules/ser/model/SerAnnualAuditOrder.java

@@ -0,0 +1,92 @@
+package com.ydtech.modules.ser.model;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * 车辆年审代办订单表
+ * @TableName ser_annual_audit_order
+ */
+@TableName(value = "ser_annual_audit_order")
+@Data
+public class SerAnnualAuditOrder implements Serializable {
+    /**
+     * 主键  订单号
+     */
+    @TableId(value = "id")
+    @ApiModelProperty(value = "主键id")
+    private String id;
+
+    /**
+     * 车辆信息id
+     */
+    @TableField(value = "car_info_id")
+    @ApiModelProperty(value = "车辆信息id")
+    private String carInfoId;
+
+    /**
+     * 车牌号
+     */
+    @TableField(value = "licenseno")
+    @ApiModelProperty(value = "车牌号")
+    private String licenseNo;
+
+
+    /**
+     * 联系人
+     */
+    @TableField(value = "contact_person")
+    @ApiModelProperty(value = "联系人")
+    private String contactPerson;
+
+    /**
+     * 联系人电话
+     */
+    @TableField(value = "mobile")
+    @ApiModelProperty(value = "联系人电话")
+    private String mobile;
+
+    /**
+     * 地址
+     */
+    @TableField(value = "address")
+    @ApiModelProperty(value = "地址")
+    private String address;
+
+    /**
+     * 详细地址
+     */
+    @TableField(value = "detail_address")
+    @ApiModelProperty(value = "详细地址")
+    private String detailAddress;
+
+    /**
+     * 服务价格(不包含检测费用)
+     */
+    @TableField(value = "test_price_not_included")
+    @ApiModelProperty(value = "服务价格(不包含检测费用)")
+    private Double testPriceNotIncluded;
+
+    /**
+     * 服务价格
+     */
+    @TableField(value = "service_price")
+    @ApiModelProperty(value = "服务价格")
+    private Double servicePrice;
+
+    /**
+     * 创建时间
+     */
+    @TableField(value = "create_time")
+    @ApiModelProperty(value = "创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private LocalDateTime createTime;
+
+}

+ 108 - 0
src/main/java/com/ydtech/modules/ser/model/SerCarInfo.java

@@ -0,0 +1,108 @@
+package com.ydtech.modules.ser.model;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+import java.util.Date;
+
+/**
+ * 车辆年审车辆信息表
+ * @TableName ser_car_info
+ */
+
+@TableName(value = "ser_car_info")
+@Data
+public class SerCarInfo implements Serializable {
+    /**
+     * 主键
+     */
+    @TableId(value = "id")
+    @ApiModelProperty(value = "主键id")
+    private String id;
+
+    /**
+     * 车牌号
+     */
+    @TableField(value = "licenseno")
+    @ApiModelProperty(value = "车牌号")
+    private String licenseNo;
+
+    /**
+     * 车主姓名
+     */
+    @TableField(value = "owner_name")
+    @ApiModelProperty(value = "车主姓名")
+    private String ownerName;
+
+    /**
+     * 车架号
+     */
+    @TableField(value = "frameno")
+    @ApiModelProperty(value = "车架号")
+    private String frameNo;
+
+    /**
+     * 发动机号
+     */
+    @TableField(value = "engineno")
+    @ApiModelProperty(value = "发动机号")
+    private String engineNo;
+
+    /**
+     * 车辆类型
+     */
+    @TableField(value = "vehicle_type")
+    @ApiModelProperty(value = "车辆类型")
+    private String vehicleType;
+
+    /**
+     * 车辆使用性质
+     */
+    @TableField(value = "nature_of_vehicle_use")
+    @ApiModelProperty(value = "车辆使用性质")
+    private String natureOfVehicleUse;
+
+    /**
+     * 注册时间
+     */
+    @TableField(value = "register_time")
+    @ApiModelProperty(value = "注册时间")
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private Date registerTime;
+
+    /**
+     * 年检到期时间
+     */
+    @TableField(value = "expire_time")
+    @ApiModelProperty(value = "年检到期时间")
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private Date expireTime;
+
+    /**
+     * 创建时间
+     */
+    @TableField(value = "create_time")
+    @ApiModelProperty(value = "创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private LocalDateTime createTime;
+
+    /**
+     * 年检逾期时间
+     */
+    @TableField(value = "overdue_time")
+    @ApiModelProperty(value = "年检逾期时间")
+    private String overdueTime;
+
+    /**
+     * userid
+     */
+    @TableField(value = "userid")
+    @ApiModelProperty(value = "用户id")
+    private String userId;
+}

+ 89 - 0
src/main/java/com/ydtech/modules/ser/model/vo/SerAnnualAuditOrderQueryVo.java

@@ -0,0 +1,89 @@
+package com.ydtech.modules.ser.model.vo;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ydtech.core.page.PageRequest;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+@Data
+@TableName(value = "ser_annual_audit_order")
+public class SerAnnualAuditOrderQueryVo extends PageRequest implements Serializable {
+    /**
+     * 主键  订单号
+     */
+    @TableId(value = "id")
+    @ApiModelProperty(value = "主键id")
+    private String id;
+
+    /**
+     * 车辆信息id
+     */
+    @TableField(value = "car_info_id")
+    @ApiModelProperty(value = "车辆信息id")
+    private String carInfoId;
+
+    /**
+     * 车牌号
+     */
+    @TableField(value = "licenseno")
+    @ApiModelProperty(value = "车牌号")
+    private String licenseNo;
+
+
+    /**
+     * 联系人
+     */
+    @TableField(value = "contact_person")
+    @ApiModelProperty(value = "联系人")
+    private String contactPerson;
+
+    /**
+     * 联系人电话
+     */
+    @TableField(value = "mobile")
+    @ApiModelProperty(value = "联系人电话")
+    private String mobile;
+
+    /**
+     * 地址
+     */
+    @TableField(value = "address")
+    @ApiModelProperty(value = "地址")
+    private String address;
+
+    /**
+     * 详细地址
+     */
+    @TableField(value = "detail_address")
+    @ApiModelProperty(value = "详细地址")
+    private String detailAddress;
+
+    /**
+     * 服务价格(不包含检测费用)
+     */
+    @TableField(value = "test_price_not_included")
+    @ApiModelProperty(value = "服务价格(不包含检测费用)")
+    private Double testPriceNotIncluded;
+
+    /**
+     * 服务价格
+     */
+    @TableField(value = "service_price")
+    @ApiModelProperty(value = "服务价格")
+    private Double servicePrice;
+
+    /**
+     * 创建时间
+     */
+    @TableField(value = "create_time")
+    @ApiModelProperty(value = "创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private LocalDateTime createTime;
+
+}

+ 12 - 0
src/main/java/com/ydtech/modules/ser/service/SerAnnualAuditOrderService.java

@@ -0,0 +1,12 @@
+package com.ydtech.modules.ser.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.ydtech.core.page.HttpResult;
+import com.ydtech.modules.ser.model.SerAnnualAuditOrder;
+import com.ydtech.modules.ser.model.vo.SerAnnualAuditOrderQueryVo;
+
+public interface SerAnnualAuditOrderService {
+    HttpResult addAnnualAuditOrder(SerAnnualAuditOrder serAnnualAuditOrder);
+
+    IPage<SerAnnualAuditOrder> getAnnualAuditOrderPage(SerAnnualAuditOrderQueryVo serAnnualAuditOrderQueryVo);
+}

+ 13 - 0
src/main/java/com/ydtech/modules/ser/service/SerCarInfoService.java

@@ -0,0 +1,13 @@
+package com.ydtech.modules.ser.service;
+
+import com.ydtech.core.page.HttpResult;
+import com.ydtech.modules.inv.model.po.InvSettlementSource;
+import com.ydtech.modules.ser.model.SerCarInfo;
+
+public interface SerCarInfoService {
+    HttpResult queryCarInfoByUserId();
+
+    HttpResult addCarInfo(SerCarInfo serCarInfo);
+
+    HttpResult updateCarInfo(SerCarInfo serCarInfo);
+}

+ 55 - 0
src/main/java/com/ydtech/modules/ser/service/impl/SerAnnualAuditOrderServiceImpl.java

@@ -0,0 +1,55 @@
+package com.ydtech.modules.ser.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ydtech.core.page.HttpResult;
+import com.ydtech.core.page.PageRequest;
+import com.ydtech.modules.ser.dao.SerAnnualAuditOrderMapper;
+import com.ydtech.modules.ser.model.SerAnnualAuditOrder;
+import com.ydtech.modules.ser.model.vo.SerAnnualAuditOrderQueryVo;
+import com.ydtech.modules.ser.service.SerAnnualAuditOrderService;
+import com.ydtech.utils.idgen.IdGenerate;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.time.LocalDateTime;
+
+@Service
+public class SerAnnualAuditOrderServiceImpl implements SerAnnualAuditOrderService {
+    @Autowired
+    SerAnnualAuditOrderMapper serAnnualAuditOrderMapper;
+
+    @Override
+    public HttpResult addAnnualAuditOrder(SerAnnualAuditOrder serAnnualAuditOrder) {
+        serAnnualAuditOrder.setId(IdGenerate.nextId());
+        LocalDateTime date = LocalDateTime.now();
+        serAnnualAuditOrder.setCreateTime(date);
+        serAnnualAuditOrderMapper.insert(serAnnualAuditOrder);
+        return HttpResult.ok("订单生成成功", serAnnualAuditOrder);
+    }
+
+    @Override
+    public IPage<SerAnnualAuditOrder> getAnnualAuditOrderPage(SerAnnualAuditOrderQueryVo serAnnualAuditOrderQueryVo) {
+        PageRequest pageRequest = new PageRequest();
+        pageRequest.setPageNum(serAnnualAuditOrderQueryVo.getPageNum());
+        pageRequest.setPageSize(serAnnualAuditOrderQueryVo.getPageSize());
+        Page page = PageRequest.buildPageRequest(pageRequest);
+        LambdaQueryWrapper<SerAnnualAuditOrder> queryWrapper = new LambdaQueryWrapper<>();
+        if (serAnnualAuditOrderQueryVo.getLicenseNo() != null && !"".equals(serAnnualAuditOrderQueryVo.getLicenseNo())) {
+            queryWrapper.eq(SerAnnualAuditOrder::getLicenseNo, serAnnualAuditOrderQueryVo.getLicenseNo());
+        }
+        if (serAnnualAuditOrderQueryVo.getContactPerson() != null && !"".equals(serAnnualAuditOrderQueryVo.getContactPerson())) {
+            queryWrapper.eq(SerAnnualAuditOrder::getContactPerson, serAnnualAuditOrderQueryVo.getContactPerson());
+        }
+        if (serAnnualAuditOrderQueryVo.getMobile() != null && !"".equals(serAnnualAuditOrderQueryVo.getMobile())) {
+            queryWrapper.eq(SerAnnualAuditOrder::getMobile, serAnnualAuditOrderQueryVo.getMobile());
+        }
+        if (serAnnualAuditOrderQueryVo.getDetailAddress() != null && !"".equals(serAnnualAuditOrderQueryVo.getDetailAddress())) {
+            queryWrapper.like(SerAnnualAuditOrder::getDetailAddress, serAnnualAuditOrderQueryVo.getDetailAddress());
+        }
+        Page pageData = serAnnualAuditOrderMapper.selectPage(page, queryWrapper);
+
+        return pageData;
+    }
+}

+ 72 - 0
src/main/java/com/ydtech/modules/ser/service/impl/SerCarInfoServiceImpl.java

@@ -0,0 +1,72 @@
+package com.ydtech.modules.ser.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.ydtech.core.page.HttpResult;
+import com.ydtech.modules.admin.model.SysUser;
+import com.ydtech.modules.base.controller.BaseController;
+import com.ydtech.modules.fnc.entity.InsPlySettleHx;
+import com.ydtech.modules.ser.dao.SerCarInfoMapper;
+import com.ydtech.modules.ser.model.SerCarInfo;
+import com.ydtech.modules.ser.service.SerCarInfoService;
+import com.ydtech.utils.idgen.IdGenerate;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import java.time.*;
+import java.util.Date;
+import java.util.List;
+
+@Service
+public class SerCarInfoServiceImpl implements SerCarInfoService {
+    @Autowired
+    SerCarInfoMapper serCarInfoMapper;
+    @Override
+    public HttpResult queryCarInfoByUserId() {
+        LambdaQueryWrapper<SerCarInfo> queryWrapper = new LambdaQueryWrapper();
+        SysUser user = BaseController.getUser();
+        queryWrapper.eq(SerCarInfo::getUserId,user.getId());
+        List<SerCarInfo> list= serCarInfoMapper.selectList(queryWrapper);
+        return HttpResult.ok(list);
+    }
+
+    @Override
+    public HttpResult addCarInfo(SerCarInfo serCarInfo) {
+        QueryWrapper<SerCarInfo> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("licenseno", serCarInfo.getLicenseNo());
+        boolean exist = serCarInfoMapper.exists(queryWrapper);
+        if (exist) {
+            return HttpResult.error("该车已被人注册");
+        }
+        SysUser user = BaseController.getUser();
+        serCarInfo.setId(IdGenerate.nextId());
+        serCarInfo.setUserId(user.getId());
+        LocalDateTime date = LocalDateTime.now();
+        serCarInfo.setCreateTime(date);
+        serCarInfoMapper.insert(serCarInfo);
+        return HttpResult.ok("新增成功", serCarInfo);
+    }
+
+    @Override
+    public HttpResult updateCarInfo(SerCarInfo serCarInfo) {
+        // 校验年检到期时间不可早于注册时间
+        Instant registerInstant = serCarInfo.getRegisterTime().toInstant();
+        Instant expireInstant = serCarInfo.getExpireTime().toInstant();
+        if (expireInstant.isBefore(registerInstant)) {
+            return HttpResult.error("年检到期时间不可早于注册时间");
+        }
+            serCarInfo.setExpireTime(serCarInfo.getExpireTime());
+        // 计算逾期时间
+        Date expireDate = serCarInfo.getExpireTime();
+        LocalDateTime expireTime = expireDate.toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime();
+        LocalDateTime currentTime = LocalDateTime.now();
+        Duration duration = Duration.between(expireTime, currentTime);
+        long days = duration.toDays();
+        if (days < 0) {
+            serCarInfo.setOverdueTime("0");
+        } else {
+            serCarInfo.setOverdueTime(String.valueOf(days));
+        }
+        serCarInfoMapper.updateById(serCarInfo);
+        return HttpResult.ok("编辑成功", serCarInfo);
+    }
+}

+ 4 - 0
src/main/resources/mapper/modules/ser/SerAnnualAuditOrderMapper.xml

@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ydtech.modules.ser.dao.SerAnnualAuditOrderMapper">
+</mapper>

+ 4 - 0
src/main/resources/mapper/modules/ser/SerCarInfoMapper.xml

@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ydtech.modules.ser.dao.SerCarInfoMapper">
+</mapper>