Commit 60d82bad by HlQ

[chg] 使用 LocalDateTime 替换 Date

1 parent 6b3ca06f
Showing 181 changed files with 1446 additions and 900 deletions
# 项目运维管理平台 # 项目运维管理平台
使用 SpringBoot3 + Java 21 开发 使用 SpringBoot3 + Java 21 开发
## 销帮帮相关接口 ## 销帮帮相关接口
...@@ -20,6 +20,7 @@ ...@@ -20,6 +20,7 @@
</resource> </resource>
</resources> </resources>
``` ```
## 更新合同金额 ## 更新合同金额
需要在 ``Contract.class`` 把 金额上面的四个注解 ``@ReverseAutoMapping(targetClass = ContractDTO.class, ignore = true)`` 需要在 ``Contract.class`` 把 金额上面的四个注解 ``@ReverseAutoMapping(targetClass = ContractDTO.class, ignore = true)``
注释掉,然后调用更新接口。 注释掉,然后调用更新接口。
\ No newline at end of file \ No newline at end of file
...@@ -8,7 +8,7 @@ import org.apache.ibatis.reflection.MetaObject; ...@@ -8,7 +8,7 @@ import org.apache.ibatis.reflection.MetaObject;
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;
import java.util.Date; import java.time.LocalDateTime;
/** /**
* @author HlQ * @author HlQ
...@@ -19,15 +19,15 @@ public class MyBatisPlusConfig implements MetaObjectHandler { ...@@ -19,15 +19,15 @@ public class MyBatisPlusConfig implements MetaObjectHandler {
@Override @Override
public void insertFill(MetaObject metaObject) { public void insertFill(MetaObject metaObject) {
this.fillHasGetter(metaObject, "createTime", new Date()); this.fillHasGetter(metaObject, "createTime", LocalDateTime.now());
this.fillHasGetter(metaObject, "modifyTime", new Date()); this.fillHasGetter(metaObject, "modifyTime", LocalDateTime.now());
this.fillHasGetter(metaObject, "updateTime", new Date()); this.fillHasGetter(metaObject, "updateTime", LocalDateTime.now());
} }
@Override @Override
public void updateFill(MetaObject metaObject) { public void updateFill(MetaObject metaObject) {
this.fillHasGetter(metaObject, "modifyTime", new Date()); this.fillHasGetter(metaObject, "modifyTime", LocalDateTime.now());
this.fillHasGetter(metaObject, "updateTime", new Date()); this.fillHasGetter(metaObject, "updateTime", LocalDateTime.now());
} }
protected void fillHasGetter(MetaObject metaObject, String fieldName, Object fieldVal) { protected void fillHasGetter(MetaObject metaObject, String fieldName, Object fieldVal) {
......
package vion.config; package vion.config;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
import org.redisson.Redisson; import org.redisson.Redisson;
import org.redisson.api.RedissonClient; import org.redisson.api.RedissonClient;
import org.redisson.codec.JsonJacksonCodec; import org.redisson.codec.JsonJacksonCodec;
...@@ -28,7 +30,9 @@ public class RedisConfig { ...@@ -28,7 +30,9 @@ public class RedisConfig {
@Bean(destroyMethod = "shutdown") @Bean(destroyMethod = "shutdown")
public RedissonClient redissonClient() { public RedissonClient redissonClient() {
Config config = new Config(); Config config = new Config();
config.setCodec(JsonJacksonCodec.INSTANCE); ObjectMapper objectMapper = new ObjectMapper();
objectMapper.registerModule(new JavaTimeModule());
config.setCodec(new JsonJacksonCodec(objectMapper));
SingleServerConfig singleServerConfig = config.useSingleServer(); SingleServerConfig singleServerConfig = config.useSingleServer();
singleServerConfig.setAddress("redis://" + host + ":" + port) singleServerConfig.setAddress("redis://" + host + ":" + port)
.setPassword(password) .setPassword(password)
......
package vion.config; package vion.config;
import jakarta.servlet.http.HttpServletRequestWrapper;
import org.dromara.hutool.core.io.IoUtil;
import jakarta.servlet.ReadListener; import jakarta.servlet.ReadListener;
import jakarta.servlet.ServletInputStream; import jakarta.servlet.ServletInputStream;
import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletRequestWrapper;
import org.dromara.hutool.core.io.IoUtil;
import java.io.*; import java.io.*;
......
package vion.constant; package vion.constant;
import org.dromara.hutool.core.text.StrUtil;
import lombok.Getter; import lombok.Getter;
import org.dromara.hutool.core.text.StrUtil;
import java.util.Arrays; import java.util.Arrays;
......
...@@ -32,7 +32,7 @@ public class AccountController { ...@@ -32,7 +32,7 @@ public class AccountController {
.select(Account::getId, Account::getName) .select(Account::getId, Account::getName)
.orderByDesc(Account::getModifyTime) .orderByDesc(Account::getModifyTime)
.page(Page.of(dto.getPageNum(), .page(Page.of(dto.getPageNum(),
dto.getPageSize())); dto.getPageSize()));
} }
@GetMapping("/account/{id}") @GetMapping("/account/{id}")
......
...@@ -11,8 +11,8 @@ import vion.vo.ConstructionTeamVO; ...@@ -11,8 +11,8 @@ import vion.vo.ConstructionTeamVO;
import vion.vo.RContractTeamVO; import vion.vo.RContractTeamVO;
/** /**
* 施工队管理 * 施工队管理
*/ */
@RestController @RestController
@RequestMapping("/api") @RequestMapping("/api")
@RequiredArgsConstructor @RequiredArgsConstructor
......
...@@ -10,7 +10,7 @@ import com.github.liaochong.myexcel.utils.WatermarkUtil; ...@@ -10,7 +10,7 @@ import com.github.liaochong.myexcel.utils.WatermarkUtil;
import jakarta.servlet.http.HttpServletResponse; import jakarta.servlet.http.HttpServletResponse;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.ss.usermodel.Workbook;
import org.dromara.hutool.core.date.DateUtil; import org.dromara.hutool.core.date.TimeUtil;
import org.dromara.hutool.core.lang.Assert; import org.dromara.hutool.core.lang.Assert;
import org.dromara.hutool.core.text.CharSequenceUtil; import org.dromara.hutool.core.text.CharSequenceUtil;
import org.dromara.hutool.core.text.StrUtil; import org.dromara.hutool.core.text.StrUtil;
...@@ -31,7 +31,7 @@ import vion.vo.UserVO; ...@@ -31,7 +31,7 @@ import vion.vo.UserVO;
import java.awt.*; import java.awt.*;
import java.io.IOException; import java.io.IOException;
import java.util.Date; import java.time.LocalDateTime;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
...@@ -166,9 +166,9 @@ public class ContractController { ...@@ -166,9 +166,9 @@ public class ContractController {
@GetMapping("/contract/getCRMProduct") @GetMapping("/contract/getCRMProduct")
@SaCheckPermission(value = "contract:CRMProduct", orRole = "admin") @SaCheckPermission(value = "contract:CRMProduct", orRole = "admin")
public JsonNode getCRMProduct(@RequestParam String name, public JsonNode getCRMProduct(@RequestParam String name,
@RequestParam String code, @RequestParam String code,
@RequestParam(defaultValue = "1") Integer page, @RequestParam(defaultValue = "1") Integer page,
@RequestParam(defaultValue = "20") Integer pageSize) { @RequestParam(defaultValue = "20") Integer pageSize) {
return contractService.getCRMProduct(name, code, page, pageSize); return contractService.getCRMProduct(name, code, page, pageSize);
} }
...@@ -192,7 +192,7 @@ public class ContractController { ...@@ -192,7 +192,7 @@ public class ContractController {
watermark.setText(user.getUsername() + "-" + user.getPhone()); watermark.setText(user.getUsername() + "-" + user.getPhone());
watermark.setFont(new Font("SimSun", Font.PLAIN, 16)); watermark.setFont(new Font("SimSun", Font.PLAIN, 16));
WatermarkUtil.addWatermark(workbook, watermark); WatermarkUtil.addWatermark(workbook, watermark);
AttachmentExportUtil.export(workbook, StrUtil.format("合同列表_{}", DateUtil.formatDateTime(new Date())), response); AttachmentExportUtil.export(workbook, StrUtil.format("合同列表_{}", TimeUtil.formatNormal(LocalDateTime.now())), response);
} catch (IOException e) { } catch (IOException e) {
throw new RuntimeException(e); throw new RuntimeException(e);
} }
......
...@@ -7,7 +7,7 @@ import io.github.linpeilie.Converter; ...@@ -7,7 +7,7 @@ import io.github.linpeilie.Converter;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.dromara.hutool.core.collection.CollUtil; import org.dromara.hutool.core.collection.CollUtil;
import org.dromara.hutool.core.date.DateUtil; import org.dromara.hutool.core.date.TimeUtil;
import org.dromara.hutool.core.io.file.FileNameUtil; import org.dromara.hutool.core.io.file.FileNameUtil;
import org.dromara.hutool.core.io.file.FileUtil; import org.dromara.hutool.core.io.file.FileUtil;
import org.dromara.hutool.core.lang.Assert; import org.dromara.hutool.core.lang.Assert;
...@@ -31,7 +31,7 @@ import vion.vo.FileInfoVO; ...@@ -31,7 +31,7 @@ import vion.vo.FileInfoVO;
import java.io.File; import java.io.File;
import java.io.IOException; import java.io.IOException;
import java.nio.charset.StandardCharsets; import java.nio.charset.StandardCharsets;
import java.util.Date; import java.time.LocalDateTime;
@RestController @RestController
@RequestMapping("/api") @RequestMapping("/api")
...@@ -110,7 +110,7 @@ public class FileController { ...@@ -110,7 +110,7 @@ public class FileController {
@SaCheckPermission(value = "file:form:upload", orRole = "admin") @SaCheckPermission(value = "file:form:upload", orRole = "admin")
public String uploadFile(FileInfoDTO dto, @RequestParam(name = "file") MultipartFile infile) throws IOException { public String uploadFile(FileInfoDTO dto, @RequestParam(name = "file") MultipartFile infile) throws IOException {
String filename = FileNameUtil.mainName(infile.getOriginalFilename()) + "_" + String filename = FileNameUtil.mainName(infile.getOriginalFilename()) + "_" +
DateUtil.format(new Date(), "yyyyMMdd_HHmmssSSS") + "." + TimeUtil.format(LocalDateTime.now(), "yyyyMMdd_HHmmssSSS") + "." +
FileNameUtil.extName(infile.getOriginalFilename()); FileNameUtil.extName(infile.getOriginalFilename());
String path = getPath(dto, filename); String path = getPath(dto, filename);
File file = FileUtil.touch(path); File file = FileUtil.touch(path);
...@@ -142,7 +142,7 @@ public class FileController { ...@@ -142,7 +142,7 @@ public class FileController {
public String uploadFile1(FileInfo fileInfo, @RequestParam(name = "files") MultipartFile[] files) throws IOException { public String uploadFile1(FileInfo fileInfo, @RequestParam(name = "files") MultipartFile[] files) throws IOException {
for (MultipartFile infile : files) { for (MultipartFile infile : files) {
String filename = FileNameUtil.mainName(infile.getOriginalFilename()) + "_" + String filename = FileNameUtil.mainName(infile.getOriginalFilename()) + "_" +
DateUtil.format(new Date(), "yyyyMMdd_HHmmssSSS") + "." + TimeUtil.format(LocalDateTime.now(), "yyyyMMdd_HHmmssSSS") + "." +
FileNameUtil.extName(infile.getOriginalFilename()); FileNameUtil.extName(infile.getOriginalFilename());
String path = fileUrl + FileUtil.FILE_SEPARATOR + fileInfo.getStoreId() + FileUtil.FILE_SEPARATOR + fileInfo.getSourceId() + FileUtil.FILE_SEPARATOR + filename; String path = fileUrl + FileUtil.FILE_SEPARATOR + fileInfo.getStoreId() + FileUtil.FILE_SEPARATOR + fileInfo.getSourceId() + FileUtil.FILE_SEPARATOR + filename;
File file = FileUtil.touch(path); File file = FileUtil.touch(path);
......
...@@ -56,8 +56,8 @@ public class FormController { ...@@ -56,8 +56,8 @@ public class FormController {
/** /**
* 签字专用更新接口 * 签字专用更新接口
* *
* @param uuid uuid * @param uuid uuid
* @param dto dto * @param dto dto
* @return java.lang.String * @return java.lang.String
*/ */
@PostMapping("/form/sign/{uuid}") @PostMapping("/form/sign/{uuid}")
......
...@@ -11,7 +11,7 @@ import vion.model.Inspect; ...@@ -11,7 +11,7 @@ import vion.model.Inspect;
import vion.service.IInspectService; import vion.service.IInspectService;
import vion.vo.InspectVO; import vion.vo.InspectVO;
import java.util.Date; import java.time.LocalDate;
@RestController @RestController
@RequestMapping("/api") @RequestMapping("/api")
...@@ -47,10 +47,10 @@ public class InspectController { ...@@ -47,10 +47,10 @@ public class InspectController {
boolean result = inspectService.lambdaUpdate() boolean result = inspectService.lambdaUpdate()
.eq(Inspect::getId, data.getId()) .eq(Inspect::getId, data.getId())
.set(Inspect::getStatus, data.getStatus()) .set(Inspect::getStatus, data.getStatus())
.set(Inspect::getAuditDate, new Date()) .set(Inspect::getAuditDate, LocalDate.now())
.set(Inspect::getReviewer, data.getReviewer()) .set(Inspect::getReviewer, data.getReviewer())
//审核状态为已完成的时候更新完成时间(0进行中、1待审核、2已完成、3、驳回) //审核状态为已完成的时候更新完成时间(0进行中、1待审核、2已完成、3、驳回)
.set(data.getStatus() == 2, Inspect::getFinishDate, new Date()) .set(data.getStatus() == 2, Inspect::getFinishDate, LocalDate.now())
.update(); .update();
return result ? "更新巡检状态成功" : "更新巡检状态失败"; return result ? "更新巡检状态成功" : "更新巡检状态失败";
} }
......
...@@ -10,7 +10,7 @@ import io.github.linpeilie.Converter; ...@@ -10,7 +10,7 @@ import io.github.linpeilie.Converter;
import jakarta.servlet.http.HttpServletResponse; import jakarta.servlet.http.HttpServletResponse;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.ss.usermodel.Workbook;
import org.dromara.hutool.core.date.DateUtil; import org.dromara.hutool.core.date.TimeUtil;
import org.dromara.hutool.core.text.StrUtil; import org.dromara.hutool.core.text.StrUtil;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import vion.dto.InvoiceDTO; import vion.dto.InvoiceDTO;
...@@ -21,7 +21,7 @@ import vion.vo.UserVO; ...@@ -21,7 +21,7 @@ import vion.vo.UserVO;
import java.awt.*; import java.awt.*;
import java.io.IOException; import java.io.IOException;
import java.util.Date; import java.time.LocalDateTime;
import java.util.List; import java.util.List;
/** /**
...@@ -79,7 +79,7 @@ public class InvoiceController { ...@@ -79,7 +79,7 @@ public class InvoiceController {
watermark.setText(user.getUsername() + "-" + user.getPhone()); watermark.setText(user.getUsername() + "-" + user.getPhone());
watermark.setFont(new Font("SimSun", Font.PLAIN, 16)); watermark.setFont(new Font("SimSun", Font.PLAIN, 16));
WatermarkUtil.addWatermark(workbook, watermark); WatermarkUtil.addWatermark(workbook, watermark);
AttachmentExportUtil.export(workbook, StrUtil.format("发票列表_{}", DateUtil.formatDateTime(new Date())), response); AttachmentExportUtil.export(workbook, StrUtil.format("发票列表_{}", TimeUtil.formatNormal(LocalDateTime.now())), response);
} catch (IOException e) { } catch (IOException e) {
throw new RuntimeException(e); throw new RuntimeException(e);
} }
......
...@@ -2,31 +2,31 @@ package vion.controller; ...@@ -2,31 +2,31 @@ package vion.controller;
import cn.dev33.satoken.annotation.SaCheckPermission; import cn.dev33.satoken.annotation.SaCheckPermission;
import cn.dev33.satoken.stp.StpUtil; import cn.dev33.satoken.stp.StpUtil;
import org.dromara.hutool.core.date.DateUtil;
import org.dromara.hutool.core.text.StrUtil;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.github.liaochong.myexcel.core.DefaultExcelBuilder; import com.github.liaochong.myexcel.core.DefaultExcelBuilder;
import com.github.liaochong.myexcel.core.watermark.Watermark; import com.github.liaochong.myexcel.core.watermark.Watermark;
import vion.utils.excel.AttachmentExportUtil;
import com.github.liaochong.myexcel.utils.WatermarkUtil; import com.github.liaochong.myexcel.utils.WatermarkUtil;
import io.github.linpeilie.Converter; import io.github.linpeilie.Converter;
import jakarta.servlet.http.HttpServletResponse;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.ss.usermodel.Workbook;
import org.dromara.hutool.core.date.TimeUtil;
import org.dromara.hutool.core.text.StrUtil;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import vion.dto.PaymentDTO; import vion.dto.PaymentDTO;
import vion.service.IPaymentService; import vion.service.IPaymentService;
import vion.utils.excel.AttachmentExportUtil;
import vion.vo.PaymentVO; import vion.vo.PaymentVO;
import vion.vo.UserVO; import vion.vo.UserVO;
import jakarta.servlet.http.HttpServletResponse;
import java.awt.*; import java.awt.*;
import java.io.IOException; import java.io.IOException;
import java.util.Date; import java.time.LocalDateTime;
import java.util.List; import java.util.List;
/** /**
* 收款记录管理 * 收款记录管理
*/ */
@RestController @RestController
@RequestMapping("/api") @RequestMapping("/api")
@RequiredArgsConstructor @RequiredArgsConstructor
...@@ -79,7 +79,7 @@ public class PaymentController { ...@@ -79,7 +79,7 @@ public class PaymentController {
watermark.setText(user.getUsername() + "-" + user.getPhone()); watermark.setText(user.getUsername() + "-" + user.getPhone());
watermark.setFont(new Font("SimSun", Font.PLAIN, 16)); watermark.setFont(new Font("SimSun", Font.PLAIN, 16));
WatermarkUtil.addWatermark(workbook, watermark); WatermarkUtil.addWatermark(workbook, watermark);
AttachmentExportUtil.export(workbook, StrUtil.format("收款列表_{}", DateUtil.formatDateTime(new Date())), response); AttachmentExportUtil.export(workbook, StrUtil.format("收款列表_{}", TimeUtil.formatNormal(LocalDateTime.now())), response);
} catch (IOException e) { } catch (IOException e) {
throw new RuntimeException(e); throw new RuntimeException(e);
} }
......
...@@ -2,28 +2,28 @@ package vion.controller; ...@@ -2,28 +2,28 @@ package vion.controller;
import cn.dev33.satoken.annotation.SaCheckPermission; import cn.dev33.satoken.annotation.SaCheckPermission;
import cn.dev33.satoken.stp.StpUtil; import cn.dev33.satoken.stp.StpUtil;
import org.dromara.hutool.core.date.DateUtil;
import org.dromara.hutool.core.text.StrUtil;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.github.liaochong.myexcel.core.DefaultExcelBuilder; import com.github.liaochong.myexcel.core.DefaultExcelBuilder;
import com.github.liaochong.myexcel.core.watermark.Watermark; import com.github.liaochong.myexcel.core.watermark.Watermark;
import vion.utils.excel.AttachmentExportUtil;
import com.github.liaochong.myexcel.utils.WatermarkUtil; import com.github.liaochong.myexcel.utils.WatermarkUtil;
import jakarta.servlet.http.HttpServletResponse;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.ss.usermodel.Workbook;
import org.dromara.hutool.core.date.TimeUtil;
import org.dromara.hutool.core.text.StrUtil;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import vion.dto.PointInfoDTO; import vion.dto.PointInfoDTO;
import vion.model.RejectInfo; import vion.model.RejectInfo;
import vion.service.IPointInfoService; import vion.service.IPointInfoService;
import vion.third.WechatMod; import vion.third.WechatMod;
import vion.utils.excel.AttachmentExportUtil;
import vion.vo.PointInfoVO; import vion.vo.PointInfoVO;
import vion.vo.UserVO; import vion.vo.UserVO;
import jakarta.servlet.http.HttpServletResponse;
import java.awt.*; import java.awt.*;
import java.io.IOException; import java.io.IOException;
import java.util.Date; import java.time.LocalDateTime;
import java.util.List; import java.util.List;
/** /**
...@@ -128,7 +128,7 @@ public class PointDesignController { ...@@ -128,7 +128,7 @@ public class PointDesignController {
watermark.setText(user.getUsername() + "-" + user.getPhone()); watermark.setText(user.getUsername() + "-" + user.getPhone());
watermark.setFont(new Font("SimSun", Font.PLAIN, 16)); watermark.setFont(new Font("SimSun", Font.PLAIN, 16));
WatermarkUtil.addWatermark(workbook, watermark); WatermarkUtil.addWatermark(workbook, watermark);
AttachmentExportUtil.export(workbook, StrUtil.format("点位设计列表_{}", DateUtil.formatDateTime(new Date())), response); AttachmentExportUtil.export(workbook, StrUtil.format("点位设计列表_{}", TimeUtil.formatNormal(LocalDateTime.now())), response);
} catch (IOException e) { } catch (IOException e) {
throw new RuntimeException(e); throw new RuntimeException(e);
} }
......
package vion.controller; package vion.controller;
import cn.dev33.satoken.annotation.SaCheckPermission; import cn.dev33.satoken.annotation.SaCheckPermission;
import org.dromara.hutool.core.lang.Opt;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.dromara.hutool.core.lang.Opt;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
......
package vion.controller; package vion.controller;
import cn.dev33.satoken.annotation.SaCheckPermission; import cn.dev33.satoken.annotation.SaCheckPermission;
import org.dromara.hutool.core.lang.Assert;
import org.dromara.hutool.core.array.ArrayUtil;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.dromara.hutool.core.array.ArrayUtil;
import org.dromara.hutool.core.lang.Assert;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import vion.dto.RepairRecDTO; import vion.dto.RepairRecDTO;
import vion.service.IRepairRecService; import vion.service.IRepairRecService;
......
package vion.controller; package vion.controller;
import cn.dev33.satoken.annotation.SaCheckPermission; import cn.dev33.satoken.annotation.SaCheckPermission;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import io.github.linpeilie.Converter;
import lombok.RequiredArgsConstructor;
import org.dromara.hutool.core.collection.CollUtil; import org.dromara.hutool.core.collection.CollUtil;
import org.dromara.hutool.core.collection.ListUtil; import org.dromara.hutool.core.collection.ListUtil;
import org.dromara.hutool.core.lang.Assert; import org.dromara.hutool.core.lang.Assert;
import org.dromara.hutool.core.lang.Opt; import org.dromara.hutool.core.lang.Opt;
import org.dromara.hutool.core.text.StrUtil; import org.dromara.hutool.core.text.StrUtil;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import io.github.linpeilie.Converter;
import lombok.RequiredArgsConstructor;
import org.dromara.hutool.core.util.ObjUtil; import org.dromara.hutool.core.util.ObjUtil;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import vion.dto.RoleDTO; import vion.dto.RoleDTO;
......
...@@ -9,7 +9,7 @@ import jakarta.servlet.http.HttpServletResponse; ...@@ -9,7 +9,7 @@ import jakarta.servlet.http.HttpServletResponse;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.ss.usermodel.Workbook;
import org.dromara.hutool.core.array.ArrayUtil; import org.dromara.hutool.core.array.ArrayUtil;
import org.dromara.hutool.core.date.DateUtil; import org.dromara.hutool.core.date.TimeUtil;
import org.dromara.hutool.core.lang.Assert; import org.dromara.hutool.core.lang.Assert;
import org.dromara.hutool.core.text.StrUtil; import org.dromara.hutool.core.text.StrUtil;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
...@@ -22,7 +22,7 @@ import vion.vo.UserVO; ...@@ -22,7 +22,7 @@ import vion.vo.UserVO;
import java.awt.*; import java.awt.*;
import java.io.IOException; import java.io.IOException;
import java.util.Date; import java.time.LocalDateTime;
import java.util.List; import java.util.List;
/** /**
...@@ -76,7 +76,7 @@ public class SparePartController { ...@@ -76,7 +76,7 @@ public class SparePartController {
UserVO user = (UserVO) StpUtil.getTokenSession().get("curLoginUser"); UserVO user = (UserVO) StpUtil.getTokenSession().get("curLoginUser");
dto.setPageSize(30000); dto.setPageSize(30000);
List<SparePartVO> voPage = sparePartService.list(dto); List<SparePartVO> voPage = sparePartService.list(dto);
try (DefaultStreamExcelBuilder<SparePartVO> defaultStreamExcelBuilder = DefaultStreamExcelBuilder.of(SparePartVO.class).autoMerge().start()) { try (DefaultStreamExcelBuilder<SparePartVO> defaultStreamExcelBuilder = DefaultStreamExcelBuilder.of(SparePartVO.class).autoMerge().start()) {
voPage.forEach(v -> { voPage.forEach(v -> {
var name = v.getRepairDeviceList().stream().map(RRepairDevice::getDeviceName).toList(); var name = v.getRepairDeviceList().stream().map(RRepairDevice::getDeviceName).toList();
var no = v.getRepairDeviceList().stream().map(RRepairDevice::getDeviceNo).toList(); var no = v.getRepairDeviceList().stream().map(RRepairDevice::getDeviceNo).toList();
...@@ -92,7 +92,7 @@ public class SparePartController { ...@@ -92,7 +92,7 @@ public class SparePartController {
watermark.setText(user.getUsername() + "-" + user.getPhone()); watermark.setText(user.getUsername() + "-" + user.getPhone());
watermark.setFont(new Font("SimSun", Font.PLAIN, 16)); watermark.setFont(new Font("SimSun", Font.PLAIN, 16));
WatermarkUtil.addWatermark(workbook, watermark); WatermarkUtil.addWatermark(workbook, watermark);
AttachmentExportUtil.export(workbook, StrUtil.format("备件申请列表_{}", DateUtil.formatDateTime(new Date())), response); AttachmentExportUtil.export(workbook, StrUtil.format("备件申请列表_{}", TimeUtil.formatNormal(LocalDateTime.now())), response);
} catch (IOException e) { } catch (IOException e) {
throw new RuntimeException(e); throw new RuntimeException(e);
} }
......
...@@ -10,7 +10,7 @@ import jakarta.servlet.http.HttpServletResponse; ...@@ -10,7 +10,7 @@ import jakarta.servlet.http.HttpServletResponse;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.ss.usermodel.Workbook;
import org.dromara.hutool.core.date.DateUtil; import org.dromara.hutool.core.date.TimeUtil;
import org.dromara.hutool.core.text.StrUtil; import org.dromara.hutool.core.text.StrUtil;
import org.springframework.format.annotation.DateTimeFormat; import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
...@@ -27,7 +27,8 @@ import vion.vo.UserVO; ...@@ -27,7 +27,8 @@ import vion.vo.UserVO;
import java.awt.*; import java.awt.*;
import java.io.IOException; import java.io.IOException;
import java.util.Date; import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
...@@ -81,7 +82,7 @@ public class TaskController { ...@@ -81,7 +82,7 @@ public class TaskController {
FaultLog faultLog = new FaultLog(); FaultLog faultLog = new FaultLog();
faultLog.setOperator(taskVO.getActiveUser()); faultLog.setOperator(taskVO.getActiveUser());
faultLog.setContent("工单正在处理中"); faultLog.setContent("工单正在处理中");
faultLog.setCreateTime(new Date()); faultLog.setCreateTime(LocalDateTime.now());
faultLogList.add(faultLog); faultLogList.add(faultLog);
} }
return faultLogList; return faultLogList;
...@@ -108,7 +109,7 @@ public class TaskController { ...@@ -108,7 +109,7 @@ public class TaskController {
watermark.setText(user.getUsername() + "-" + user.getPhone()); watermark.setText(user.getUsername() + "-" + user.getPhone());
watermark.setFont(new Font("SimSun", Font.PLAIN, 16)); watermark.setFont(new Font("SimSun", Font.PLAIN, 16));
WatermarkUtil.addWatermark(workbook, watermark); WatermarkUtil.addWatermark(workbook, watermark);
AttachmentExportUtil.export(workbook, StrUtil.format("任务列表_{}", DateUtil.formatDateTime(new Date())), response); AttachmentExportUtil.export(workbook, StrUtil.format("任务列表_{}", TimeUtil.formatNormal(LocalDateTime.now())), response);
} catch (IOException e) { } catch (IOException e) {
throw new RuntimeException(e); throw new RuntimeException(e);
} }
...@@ -147,8 +148,8 @@ public class TaskController { ...@@ -147,8 +148,8 @@ public class TaskController {
@GetMapping("/task/peopleAnal") @GetMapping("/task/peopleAnal")
@SaCheckPermission(value = "task:peopleAnal", orRole = "admin") @SaCheckPermission(value = "task:peopleAnal", orRole = "admin")
public List<Map<String, Object>> peopleAnalysis(@DateTimeFormat(pattern = "yyyy-MM-dd") Date startDate, public List<Map<String, Object>> peopleAnalysis(@DateTimeFormat(pattern = "yyyy-MM-dd") LocalDate startDate,
@DateTimeFormat(pattern = "yyyy-MM-dd") Date endDate, @DateTimeFormat(pattern = "yyyy-MM-dd") LocalDate endDate,
Integer source, Integer source,
@RequestParam(required = false) List<Long> userIds) { @RequestParam(required = false) List<Long> userIds) {
return taskService.peopleAnalysis(startDate, endDate, source, userIds); return taskService.peopleAnalysis(startDate, endDate, source, userIds);
...@@ -156,8 +157,8 @@ public class TaskController { ...@@ -156,8 +157,8 @@ public class TaskController {
@GetMapping("/task/proAnal") @GetMapping("/task/proAnal")
@SaCheckPermission(value = "task:proAnal", orRole = "admin") @SaCheckPermission(value = "task:proAnal", orRole = "admin")
public List<Map<String, Object>> proAnalysis(@DateTimeFormat(pattern = "yyyy-MM-dd") Date startDate, public List<Map<String, Object>> proAnalysis(@DateTimeFormat(pattern = "yyyy-MM-dd") LocalDate startDate,
@DateTimeFormat(pattern = "yyyy-MM-dd") Date endDate, @DateTimeFormat(pattern = "yyyy-MM-dd") LocalDate endDate,
Integer source, Integer source,
@RequestParam(required = false) List<Long> userIds) { @RequestParam(required = false) List<Long> userIds) {
return taskService.proAnalysis(startDate, endDate, source, userIds); return taskService.proAnalysis(startDate, endDate, source, userIds);
...@@ -165,8 +166,8 @@ public class TaskController { ...@@ -165,8 +166,8 @@ public class TaskController {
@GetMapping("/task/summaryAnal") @GetMapping("/task/summaryAnal")
@SaCheckPermission(value = "task:summaryAnal", orRole = "admin") @SaCheckPermission(value = "task:summaryAnal", orRole = "admin")
public Map<String, Map<String, List<Task>>> summaryAnalysis(@DateTimeFormat(pattern = "yyyy-MM-dd") Date startDate, public Map<String, Map<String, List<Task>>> summaryAnalysis(@DateTimeFormat(pattern = "yyyy-MM-dd") LocalDate startDate,
@DateTimeFormat(pattern = "yyyy-MM-dd") Date endDate, @DateTimeFormat(pattern = "yyyy-MM-dd") LocalDate endDate,
Integer source) { Integer source) {
return taskService.summaryAnalysis(startDate, endDate, source); return taskService.summaryAnalysis(startDate, endDate, source);
} }
......
...@@ -5,7 +5,7 @@ import lombok.RequiredArgsConstructor; ...@@ -5,7 +5,7 @@ import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.dromara.hutool.core.collection.CollUtil; import org.dromara.hutool.core.collection.CollUtil;
import org.dromara.hutool.core.collection.ListUtil; import org.dromara.hutool.core.collection.ListUtil;
import org.dromara.hutool.core.date.DateUtil; import org.dromara.hutool.core.date.TimeUtil;
import org.dromara.hutool.core.lang.Opt; import org.dromara.hutool.core.lang.Opt;
import org.dromara.hutool.core.math.NumberUtil; import org.dromara.hutool.core.math.NumberUtil;
import org.dromara.hutool.core.text.StrUtil; import org.dromara.hutool.core.text.StrUtil;
...@@ -165,9 +165,9 @@ public class ContractRunner { ...@@ -165,9 +165,9 @@ public class ContractRunner {
contract.setName(jsonObj1.path("text_14").asText()); contract.setName(jsonObj1.path("text_14").asText());
contract.setContractNo(jsonObj1.path("serialNo").asText()); contract.setContractNo(jsonObj1.path("serialNo").asText());
contract.setType(contractTypeMap.getOrDefault(jsonObj1.path("text_17").path("text").asText(), 0)); contract.setType(contractTypeMap.getOrDefault(jsonObj1.path("text_17").path("text").asText(), 0));
contract.setSignDate(DateUtil.date(jsonObj1.path("date_1").asLong() * 1000)); contract.setSignDate(TimeUtil.of(jsonObj1.path("date_1").asLong() * 1000).toLocalDate());
contract.setMaintainSdate(Opt.ofNullable(jsonObj1.path("date_4")).filter(JsonNode::isNumber).map(sec -> DateUtil.date(sec.asLong() * 1000)).orElse(null)); contract.setMaintainSdate(Opt.ofNullable(jsonObj1.path("date_4")).filter(JsonNode::isNumber).map(sec -> TimeUtil.of(sec.asLong() * 1000).toLocalDate()).orElse(null));
contract.setMaintainEdate(Opt.ofNullable(jsonObj1.path("date_5")).filter(JsonNode::isNumber).map(sec -> DateUtil.date(sec.asLong() * 1000)).orElse(null)); contract.setMaintainEdate(Opt.ofNullable(jsonObj1.path("date_5")).filter(JsonNode::isNumber).map(sec -> TimeUtil.of(sec.asLong() * 1000).toLocalDate()).orElse(null));
String warrantyPeriod = jsonObj1.path("text_23").path("text").asText(""); String warrantyPeriod = jsonObj1.path("text_23").path("text").asText("");
// 23 质保 没有维保开始时间和结束时间 25 维保 // 23 质保 没有维保开始时间和结束时间 25 维保
if (StrUtil.isNotBlank(warrantyPeriod) && warrantyPeriod.contains("个月")) { if (StrUtil.isNotBlank(warrantyPeriod) && warrantyPeriod.contains("个月")) {
...@@ -183,7 +183,7 @@ public class ContractRunner { ...@@ -183,7 +183,7 @@ public class ContractRunner {
if (!paymentForm.isEmpty()) { if (!paymentForm.isEmpty()) {
paymentForm.forEach(pf -> { paymentForm.forEach(pf -> {
var ratio = NumberUtil.div(BigDecimal.valueOf(Double.parseDouble(pf.path("text_1").asText())), 100); var ratio = NumberUtil.div(BigDecimal.valueOf(Double.parseDouble(pf.path("text_1").asText())), 100);
var date = DateUtil.date(pf.path("date_1").asLong() * 1000); var date = TimeUtil.of(pf.path("date_1").asLong() * 1000).toLocalDate();
var stage = pf.path("text_2").path("text").asText(); var stage = pf.path("text_2").path("text").asText();
if (StrUtil.equals(stage, "预付款")) { if (StrUtil.equals(stage, "预付款")) {
contract.setSignRatio(ratio); contract.setSignRatio(ratio);
...@@ -224,8 +224,8 @@ public class ContractRunner { ...@@ -224,8 +224,8 @@ public class ContractRunner {
contract.setBackInfo(jsonObj1.path("text_29").asText()); contract.setBackInfo(jsonObj1.path("text_29").asText());
contract.setCreateUser(-1L); contract.setCreateUser(-1L);
contract.setModifyUser(-1L); contract.setModifyUser(-1L);
contract.setEntryTime(DateUtil.date(result.path("addTime").asLong() * 1000)); contract.setEntryTime(TimeUtil.of(result.path("addTime").asLong() * 1000));
contract.setOriginalModTime(DateUtil.date(result.path("updateTime").asLong() * 1000)); contract.setOriginalModTime(TimeUtil.of(result.path("updateTime").asLong() * 1000));
insOrUpdContractList.add(contract); insOrUpdContractList.add(contract);
var productArr = jsonObj1.withArray("array_4"); var productArr = jsonObj1.withArray("array_4");
...@@ -320,8 +320,7 @@ public class ContractRunner { ...@@ -320,8 +320,7 @@ public class ContractRunner {
contractPaymentService.calMoney(exist, updDto); contractPaymentService.calMoney(exist, updDto);
contractService.updateById(updDto); contractService.updateById(updDto);
}); });
redissonClient.getBucket(RedisKeyEnum.CONTRACT_SYNC_NEW_TIME.getVal()).set(insOrUpdContractList.getFirst().getOriginalModTime().getTime()); redissonClient.getBucket(RedisKeyEnum.CONTRACT_SYNC_NEW_TIME.getVal()).set(TimeUtil.toEpochMilli(insOrUpdContractList.getFirst().getOriginalModTime()));
log.info("【结束】从crm系统同步合同信息"); log.info("【结束】从crm系统同步合同信息");
} }
......
...@@ -2,7 +2,7 @@ package vion.cron; ...@@ -2,7 +2,7 @@ package vion.cron;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.dromara.hutool.core.date.DateUtil; import org.dromara.hutool.core.date.TimeUtil;
import org.dromara.hutool.core.lang.Opt; import org.dromara.hutool.core.lang.Opt;
import org.dromara.hutool.core.text.StrUtil; import org.dromara.hutool.core.text.StrUtil;
import org.dromara.hutool.core.util.ObjUtil; import org.dromara.hutool.core.util.ObjUtil;
...@@ -20,6 +20,7 @@ import vion.service.IStoreService; ...@@ -20,6 +20,7 @@ import vion.service.IStoreService;
import vion.third.DingMod; import vion.third.DingMod;
import vion.utils.JsonUtil; import vion.utils.JsonUtil;
import java.time.LocalDateTime;
import java.util.Map; import java.util.Map;
import java.util.stream.Collectors; import java.util.stream.Collectors;
...@@ -83,7 +84,7 @@ public class LogPushRunner { ...@@ -83,7 +84,7 @@ public class LogPushRunner {
.put("text", StrUtil.format(""" .put("text", StrUtil.format("""
### 项目日志待提交提醒 ### 项目日志待提交提醒
#### 项目:[{}]请及时提交日志 #### 项目:[{}]请及时提交日志
#### 发送时间:{}""", storeName, DateUtil.now())); #### 发送时间:{}""", storeName, TimeUtil.formatNormal(LocalDateTime.now())));
var msg = JsonUtil.createObj() var msg = JsonUtil.createObj()
.put("msgtype", "markdown") .put("msgtype", "markdown")
......
...@@ -3,7 +3,7 @@ package vion.cron; ...@@ -3,7 +3,7 @@ package vion.cron;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.dromara.hutool.core.date.DateUtil; import org.dromara.hutool.core.date.TimeUtil;
import org.dromara.hutool.core.lang.Opt; import org.dromara.hutool.core.lang.Opt;
import org.springframework.scheduling.annotation.Scheduled; import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
...@@ -14,6 +14,7 @@ import vion.service.IUserService; ...@@ -14,6 +14,7 @@ import vion.service.IUserService;
import vion.third.DingMod; import vion.third.DingMod;
import vion.utils.JsonUtil; import vion.utils.JsonUtil;
import java.time.LocalDateTime;
import java.util.stream.Collectors; import java.util.stream.Collectors;
/** /**
...@@ -52,7 +53,7 @@ public class TaskRunner { ...@@ -52,7 +53,7 @@ public class TaskRunner {
.put("markdown", """ .put("markdown", """
### 未完成工单提醒 ### 未完成工单提醒
#### 请查看您未完成的工单 #### 请查看您未完成的工单
#### 发送时间:""" + DateUtil.now()) #### 发送时间:""" + TimeUtil.formatNormal(LocalDateTime.now()))
.put("btn_orientation", "1"); .put("btn_orientation", "1");
var jsonArray = JsonUtil.createArr() var jsonArray = JsonUtil.createArr()
......
...@@ -7,7 +7,8 @@ import org.springframework.format.annotation.DateTimeFormat; ...@@ -7,7 +7,8 @@ import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.Date; import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.List; import java.util.List;
@Getter @Getter
...@@ -56,24 +57,26 @@ public class ContractDTO extends BaseDTO { ...@@ -56,24 +57,26 @@ public class ContractDTO extends BaseDTO {
/** /**
* 终验日期 * 终验日期
*/ */
private Date finalDate; private LocalDateTime finalDate;
/** /**
* 项目id * 项目id
*/ */
private Long storeId; private Long storeId;
/** 文件来源 */ /**
* 文件来源
*/
private Integer sourceType; private Integer sourceType;
@DateTimeFormat(pattern = "yyyy-MM-dd") @DateTimeFormat(pattern = "yyyy-MM-dd")
private Date nodeDate; private LocalDate nodeDate;
@DateTimeFormat(pattern = "yyyy-MM-dd") @DateTimeFormat(pattern = "yyyy-MM-dd")
private Date signDateStart; private LocalDate signDateStart;
@DateTimeFormat(pattern = "yyyy-MM-dd") @DateTimeFormat(pattern = "yyyy-MM-dd")
private Date signDateEnd; private LocalDate signDateEnd;
/** /**
* 1:查询未关联的合同 * 1:查询未关联的合同
...@@ -81,7 +84,9 @@ public class ContractDTO extends BaseDTO { ...@@ -81,7 +84,9 @@ public class ContractDTO extends BaseDTO {
*/ */
private int switchFlag; private int switchFlag;
/** 产品线属性 */ /**
* 产品线属性
*/
private List<Integer> productLines; private List<Integer> productLines;
/** /**
...@@ -107,7 +112,9 @@ public class ContractDTO extends BaseDTO { ...@@ -107,7 +112,9 @@ public class ContractDTO extends BaseDTO {
private BigDecimal amount; private BigDecimal amount;
/** 操作符 > < = */ /**
* 操作符 > < =
*/
private String operator; private String operator;
private OrderItem orderItem; private OrderItem orderItem;
......
...@@ -5,7 +5,7 @@ import lombok.Getter; ...@@ -5,7 +5,7 @@ import lombok.Getter;
import lombok.Setter; import lombok.Setter;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.Date; import java.time.LocalDate;
@Getter @Getter
@Setter @Setter
...@@ -31,6 +31,6 @@ public class ContractPaymentDTO { ...@@ -31,6 +31,6 @@ public class ContractPaymentDTO {
* 节点日期,指合同到这一阶段时的时间 * 节点日期,指合同到这一阶段时的时间
*/ */
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date nodeDate; private LocalDate nodeDate;
} }
\ No newline at end of file \ No newline at end of file
...@@ -5,7 +5,7 @@ import lombok.Getter; ...@@ -5,7 +5,7 @@ import lombok.Getter;
import lombok.Setter; import lombok.Setter;
import org.springframework.format.annotation.DateTimeFormat; import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date; import java.time.LocalDate;
import java.util.List; import java.util.List;
@Getter @Getter
...@@ -39,13 +39,13 @@ public class DeliverLogDTO extends BaseDTO { ...@@ -39,13 +39,13 @@ public class DeliverLogDTO extends BaseDTO {
*/ */
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
@DateTimeFormat(pattern = "yyyy-MM-dd") @DateTimeFormat(pattern = "yyyy-MM-dd")
private Date logDate; private LocalDate logDate;
@DateTimeFormat(pattern = "yyyy-MM-dd") @DateTimeFormat(pattern = "yyyy-MM-dd")
private Date logDateStart; private LocalDate logDateStart;
@DateTimeFormat(pattern = "yyyy-MM-dd") @DateTimeFormat(pattern = "yyyy-MM-dd")
private Date logDateEnd; private LocalDate logDateEnd;
/** /**
* 干系人 * 干系人
......
...@@ -6,7 +6,7 @@ import lombok.Setter; ...@@ -6,7 +6,7 @@ import lombok.Setter;
import org.springframework.format.annotation.DateTimeFormat; import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
import java.util.Date; import java.time.LocalDate;
@Getter @Getter
@Setter @Setter
...@@ -53,14 +53,14 @@ public class DeliveryRecordDTO extends BaseDTO { ...@@ -53,14 +53,14 @@ public class DeliveryRecordDTO extends BaseDTO {
*/ */
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
@DateTimeFormat(pattern = "yyyy-MM-dd") @DateTimeFormat(pattern = "yyyy-MM-dd")
private Date shipDate; private LocalDate shipDate;
/** /**
* 到货签收日期 * 到货签收日期
*/ */
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
@DateTimeFormat(pattern = "yyyy-MM-dd") @DateTimeFormat(pattern = "yyyy-MM-dd")
private Date signDate; private LocalDate signDate;
/** /**
* 快递公司 * 快递公司
......
...@@ -4,7 +4,7 @@ import lombok.Getter; ...@@ -4,7 +4,7 @@ import lombok.Getter;
import lombok.Setter; import lombok.Setter;
import org.springframework.format.annotation.DateTimeFormat; import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date; import java.time.LocalDate;
@Getter @Getter
@Setter @Setter
...@@ -55,7 +55,7 @@ public class DeviceDTO extends BaseDTO { ...@@ -55,7 +55,7 @@ public class DeviceDTO extends BaseDTO {
* 入库日期 * 入库日期
*/ */
@DateTimeFormat(pattern = "yyyy-MM-dd") @DateTimeFormat(pattern = "yyyy-MM-dd")
private Date recDate; private LocalDate recDate;
/** /**
* 备注 * 备注
......
...@@ -9,31 +9,57 @@ import java.util.List; ...@@ -9,31 +9,57 @@ import java.util.List;
@Setter @Setter
public class FileInfoDTO extends BaseDTO { public class FileInfoDTO extends BaseDTO {
private Long id; private Long id;
/** 门店id */ /**
* 门店id
*/
private Long storeId; private Long storeId;
/** 文件扩展名 */ /**
* 文件扩展名
*/
private String type; private String type;
/** 文件来源 */ /**
* 文件来源
*/
private Integer sourceType; private Integer sourceType;
private List<Integer> sourceTypeList; private List<Integer> sourceTypeList;
/** 文件来源id */ /**
* 文件来源id
*/
private Long sourceId; private Long sourceId;
/** 合同id */ /**
* 合同id
*/
private Long contractId; private Long contractId;
/** 合同编号 */ /**
* 合同编号
*/
private String contractNo; private String contractNo;
/** 文件名称 */ /**
* 文件名称
*/
private String name; private String name;
/** 文件地址 */ /**
* 文件地址
*/
private String url; private String url;
/** 备注 */ /**
* 备注
*/
private String remark; private String remark;
/** sha256 */ /**
* sha256
*/
private String sha256; private String sha256;
/** 上传人 */ /**
* 上传人
*/
private String uploader; private String uploader;
/** 标识:storeLog,用于区分项目日志的表单文件的提交存储和其他通用表单的文件存储 */ /**
* 标识:storeLog,用于区分项目日志的表单文件的提交存储和其他通用表单的文件存储
*/
private String flag; private String flag;
/** 更新标识,更新接口不传该字段,不允许更新文件:1.项目资料 */ /**
* 更新标识,更新接口不传该字段,不允许更新文件:1.项目资料
*/
private Integer updFlag; private Integer updFlag;
} }
...@@ -4,7 +4,7 @@ import com.fasterxml.jackson.annotation.JsonFormat; ...@@ -4,7 +4,7 @@ import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;
import java.util.Date; import java.time.LocalDateTime;
@Getter @Getter
...@@ -41,7 +41,7 @@ public class FormDTO extends BaseDTO { ...@@ -41,7 +41,7 @@ public class FormDTO extends BaseDTO {
* 签字时间 * 签字时间
*/ */
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date signTime; private LocalDateTime signTime;
/** /**
* 来源,1:任务管理,2:巡检管理 * 来源,1:任务管理,2:巡检管理
......
...@@ -5,45 +5,68 @@ import lombok.Getter; ...@@ -5,45 +5,68 @@ import lombok.Getter;
import lombok.Setter; import lombok.Setter;
import org.springframework.format.annotation.DateTimeFormat; import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date; import java.time.LocalDate;
import java.time.LocalDateTime;
@Getter @Getter
@Setter @Setter
public class InspectDTO extends BaseDTO { public class InspectDTO extends BaseDTO {
/** 自增列 */ /**
* 自增列
*/
private Long id; private Long id;
/** 门店id */ /**
* 门店id
*/
private Long storeId; private Long storeId;
/** 巡检时间 */ /**
* 巡检时间
*/
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date inspectDate; private LocalDate inspectDate;
/** 巡检方式(0远程、1现场) */ /**
* 巡检方式(0远程、1现场)
*/
private Integer type; private Integer type;
/** 状态(0进行中、1待审核、2已完成、3、驳回) */ /**
* 状态(0进行中、1待审核、2已完成、3、驳回)
*/
private Integer status; private Integer status;
/** 巡检人 */ /**
* 巡检人
*/
private Integer inspectUser; private Integer inspectUser;
/** 审核人 */ /**
* 审核人
*/
private Integer reviewer; private Integer reviewer;
/** 完成时间 */ /**
* 完成时间
*/
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date finishDate; private LocalDate finishDate;
/** 审核时间 */ /**
* 审核时间
*/
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date auditDate; private LocalDate auditDate;
/** 备注 */ /**
* 备注
*/
private String remark; private String remark;
/** 集团id */ /**
* 集团id
*/
private Long accountId; private Long accountId;
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date startdate; private LocalDateTime startdate;
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date enddate; private LocalDateTime enddate;
} }
...@@ -7,7 +7,7 @@ import lombok.Setter; ...@@ -7,7 +7,7 @@ import lombok.Setter;
import org.springframework.format.annotation.DateTimeFormat; import org.springframework.format.annotation.DateTimeFormat;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.Date; import java.time.LocalDate;
@Getter @Getter
...@@ -24,7 +24,7 @@ public class InvoiceDTO extends BaseDTO { ...@@ -24,7 +24,7 @@ public class InvoiceDTO extends BaseDTO {
* 开票时间 * 开票时间
*/ */
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date invoicingTime; private LocalDate invoicingTime;
/** /**
* 发票金额 * 发票金额
...@@ -47,9 +47,9 @@ public class InvoiceDTO extends BaseDTO { ...@@ -47,9 +47,9 @@ public class InvoiceDTO extends BaseDTO {
private String serialNo; private String serialNo;
@DateTimeFormat(pattern = "yyyy-MM-dd") @DateTimeFormat(pattern = "yyyy-MM-dd")
private Date invoicingTimeStart; private LocalDate invoicingTimeStart;
@DateTimeFormat(pattern = "yyyy-MM-dd") @DateTimeFormat(pattern = "yyyy-MM-dd")
private Date invoicingTimeEnd; private LocalDate invoicingTimeEnd;
private OrderItem orderItem; private OrderItem orderItem;
......
...@@ -7,7 +7,7 @@ import lombok.Setter; ...@@ -7,7 +7,7 @@ import lombok.Setter;
import org.springframework.format.annotation.DateTimeFormat; import org.springframework.format.annotation.DateTimeFormat;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.Date; import java.time.LocalDate;
/** /**
* 收款记录表 * 收款记录表
...@@ -31,7 +31,7 @@ public class PaymentDTO extends BaseDTO { ...@@ -31,7 +31,7 @@ public class PaymentDTO extends BaseDTO {
* 收款时间 * 收款时间
*/ */
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date collectionTime; private LocalDate collectionTime;
/** /**
* 收款金额 * 收款金额
...@@ -47,10 +47,10 @@ public class PaymentDTO extends BaseDTO { ...@@ -47,10 +47,10 @@ public class PaymentDTO extends BaseDTO {
* 收款开始时间、结束时间 * 收款开始时间、结束时间
*/ */
@DateTimeFormat(pattern = "yyyy-MM-dd") @DateTimeFormat(pattern = "yyyy-MM-dd")
private Date collectionTimeStart; private LocalDate collectionTimeStart;
@DateTimeFormat(pattern = "yyyy-MM-dd") @DateTimeFormat(pattern = "yyyy-MM-dd")
private Date collectionTimeEnd; private LocalDate collectionTimeEnd;
private OrderItem orderItem; private OrderItem orderItem;
......
...@@ -200,14 +200,20 @@ public class PointInfoDTO extends BaseDTO { ...@@ -200,14 +200,20 @@ public class PointInfoDTO extends BaseDTO {
private MultipartFile[] files; private MultipartFile[] files;
/** 客户上传合同文件 */ /**
* 客户上传合同文件
*/
private MultipartFile contractFile; private MultipartFile contractFile;
/** 上传的合同范本 */ /**
* 上传的合同范本
*/
private MultipartFile contractTemplateFile; private MultipartFile contractTemplateFile;
/* 终版合同 */ /* 终版合同 */
private MultipartFile finalContractFile; private MultipartFile finalContractFile;
/** 微信 openid 和昵称 */ /**
* 微信 openid 和昵称
*/
private String openid; private String openid;
private String nickname; private String nickname;
......
...@@ -3,7 +3,7 @@ package vion.dto; ...@@ -3,7 +3,7 @@ package vion.dto;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;
import java.util.Date; import java.time.LocalDateTime;
@Getter @Getter
@Setter @Setter
...@@ -36,12 +36,12 @@ public class RContractTeamDTO extends BaseDTO { ...@@ -36,12 +36,12 @@ public class RContractTeamDTO extends BaseDTO {
/** /**
* 分配日期 * 分配日期
*/ */
private Date assignDate; private LocalDateTime assignDate;
/** /**
* 完成日期 * 完成日期
*/ */
private Date finishDate; private LocalDateTime finishDate;
/** /**
* 施工状态 * 施工状态
......
...@@ -6,7 +6,8 @@ import lombok.Setter; ...@@ -6,7 +6,8 @@ import lombok.Setter;
import org.springframework.format.annotation.DateTimeFormat; import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
import java.util.Date; import java.time.LocalDate;
import java.time.LocalDateTime;
/** /**
* @author HlQ * @author HlQ
...@@ -87,7 +88,7 @@ public class RepairRecDTO extends BaseDTO { ...@@ -87,7 +88,7 @@ public class RepairRecDTO extends BaseDTO {
*/ */
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
@DateTimeFormat(pattern = "yyyy-MM-dd") @DateTimeFormat(pattern = "yyyy-MM-dd")
private Date shipDate; private LocalDate shipDate;
/** /**
* 快递公司 * 快递公司
...@@ -119,14 +120,14 @@ public class RepairRecDTO extends BaseDTO { ...@@ -119,14 +120,14 @@ public class RepairRecDTO extends BaseDTO {
private MultipartFile[] files; private MultipartFile[] files;
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date createTimeStart; private LocalDateTime createTimeStart;
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date createTimeEnd; private LocalDateTime createTimeEnd;
@DateTimeFormat(pattern = "yyyy-MM-dd") @DateTimeFormat(pattern = "yyyy-MM-dd")
private Date shipDateStart; private LocalDate shipDateStart;
@DateTimeFormat(pattern = "yyyy-MM-dd") @DateTimeFormat(pattern = "yyyy-MM-dd")
private Date shipDateEnd; private LocalDate shipDateEnd;
private String deviceName; private String deviceName;
private String deviceNo; private String deviceNo;
......
...@@ -4,7 +4,7 @@ import lombok.Getter; ...@@ -4,7 +4,7 @@ import lombok.Getter;
import lombok.Setter; import lombok.Setter;
import org.springframework.format.annotation.DateTimeFormat; import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date; import java.time.LocalDateTime;
/** /**
* @author HlQ * @author HlQ
...@@ -36,8 +36,8 @@ public class RoleDTO extends BaseDTO { ...@@ -36,8 +36,8 @@ public class RoleDTO extends BaseDTO {
private String remark; private String remark;
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date startDate; private LocalDateTime startDate;
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date endDate; private LocalDateTime endDate;
} }
...@@ -4,7 +4,7 @@ import com.fasterxml.jackson.annotation.JsonFormat; ...@@ -4,7 +4,7 @@ import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;
import java.util.Date; import java.time.LocalDateTime;
/** /**
* @author HlQ * @author HlQ
...@@ -12,64 +12,102 @@ import java.util.Date; ...@@ -12,64 +12,102 @@ import java.util.Date;
*/ */
@Getter @Getter
@Setter @Setter
public class ServiceOrderDTO extends BaseDTO { public class ServiceOrderDTO extends BaseDTO {
/** 项目名称 */ /**
* 项目名称
*/
private String projectName; private String projectName;
/** 报修人 */ /**
* 报修人
*/
private String submitter; private String submitter;
/** 报修人手机号码 */ /**
* 报修人手机号码
*/
private String submitPhone; private String submitPhone;
/** 报修时间 */ /**
* 报修时间
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date submitTime; private LocalDateTime submitTime;
/** 维修人 */ /**
* 维修人
*/
private String repairPeople; private String repairPeople;
/** 维修人手机号码*/ /**
* 维修人手机号码
*/
private String repairPhone; private String repairPhone;
/** 部门 */ /**
* 部门
*/
private String dept; private String dept;
/** 服务方式(1.电话支持 2.远程服务 3.现场服务) */ /**
* 服务方式(1.电话支持 2.远程服务 3.现场服务)
*/
private Integer serviceType; private Integer serviceType;
/** 耗时 */ /**
* 耗时
*/
private Double time; private Double time;
/** 故障内容 */ /**
* 故障内容
*/
private String faultContent; private String faultContent;
/** 维修结果 */ /**
* 维修结果
*/
private String repairRes; private String repairRes;
/** 客户评价 */ /**
* 客户评价
*/
private String review; private String review;
/** 工单id */ /**
* 工单id
*/
private Long taskId; private Long taskId;
/** 服务单状态 */ /**
* 服务单状态
*/
private Integer state; private Integer state;
/** 五星好评 */ /**
* 五星好评
*/
private Integer stars; private Integer stars;
/** 签字图片base64 */ /**
* 签字图片base64
*/
private String signPic; private String signPic;
/** 签字时间 */ /**
* 签字时间
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date signTime; private LocalDateTime signTime;
/** 完成时间 */ /**
* 完成时间
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date finishTime; private LocalDateTime finishTime;
/** 项目id */ /**
* 项目id
*/
private Long storeId; private Long storeId;
} }
...@@ -6,7 +6,8 @@ import lombok.Setter; ...@@ -6,7 +6,8 @@ import lombok.Setter;
import org.springframework.format.annotation.DateTimeFormat; import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
import java.util.Date; import java.time.LocalDate;
import java.time.LocalDateTime;
/** /**
* @author HlQ * @author HlQ
...@@ -82,7 +83,7 @@ public class SparePartDTO extends BaseDTO { ...@@ -82,7 +83,7 @@ public class SparePartDTO extends BaseDTO {
*/ */
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
@DateTimeFormat(pattern = "yyyy-MM-dd") @DateTimeFormat(pattern = "yyyy-MM-dd")
private Date shipDate; private LocalDate shipDate;
/** /**
* 快递公司 * 快递公司
...@@ -114,18 +115,20 @@ public class SparePartDTO extends BaseDTO { ...@@ -114,18 +115,20 @@ public class SparePartDTO extends BaseDTO {
*/ */
private String uuid; private String uuid;
/** 微信用户id */ /**
* 微信用户id
*/
private String openid; private String openid;
private MultipartFile[] files; private MultipartFile[] files;
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date createTimeStart; private LocalDateTime createTimeStart;
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date createTimeEnd; private LocalDateTime createTimeEnd;
@DateTimeFormat(pattern = "yyyy-MM-dd") @DateTimeFormat(pattern = "yyyy-MM-dd")
private Date shipDateStart; private LocalDate shipDateStart;
@DateTimeFormat(pattern = "yyyy-MM-dd") @DateTimeFormat(pattern = "yyyy-MM-dd")
private Date shipDateEnd; private LocalDate shipDateEnd;
} }
\ No newline at end of file \ No newline at end of file
...@@ -7,13 +7,21 @@ import org.springframework.web.multipart.MultipartFile; ...@@ -7,13 +7,21 @@ import org.springframework.web.multipart.MultipartFile;
@Getter @Getter
@Setter @Setter
public class StatusDTO { public class StatusDTO {
/** 门店id */ /**
* 门店id
*/
private Long storeId; private Long storeId;
/** 阶段 */ /**
* 阶段
*/
private Integer projectStage; private Integer projectStage;
/** 文件来源 */ /**
* 文件来源
*/
private Integer sourceType; private Integer sourceType;
/** 来源id */ /**
* 来源id
*/
private Long sourceId; private Long sourceId;
private MultipartFile[] files; private MultipartFile[] files;
} }
...@@ -5,7 +5,8 @@ import lombok.Getter; ...@@ -5,7 +5,8 @@ import lombok.Getter;
import lombok.Setter; import lombok.Setter;
import org.springframework.format.annotation.DateTimeFormat; import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date; import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.List; import java.util.List;
/** /**
...@@ -16,69 +17,121 @@ import java.util.List; ...@@ -16,69 +17,121 @@ import java.util.List;
public class StoreDTO extends BaseDTO { public class StoreDTO extends BaseDTO {
private Long id; private Long id;
private List<Long> ids; private List<Long> ids;
/** 门店名称 */ /**
private String name ; * 门店名称
/** 销售人 */ */
private String name;
/**
* 销售人
*/
private Integer salesperson; private Integer salesperson;
/** 客户姓名 */ /**
* 客户姓名
*/
private String customerName; private String customerName;
/** 实施类型:0纯供货、1供货+安装、3续保、4维修 */ /**
* 实施类型:0纯供货、1供货+安装、3续保、4维修
*/
private Integer implementType; private Integer implementType;
/** 项目状态:0待确认、1进行中、2已完成、3挂起 */ /**
* 项目状态:0待确认、1进行中、2已完成、3挂起
*/
private Integer projectState; private Integer projectState;
/** 联系人(多个联系人逗号隔开) */ /**
* 联系人(多个联系人逗号隔开)
*/
private String contacts; private String contacts;
/** 创建者 */ /**
* 创建者
*/
private Long createUser; private Long createUser;
/** 修改者 */ /**
* 修改者
*/
private Long modifyUser; private Long modifyUser;
/** 备注 */ /**
* 备注
*/
private String remark; private String remark;
/** 项目阶段 */ /**
* 项目阶段
*/
private Integer projectStage; private Integer projectStage;
/** 集团id */ /**
* 集团id
*/
private Long accountId; private Long accountId;
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date startdate; private LocalDateTime startdate;
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date enddate; private LocalDateTime enddate;
/** 立项日期 */ /**
* 立项日期
*/
@DateTimeFormat(pattern = "yyyy-MM-dd") @DateTimeFormat(pattern = "yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date estDate; private LocalDate estDate;
@DateTimeFormat(pattern = "yyyy-MM-dd") @DateTimeFormat(pattern = "yyyy-MM-dd")
private Date estDateStart; private LocalDate estDateStart;
@DateTimeFormat(pattern = "yyyy-MM-dd") @DateTimeFormat(pattern = "yyyy-MM-dd")
private Date estDateEnd; private LocalDate estDateEnd;
/** 主合同id */ /**
* 主合同id
*/
private Long masterContract; private Long masterContract;
/** 维保状态 */ /**
* 维保状态
*/
private String maintainStatus; private String maintainStatus;
/** 产品线属性 */ /**
* 产品线属性
*/
private Integer productLine; private Integer productLine;
/** 是否重点项目 0:不是 1:是 */ /**
* 是否重点项目 0:不是 1:是
*/
private Integer isImportant; private Integer isImportant;
/** 任务详情 */ /**
* 任务详情
*/
private String taskDetail; private String taskDetail;
/** 预计完成日期 */ /**
* 预计完成日期
*/
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date finishDate; private LocalDate finishDate;
/** 完成百分比 */ /**
* 完成百分比
*/
private Double percentage; private Double percentage;
/** 当前卡点 */ /**
* 当前卡点
*/
private String stuckPoint; private String stuckPoint;
/** 标签id */ /**
* 标签id
*/
private Long tagId; private Long tagId;
/** 项目负责人 or 项目经理 */ /**
* 项目负责人 or 项目经理
*/
private Long mainUser; private Long mainUser;
/** 主要产品 */ /**
* 主要产品
*/
private Integer mainProduct; private Integer mainProduct;
/** 点位数量 */ /**
* 点位数量
*/
private Integer pointNum; private Integer pointNum;
/** 计划完成日期 */ /**
* 计划完成日期
*/
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date planFinishDate; private LocalDate planFinishDate;
/** 项目规模 */ /**
* 项目规模
*/
private Integer projectSize; private Integer projectSize;
/** /**
* 巡检次数 * 巡检次数
......
...@@ -6,7 +6,8 @@ import lombok.Setter; ...@@ -6,7 +6,8 @@ import lombok.Setter;
import org.springframework.format.annotation.DateTimeFormat; import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
import java.util.Date; import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.List; import java.util.List;
@Getter @Getter
...@@ -22,7 +23,7 @@ public class TaskDTO extends BaseDTO { ...@@ -22,7 +23,7 @@ public class TaskDTO extends BaseDTO {
*/ */
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date repairTime; private LocalDateTime repairTime;
/** /**
* 故障类型 * 故障类型
*/ */
...@@ -48,7 +49,7 @@ public class TaskDTO extends BaseDTO { ...@@ -48,7 +49,7 @@ public class TaskDTO extends BaseDTO {
*/ */
@DateTimeFormat(pattern = "yyyy-MM-dd") @DateTimeFormat(pattern = "yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date solveDate; private LocalDate solveDate;
/** /**
* 故障原因 * 故障原因
*/ */
...@@ -75,7 +76,7 @@ public class TaskDTO extends BaseDTO { ...@@ -75,7 +76,7 @@ public class TaskDTO extends BaseDTO {
*/ */
@DateTimeFormat(pattern = "yyyy-MM-dd") @DateTimeFormat(pattern = "yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date expDate; private LocalDate expDate;
/** /**
* 备注 * 备注
...@@ -93,11 +94,11 @@ public class TaskDTO extends BaseDTO { ...@@ -93,11 +94,11 @@ public class TaskDTO extends BaseDTO {
private MultipartFile[] files; private MultipartFile[] files;
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date startdate; private LocalDateTime startdate;
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date enddate; private LocalDateTime enddate;
@DateTimeFormat(pattern = "yyyy-MM-dd") @DateTimeFormat(pattern = "yyyy-MM-dd")
private Date curDate; private LocalDate curDate;
/** /**
* 工时 * 工时
*/ */
......
...@@ -6,7 +6,7 @@ import lombok.Setter; ...@@ -6,7 +6,7 @@ import lombok.Setter;
import org.springframework.format.annotation.DateTimeFormat; import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
import java.util.Date; import java.time.LocalDateTime;
@Getter @Getter
@Setter @Setter
...@@ -22,7 +22,7 @@ public class TaskTempDTO extends BaseDTO { ...@@ -22,7 +22,7 @@ public class TaskTempDTO extends BaseDTO {
*/ */
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date repairTime; private LocalDateTime repairTime;
/** /**
* 故障说明 * 故障说明
*/ */
...@@ -53,7 +53,7 @@ public class TaskTempDTO extends BaseDTO { ...@@ -53,7 +53,7 @@ public class TaskTempDTO extends BaseDTO {
private MultipartFile[] files; private MultipartFile[] files;
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date startdate; private LocalDateTime startdate;
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date enddate; private LocalDateTime enddate;
} }
...@@ -4,7 +4,7 @@ import com.fasterxml.jackson.annotation.JsonFormat; ...@@ -4,7 +4,7 @@ import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;
import java.util.Date; import java.time.LocalDateTime;
/** /**
* 用户信息 * 用户信息
...@@ -18,15 +18,19 @@ public class UserDTO extends BaseDTO { ...@@ -18,15 +18,19 @@ public class UserDTO extends BaseDTO {
private String phone; private String phone;
private Long deptId; private Long deptId;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date createTime; private LocalDateTime createTime;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date modifyTime; private LocalDateTime modifyTime;
private String remark; private String remark;
/** 是否是预工单处理人 0:不是 1:是 */ /**
* 是否是预工单处理人 0:不是 1:是
*/
private Integer preWorkOrder; private Integer preWorkOrder;
/** 员工状态 2:试用期 3:正式 5:待离职 -1:无状态 */ /**
* 员工状态 2:试用期 3:正式 5:待离职 -1:无状态
*/
private Integer employeeStatus; private Integer employeeStatus;
/* 状态 0:正常 1:禁用 */ /* 状态 0:正常 1:禁用 */
......
...@@ -2,5 +2,6 @@ package vion.mapper; ...@@ -2,5 +2,6 @@ package vion.mapper;
import com.github.yulichang.base.MPJBaseMapper; import com.github.yulichang.base.MPJBaseMapper;
import vion.model.Dictionary; import vion.model.Dictionary;
public interface DictionaryMapper extends MPJBaseMapper<Dictionary> { public interface DictionaryMapper extends MPJBaseMapper<Dictionary> {
} }
...@@ -2,5 +2,6 @@ package vion.mapper; ...@@ -2,5 +2,6 @@ package vion.mapper;
import com.github.yulichang.base.MPJBaseMapper; import com.github.yulichang.base.MPJBaseMapper;
import vion.model.DictionaryType; import vion.model.DictionaryType;
public interface DictionaryTypeMapper extends MPJBaseMapper<DictionaryType> { public interface DictionaryTypeMapper extends MPJBaseMapper<DictionaryType> {
} }
...@@ -2,5 +2,6 @@ package vion.mapper; ...@@ -2,5 +2,6 @@ package vion.mapper;
import com.github.yulichang.base.MPJBaseMapper; import com.github.yulichang.base.MPJBaseMapper;
import vion.model.FaultLog; import vion.model.FaultLog;
public interface FaultLogMapper extends MPJBaseMapper<FaultLog> { public interface FaultLogMapper extends MPJBaseMapper<FaultLog> {
} }
...@@ -2,5 +2,6 @@ package vion.mapper; ...@@ -2,5 +2,6 @@ package vion.mapper;
import com.github.yulichang.base.MPJBaseMapper; import com.github.yulichang.base.MPJBaseMapper;
import vion.model.FileInfo; import vion.model.FileInfo;
public interface FileMapper extends MPJBaseMapper<FileInfo> { public interface FileMapper extends MPJBaseMapper<FileInfo> {
} }
...@@ -2,5 +2,6 @@ package vion.mapper; ...@@ -2,5 +2,6 @@ package vion.mapper;
import com.github.yulichang.base.MPJBaseMapper; import com.github.yulichang.base.MPJBaseMapper;
import vion.model.Inspect; import vion.model.Inspect;
public interface InspectMapper extends MPJBaseMapper<Inspect> { public interface InspectMapper extends MPJBaseMapper<Inspect> {
} }
package vion.mapper; package vion.mapper;
import com.github.yulichang.base.MPJBaseMapper; import com.github.yulichang.base.MPJBaseMapper;
import vion.model.SparePart; import vion.model.SparePart;
/** /**
* @author HlQ * @author HlQ
......
...@@ -2,5 +2,6 @@ package vion.mapper; ...@@ -2,5 +2,6 @@ package vion.mapper;
import com.github.yulichang.base.MPJBaseMapper; import com.github.yulichang.base.MPJBaseMapper;
import vion.model.Store; import vion.model.Store;
public interface StoreMapper extends MPJBaseMapper<Store> { public interface StoreMapper extends MPJBaseMapper<Store> {
} }
...@@ -2,5 +2,6 @@ package vion.mapper; ...@@ -2,5 +2,6 @@ package vion.mapper;
import com.github.yulichang.base.MPJBaseMapper; import com.github.yulichang.base.MPJBaseMapper;
import vion.model.Task; import vion.model.Task;
public interface TaskMapper extends MPJBaseMapper<Task> { public interface TaskMapper extends MPJBaseMapper<Task> {
} }
...@@ -2,5 +2,6 @@ package vion.mapper; ...@@ -2,5 +2,6 @@ package vion.mapper;
import com.github.yulichang.base.MPJBaseMapper; import com.github.yulichang.base.MPJBaseMapper;
import vion.model.TaskTemp; import vion.model.TaskTemp;
public interface TaskTempMapper extends MPJBaseMapper<TaskTemp> { public interface TaskTempMapper extends MPJBaseMapper<TaskTemp> {
} }
...@@ -2,5 +2,6 @@ package vion.mapper; ...@@ -2,5 +2,6 @@ package vion.mapper;
import com.github.yulichang.base.MPJBaseMapper; import com.github.yulichang.base.MPJBaseMapper;
import vion.model.User; import vion.model.User;
public interface UserMapper extends MPJBaseMapper<User> { public interface UserMapper extends MPJBaseMapper<User> {
} }
...@@ -6,7 +6,7 @@ import lombok.Getter; ...@@ -6,7 +6,7 @@ import lombok.Getter;
import lombok.Setter; import lombok.Setter;
import vion.dto.BaseDTO; import vion.dto.BaseDTO;
import java.util.Date; import java.time.LocalDateTime;
@Getter @Getter
@Setter @Setter
...@@ -29,14 +29,14 @@ public class Account extends BaseDTO { ...@@ -29,14 +29,14 @@ public class Account extends BaseDTO {
*/ */
@TableField(value = "create_time", fill = FieldFill.INSERT) @TableField(value = "create_time", fill = FieldFill.INSERT)
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date createTime; private LocalDateTime createTime;
/** /**
* 修改时间 * 修改时间
*/ */
@TableField(value = "modify_time", fill = FieldFill.INSERT_UPDATE) @TableField(value = "modify_time", fill = FieldFill.INSERT_UPDATE)
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date modifyTime; private LocalDateTime modifyTime;
/** /**
* 备注 * 备注
......
...@@ -8,7 +8,7 @@ import lombok.Setter; ...@@ -8,7 +8,7 @@ import lombok.Setter;
import vion.dto.ConstructionTeamDTO; import vion.dto.ConstructionTeamDTO;
import vion.vo.ConstructionTeamVO; import vion.vo.ConstructionTeamVO;
import java.util.Date; import java.time.LocalDateTime;
/** /**
* 施工队信息表 * 施工队信息表
...@@ -37,8 +37,8 @@ public class ConstructionTeam { ...@@ -37,8 +37,8 @@ public class ConstructionTeam {
private String city; private String city;
@TableField(value = "create_time", fill = FieldFill.INSERT) @TableField(value = "create_time", fill = FieldFill.INSERT)
private Date createTime; private LocalDateTime createTime;
@TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE) @TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE)
private Date updateTime; private LocalDateTime updateTime;
} }
\ No newline at end of file \ No newline at end of file
...@@ -10,7 +10,8 @@ import vion.dto.ContractDTO; ...@@ -10,7 +10,8 @@ import vion.dto.ContractDTO;
import vion.vo.ContractVO; import vion.vo.ContractVO;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.Date; import java.time.LocalDate;
import java.time.LocalDateTime;
/** /**
...@@ -49,19 +50,19 @@ public class Contract { ...@@ -49,19 +50,19 @@ public class Contract {
* 合同签订日期 * 合同签订日期
*/ */
@TableField(value = "sign_date") @TableField(value = "sign_date")
private Date signDate; private LocalDate signDate;
/** /**
* 合同维保开始日期 * 合同维保开始日期
*/ */
@TableField(value = "maintain_sdate") @TableField(value = "maintain_sdate")
private Date maintainSdate; private LocalDate maintainSdate;
/** /**
* 合同维保结束日期 * 合同维保结束日期
*/ */
@TableField(value = "maintain_edate") @TableField(value = "maintain_edate")
private Date maintainEdate; private LocalDate maintainEdate;
/** /**
* 合同进度:1-签订 2-到货 3-系统验收(初验) 4-项目验收(终验) 5-质保 6-第一笔维保款 7-第二笔维保款 8-第三笔维保款 9-维保进度款 10-维保验收款 * 合同进度:1-签订 2-到货 3-系统验收(初验) 4-项目验收(终验) 5-质保 6-第一笔维保款 7-第二笔维保款 8-第三笔维保款 9-维保进度款 10-维保验收款
...@@ -140,13 +141,13 @@ public class Contract { ...@@ -140,13 +141,13 @@ public class Contract {
* 创建时间 * 创建时间
*/ */
@TableField(value = "create_time", fill = FieldFill.INSERT) @TableField(value = "create_time", fill = FieldFill.INSERT)
private Date createTime; private LocalDateTime createTime;
/** /**
* 修改时间 * 修改时间
*/ */
@TableField(value = "modify_time", fill = FieldFill.INSERT_UPDATE) @TableField(value = "modify_time", fill = FieldFill.INSERT_UPDATE)
private Date modifyTime; private LocalDateTime modifyTime;
/** /**
* 合同质保周期(月) * 合同质保周期(月)
...@@ -158,7 +159,7 @@ public class Contract { ...@@ -158,7 +159,7 @@ public class Contract {
* 终验日期,目前取值为合同阶段为系统初验或者终验的 nodeDate * 终验日期,目前取值为合同阶段为系统初验或者终验的 nodeDate
*/ */
@TableField(value = "final_date") @TableField(value = "final_date")
private Date finalDate; private LocalDate finalDate;
/** /**
* 开票金额 * 开票金额
...@@ -170,7 +171,7 @@ public class Contract { ...@@ -170,7 +171,7 @@ public class Contract {
* 录入时间 * 录入时间
*/ */
@TableField(value = "entry_time") @TableField(value = "entry_time")
private Date entryTime; private LocalDateTime entryTime;
/** /**
* 财务状态 * 财务状态
...@@ -185,7 +186,7 @@ public class Contract { ...@@ -185,7 +186,7 @@ public class Contract {
private String backInfo; private String backInfo;
@TableField(exist = false) @TableField(exist = false)
private Date originalModTime; private LocalDateTime originalModTime;
/** /**
* 合同签订付款比例 * 合同签订付款比例
...@@ -197,7 +198,7 @@ public class Contract { ...@@ -197,7 +198,7 @@ public class Contract {
* 合同签订付款日期 * 合同签订付款日期
*/ */
@TableField(exist = false) @TableField(exist = false)
private Date signDate1; private LocalDate signDate1;
/** /**
* 合同到货付款比例 * 合同到货付款比例
...@@ -209,7 +210,7 @@ public class Contract { ...@@ -209,7 +210,7 @@ public class Contract {
* 合同到货付款日期 * 合同到货付款日期
*/ */
@TableField(exist = false) @TableField(exist = false)
private Date arriveDate; private LocalDate arriveDate;
/** /**
* 合同系统验收付款比例 * 合同系统验收付款比例
...@@ -221,7 +222,7 @@ public class Contract { ...@@ -221,7 +222,7 @@ public class Contract {
* 合同系统验收付款日期 * 合同系统验收付款日期
*/ */
@TableField(exist = false) @TableField(exist = false)
private Date systemCheckDate; private LocalDate systemCheckDate;
/** /**
* 合同项目验收付款比例 * 合同项目验收付款比例
...@@ -233,7 +234,7 @@ public class Contract { ...@@ -233,7 +234,7 @@ public class Contract {
* 合同项目验收付款日期 * 合同项目验收付款日期
*/ */
@TableField(exist = false) @TableField(exist = false)
private Date projectCheckDate; private LocalDate projectCheckDate;
/** /**
* 合同质保付款比例 * 合同质保付款比例
...@@ -245,7 +246,7 @@ public class Contract { ...@@ -245,7 +246,7 @@ public class Contract {
* 合同质保付款日期 * 合同质保付款日期
*/ */
@TableField(exist = false) @TableField(exist = false)
private Date warrantyDate; private LocalDate warrantyDate;
/** /**
* 合同维保付款比例1 * 合同维保付款比例1
...@@ -257,7 +258,7 @@ public class Contract { ...@@ -257,7 +258,7 @@ public class Contract {
* 合同维保付款日期1 * 合同维保付款日期1
*/ */
@TableField(exist = false) @TableField(exist = false)
private Date maintainDate1; private LocalDate maintainDate1;
/** /**
* 合同维保付款比例2 * 合同维保付款比例2
...@@ -269,7 +270,7 @@ public class Contract { ...@@ -269,7 +270,7 @@ public class Contract {
* 合同维保付款日期2 * 合同维保付款日期2
*/ */
@TableField(exist = false) @TableField(exist = false)
private Date maintainDate2; private LocalDate maintainDate2;
/** /**
* 合同维保付款比例3 * 合同维保付款比例3
...@@ -281,7 +282,7 @@ public class Contract { ...@@ -281,7 +282,7 @@ public class Contract {
* 合同维保付款日期3 * 合同维保付款日期3
*/ */
@TableField(exist = false) @TableField(exist = false)
private Date maintainDate3; private LocalDate maintainDate3;
/** /**
* 维保进度款 * 维保进度款
...@@ -293,7 +294,7 @@ public class Contract { ...@@ -293,7 +294,7 @@ public class Contract {
* 维保进度款付款日期 * 维保进度款付款日期
*/ */
@TableField(exist = false) @TableField(exist = false)
private Date maintainProgressDate; private LocalDate maintainProgressDate;
/** /**
* 维保验收款 * 维保验收款
...@@ -305,5 +306,5 @@ public class Contract { ...@@ -305,5 +306,5 @@ public class Contract {
* 维保验收款付款日期 * 维保验收款付款日期
*/ */
@TableField(exist = false) @TableField(exist = false)
private Date maintainAcceptanceDate; private LocalDate maintainAcceptanceDate;
} }
\ No newline at end of file \ No newline at end of file
...@@ -5,7 +5,8 @@ import com.fasterxml.jackson.annotation.JsonFormat; ...@@ -5,7 +5,8 @@ import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;
import java.util.Date; import java.time.LocalDate;
import java.time.LocalDateTime;
/** /**
* @author HlQ * @author HlQ
...@@ -47,9 +48,9 @@ public class ContractLog { ...@@ -47,9 +48,9 @@ public class ContractLog {
*/ */
@TableField(value = "rec_time") @TableField(value = "rec_time")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date recTime; private LocalDate recTime;
@TableField(value = "create_time", fill = FieldFill.INSERT) @TableField(value = "create_time", fill = FieldFill.INSERT)
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date createTime; private LocalDateTime createTime;
} }
\ No newline at end of file \ No newline at end of file
...@@ -9,7 +9,8 @@ import vion.dto.ContractPaymentDTO; ...@@ -9,7 +9,8 @@ import vion.dto.ContractPaymentDTO;
import vion.vo.ContractPaymentVO; import vion.vo.ContractPaymentVO;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.Date; import java.time.LocalDate;
import java.time.LocalDateTime;
/** /**
* 合同收款方式 * 合同收款方式
...@@ -47,13 +48,13 @@ public class ContractPayment { ...@@ -47,13 +48,13 @@ public class ContractPayment {
* 收款日期 * 收款日期
*/ */
@TableField(value = "payment_date") @TableField(value = "payment_date")
private Date paymentDate; private LocalDate paymentDate;
/** /**
* 节点日期,指合同到这一阶段时的时间 * 节点日期,指合同到这一阶段时的时间
*/ */
@TableField(value = "node_date") @TableField(value = "node_date")
private Date nodeDate; private LocalDate nodeDate;
/** /**
* 创建者 * 创建者
...@@ -71,11 +72,11 @@ public class ContractPayment { ...@@ -71,11 +72,11 @@ public class ContractPayment {
* 创建时间 * 创建时间
*/ */
@TableField(value = "create_time", fill = FieldFill.INSERT) @TableField(value = "create_time", fill = FieldFill.INSERT)
private Date createTime; private LocalDateTime createTime;
/** /**
* 修改时间 * 修改时间
*/ */
@TableField(value = "modify_time", fill = FieldFill.INSERT_UPDATE) @TableField(value = "modify_time", fill = FieldFill.INSERT_UPDATE)
private Date modifyTime; private LocalDateTime modifyTime;
} }
\ No newline at end of file \ No newline at end of file
...@@ -8,7 +8,8 @@ import lombok.Setter; ...@@ -8,7 +8,8 @@ import lombok.Setter;
import vion.dto.DeliverLogDTO; import vion.dto.DeliverLogDTO;
import vion.vo.DeliverLogVO; import vion.vo.DeliverLogVO;
import java.util.Date; import java.time.LocalDate;
import java.time.LocalDateTime;
/** /**
* 项目交付人员日志 * 项目交付人员日志
...@@ -52,7 +53,7 @@ public class DeliverLog { ...@@ -52,7 +53,7 @@ public class DeliverLog {
* 日志日期 * 日志日期
*/ */
@TableField(value = "log_date") @TableField(value = "log_date")
private Date logDate; private LocalDate logDate;
/** /**
* 干系人 * 干系人
...@@ -82,11 +83,11 @@ public class DeliverLog { ...@@ -82,11 +83,11 @@ public class DeliverLog {
* 创建时间 * 创建时间
*/ */
@TableField(value = "create_time", fill = FieldFill.INSERT) @TableField(value = "create_time", fill = FieldFill.INSERT)
private Date createTime; private LocalDateTime createTime;
/** /**
* 修改时间 * 修改时间
*/ */
@TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE) @TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE)
private Date updateTime; private LocalDateTime updateTime;
} }
\ No newline at end of file \ No newline at end of file
...@@ -8,7 +8,8 @@ import lombok.Setter; ...@@ -8,7 +8,8 @@ import lombok.Setter;
import vion.dto.DeliveryRecordDTO; import vion.dto.DeliveryRecordDTO;
import vion.vo.DeliveryRecordVO; import vion.vo.DeliveryRecordVO;
import java.util.Date; import java.time.LocalDate;
import java.time.LocalDateTime;
/** /**
* 发货记录表 * 发货记录表
...@@ -36,15 +37,21 @@ public class DeliveryRecord { ...@@ -36,15 +37,21 @@ public class DeliveryRecord {
@TableField(value = "contract_id") @TableField(value = "contract_id")
private Long contractId; private Long contractId;
/** 收货人 */ /**
* 收货人
*/
@TableField(value = "consignee") @TableField(value = "consignee")
private String consignee; private String consignee;
/** 收货地址 */ /**
* 收货地址
*/
@TableField(value = "address") @TableField(value = "address")
private String address; private String address;
/** 收货电话 */ /**
* 收货电话
*/
@TableField(value = "phone") @TableField(value = "phone")
private String phone; private String phone;
...@@ -52,13 +59,13 @@ public class DeliveryRecord { ...@@ -52,13 +59,13 @@ public class DeliveryRecord {
* 发货日期 * 发货日期
*/ */
@TableField(value = "ship_date") @TableField(value = "ship_date")
private Date shipDate; private LocalDate shipDate;
/** /**
* 到货签收日期 * 到货签收日期
*/ */
@TableField(value = "sign_date") @TableField(value = "sign_date")
private Date signDate; private LocalDate signDate;
/** /**
* 快递公司 * 快递公司
...@@ -87,11 +94,11 @@ public class DeliveryRecord { ...@@ -87,11 +94,11 @@ public class DeliveryRecord {
* 创建时间 * 创建时间
*/ */
@TableField(value = "create_time", fill = FieldFill.INSERT) @TableField(value = "create_time", fill = FieldFill.INSERT)
private Date createTime; private LocalDateTime createTime;
/** /**
* 修改时间 * 修改时间
*/ */
@TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE) @TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE)
private Date updateTime; private LocalDateTime updateTime;
} }
\ No newline at end of file \ No newline at end of file
...@@ -5,11 +5,11 @@ import com.fasterxml.jackson.annotation.JsonFormat; ...@@ -5,11 +5,11 @@ import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;
import java.util.Date; import java.time.LocalDateTime;
@Getter @Getter
@Setter @Setter
@TableName(value="tbl_dept_info") @TableName(value = "tbl_dept_info")
public class Dept { public class Dept {
@TableId(value = "id", type = IdType.AUTO) @TableId(value = "id", type = IdType.AUTO)
private Long id; private Long id;
...@@ -18,9 +18,9 @@ public class Dept { ...@@ -18,9 +18,9 @@ public class Dept {
private Long parentId; private Long parentId;
@TableField(value = "create_time", fill = FieldFill.INSERT) @TableField(value = "create_time", fill = FieldFill.INSERT)
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date createTime; private LocalDateTime createTime;
@TableField(value = "modify_time", fill = FieldFill.INSERT_UPDATE) @TableField(value = "modify_time", fill = FieldFill.INSERT_UPDATE)
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date modifyTime; private LocalDateTime modifyTime;
} }
\ No newline at end of file \ No newline at end of file
...@@ -7,7 +7,8 @@ import lombok.Data; ...@@ -7,7 +7,8 @@ import lombok.Data;
import vion.dto.DeviceDTO; import vion.dto.DeviceDTO;
import vion.vo.DeviceVO; import vion.vo.DeviceVO;
import java.util.Date; import java.time.LocalDate;
import java.time.LocalDateTime;
/** /**
* 设备表 * 设备表
...@@ -68,7 +69,7 @@ public class Device { ...@@ -68,7 +69,7 @@ public class Device {
* 入库日期 * 入库日期
*/ */
@TableField(value = "rec_date") @TableField(value = "rec_date")
private Date recDate; private LocalDate recDate;
/** /**
* 备注 * 备注
...@@ -77,8 +78,8 @@ public class Device { ...@@ -77,8 +78,8 @@ public class Device {
private String remark; private String remark;
@TableField(value = "create_time", fill = FieldFill.INSERT) @TableField(value = "create_time", fill = FieldFill.INSERT)
private Date createTime; private LocalDateTime createTime;
@TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE) @TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE)
private Date updateTime; private LocalDateTime updateTime;
} }
\ No newline at end of file \ No newline at end of file
...@@ -4,12 +4,13 @@ import com.baomidou.mybatisplus.annotation.*; ...@@ -4,12 +4,13 @@ import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data; import lombok.Data;
import java.util.Date; import java.time.LocalDateTime;
/** /**
* @author HlQ * @author HlQ
* @date 2024/8/12 * @date 2024/8/12
*/ */
/** /**
* 设备变更日志表 * 设备变更日志表
*/ */
...@@ -39,5 +40,5 @@ public class DeviceLog { ...@@ -39,5 +40,5 @@ public class DeviceLog {
@TableField(value = "create_time", fill = FieldFill.INSERT) @TableField(value = "create_time", fill = FieldFill.INSERT)
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date createTime; private LocalDateTime createTime;
} }
\ No newline at end of file \ No newline at end of file
...@@ -8,11 +8,11 @@ import lombok.Getter; ...@@ -8,11 +8,11 @@ import lombok.Getter;
import lombok.Setter; import lombok.Setter;
import vion.dto.DictionaryDTO; import vion.dto.DictionaryDTO;
import java.util.Date; import java.time.LocalDateTime;
@Getter @Getter
@Setter @Setter
@TableName(value="tbl_dictionary_info") @TableName(value = "tbl_dictionary_info")
@AutoMappers({ @AutoMappers({
@AutoMapper(target = DictionaryDTO.class), @AutoMapper(target = DictionaryDTO.class),
}) })
...@@ -24,13 +24,17 @@ public class Dictionary { ...@@ -24,13 +24,17 @@ public class Dictionary {
private Integer key; private Integer key;
private String value; private String value;
private String remark; private String remark;
/** 创建时间 */ /**
* 创建时间
*/
@TableField(value = "create_time", fill = FieldFill.INSERT) @TableField(value = "create_time", fill = FieldFill.INSERT)
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date createTime; private LocalDateTime createTime;
/** 更新时间 */ /**
* 更新时间
*/
@TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE) @TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE)
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date updateTime; private LocalDateTime updateTime;
} }
...@@ -8,11 +8,11 @@ import lombok.Getter; ...@@ -8,11 +8,11 @@ import lombok.Getter;
import lombok.Setter; import lombok.Setter;
import vion.dto.DictionaryTypeDTO; import vion.dto.DictionaryTypeDTO;
import java.util.Date; import java.time.LocalDateTime;
@Getter @Getter
@Setter @Setter
@TableName(value="tbl_dictionary_type") @TableName(value = "tbl_dictionary_type")
@AutoMappers({ @AutoMappers({
@AutoMapper(target = DictionaryTypeDTO.class), @AutoMapper(target = DictionaryTypeDTO.class),
}) })
...@@ -24,13 +24,17 @@ public class DictionaryType { ...@@ -24,13 +24,17 @@ public class DictionaryType {
private String type; private String type;
private String remark; private String remark;
/** 创建时间 */ /**
* 创建时间
*/
@TableField(value = "create_time", fill = FieldFill.INSERT) @TableField(value = "create_time", fill = FieldFill.INSERT)
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date createTime; private LocalDateTime createTime;
/** 更新时间 */ /**
* 更新时间
*/
@TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE) @TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE)
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date updateTime; private LocalDateTime updateTime;
} }
...@@ -5,33 +5,49 @@ import com.fasterxml.jackson.annotation.JsonFormat; ...@@ -5,33 +5,49 @@ import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;
import java.util.Date; import java.time.LocalDateTime;
/** /**
* 工单操作记录 * 工单操作记录
*/ */
@Getter @Getter
@Setter @Setter
@TableName(value="tbl_fault_log") @TableName(value = "tbl_fault_log")
public class FaultLog { public class FaultLog {
/** 自增列 */ /**
* 自增列
*/
@TableId(value = "id", type = IdType.AUTO) @TableId(value = "id", type = IdType.AUTO)
private Long id; private Long id;
/** 门店id */ /**
* 门店id
*/
private Long storeId; private Long storeId;
/** 工单id */ /**
* 工单id
*/
private Long taskId; private Long taskId;
/** 操作者 */ /**
* 操作者
*/
private Long operator; private Long operator;
/** 操作内容 */ /**
* 操作内容
*/
private String content; private String content;
/** 创建时间 */ /**
* 创建时间
*/
@TableField(value = "create_time", fill = FieldFill.INSERT) @TableField(value = "create_time", fill = FieldFill.INSERT)
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date createTime; private LocalDateTime createTime;
/** 备注 */ /**
* 备注
*/
private String remark; private String remark;
/** 工时 */ /**
* 工时
*/
private Double manHour; private Double manHour;
} }
...@@ -8,14 +8,14 @@ import lombok.Setter; ...@@ -8,14 +8,14 @@ import lombok.Setter;
import vion.dto.FileInfoDTO; import vion.dto.FileInfoDTO;
import vion.vo.FileInfoVO; import vion.vo.FileInfoVO;
import java.util.Date; import java.time.LocalDateTime;
/** /**
* 文件信息 * 文件信息
*/ */
@Getter @Getter
@Setter @Setter
@TableName(value="tbl_file_info") @TableName(value = "tbl_file_info")
@AutoMappers({ @AutoMappers({
@AutoMapper(target = FileInfoDTO.class), @AutoMapper(target = FileInfoDTO.class),
@AutoMapper(target = FileInfoVO.class), @AutoMapper(target = FileInfoVO.class),
...@@ -23,9 +23,13 @@ import java.util.Date; ...@@ -23,9 +23,13 @@ import java.util.Date;
public class FileInfo { public class FileInfo {
@TableId(value = "id", type = IdType.AUTO) @TableId(value = "id", type = IdType.AUTO)
private Long id; private Long id;
/** 项目id */ /**
* 项目id
*/
private Long storeId; private Long storeId;
/** 文件扩展名 */ /**
* 文件扩展名
*/
private String type; private String type;
/** /**
* 文件来源 * 文件来源
...@@ -38,22 +42,38 @@ public class FileInfo { ...@@ -38,22 +42,38 @@ public class FileInfo {
* <br>24验收报告,25竣工图纸,26点位表,27项目总结,28前期勘察,29巡检报告,30结算资料,31启动会</br> * <br>24验收报告,25竣工图纸,26点位表,27项目总结,28前期勘察,29巡检报告,30结算资料,31启动会</br>
*/ */
private Integer sourceType; private Integer sourceType;
/** 文件来源id */ /**
* 文件来源id
*/
private Long sourceId; private Long sourceId;
/** 合同id */ /**
* 合同id
*/
private Long contractId; private Long contractId;
/** 文件名称 */ /**
* 文件名称
*/
@TableField(condition = SqlCondition.LIKE) @TableField(condition = SqlCondition.LIKE)
private String name; private String name;
/** 文件地址 */ /**
* 文件地址
*/
private String url; private String url;
/** 创建时间 */ /**
* 创建时间
*/
@TableField(value = "create_time", fill = FieldFill.INSERT) @TableField(value = "create_time", fill = FieldFill.INSERT)
private Date createTime; private LocalDateTime createTime;
/** 备注 */ /**
* 备注
*/
private String remark; private String remark;
/** sha256 */ /**
* sha256
*/
private String sha256; private String sha256;
/** 上传人 */ /**
* 上传人
*/
private String uploader; private String uploader;
} }
...@@ -9,7 +9,7 @@ import vion.config.JsonbTypeHandler; ...@@ -9,7 +9,7 @@ import vion.config.JsonbTypeHandler;
import vion.dto.FormDTO; import vion.dto.FormDTO;
import vion.vo.FormVO; import vion.vo.FormVO;
import java.util.Date; import java.time.LocalDateTime;
/** /**
...@@ -60,7 +60,7 @@ public class Form { ...@@ -60,7 +60,7 @@ public class Form {
* 签字时间 * 签字时间
*/ */
@TableField(value = "sign_time") @TableField(value = "sign_time")
private Date signTime; private LocalDateTime signTime;
/** /**
* 唯一uuid * 唯一uuid
...@@ -87,8 +87,8 @@ public class Form { ...@@ -87,8 +87,8 @@ public class Form {
private Long updateUser; private Long updateUser;
@TableField(value = "create_time", fill = FieldFill.INSERT) @TableField(value = "create_time", fill = FieldFill.INSERT)
private Date createTime; private LocalDateTime createTime;
@TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE) @TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE)
private Date updateTime; private LocalDateTime updateTime;
} }
\ No newline at end of file \ No newline at end of file
...@@ -8,7 +8,8 @@ import lombok.Setter; ...@@ -8,7 +8,8 @@ import lombok.Setter;
import vion.dto.InspectDTO; import vion.dto.InspectDTO;
import vion.vo.InspectVO; import vion.vo.InspectVO;
import java.util.Date; import java.time.LocalDate;
import java.time.LocalDateTime;
/** /**
* 巡检信息 * 巡检信息
...@@ -21,40 +22,66 @@ import java.util.Date; ...@@ -21,40 +22,66 @@ import java.util.Date;
@AutoMapper(target = InspectDTO.class), @AutoMapper(target = InspectDTO.class),
}) })
public class Inspect { public class Inspect {
/** 自增列 */ /**
* 自增列
*/
@TableId(value = "id", type = IdType.AUTO) @TableId(value = "id", type = IdType.AUTO)
private Long id; private Long id;
/** 门店id */ /**
* 门店id
*/
private Long storeId; private Long storeId;
/** 巡检时间 */ /**
* 巡检时间
*/
@OrderBy @OrderBy
private Date inspectDate; private LocalDate inspectDate;
/** 巡检方式(0远程、1现场) */ /**
* 巡检方式(0远程、1现场)
*/
private Integer type; private Integer type;
/** 状态(0进行中、1待审核、2已完成、3、驳回) */ /**
* 状态(0进行中、1待审核、2已完成、3、驳回)
*/
private Integer status; private Integer status;
/** 巡检人 */ /**
* 巡检人
*/
private Integer inspectUser; private Integer inspectUser;
/** 审核人 */ /**
* 审核人
*/
private Integer reviewer; private Integer reviewer;
/** 巡检时间 */ /**
private Date finishDate; * 巡检时间
*/
private LocalDate finishDate;
/** 审核时间 */ /**
private Date auditDate; * 审核时间
*/
private LocalDate auditDate;
/** 创建时间 */ /**
* 创建时间
*/
@TableField(value = "create_time", fill = FieldFill.INSERT) @TableField(value = "create_time", fill = FieldFill.INSERT)
private Date createTime; private LocalDateTime createTime;
/** 修改时间 */ /**
* 修改时间
*/
@TableField(value = "modify_time", fill = FieldFill.INSERT_UPDATE) @TableField(value = "modify_time", fill = FieldFill.INSERT_UPDATE)
private Date modifyTime; private LocalDateTime modifyTime;
/** 备注 */ /**
* 备注
*/
private String remark; private String remark;
/** 集团id */ /**
* 集团id
*/
private Long accountId; private Long accountId;
} }
...@@ -9,7 +9,8 @@ import vion.dto.InvoiceDTO; ...@@ -9,7 +9,8 @@ import vion.dto.InvoiceDTO;
import vion.vo.InvoiceVO; import vion.vo.InvoiceVO;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.Date; import java.time.LocalDate;
import java.time.LocalDateTime;
/** /**
...@@ -36,7 +37,7 @@ public class Invoice { ...@@ -36,7 +37,7 @@ public class Invoice {
* 开票时间 * 开票时间
*/ */
@TableField(value = "invoicing_time") @TableField(value = "invoicing_time")
private Date invoicingTime; private LocalDate invoicingTime;
/** /**
* 发票金额 * 发票金额
...@@ -63,8 +64,8 @@ public class Invoice { ...@@ -63,8 +64,8 @@ public class Invoice {
private String serialNo; private String serialNo;
@TableField(value = "create_time", fill = FieldFill.INSERT) @TableField(value = "create_time", fill = FieldFill.INSERT)
private Date createTime; private LocalDateTime createTime;
@TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE) @TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE)
private Date updateTime; private LocalDateTime updateTime;
} }
\ No newline at end of file \ No newline at end of file
...@@ -9,7 +9,8 @@ import vion.dto.PaymentDTO; ...@@ -9,7 +9,8 @@ import vion.dto.PaymentDTO;
import vion.vo.PaymentVO; import vion.vo.PaymentVO;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.Date; import java.time.LocalDate;
import java.time.LocalDateTime;
/** /**
* 收款记录表 * 收款记录表
...@@ -41,7 +42,7 @@ public class Payment { ...@@ -41,7 +42,7 @@ public class Payment {
* 收款时间 * 收款时间
*/ */
@TableField(value = "collection_time") @TableField(value = "collection_time")
private Date collectionTime; private LocalDate collectionTime;
/** /**
* 收款金额 * 收款金额
...@@ -56,8 +57,8 @@ public class Payment { ...@@ -56,8 +57,8 @@ public class Payment {
private String remark; private String remark;
@TableField(value = "create_time", fill = FieldFill.INSERT) @TableField(value = "create_time", fill = FieldFill.INSERT)
private Date createTime; private LocalDateTime createTime;
@TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE) @TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE)
private Date updateTime; private LocalDateTime updateTime;
} }
\ No newline at end of file \ No newline at end of file
...@@ -8,7 +8,7 @@ import lombok.Setter; ...@@ -8,7 +8,7 @@ import lombok.Setter;
import vion.dto.PointInfoDTO; import vion.dto.PointInfoDTO;
import vion.vo.PointInfoVO; import vion.vo.PointInfoVO;
import java.util.Date; import java.time.LocalDateTime;
/** /**
* @author HlQ * @author HlQ
...@@ -236,8 +236,8 @@ public class PointInfo { ...@@ -236,8 +236,8 @@ public class PointInfo {
private String uuid; private String uuid;
@TableField(value = "create_time", fill = FieldFill.INSERT) @TableField(value = "create_time", fill = FieldFill.INSERT)
private Date createTime; private LocalDateTime createTime;
@TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE) @TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE)
private Date updateTime; private LocalDateTime updateTime;
} }
\ No newline at end of file \ No newline at end of file
...@@ -6,7 +6,7 @@ import lombok.Getter; ...@@ -6,7 +6,7 @@ import lombok.Getter;
import lombok.Setter; import lombok.Setter;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.Date; import java.time.LocalDateTime;
/** /**
* @author HlQ * @author HlQ
...@@ -93,9 +93,9 @@ public class RContractProduct { ...@@ -93,9 +93,9 @@ public class RContractProduct {
@TableField(value = "create_time", fill = FieldFill.INSERT) @TableField(value = "create_time", fill = FieldFill.INSERT)
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date createTime; private LocalDateTime createTime;
@TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE) @TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE)
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date updateTime; private LocalDateTime updateTime;
} }
\ No newline at end of file \ No newline at end of file
...@@ -8,7 +8,7 @@ import lombok.Getter; ...@@ -8,7 +8,7 @@ import lombok.Getter;
import lombok.Setter; import lombok.Setter;
import vion.dto.RContractStoreDTO; import vion.dto.RContractStoreDTO;
import java.util.Date; import java.time.LocalDateTime;
/** /**
...@@ -53,12 +53,12 @@ public class RContractStore { ...@@ -53,12 +53,12 @@ public class RContractStore {
*/ */
@TableField(value = "create_time", fill = FieldFill.INSERT) @TableField(value = "create_time", fill = FieldFill.INSERT)
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date createTime; private LocalDateTime createTime;
/** /**
* 修改时间 * 修改时间
*/ */
@TableField(value = "modify_time", fill = FieldFill.INSERT_UPDATE) @TableField(value = "modify_time", fill = FieldFill.INSERT_UPDATE)
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date modifyTime; private LocalDateTime modifyTime;
} }
\ No newline at end of file \ No newline at end of file
...@@ -11,11 +11,12 @@ import lombok.Setter; ...@@ -11,11 +11,12 @@ import lombok.Setter;
import vion.dto.RContractTeamDTO; import vion.dto.RContractTeamDTO;
import vion.vo.RContractTeamVO; import vion.vo.RContractTeamVO;
import java.util.Date; import java.time.LocalDate;
import java.time.LocalDateTime;
/** /**
* 合同与施工队关联表 * 合同与施工队关联表
*/ */
@Getter @Getter
@Setter @Setter
@TableName(value = "r_contract_team") @TableName(value = "r_contract_team")
...@@ -55,13 +56,13 @@ public class RContractTeam { ...@@ -55,13 +56,13 @@ public class RContractTeam {
* 分配日期 * 分配日期
*/ */
@TableField(value = "assign_date") @TableField(value = "assign_date")
private Date assignDate; private LocalDate assignDate;
/** /**
* 完成日期 * 完成日期
*/ */
@TableField(value = "finish_date") @TableField(value = "finish_date")
private Date finishDate; private LocalDate finishDate;
/** /**
* 施工状态 * 施工状态
...@@ -88,8 +89,8 @@ public class RContractTeam { ...@@ -88,8 +89,8 @@ public class RContractTeam {
private String remark; private String remark;
@TableField(value = "create_time") @TableField(value = "create_time")
private Date createTime; private LocalDateTime createTime;
@TableField(value = "update_time") @TableField(value = "update_time")
private Date updateTime; private LocalDateTime updateTime;
} }
\ No newline at end of file \ No newline at end of file
...@@ -6,7 +6,8 @@ import lombok.Getter; ...@@ -6,7 +6,8 @@ import lombok.Getter;
import lombok.Setter; import lombok.Setter;
import vion.dto.BaseDTO; import vion.dto.BaseDTO;
import java.util.Date; import java.time.LocalDate;
import java.time.LocalDateTime;
/** /**
* @author HlQ * @author HlQ
...@@ -54,9 +55,9 @@ public class RContractUser extends BaseDTO { ...@@ -54,9 +55,9 @@ public class RContractUser extends BaseDTO {
*/ */
@TableField(value = "enter_date") @TableField(value = "enter_date")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date enterDate; private LocalDate enterDate;
@TableField(value = "create_time", fill = FieldFill.INSERT) @TableField(value = "create_time", fill = FieldFill.INSERT)
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date createTime; private LocalDateTime createTime;
} }
\ No newline at end of file \ No newline at end of file
...@@ -5,7 +5,7 @@ import com.fasterxml.jackson.annotation.JsonFormat; ...@@ -5,7 +5,7 @@ import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;
import java.util.Date; import java.time.LocalDateTime;
/** /**
* @author HlQ * @author HlQ
...@@ -32,9 +32,9 @@ public class RPointDevice { ...@@ -32,9 +32,9 @@ public class RPointDevice {
@TableField(value = "create_time", fill = FieldFill.INSERT) @TableField(value = "create_time", fill = FieldFill.INSERT)
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date createTime; private LocalDateTime createTime;
@TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE) @TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE)
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date updateTime; private LocalDateTime updateTime;
} }
\ No newline at end of file \ No newline at end of file
...@@ -5,7 +5,7 @@ import com.fasterxml.jackson.annotation.JsonFormat; ...@@ -5,7 +5,7 @@ import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;
import java.util.Date; import java.time.LocalDateTime;
/** /**
* @author HlQ * @author HlQ
...@@ -38,9 +38,9 @@ public class RPointWx { ...@@ -38,9 +38,9 @@ public class RPointWx {
@TableField(value = "create_time", fill = FieldFill.INSERT) @TableField(value = "create_time", fill = FieldFill.INSERT)
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date createTime; private LocalDateTime createTime;
@TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE) @TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE)
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date updateTime; private LocalDateTime updateTime;
} }
\ No newline at end of file \ No newline at end of file
...@@ -10,7 +10,7 @@ import lombok.Getter; ...@@ -10,7 +10,7 @@ import lombok.Getter;
import lombok.Setter; import lombok.Setter;
import vion.dto.BaseDTO; import vion.dto.BaseDTO;
import java.util.Date; import java.time.LocalDateTime;
import java.util.List; import java.util.List;
/** /**
...@@ -136,9 +136,9 @@ public class RRepairDevice extends BaseDTO { ...@@ -136,9 +136,9 @@ public class RRepairDevice extends BaseDTO {
@TableField(value = "create_time", fill = FieldFill.INSERT) @TableField(value = "create_time", fill = FieldFill.INSERT)
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date createTime; private LocalDateTime createTime;
@TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE) @TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE)
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date updateTime; private LocalDateTime updateTime;
} }
\ No newline at end of file \ No newline at end of file
...@@ -8,7 +8,7 @@ import lombok.Getter; ...@@ -8,7 +8,7 @@ import lombok.Getter;
import lombok.Setter; import lombok.Setter;
import vion.dto.RRoleResourceDTO; import vion.dto.RRoleResourceDTO;
import java.util.Date; import java.time.LocalDateTime;
/** /**
* @author HlQ * @author HlQ
...@@ -36,13 +36,17 @@ public class RRoleResource { ...@@ -36,13 +36,17 @@ public class RRoleResource {
@TableField(value = "resource_id") @TableField(value = "resource_id")
private Long resourceId; private Long resourceId;
/** 创建时间 */ /**
* 创建时间
*/
@TableField(value = "create_time", fill = FieldFill.INSERT) @TableField(value = "create_time", fill = FieldFill.INSERT)
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date createTime; private LocalDateTime createTime;
/** 更新时间 */ /**
* 更新时间
*/
@TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE) @TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE)
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date updateTime; private LocalDateTime updateTime;
} }
\ No newline at end of file \ No newline at end of file
...@@ -6,7 +6,7 @@ import lombok.Getter; ...@@ -6,7 +6,7 @@ import lombok.Getter;
import lombok.Setter; import lombok.Setter;
import vion.dto.BaseDTO; import vion.dto.BaseDTO;
import java.util.Date; import java.time.LocalDateTime;
/** /**
* 项目干系人 * 项目干系人
...@@ -47,12 +47,12 @@ public class RStoreConfederate extends BaseDTO { ...@@ -47,12 +47,12 @@ public class RStoreConfederate extends BaseDTO {
*/ */
@TableField(value = "create_time", fill = FieldFill.INSERT) @TableField(value = "create_time", fill = FieldFill.INSERT)
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date createTime; private LocalDateTime createTime;
/** /**
* 修改时间 * 修改时间
*/ */
@TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE) @TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE)
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date updateTime; private LocalDateTime updateTime;
} }
\ No newline at end of file \ No newline at end of file
...@@ -5,7 +5,7 @@ import com.fasterxml.jackson.annotation.JsonFormat; ...@@ -5,7 +5,7 @@ import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;
import java.util.Date; import java.time.LocalDateTime;
/** /**
* @author HlQ * @author HlQ
...@@ -32,9 +32,9 @@ public class RStoreTag { ...@@ -32,9 +32,9 @@ public class RStoreTag {
@TableField(value = "create_time", fill = FieldFill.INSERT) @TableField(value = "create_time", fill = FieldFill.INSERT)
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date createTime; private LocalDateTime createTime;
@TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE) @TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE)
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date updateTime; private LocalDateTime updateTime;
} }
\ No newline at end of file \ No newline at end of file
...@@ -5,15 +5,16 @@ import com.fasterxml.jackson.annotation.JsonFormat; ...@@ -5,15 +5,16 @@ import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;
import java.util.Date; import java.time.LocalDateTime;
/** /**
* @author HlQ * @author HlQ
* @date 2023/12/27 * @date 2023/12/27
*/ */
/** /**
* 项目与用户关联表 * 项目与用户关联表
*/ */
@Getter @Getter
@Setter @Setter
@TableName(value = "r_store_user") @TableName(value = "r_store_user")
...@@ -43,11 +44,11 @@ public class RStoreUser { ...@@ -43,11 +44,11 @@ public class RStoreUser {
@TableField(value = "create_time", fill = FieldFill.INSERT) @TableField(value = "create_time", fill = FieldFill.INSERT)
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@OrderBy @OrderBy
private Date createTime; private LocalDateTime createTime;
@TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE) @TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE)
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date updateTime; private LocalDateTime updateTime;
@TableField(exist = false) @TableField(exist = false)
private RStoreUser[] storeUsers; private RStoreUser[] storeUsers;
......
...@@ -8,7 +8,7 @@ import lombok.Getter; ...@@ -8,7 +8,7 @@ import lombok.Getter;
import lombok.Setter; import lombok.Setter;
import vion.dto.RUserRoleDTO; import vion.dto.RUserRoleDTO;
import java.util.Date; import java.time.LocalDateTime;
/** /**
* @author HlQ * @author HlQ
...@@ -41,12 +41,12 @@ public class RUserRole { ...@@ -41,12 +41,12 @@ public class RUserRole {
*/ */
@TableField(value = "create_time", fill = FieldFill.INSERT) @TableField(value = "create_time", fill = FieldFill.INSERT)
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date createTime; private LocalDateTime createTime;
/** /**
* 更新时间 * 更新时间
*/ */
@TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE) @TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE)
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date updateTime; private LocalDateTime updateTime;
} }
\ No newline at end of file \ No newline at end of file
...@@ -6,7 +6,7 @@ import lombok.Getter; ...@@ -6,7 +6,7 @@ import lombok.Getter;
import lombok.Setter; import lombok.Setter;
import vion.dto.BaseDTO; import vion.dto.BaseDTO;
import java.util.Date; import java.time.LocalDateTime;
/** /**
* @author HlQ * @author HlQ
...@@ -39,9 +39,9 @@ public class RejectInfo extends BaseDTO { ...@@ -39,9 +39,9 @@ public class RejectInfo extends BaseDTO {
@TableField(value = "create_time", fill = FieldFill.INSERT) @TableField(value = "create_time", fill = FieldFill.INSERT)
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date createTime; private LocalDateTime createTime;
@TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE) @TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE)
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date updateTime; private LocalDateTime updateTime;
} }
\ No newline at end of file \ No newline at end of file
...@@ -8,7 +8,8 @@ import lombok.Setter; ...@@ -8,7 +8,8 @@ import lombok.Setter;
import vion.dto.RepairRecDTO; import vion.dto.RepairRecDTO;
import vion.vo.RepairRecVO; import vion.vo.RepairRecVO;
import java.util.Date; import java.time.LocalDate;
import java.time.LocalDateTime;
/** /**
* @author HlQ * @author HlQ
...@@ -108,7 +109,7 @@ public class RepairRec { ...@@ -108,7 +109,7 @@ public class RepairRec {
* 发货日期 * 发货日期
*/ */
@TableField(value = "ship_date") @TableField(value = "ship_date")
private Date shipDate; private LocalDate shipDate;
/** /**
* 快递公司 * 快递公司
...@@ -144,8 +145,8 @@ public class RepairRec { ...@@ -144,8 +145,8 @@ public class RepairRec {
private String remark; private String remark;
@TableField(value = "create_time", fill = FieldFill.INSERT) @TableField(value = "create_time", fill = FieldFill.INSERT)
private Date createTime; private LocalDateTime createTime;
@TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE) @TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE)
private Date updateTime; private LocalDateTime updateTime;
} }
\ No newline at end of file \ No newline at end of file
...@@ -9,7 +9,7 @@ import lombok.Setter; ...@@ -9,7 +9,7 @@ import lombok.Setter;
import vion.dto.ResourceDTO; import vion.dto.ResourceDTO;
import vion.vo.ResourceVO; import vion.vo.ResourceVO;
import java.util.Date; import java.time.LocalDateTime;
/** /**
* @author HlQ * @author HlQ
...@@ -74,14 +74,18 @@ public class Resource { ...@@ -74,14 +74,18 @@ public class Resource {
@TableField(value = "remark") @TableField(value = "remark")
private String remark; private String remark;
/** 创建时间 */ /**
* 创建时间
*/
@TableField(value = "create_time", fill = FieldFill.INSERT) @TableField(value = "create_time", fill = FieldFill.INSERT)
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date createTime; private LocalDateTime createTime;
/** 更新时间 */ /**
* 更新时间
*/
@TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE) @TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE)
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date updateTime; private LocalDateTime updateTime;
} }
\ No newline at end of file \ No newline at end of file
...@@ -9,7 +9,7 @@ import lombok.Setter; ...@@ -9,7 +9,7 @@ import lombok.Setter;
import vion.dto.RoleDTO; import vion.dto.RoleDTO;
import vion.vo.RoleVO; import vion.vo.RoleVO;
import java.util.Date; import java.time.LocalDateTime;
/** /**
* 角色表 * 角色表
...@@ -49,14 +49,18 @@ public class Role { ...@@ -49,14 +49,18 @@ public class Role {
@TableField(value = "remark") @TableField(value = "remark")
private String remark; private String remark;
/** 创建时间 */ /**
* 创建时间
*/
@TableField(value = "create_time", fill = FieldFill.INSERT) @TableField(value = "create_time", fill = FieldFill.INSERT)
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date createTime; private LocalDateTime createTime;
/** 更新时间 */ /**
* 更新时间
*/
@TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE) @TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE)
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date updateTime; private LocalDateTime updateTime;
} }
\ No newline at end of file \ No newline at end of file
...@@ -9,7 +9,7 @@ import lombok.Setter; ...@@ -9,7 +9,7 @@ import lombok.Setter;
import vion.dto.ServiceOrderDTO; import vion.dto.ServiceOrderDTO;
import vion.vo.ServiceOrderVO; import vion.vo.ServiceOrderVO;
import java.util.Date; import java.time.LocalDateTime;
@Getter @Getter
@Setter @Setter
...@@ -22,74 +22,116 @@ public class ServiceOrder { ...@@ -22,74 +22,116 @@ public class ServiceOrder {
@TableId(type = IdType.AUTO) @TableId(type = IdType.AUTO)
private Long id; private Long id;
/** 项目名称 */ /**
* 项目名称
*/
private String projectName; private String projectName;
/** 报修人 */ /**
* 报修人
*/
private String submitter; private String submitter;
/** 报修人手机号码 */ /**
* 报修人手机号码
*/
private String submitPhone; private String submitPhone;
/** 报修时间 */ /**
* 报修时间
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date submitTime; private LocalDateTime submitTime;
/** 维修人 */ /**
* 维修人
*/
private String repairPeople; private String repairPeople;
/** 维修人手机号码*/ /**
* 维修人手机号码
*/
private String repairPhone; private String repairPhone;
/** 部门 */ /**
* 部门
*/
private String dept; private String dept;
/** 服务方式(1.电话支持 2.远程服务 3.现场服务) */ /**
* 服务方式(1.电话支持 2.远程服务 3.现场服务)
*/
private Integer serviceType; private Integer serviceType;
/** 耗时 */ /**
* 耗时
*/
private Double time; private Double time;
/** 故障内容 */ /**
* 故障内容
*/
private String faultContent; private String faultContent;
/** 维修结果 */ /**
* 维修结果
*/
private String repairRes; private String repairRes;
/** 客户评价 */ /**
* 客户评价
*/
private String review; private String review;
/** 工单id */ /**
* 工单id
*/
private Long taskId; private Long taskId;
/** 服务单状态 */ /**
* 服务单状态
*/
private Integer state; private Integer state;
/** 创建时间 */ /**
* 创建时间
*/
@TableField(value = "create_time", fill = FieldFill.INSERT) @TableField(value = "create_time", fill = FieldFill.INSERT)
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date createTime; private LocalDateTime createTime;
/** 更新时间 */ /**
* 更新时间
*/
@TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE) @TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE)
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date updateTime; private LocalDateTime updateTime;
/** 五星好评 */ /**
* 五星好评
*/
private Integer stars; private Integer stars;
/** 签字图片base64 */ /**
* 签字图片base64
*/
private String signPic; private String signPic;
/** 签字时间 */ /**
* 签字时间
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date signTime; private LocalDateTime signTime;
/** 完成时间 */ /**
* 完成时间
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date finishTime; private LocalDateTime finishTime;
/** 唯一id */ /**
* 唯一id
*/
private String unid; private String unid;
} }
...@@ -9,7 +9,7 @@ import vion.dto.SettlementDiffDTO; ...@@ -9,7 +9,7 @@ import vion.dto.SettlementDiffDTO;
import vion.vo.SettlementDiffVO; import vion.vo.SettlementDiffVO;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.Date; import java.time.LocalDateTime;
/** /**
* @author HlQ * @author HlQ
...@@ -72,5 +72,5 @@ public class SettlementDiff { ...@@ -72,5 +72,5 @@ public class SettlementDiff {
* 创建时间 * 创建时间
*/ */
@TableField(value = "create_time", fill = FieldFill.INSERT) @TableField(value = "create_time", fill = FieldFill.INSERT)
private Date createTime; private LocalDateTime createTime;
} }
\ No newline at end of file \ No newline at end of file
...@@ -8,7 +8,8 @@ import lombok.Setter; ...@@ -8,7 +8,8 @@ import lombok.Setter;
import vion.dto.SparePartDTO; import vion.dto.SparePartDTO;
import vion.vo.SparePartVO; import vion.vo.SparePartVO;
import java.util.Date; import java.time.LocalDate;
import java.time.LocalDateTime;
/** /**
* @author HlQ * @author HlQ
...@@ -101,7 +102,7 @@ public class SparePart { ...@@ -101,7 +102,7 @@ public class SparePart {
* 发货日期 * 发货日期
*/ */
@TableField(value = "ship_date") @TableField(value = "ship_date")
private Date shipDate; private LocalDate shipDate;
/** /**
* 快递公司 * 快递公司
...@@ -139,13 +140,15 @@ public class SparePart { ...@@ -139,13 +140,15 @@ public class SparePart {
@TableField(value = "uuid") @TableField(value = "uuid")
private String uuid; private String uuid;
/** 微信用户id */ /**
* 微信用户id
*/
@TableField(value = "openid") @TableField(value = "openid")
private String openid; private String openid;
@TableField(value = "create_time", fill = FieldFill.INSERT) @TableField(value = "create_time", fill = FieldFill.INSERT)
private Date createTime; private LocalDateTime createTime;
@TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE) @TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE)
private Date updateTime; private LocalDateTime updateTime;
} }
\ No newline at end of file \ No newline at end of file
...@@ -9,7 +9,8 @@ import lombok.Setter; ...@@ -9,7 +9,8 @@ import lombok.Setter;
import vion.dto.StoreDTO; import vion.dto.StoreDTO;
import vion.vo.StoreVO; import vion.vo.StoreVO;
import java.util.Date; import java.time.LocalDate;
import java.time.LocalDateTime;
/** /**
* 门店信息 * 门店信息
...@@ -27,7 +28,7 @@ public class Store { ...@@ -27,7 +28,7 @@ public class Store {
/** /**
* 门店名称 * 门店名称
*/ */
@TableField(condition = "%s ILIKE CONCAT('%%',#{%s},'%%')") @TableField(condition = "%s ILIKE CONCAT('%%',#{%s},'%%')")
private String name; private String name;
/** /**
* 销售人 * 销售人
...@@ -59,14 +60,14 @@ public class Store { ...@@ -59,14 +60,14 @@ public class Store {
*/ */
@TableField(value = "create_time", fill = FieldFill.INSERT) @TableField(value = "create_time", fill = FieldFill.INSERT)
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date createTime; private LocalDateTime createTime;
/** /**
* 修改时间 * 修改时间
*/ */
@TableField(value = "modify_time", fill = FieldFill.INSERT_UPDATE) @TableField(value = "modify_time", fill = FieldFill.INSERT_UPDATE)
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date modifyTime; private LocalDateTime modifyTime;
/** /**
* 备注 * 备注
...@@ -87,7 +88,7 @@ public class Store { ...@@ -87,7 +88,7 @@ public class Store {
* 立项日期 * 立项日期
*/ */
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date estDate; private LocalDate estDate;
/** /**
* 主合同id * 主合同id
...@@ -117,7 +118,7 @@ public class Store { ...@@ -117,7 +118,7 @@ public class Store {
/** /**
* 实际完成日期 * 实际完成日期
*/ */
private Date finishDate; private LocalDate finishDate;
/** /**
* 完成百分比 * 完成百分比
...@@ -142,7 +143,7 @@ public class Store { ...@@ -142,7 +143,7 @@ public class Store {
/** /**
* 计划完成日期 * 计划完成日期
*/ */
private Date planFinishDate; private LocalDate planFinishDate;
/** /**
* 项目规模 * 项目规模
......
...@@ -7,11 +7,12 @@ import lombok.Setter; ...@@ -7,11 +7,12 @@ import lombok.Setter;
import org.springframework.format.annotation.DateTimeFormat; import org.springframework.format.annotation.DateTimeFormat;
import vion.dto.BaseDTO; import vion.dto.BaseDTO;
import java.util.Date; import java.time.LocalDate;
import java.time.LocalDateTime;
/** /**
* 项目日志表 * 项目日志表
*/ */
@Getter @Getter
@Setter @Setter
@TableName(value = "tbl_store_log") @TableName(value = "tbl_store_log")
...@@ -31,7 +32,7 @@ public class StoreLog extends BaseDTO { ...@@ -31,7 +32,7 @@ public class StoreLog extends BaseDTO {
@TableField(value = "log_date") @TableField(value = "log_date")
@DateTimeFormat(pattern = "yyyy-MM-dd") @DateTimeFormat(pattern = "yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date logDate; private LocalDate logDate;
/** /**
* 记录人 * 记录人
...@@ -48,9 +49,9 @@ public class StoreLog extends BaseDTO { ...@@ -48,9 +49,9 @@ public class StoreLog extends BaseDTO {
@TableField(value = "create_time", fill = FieldFill.INSERT) @TableField(value = "create_time", fill = FieldFill.INSERT)
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@OrderBy @OrderBy
private Date createTime; private LocalDateTime createTime;
@TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE) @TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE)
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date updateTime; private LocalDateTime updateTime;
} }
\ No newline at end of file \ No newline at end of file
...@@ -6,7 +6,7 @@ import lombok.Getter; ...@@ -6,7 +6,7 @@ import lombok.Getter;
import lombok.Setter; import lombok.Setter;
import vion.dto.BaseDTO; import vion.dto.BaseDTO;
import java.util.Date; import java.time.LocalDateTime;
/** /**
* @author HlQ * @author HlQ
...@@ -33,9 +33,9 @@ public class Tag extends BaseDTO { ...@@ -33,9 +33,9 @@ public class Tag extends BaseDTO {
@TableField(value = "create_time", fill = FieldFill.INSERT) @TableField(value = "create_time", fill = FieldFill.INSERT)
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date createTime; private LocalDateTime createTime;
@TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE) @TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE)
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date updateTime; private LocalDateTime updateTime;
} }
\ No newline at end of file \ No newline at end of file
...@@ -10,7 +10,8 @@ import org.springframework.format.annotation.DateTimeFormat; ...@@ -10,7 +10,8 @@ import org.springframework.format.annotation.DateTimeFormat;
import vion.dto.TaskDTO; import vion.dto.TaskDTO;
import vion.vo.TaskVO; import vion.vo.TaskVO;
import java.util.Date; import java.time.LocalDate;
import java.time.LocalDateTime;
@Getter @Getter
@Setter @Setter
...@@ -35,7 +36,7 @@ public class Task { ...@@ -35,7 +36,7 @@ public class Task {
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@OrderBy(sort = 2) @OrderBy(sort = 2)
private Date repairTime; private LocalDateTime repairTime;
/** /**
* 故障类型 * 故障类型
*/ */
...@@ -64,7 +65,7 @@ public class Task { ...@@ -64,7 +65,7 @@ public class Task {
*/ */
@DateTimeFormat(pattern = "yyyy-MM-dd") @DateTimeFormat(pattern = "yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date solveDate; private LocalDate solveDate;
/** /**
* 故障原因 * 故障原因
*/ */
...@@ -90,21 +91,21 @@ public class Task { ...@@ -90,21 +91,21 @@ public class Task {
*/ */
@DateTimeFormat(pattern = "yyyy-MM-dd") @DateTimeFormat(pattern = "yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date expDate; private LocalDate expDate;
/** /**
* 创建时间 * 创建时间
*/ */
@TableField(value = "create_time", fill = FieldFill.INSERT) @TableField(value = "create_time", fill = FieldFill.INSERT)
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date createTime; private LocalDateTime createTime;
/** /**
* 修改时间 * 修改时间
*/ */
@TableField(value = "modify_time", fill = FieldFill.INSERT_UPDATE) @TableField(value = "modify_time", fill = FieldFill.INSERT_UPDATE)
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date modifyTime; private LocalDateTime modifyTime;
/** /**
* 备注 * 备注
......
...@@ -10,54 +10,76 @@ import org.springframework.format.annotation.DateTimeFormat; ...@@ -10,54 +10,76 @@ import org.springframework.format.annotation.DateTimeFormat;
import vion.dto.TaskTempDTO; import vion.dto.TaskTempDTO;
import vion.vo.TaskTempVO; import vion.vo.TaskTempVO;
import java.util.Date; import java.time.LocalDateTime;
@Getter @Getter
@Setter @Setter
@TableName(value="tbl_task_temp") @TableName(value = "tbl_task_temp")
@AutoMappers({ @AutoMappers({
@AutoMapper(target = TaskTempVO.class), @AutoMapper(target = TaskTempVO.class),
@AutoMapper(target = TaskTempDTO.class), @AutoMapper(target = TaskTempDTO.class),
}) })
public class TaskTemp { public class TaskTemp {
@TableId(type= IdType.AUTO) @TableId(type = IdType.AUTO)
private Long id; private Long id;
/** 项目id */ /**
* 项目id
*/
private Long storeId; private Long storeId;
/** 项目名称(用户提交的名称) */ /**
* 项目名称(用户提交的名称)
*/
@TableField(condition = SqlCondition.LIKE) @TableField(condition = SqlCondition.LIKE)
private String storeName; private String storeName;
/** 报修时间 */ /**
* 报修时间
*/
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@OrderBy(sort = 2) @OrderBy(sort = 2)
private Date repairTime; private LocalDateTime repairTime;
/** 故障说明 */ /**
* 故障说明
*/
private String faultDescription; private String faultDescription;
/** 报修人 */ /**
* 报修人
*/
@TableField(condition = SqlCondition.LIKE) @TableField(condition = SqlCondition.LIKE)
private String repairPeople; private String repairPeople;
/** 联系方式 */ /**
* 联系方式
*/
@TableField(condition = SqlCondition.LIKE) @TableField(condition = SqlCondition.LIKE)
private String repairPhone; private String repairPhone;
/** 状态(1待确认、2进行中、3已确认) */ /**
* 状态(1待确认、2进行中、3已确认)
*/
@OrderBy(asc = true, sort = 1) @OrderBy(asc = true, sort = 1)
private Integer status; private Integer status;
/** 操作人 */ /**
* 操作人
*/
private Long operator; private Long operator;
/** 创建时间 */ /**
* 创建时间
*/
@TableField(value = "create_time", fill = FieldFill.INSERT) @TableField(value = "create_time", fill = FieldFill.INSERT)
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date createTime; private LocalDateTime createTime;
/** 修改时间 */ /**
* 修改时间
*/
@TableField(value = "modify_time", fill = FieldFill.INSERT_UPDATE) @TableField(value = "modify_time", fill = FieldFill.INSERT_UPDATE)
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date modifyTime; private LocalDateTime modifyTime;
/** 备注 */ /**
* 备注
*/
private String remark; private String remark;
/** /**
...@@ -70,7 +92,9 @@ public class TaskTemp { ...@@ -70,7 +92,9 @@ public class TaskTemp {
*/ */
private String email; private String email;
/** 微信用户id */ /**
* 微信用户id
*/
private String openid; private String openid;
} }
...@@ -9,14 +9,14 @@ import lombok.Setter; ...@@ -9,14 +9,14 @@ import lombok.Setter;
import vion.dto.UserDTO; import vion.dto.UserDTO;
import vion.vo.UserVO; import vion.vo.UserVO;
import java.util.Date; import java.time.LocalDateTime;
/** /**
* 用户信息 * 用户信息
*/ */
@Getter @Getter
@Setter @Setter
@TableName(value="tbl_user_info") @TableName(value = "tbl_user_info")
@AutoMappers({ @AutoMappers({
@AutoMapper(target = UserDTO.class), @AutoMapper(target = UserDTO.class),
@AutoMapper(target = UserVO.class), @AutoMapper(target = UserVO.class),
...@@ -31,16 +31,20 @@ public class User { ...@@ -31,16 +31,20 @@ public class User {
private Long deptId; private Long deptId;
@TableField(value = "create_time", fill = FieldFill.INSERT) @TableField(value = "create_time", fill = FieldFill.INSERT)
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date createTime; private LocalDateTime createTime;
@TableField(value = "modify_time", fill = FieldFill.INSERT_UPDATE) @TableField(value = "modify_time", fill = FieldFill.INSERT_UPDATE)
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date modifyTime; private LocalDateTime modifyTime;
private String remark; private String remark;
/** 是否是预工单处理人 0:不是 1:是 */ /**
* 是否是预工单处理人 0:不是 1:是
*/
private Integer preWorkOrder; private Integer preWorkOrder;
/** 员工状态 2:试用期 3:正式 5:待离职 -1:无状态 */ /**
* 员工状态 2:试用期 3:正式 5:待离职 -1:无状态
*/
private Integer employeeStatus; private Integer employeeStatus;
/* 状态 0:正常 1:禁用 */ /* 状态 0:正常 1:禁用 */
......
...@@ -2,11 +2,12 @@ package vion.service; ...@@ -2,11 +2,12 @@ package vion.service;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import vion.model.DeviceLog; import vion.model.DeviceLog;
/**
/**
* @author HlQ * @author HlQ
* @date 2024/8/12 * @date 2024/8/12
*/ */
public interface IDeviceLogService extends IService<DeviceLog>{ public interface IDeviceLogService extends IService<DeviceLog> {
} }
package vion.service; package vion.service;
import vion.model.RContractProduct;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
/** import vion.model.RContractProduct;
/**
* @author HlQ * @author HlQ
* @date 2024/3/26 * @date 2024/3/26
*/ */
public interface IRContractProductService extends IService<RContractProduct>{ public interface IRContractProductService extends IService<RContractProduct> {
} }
package vion.service; package vion.service;
import vion.model.RContractStore;
import com.github.yulichang.base.MPJBaseService; import com.github.yulichang.base.MPJBaseService;
/** import vion.model.RContractStore;
/**
* @author HlQ * @author HlQ
* @date 2023/11/29 * @date 2023/11/29
*/ */
public interface IRContractStoreService extends MPJBaseService<RContractStore>{ public interface IRContractStoreService extends MPJBaseService<RContractStore> {
} }
...@@ -2,7 +2,8 @@ package vion.service; ...@@ -2,7 +2,8 @@ package vion.service;
import com.github.yulichang.base.MPJBaseService; import com.github.yulichang.base.MPJBaseService;
import vion.model.RContractTeam; import vion.model.RContractTeam;
/**
/**
* @author HlQ * @author HlQ
* @date 2023/12/26 * @date 2023/12/26
*/ */
......
...@@ -2,7 +2,8 @@ package vion.service; ...@@ -2,7 +2,8 @@ package vion.service;
import com.github.yulichang.base.MPJBaseService; import com.github.yulichang.base.MPJBaseService;
import vion.model.RContractUser; import vion.model.RContractUser;
/**
/**
* @author HlQ * @author HlQ
* @date 2023/12/28 * @date 2023/12/28
*/ */
......
...@@ -2,7 +2,8 @@ package vion.service; ...@@ -2,7 +2,8 @@ package vion.service;
import com.github.yulichang.base.MPJBaseService; import com.github.yulichang.base.MPJBaseService;
import vion.model.RPointDevice; import vion.model.RPointDevice;
/**
/**
* @author HlQ * @author HlQ
* @date 2024/1/12 * @date 2024/1/12
*/ */
......
...@@ -2,7 +2,8 @@ package vion.service; ...@@ -2,7 +2,8 @@ package vion.service;
import com.github.yulichang.base.MPJBaseService; import com.github.yulichang.base.MPJBaseService;
import vion.model.RPointWx; import vion.model.RPointWx;
/**
/**
* @author HlQ * @author HlQ
* @date 2024/1/12 * @date 2024/1/12
*/ */
......
...@@ -2,7 +2,8 @@ package vion.service; ...@@ -2,7 +2,8 @@ package vion.service;
import com.github.yulichang.base.MPJBaseService; import com.github.yulichang.base.MPJBaseService;
import vion.model.RRepairDevice; import vion.model.RRepairDevice;
/**
/**
* @author HlQ * @author HlQ
* @date 2024/1/25 * @date 2024/1/25
*/ */
......
package vion.service; package vion.service;
import vion.model.RRoleResource;
import com.github.yulichang.base.MPJBaseService; import com.github.yulichang.base.MPJBaseService;
/** import vion.model.RRoleResource;
/**
* @author HlQ * @author HlQ
* @date 2023/11/28 * @date 2023/11/28
*/ */
public interface IRRoleResourceService extends MPJBaseService<RRoleResource>{ public interface IRRoleResourceService extends MPJBaseService<RRoleResource> {
} }
package vion.service; package vion.service;
import vion.model.RStoreConfederate;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import vion.model.RStoreConfederate;
public interface IRStoreConfederateService extends IService<RStoreConfederate> { public interface IRStoreConfederateService extends IService<RStoreConfederate> {
......
...@@ -2,7 +2,8 @@ package vion.service; ...@@ -2,7 +2,8 @@ package vion.service;
import com.github.yulichang.base.MPJBaseService; import com.github.yulichang.base.MPJBaseService;
import vion.model.RStoreTag; import vion.model.RStoreTag;
/**
/**
* @author HlQ * @author HlQ
* @date 2024/1/30 * @date 2024/1/30
*/ */
......
...@@ -2,7 +2,8 @@ package vion.service; ...@@ -2,7 +2,8 @@ package vion.service;
import com.github.yulichang.base.MPJBaseService; import com.github.yulichang.base.MPJBaseService;
import vion.model.RStoreUser; import vion.model.RStoreUser;
/**
/**
* @author HlQ * @author HlQ
* @date 2023/12/27 * @date 2023/12/27
*/ */
......
package vion.service; package vion.service;
import vion.model.RUserRole;
import com.github.yulichang.base.MPJBaseService; import com.github.yulichang.base.MPJBaseService;
/** import vion.model.RUserRole;
/**
* @author HlQ * @author HlQ
* @date 2023/11/28 * @date 2023/11/28
*/ */
public interface IRUserRoleService extends MPJBaseService<RUserRole>{ public interface IRUserRoleService extends MPJBaseService<RUserRole> {
} }
...@@ -2,7 +2,8 @@ package vion.service; ...@@ -2,7 +2,8 @@ package vion.service;
import com.github.yulichang.base.MPJBaseService; import com.github.yulichang.base.MPJBaseService;
import vion.model.RejectInfo; import vion.model.RejectInfo;
/**
/**
* @author HlQ * @author HlQ
* @date 2024/1/8 * @date 2024/1/8
*/ */
......
...@@ -13,7 +13,7 @@ import java.util.List; ...@@ -13,7 +13,7 @@ import java.util.List;
* @author HlQ * @author HlQ
* @date 2023/11/28 * @date 2023/11/28
*/ */
public interface IResourceService extends MPJBaseService<Resource>{ public interface IResourceService extends MPJBaseService<Resource> {
Page<ResourceVO> list(ResourceDTO dto); Page<ResourceVO> list(ResourceDTO dto);
......
...@@ -2,7 +2,8 @@ package vion.service; ...@@ -2,7 +2,8 @@ package vion.service;
import com.github.yulichang.base.MPJBaseService; import com.github.yulichang.base.MPJBaseService;
import vion.model.StoreLog; import vion.model.StoreLog;
/**
/**
* @author HlQ * @author HlQ
* @date 2023/12/27 * @date 2023/12/27
*/ */
......
...@@ -2,7 +2,8 @@ package vion.service; ...@@ -2,7 +2,8 @@ package vion.service;
import com.github.yulichang.base.MPJBaseService; import com.github.yulichang.base.MPJBaseService;
import vion.model.Tag; import vion.model.Tag;
/**
/**
* @author HlQ * @author HlQ
* @date 2024/1/30 * @date 2024/1/30
*/ */
......
...@@ -6,7 +6,7 @@ import vion.dto.TaskDTO; ...@@ -6,7 +6,7 @@ import vion.dto.TaskDTO;
import vion.model.Task; import vion.model.Task;
import vion.vo.TaskVO; import vion.vo.TaskVO;
import java.util.Date; import java.time.LocalDate;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
...@@ -28,9 +28,10 @@ public interface ITaskService extends MPJBaseService<Task> { ...@@ -28,9 +28,10 @@ public interface ITaskService extends MPJBaseService<Task> {
String urgeTask(Long taskId, String remark); String urgeTask(Long taskId, String remark);
List<Map<String, Object>> peopleAnalysis(Date startDate, Date endDate, Integer source, List<Long> userIds); List<Map<String, Object>> peopleAnalysis(LocalDate startDate, LocalDate endDate, Integer source,
List<Long> userIds);
List<Map<String, Object>> proAnalysis(Date startDate, Date endDate, Integer source, List<Long> userIds); List<Map<String, Object>> proAnalysis(LocalDate startDate, LocalDate endDate, Integer source, List<Long> userIds);
Map<String, Map<String, List<Task>>> summaryAnalysis(Date startDate, Date endDate, Integer source); Map<String, Map<String, List<Task>>> summaryAnalysis(LocalDate startDate, LocalDate endDate, Integer source);
} }
...@@ -11,6 +11,7 @@ import java.util.Map; ...@@ -11,6 +11,7 @@ import java.util.Map;
public interface ITaskTempService extends MPJBaseService<TaskTemp> { public interface ITaskTempService extends MPJBaseService<TaskTemp> {
Page<TaskTempVO> getTaskTempList(TaskTempDTO data); Page<TaskTempVO> getTaskTempList(TaskTempDTO data);
TaskTempVO getTaskTempById(Long id); TaskTempVO getTaskTempById(Long id);
Object saveTaskTemp(TaskTempDTO data); Object saveTaskTemp(TaskTempDTO data);
......
package vion.service.impl; package vion.service.impl;
import org.dromara.hutool.core.text.StrUtil;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.github.yulichang.base.MPJBaseServiceImpl; import com.github.yulichang.base.MPJBaseServiceImpl;
import com.github.yulichang.wrapper.MPJLambdaWrapper; import com.github.yulichang.wrapper.MPJLambdaWrapper;
import io.github.linpeilie.Converter; import io.github.linpeilie.Converter;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.dromara.hutool.core.text.StrUtil;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import vion.dto.ConstructionTeamDTO; import vion.dto.ConstructionTeamDTO;
import vion.dto.RContractTeamDTO; import vion.dto.RContractTeamDTO;
......
...@@ -32,7 +32,7 @@ public class ContractPaymentServiceImpl extends MPJBaseServiceImpl<ContractPayme ...@@ -32,7 +32,7 @@ public class ContractPaymentServiceImpl extends MPJBaseServiceImpl<ContractPayme
* 当合同状态变化或者应收款变化时,重新计算款项 * 当合同状态变化或者应收款变化时,重新计算款项
* *
* @param existContract 数据库中当前合同记录 * @param existContract 数据库中当前合同记录
* @param dto 要变更的合同记录 * @param dto 要变更的合同记录
*/ */
@Override @Override
public void calMoney(Contract existContract, Contract dto) { public void calMoney(Contract existContract, Contract dto) {
......
...@@ -19,8 +19,7 @@ import org.dromara.hutool.core.collection.CollUtil; ...@@ -19,8 +19,7 @@ import org.dromara.hutool.core.collection.CollUtil;
import org.dromara.hutool.core.collection.ListUtil; import org.dromara.hutool.core.collection.ListUtil;
import org.dromara.hutool.core.collection.set.SetUtil; import org.dromara.hutool.core.collection.set.SetUtil;
import org.dromara.hutool.core.comparator.CompareUtil; import org.dromara.hutool.core.comparator.CompareUtil;
import org.dromara.hutool.core.date.DateUnit; import org.dromara.hutool.core.date.TimeUtil;
import org.dromara.hutool.core.date.DateUtil;
import org.dromara.hutool.core.io.file.FileNameUtil; import org.dromara.hutool.core.io.file.FileNameUtil;
import org.dromara.hutool.core.io.file.FileUtil; import org.dromara.hutool.core.io.file.FileUtil;
import org.dromara.hutool.core.lang.Assert; import org.dromara.hutool.core.lang.Assert;
...@@ -31,7 +30,6 @@ import org.dromara.hutool.core.text.StrUtil; ...@@ -31,7 +30,6 @@ import org.dromara.hutool.core.text.StrUtil;
import org.dromara.hutool.core.util.ObjUtil; import org.dromara.hutool.core.util.ObjUtil;
import org.dromara.hutool.crypto.SecureUtil; import org.dromara.hutool.crypto.SecureUtil;
import org.dromara.hutool.http.client.HttpDownloader; import org.dromara.hutool.http.client.HttpDownloader;
import org.dromara.hutool.json.JSONObject;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.http.MediaType; import org.springframework.http.MediaType;
import org.springframework.scheduling.annotation.Scheduled; import org.springframework.scheduling.annotation.Scheduled;
...@@ -52,6 +50,9 @@ import vion.vo.*; ...@@ -52,6 +50,9 @@ import vion.vo.*;
import java.io.File; import java.io.File;
import java.io.IOException; import java.io.IOException;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.temporal.ChronoUnit;
import java.util.*; import java.util.*;
import java.util.function.Function; import java.util.function.Function;
import java.util.stream.Collectors; import java.util.stream.Collectors;
...@@ -360,7 +361,7 @@ public class ContractServiceImpl extends MPJBaseServiceImpl<ContractMapper, Cont ...@@ -360,7 +361,7 @@ public class ContractServiceImpl extends MPJBaseServiceImpl<ContractMapper, Cont
String orgName = infile.getOriginalFilename(); String orgName = infile.getOriginalFilename();
String mainName = FileNameUtil.mainName(orgName); String mainName = FileNameUtil.mainName(orgName);
String fileExt = FileNameUtil.extName(orgName); String fileExt = FileNameUtil.extName(orgName);
String filename = StrUtil.format("{}_{}.{}", mainName, DateUtil.format(new Date(), "yyyyMMdd_HHmmssSSS"), fileExt); String filename = StrUtil.format("{}_{}.{}", mainName, TimeUtil.format(LocalDateTime.now(), "yyyyMMdd_HHmmssSSS"), fileExt);
String path = fileUrl + FileUtil.FILE_SEPARATOR + "contract" + FileUtil.FILE_SEPARATOR + contract.getId() + FileUtil.FILE_SEPARATOR + filename; String path = fileUrl + FileUtil.FILE_SEPARATOR + "contract" + FileUtil.FILE_SEPARATOR + contract.getId() + FileUtil.FILE_SEPARATOR + filename;
File file = FileUtil.touch(path); File file = FileUtil.touch(path);
try { try {
...@@ -432,7 +433,7 @@ public class ContractServiceImpl extends MPJBaseServiceImpl<ContractMapper, Cont ...@@ -432,7 +433,7 @@ public class ContractServiceImpl extends MPJBaseServiceImpl<ContractMapper, Cont
.between(ArrayUtil.isAllNotNull(dto.getSignDateStart(), dto.getSignDateEnd()), Contract::getSignDate, dto.getSignDateStart(), dto.getSignDateEnd()) .between(ArrayUtil.isAllNotNull(dto.getSignDateStart(), dto.getSignDateEnd()), Contract::getSignDate, dto.getSignDateStart(), dto.getSignDateEnd())
.list(); .list();
if (CollUtil.isEmpty(contractList)) { if (CollUtil.isEmpty(contractList)) {
return new JSONObject(); return Map.of();
} }
Map<Long, List<ContractPayment>> id2PaymentMap = Opt.ofEmptyAble(contractPaymentService Map<Long, List<ContractPayment>> id2PaymentMap = Opt.ofEmptyAble(contractPaymentService
...@@ -441,7 +442,7 @@ public class ContractServiceImpl extends MPJBaseServiceImpl<ContractMapper, Cont ...@@ -441,7 +442,7 @@ public class ContractServiceImpl extends MPJBaseServiceImpl<ContractMapper, Cont
.map(list -> list.stream().collect(Collectors.groupingBy(ContractPayment::getContractId))) .map(list -> list.stream().collect(Collectors.groupingBy(ContractPayment::getContractId)))
.orElse(MapUtil.empty()); .orElse(MapUtil.empty());
if (MapUtil.isEmpty(id2PaymentMap)) { if (MapUtil.isEmpty(id2PaymentMap)) {
return new JSONObject(); return Map.of();
} }
List<FinancialAgeVO> financialAgeVOList = new ArrayList<>(); List<FinancialAgeVO> financialAgeVOList = new ArrayList<>();
...@@ -452,7 +453,8 @@ public class ContractServiceImpl extends MPJBaseServiceImpl<ContractMapper, Cont ...@@ -452,7 +453,8 @@ public class ContractServiceImpl extends MPJBaseServiceImpl<ContractMapper, Cont
} }
BigDecimal totalAmount = c.getTotalAmount(); BigDecimal totalAmount = c.getTotalAmount();
BigDecimal paidAmount = c.getPaidAmount(); BigDecimal paidAmount = c.getPaidAmount();
Map<Integer, Date> type2DateMap = contractPaymentList.stream().filter(cp -> cp.getPaymentType() <= c.getStatus()).collect(HashMap::new, (m, v) -> m.put(v.getPaymentType(), v.getPaymentDate()), HashMap::putAll); Map<Integer, LocalDate> type2DateMap =
contractPaymentList.stream().filter(cp -> cp.getPaymentType() <= c.getStatus()).collect(HashMap::new, (m, v) -> m.put(v.getPaymentType(), v.getPaymentDate()), HashMap::putAll);
Map<Integer, BigDecimal> type2AmountMap = contractPaymentList.stream().filter(cp -> cp.getPaymentType() <= c.getStatus()).collect(Collectors.toMap(ContractPayment::getPaymentType, v -> NumberUtil.mul(v.getPaymentRatio(), totalAmount))); Map<Integer, BigDecimal> type2AmountMap = contractPaymentList.stream().filter(cp -> cp.getPaymentType() <= c.getStatus()).collect(Collectors.toMap(ContractPayment::getPaymentType, v -> NumberUtil.mul(v.getPaymentRatio(), totalAmount)));
TreeMap<Integer, BigDecimal> sortMap = MapUtil.sort(type2AmountMap, Comparator.comparingInt(Integer::intValue)); TreeMap<Integer, BigDecimal> sortMap = MapUtil.sort(type2AmountMap, Comparator.comparingInt(Integer::intValue));
...@@ -475,7 +477,7 @@ public class ContractServiceImpl extends MPJBaseServiceImpl<ContractMapper, Cont ...@@ -475,7 +477,7 @@ public class ContractServiceImpl extends MPJBaseServiceImpl<ContractMapper, Cont
Opt.ofNullable(type2DateMap.get(type)).ifPresent( Opt.ofNullable(type2DateMap.get(type)).ifPresent(
date -> { date -> {
financialAgeVO.setPayableDate(date); financialAgeVO.setPayableDate(date);
long age = DateUtil.between(date, new Date(), DateUnit.DAY, true); long age = Math.abs(date.until(LocalDate.now(), ChronoUnit.DAYS));
financialAgeVO.setAge(((int) age)); financialAgeVO.setAge(((int) age));
} }
); );
...@@ -626,7 +628,7 @@ public class ContractServiceImpl extends MPJBaseServiceImpl<ContractMapper, Cont ...@@ -626,7 +628,7 @@ public class ContractServiceImpl extends MPJBaseServiceImpl<ContractMapper, Cont
ArrayNode jsonArray = jobO.path("result").withArray("list"); ArrayNode jsonArray = jobO.path("result").withArray("list");
var fileList = StreamSupport.stream(jsonArray.spliterator(), false) var fileList = StreamSupport.stream(jsonArray.spliterator(), false)
.map(v -> { .map(v -> {
var fileArr = v.path("data").withArray("file_1"); var fileArr = JsonUtil.parseTree(v.path("data").path("file_1").asText());
var contractNo = v.path("data").path("serialNo").asText(); var contractNo = v.path("data").path("serialNo").asText();
return (JsonNode) JsonUtil.createObj().put("contractNo", contractNo).set("fileArr", fileArr); return (JsonNode) JsonUtil.createObj().put("contractNo", contractNo).set("fileArr", fileArr);
}).collect(Collectors.toList()); }).collect(Collectors.toList());
...@@ -839,7 +841,7 @@ public class ContractServiceImpl extends MPJBaseServiceImpl<ContractMapper, Cont ...@@ -839,7 +841,7 @@ public class ContractServiceImpl extends MPJBaseServiceImpl<ContractMapper, Cont
#### 发送时间:{} #### 发送时间:{}
"""; """;
String markdown = StrUtil.format(template, String markdown = StrUtil.format(template,
contract.getContractNo(), contract.getName(), applicantName, DateUtil.now()); contract.getContractNo(), contract.getName(), applicantName, TimeUtil.formatNormal(LocalDateTime.now()));
content.put("markdown", markdown); content.put("markdown", markdown);
var msg = JsonUtil.createObj().put("msgtype", "action_card").set("action_card", content); var msg = JsonUtil.createObj().put("msgtype", "action_card").set("action_card", content);
...@@ -862,7 +864,7 @@ public class ContractServiceImpl extends MPJBaseServiceImpl<ContractMapper, Cont ...@@ -862,7 +864,7 @@ public class ContractServiceImpl extends MPJBaseServiceImpl<ContractMapper, Cont
#### 发送时间:{} #### 发送时间:{}
"""; """;
String markdown = StrUtil.format(template, String markdown = StrUtil.format(template,
contract.getContractNo(), contract.getName(), statusStr, DateUtil.formatDate(dto.getNodeDate()), DateUtil.now()); contract.getContractNo(), contract.getName(), statusStr, dto.getNodeDate(), TimeUtil.formatNormal(LocalDateTime.now()));
content.put("text", markdown); content.put("text", markdown);
var msg = JsonUtil.createObj().put("msgtype", "markdown").set("markdown", content); var msg = JsonUtil.createObj().put("msgtype", "markdown").set("markdown", content);
...@@ -1048,8 +1050,7 @@ public class ContractServiceImpl extends MPJBaseServiceImpl<ContractMapper, Cont ...@@ -1048,8 +1050,7 @@ public class ContractServiceImpl extends MPJBaseServiceImpl<ContractMapper, Cont
var result = jobj1.path("result"); var result = jobj1.path("result");
var jsonObj1 = result.path("data"); var jsonObj1 = result.path("data");
Map<String, Integer> contractTypeMap = Db.list(Wrappers.lambdaQuery(Dictionary.class).eq(Dictionary::getType, Map<String, Integer> contractTypeMap = Db.list(Wrappers.lambdaQuery(Dictionary.class).eq(Dictionary::getType, "contract_type"))
"contract_type"))
.stream() .stream()
.collect(Collectors.toMap(Dictionary::getValue, Dictionary::getKey)); .collect(Collectors.toMap(Dictionary::getValue, Dictionary::getKey));
...@@ -1057,9 +1058,9 @@ public class ContractServiceImpl extends MPJBaseServiceImpl<ContractMapper, Cont ...@@ -1057,9 +1058,9 @@ public class ContractServiceImpl extends MPJBaseServiceImpl<ContractMapper, Cont
xbongContract.setName(jsonObj1.path("text_14").asText()); xbongContract.setName(jsonObj1.path("text_14").asText());
xbongContract.setContractNo(jsonObj1.path("serialNo").asText()); xbongContract.setContractNo(jsonObj1.path("serialNo").asText());
xbongContract.setType(contractTypeMap.getOrDefault(jsonObj1.path("text_17").path("text").asText(), 0)); xbongContract.setType(contractTypeMap.getOrDefault(jsonObj1.path("text_17").path("text").asText(), 0));
xbongContract.setSignDate(DateUtil.date(jsonObj1.path("date_1").asLong() * 1000).toJdkDate()); xbongContract.setSignDate(TimeUtil.of(jsonObj1.path("date_1").asLong() * 1000).toLocalDate());
xbongContract.setMaintainSdate(Opt.ofNullable(jsonObj1.path("date_4")).filter(JsonNode::isNumber).map(sec -> DateUtil.date(sec.asLong() * 1000).toJdkDate()).orElse(null)); xbongContract.setMaintainSdate(Opt.ofNullable(jsonObj1.path("date_4")).filter(JsonNode::isNumber).map(sec -> TimeUtil.of(sec.asLong() * 1000).toLocalDate()).orElse(null));
xbongContract.setMaintainEdate(Opt.ofNullable(jsonObj1.path("date_5")).filter(JsonNode::isNumber).map(sec -> DateUtil.date(sec.asLong() * 1000).toJdkDate()).orElse(null)); xbongContract.setMaintainEdate(Opt.ofNullable(jsonObj1.path("date_5")).filter(JsonNode::isNumber).map(sec -> TimeUtil.of(sec.asLong() * 1000).toLocalDate()).orElse(null));
String warrantyPeriod = jsonObj1.path("text_23").path("text").asText(""); String warrantyPeriod = jsonObj1.path("text_23").path("text").asText("");
if (StrUtil.isNotBlank(warrantyPeriod) && warrantyPeriod.contains("个月")) { if (StrUtil.isNotBlank(warrantyPeriod) && warrantyPeriod.contains("个月")) {
String substring = warrantyPeriod.substring(0, (warrantyPeriod.length() - 2)); String substring = warrantyPeriod.substring(0, (warrantyPeriod.length() - 2));
...@@ -1074,7 +1075,7 @@ public class ContractServiceImpl extends MPJBaseServiceImpl<ContractMapper, Cont ...@@ -1074,7 +1075,7 @@ public class ContractServiceImpl extends MPJBaseServiceImpl<ContractMapper, Cont
if (!paymentForm.isEmpty()) { if (!paymentForm.isEmpty()) {
paymentForm.forEach(pf -> { paymentForm.forEach(pf -> {
var ratio = NumberUtil.div(BigDecimal.valueOf(Double.parseDouble(pf.path("text_1").asText())), 100); var ratio = NumberUtil.div(BigDecimal.valueOf(Double.parseDouble(pf.path("text_1").asText())), 100);
var date = DateUtil.date(pf.path("date_1").asLong() * 1000); var date = TimeUtil.of(pf.path("date_1").asLong() * 1000).toLocalDate();
var stage = pf.path("text_2").path("text").asText(); var stage = pf.path("text_2").path("text").asText();
if (StrUtil.equals(stage, "预付款")) { if (StrUtil.equals(stage, "预付款")) {
xbongContract.setSignRatio(ratio); xbongContract.setSignRatio(ratio);
...@@ -1114,8 +1115,8 @@ public class ContractServiceImpl extends MPJBaseServiceImpl<ContractMapper, Cont ...@@ -1114,8 +1115,8 @@ public class ContractServiceImpl extends MPJBaseServiceImpl<ContractMapper, Cont
xbongContract.setSaleName(jsonObj1.path("text_8").path("name").asText()); xbongContract.setSaleName(jsonObj1.path("text_8").path("name").asText());
xbongContract.setCreateUser(-1L); xbongContract.setCreateUser(-1L);
xbongContract.setModifyUser(-1L); xbongContract.setModifyUser(-1L);
xbongContract.setEntryTime(DateUtil.date(result.path("addTime").asLong() * 1000).toJdkDate()); xbongContract.setEntryTime(TimeUtil.of(result.path("addTime").asLong() * 1000));
xbongContract.setOriginalModTime(DateUtil.date(result.path("updateTime").asLong() * 1000).toJdkDate()); xbongContract.setOriginalModTime(TimeUtil.of(result.path("updateTime").asLong() * 1000));
var bongMap = BeanUtil.beanToMap(xbongContract, new HashMap<>(), copyOptions); var bongMap = BeanUtil.beanToMap(xbongContract, new HashMap<>(), copyOptions);
if (!mapEqual(platMap, bongMap)) { if (!mapEqual(platMap, bongMap)) {
......
...@@ -5,7 +5,7 @@ import com.github.yulichang.wrapper.MPJLambdaWrapper; ...@@ -5,7 +5,7 @@ import com.github.yulichang.wrapper.MPJLambdaWrapper;
import io.github.linpeilie.Converter; import io.github.linpeilie.Converter;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.dromara.hutool.core.array.ArrayUtil; import org.dromara.hutool.core.array.ArrayUtil;
import org.dromara.hutool.core.date.DateUtil; import org.dromara.hutool.core.date.TimeUtil;
import org.dromara.hutool.core.lang.Opt; import org.dromara.hutool.core.lang.Opt;
import org.dromara.hutool.core.text.StrUtil; import org.dromara.hutool.core.text.StrUtil;
import org.redisson.api.RedissonClient; import org.redisson.api.RedissonClient;
...@@ -21,6 +21,7 @@ import vion.third.DingMod; ...@@ -21,6 +21,7 @@ import vion.third.DingMod;
import vion.utils.JsonUtil; import vion.utils.JsonUtil;
import vion.vo.DeliverLogVO; import vion.vo.DeliverLogVO;
import java.time.LocalDateTime;
import java.util.Comparator; import java.util.Comparator;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
...@@ -59,7 +60,7 @@ public class DeliverLogServiceImpl extends MPJBaseServiceImpl<DeliverLogMapper, ...@@ -59,7 +60,7 @@ public class DeliverLogServiceImpl extends MPJBaseServiceImpl<DeliverLogMapper,
.ifPresent(rContractUser -> log.setContractSaleName(rContractUser.getUsername())) .ifPresent(rContractUser -> log.setContractSaleName(rContractUser.getUsername()))
); );
return deliverLogList.stream().collect(Collectors.groupingBy(DeliverLogVO::getUsername, return deliverLogList.stream().collect(Collectors.groupingBy(DeliverLogVO::getUsername,
Collectors.groupingBy(v -> DateUtil.formatDate(v.getLogDate()), () -> new TreeMap<String, Collectors.groupingBy(v -> v.getLogDate().toString(), () -> new TreeMap<String,
List<DeliverLogVO>>(Comparator.reverseOrder()), Collectors.toList()))); List<DeliverLogVO>>(Comparator.reverseOrder()), Collectors.toList())));
} }
...@@ -146,7 +147,7 @@ public class DeliverLogServiceImpl extends MPJBaseServiceImpl<DeliverLogMapper, ...@@ -146,7 +147,7 @@ public class DeliverLogServiceImpl extends MPJBaseServiceImpl<DeliverLogMapper,
confederateName, confederateName,
deliverLog.getLogHour(), deliverLog.getLogHour(),
deliverLog.getContent(), deliverLog.getContent(),
DateUtil.now())); TimeUtil.formatNormal(LocalDateTime.now())));
var msg = JsonUtil.createObj().put("msgtype", "markdown").set("markdown", content); var msg = JsonUtil.createObj().put("msgtype", "markdown").set("markdown", content);
jsonObj.set("msg", msg); jsonObj.set("msg", msg);
...@@ -164,7 +165,7 @@ public class DeliverLogServiceImpl extends MPJBaseServiceImpl<DeliverLogMapper, ...@@ -164,7 +165,7 @@ public class DeliverLogServiceImpl extends MPJBaseServiceImpl<DeliverLogMapper,
### 项目交付日志提醒 ### 项目交付日志提醒
#### 您的日志还未提交,请尽快提交! #### 您的日志还未提交,请尽快提交!
#### 未提交日志日期:{} #### 未提交日志日期:{}
#### 发送时间:{}""", dateStr, DateUtil.now())); #### 发送时间:{}""", dateStr, TimeUtil.formatNormal(LocalDateTime.now())));
var msg = JsonUtil.createObj().put("msgtype", "markdown").set("markdown", content); var msg = JsonUtil.createObj().put("msgtype", "markdown").set("markdown", content);
jsonObj.set("msg", msg); jsonObj.set("msg", msg);
......
...@@ -8,7 +8,7 @@ import com.github.yulichang.wrapper.MPJLambdaWrapper; ...@@ -8,7 +8,7 @@ import com.github.yulichang.wrapper.MPJLambdaWrapper;
import io.github.linpeilie.Converter; import io.github.linpeilie.Converter;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.dromara.hutool.core.date.DateUtil; import org.dromara.hutool.core.date.TimeUtil;
import org.dromara.hutool.core.io.file.FileNameUtil; import org.dromara.hutool.core.io.file.FileNameUtil;
import org.dromara.hutool.core.io.file.FileUtil; import org.dromara.hutool.core.io.file.FileUtil;
import org.dromara.hutool.core.lang.Opt; import org.dromara.hutool.core.lang.Opt;
...@@ -30,8 +30,8 @@ import vion.vo.UserVO; ...@@ -30,8 +30,8 @@ import vion.vo.UserVO;
import java.io.File; import java.io.File;
import java.io.IOException; import java.io.IOException;
import java.time.LocalDateTime;
import java.util.Arrays; import java.util.Arrays;
import java.util.Date;
import java.util.List; import java.util.List;
import java.util.stream.Collectors; import java.util.stream.Collectors;
...@@ -167,7 +167,7 @@ public class DeliveryRecordServiceImpl extends MPJBaseServiceImpl<DeliveryRecord ...@@ -167,7 +167,7 @@ public class DeliveryRecordServiceImpl extends MPJBaseServiceImpl<DeliveryRecord
#### 发送时间:{} #### 发送时间:{}
"""; """;
String markdown = StrUtil.format(template, String markdown = StrUtil.format(template,
contract.getName(), contract.getContractNo(), rec.getCourierCompany(), rec.getTrackingNumber(), rec.getConsignee(), DateUtil.formatDate(rec.getShipDate()), DateUtil.now()); contract.getName(), contract.getContractNo(), rec.getCourierCompany(), rec.getTrackingNumber(), rec.getConsignee(), rec.getShipDate(), TimeUtil.formatNormal(LocalDateTime.now()));
content.put("markdown", markdown).put("btn_orientation", "1"); content.put("markdown", markdown).put("btn_orientation", "1");
var jsonArray = JsonUtil.createArr() var jsonArray = JsonUtil.createArr()
...@@ -191,7 +191,8 @@ public class DeliveryRecordServiceImpl extends MPJBaseServiceImpl<DeliveryRecord ...@@ -191,7 +191,8 @@ public class DeliveryRecordServiceImpl extends MPJBaseServiceImpl<DeliveryRecord
String orgName = infile.getOriginalFilename(); String orgName = infile.getOriginalFilename();
String mainName = FileNameUtil.mainName(orgName); String mainName = FileNameUtil.mainName(orgName);
String fileExt = FileNameUtil.extName(orgName); String fileExt = FileNameUtil.extName(orgName);
String filename = StrUtil.format("{}_{}.{}", mainName, DateUtil.format(new Date(), "yyyyMMdd_HHmmssSSS"), fileExt); String filename = StrUtil.format("{}_{}.{}", mainName,
TimeUtil.format(LocalDateTime.now(), "yyyyMMdd_HHmmssSSS"), fileExt);
String path = fileUrl + FileUtil.FILE_SEPARATOR + "delivery" + FileUtil.FILE_SEPARATOR + deliveryRecord.getId() + FileUtil.FILE_SEPARATOR + filename; String path = fileUrl + FileUtil.FILE_SEPARATOR + "delivery" + FileUtil.FILE_SEPARATOR + deliveryRecord.getId() + FileUtil.FILE_SEPARATOR + filename;
File file = FileUtil.touch(path); File file = FileUtil.touch(path);
try { try {
......
...@@ -5,6 +5,7 @@ import org.springframework.stereotype.Service; ...@@ -5,6 +5,7 @@ import org.springframework.stereotype.Service;
import vion.mapper.DeviceLogMapper; import vion.mapper.DeviceLogMapper;
import vion.model.DeviceLog; import vion.model.DeviceLog;
import vion.service.IDeviceLogService; import vion.service.IDeviceLogService;
/** /**
* @author HlQ * @author HlQ
* @date 2024/8/12 * @date 2024/8/12
......
...@@ -8,7 +8,7 @@ import io.github.linpeilie.Converter; ...@@ -8,7 +8,7 @@ import io.github.linpeilie.Converter;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.dromara.hutool.core.array.ArrayUtil; import org.dromara.hutool.core.array.ArrayUtil;
import org.dromara.hutool.core.collection.CollUtil; import org.dromara.hutool.core.collection.CollUtil;
import org.dromara.hutool.core.date.DateUtil; import org.dromara.hutool.core.date.TimeUtil;
import org.dromara.hutool.core.lang.Opt; import org.dromara.hutool.core.lang.Opt;
import org.dromara.hutool.core.map.MapUtil; import org.dromara.hutool.core.map.MapUtil;
import org.dromara.hutool.core.math.NumberUtil; import org.dromara.hutool.core.math.NumberUtil;
...@@ -31,6 +31,7 @@ import vion.vo.RoleVO; ...@@ -31,6 +31,7 @@ import vion.vo.RoleVO;
import vion.vo.UserVO; import vion.vo.UserVO;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
...@@ -187,7 +188,7 @@ public class InvoiceServiceImpl extends MPJBaseServiceImpl<InvoiceMapper, Invoic ...@@ -187,7 +188,7 @@ public class InvoiceServiceImpl extends MPJBaseServiceImpl<InvoiceMapper, Invoic
#### 发送时间:{} #### 发送时间:{}
"""; """;
String markdown = StrUtil.format(template, String markdown = StrUtil.format(template,
contract.getContractNo(), contract.getName(), invoice.getInvoiceNo(), invoice.getInvoiceAmount(), DateUtil.formatDate(invoice.getInvoicingTime()), invoice.getRemark(), DateUtil.now()); contract.getContractNo(), contract.getName(), invoice.getInvoiceNo(), invoice.getInvoiceAmount(), invoice.getInvoicingTime(), invoice.getRemark(), TimeUtil.formatNormal(LocalDateTime.now()));
content.put("text", markdown); content.put("text", markdown);
var msg = JsonUtil.createObj().put("msgtype", "markdown").set("markdown", content); var msg = JsonUtil.createObj().put("msgtype", "markdown").set("markdown", content);
......
...@@ -8,7 +8,7 @@ import io.github.linpeilie.Converter; ...@@ -8,7 +8,7 @@ import io.github.linpeilie.Converter;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.dromara.hutool.core.array.ArrayUtil; import org.dromara.hutool.core.array.ArrayUtil;
import org.dromara.hutool.core.collection.CollUtil; import org.dromara.hutool.core.collection.CollUtil;
import org.dromara.hutool.core.date.DateUtil; import org.dromara.hutool.core.date.TimeUtil;
import org.dromara.hutool.core.lang.Assert; import org.dromara.hutool.core.lang.Assert;
import org.dromara.hutool.core.lang.Opt; import org.dromara.hutool.core.lang.Opt;
import org.dromara.hutool.core.map.MapUtil; import org.dromara.hutool.core.map.MapUtil;
...@@ -32,6 +32,7 @@ import vion.vo.RoleVO; ...@@ -32,6 +32,7 @@ import vion.vo.RoleVO;
import vion.vo.UserVO; import vion.vo.UserVO;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
...@@ -196,7 +197,7 @@ public class PaymentServiceImpl extends MPJBaseServiceImpl<PaymentMapper, Paymen ...@@ -196,7 +197,7 @@ public class PaymentServiceImpl extends MPJBaseServiceImpl<PaymentMapper, Paymen
#### 发送时间:{} #### 发送时间:{}
"""; """;
String markdown = StrUtil.format(template, String markdown = StrUtil.format(template,
contract.getContractNo(), contract.getName(), payment.getPaymentAmount(), DateUtil.formatDate(payment.getCollectionTime()), payment.getRemark(), DateUtil.now()); contract.getContractNo(), contract.getName(), payment.getPaymentAmount(), payment.getCollectionTime(), payment.getRemark(), TimeUtil.formatNormal(LocalDateTime.now()));
content.put("text", markdown); content.put("text", markdown);
var msg = JsonUtil.createObj().put("msgtype", "markdown").set("markdown", content); var msg = JsonUtil.createObj().put("msgtype", "markdown").set("markdown", content);
......
...@@ -18,7 +18,7 @@ import org.dromara.hutool.core.array.ArrayUtil; ...@@ -18,7 +18,7 @@ import org.dromara.hutool.core.array.ArrayUtil;
import org.dromara.hutool.core.collection.CollUtil; import org.dromara.hutool.core.collection.CollUtil;
import org.dromara.hutool.core.collection.ListUtil; import org.dromara.hutool.core.collection.ListUtil;
import org.dromara.hutool.core.data.id.IdUtil; import org.dromara.hutool.core.data.id.IdUtil;
import org.dromara.hutool.core.date.DateUtil; import org.dromara.hutool.core.date.TimeUtil;
import org.dromara.hutool.core.io.file.FileNameUtil; import org.dromara.hutool.core.io.file.FileNameUtil;
import org.dromara.hutool.core.io.file.FileUtil; import org.dromara.hutool.core.io.file.FileUtil;
import org.dromara.hutool.core.lang.Opt; import org.dromara.hutool.core.lang.Opt;
...@@ -44,6 +44,7 @@ import vion.vo.UserVO; ...@@ -44,6 +44,7 @@ import vion.vo.UserVO;
import java.io.File; import java.io.File;
import java.io.IOException; import java.io.IOException;
import java.time.LocalDateTime;
import java.util.*; import java.util.*;
import java.util.stream.Collectors; import java.util.stream.Collectors;
...@@ -73,15 +74,14 @@ public class PointInfoServiceImpl extends MPJBaseServiceImpl<PointInfoMapper, Po ...@@ -73,15 +74,14 @@ public class PointInfoServiceImpl extends MPJBaseServiceImpl<PointInfoMapper, Po
@Override @Override
public Object frontSubmit(PointInfoDTO dto) { public Object frontSubmit(PointInfoDTO dto) {
Object obj = insRec(dto); Object obj = insRec(dto);
if (obj instanceof Map) { if (obj instanceof Map map) {
Map<String, Long> map = (Map<String, Long>) obj;
Opt.ofNullable(new String[]{dto.getOpenid(), dto.getNickname()}) Opt.ofNullable(new String[]{dto.getOpenid(), dto.getNickname()})
.filter(ArrayUtil::isAllNotNull) .filter(ArrayUtil::isAllNotNull)
.ifPresent(l -> { .ifPresent(l -> {
String openid = l[0]; String openid = l[0];
String nickname = l[1]; String nickname = l[1];
RPointWx pointWx = new RPointWx(); RPointWx pointWx = new RPointWx();
pointWx.setPointId(map.get("id")); pointWx.setPointId((Long) map.get("id"));
pointWx.setOpenid(openid); pointWx.setOpenid(openid);
pointWx.setWxName(nickname); pointWx.setWxName(nickname);
pointWxService.save(pointWx); pointWxService.save(pointWx);
...@@ -227,7 +227,7 @@ public class PointInfoServiceImpl extends MPJBaseServiceImpl<PointInfoMapper, Po ...@@ -227,7 +227,7 @@ public class PointInfoServiceImpl extends MPJBaseServiceImpl<PointInfoMapper, Po
String orgName = infile.getOriginalFilename(); String orgName = infile.getOriginalFilename();
String mainName = FileNameUtil.mainName(orgName); String mainName = FileNameUtil.mainName(orgName);
String fileExt = FileNameUtil.extName(orgName); String fileExt = FileNameUtil.extName(orgName);
String filename = StrUtil.format("{}_{}.{}", mainName, DateUtil.format(new Date(), "yyyyMMdd_HHmmssSSS"), fileExt); String filename = StrUtil.format("{}_{}.{}", mainName, TimeUtil.format(LocalDateTime.now(), "yyyyMMdd_HHmmssSSS"), fileExt);
String path = getPath(id, dto, filename); String path = getPath(id, dto, filename);
File file = FileUtil.touch(path); File file = FileUtil.touch(path);
try { try {
...@@ -484,7 +484,7 @@ public class PointInfoServiceImpl extends MPJBaseServiceImpl<PointInfoMapper, Po ...@@ -484,7 +484,7 @@ public class PointInfoServiceImpl extends MPJBaseServiceImpl<PointInfoMapper, Po
List<WxMpTemplateData> wxMpTemplateDataList = ListUtil.of( List<WxMpTemplateData> wxMpTemplateDataList = ListUtil.of(
new WxMpTemplateData("thing4", pointInfo.getProjectName()), new WxMpTemplateData("thing4", pointInfo.getProjectName()),
new WxMpTemplateData("phrase11", statusMap.get(pointInfo.getStatus())), new WxMpTemplateData("phrase11", statusMap.get(pointInfo.getStatus())),
new WxMpTemplateData("time3", DateUtil.formatDateTime(new Date())), new WxMpTemplateData("time3", TimeUtil.formatNormal(LocalDateTime.now())),
new WxMpTemplateData("thing18", content)); new WxMpTemplateData("thing18", content));
return wechatMod.sendMsg("IzPvAwx4zgXZmm4bwMc8Pka6piBK2sUf4zf9xA4hkNk", openid, wxMpTemplateDataList, StrUtil.format("{}?uuid={}", url, pointInfo.getUuid())); return wechatMod.sendMsg("IzPvAwx4zgXZmm4bwMc8Pka6piBK2sUf4zf9xA4hkNk", openid, wxMpTemplateDataList, StrUtil.format("{}?uuid={}", url, pointInfo.getUuid()));
} }
......
package vion.service.impl; package vion.service.impl;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import vion.model.RContractProduct; import org.springframework.stereotype.Service;
import vion.mapper.RContractProductMapper; import vion.mapper.RContractProductMapper;
import vion.model.RContractProduct;
import vion.service.IRContractProductService; import vion.service.IRContractProductService;
/** /**
* @author HlQ * @author HlQ
* @date 2024/3/26 * @date 2024/3/26
......
...@@ -5,6 +5,7 @@ import org.springframework.stereotype.Service; ...@@ -5,6 +5,7 @@ import org.springframework.stereotype.Service;
import vion.mapper.RContractStoreMapper; import vion.mapper.RContractStoreMapper;
import vion.model.RContractStore; import vion.model.RContractStore;
import vion.service.IRContractStoreService; import vion.service.IRContractStoreService;
/** /**
* @author HlQ * @author HlQ
* @date 2023/11/29 * @date 2023/11/29
......
...@@ -5,6 +5,7 @@ import org.springframework.stereotype.Service; ...@@ -5,6 +5,7 @@ import org.springframework.stereotype.Service;
import vion.mapper.RContractTeamMapper; import vion.mapper.RContractTeamMapper;
import vion.model.RContractTeam; import vion.model.RContractTeam;
import vion.service.IRContractTeamService; import vion.service.IRContractTeamService;
/** /**
* @author HlQ * @author HlQ
* @date 2023/12/26 * @date 2023/12/26
......
...@@ -5,6 +5,7 @@ import org.springframework.stereotype.Service; ...@@ -5,6 +5,7 @@ import org.springframework.stereotype.Service;
import vion.mapper.RContractUserMapper; import vion.mapper.RContractUserMapper;
import vion.model.RContractUser; import vion.model.RContractUser;
import vion.service.IRContractUserService; import vion.service.IRContractUserService;
/** /**
* @author HlQ * @author HlQ
* @date 2023/12/28 * @date 2023/12/28
......
...@@ -5,6 +5,7 @@ import org.springframework.stereotype.Service; ...@@ -5,6 +5,7 @@ import org.springframework.stereotype.Service;
import vion.mapper.RPointDeviceMapper; import vion.mapper.RPointDeviceMapper;
import vion.model.RPointDevice; import vion.model.RPointDevice;
import vion.service.IRPointDeviceService; import vion.service.IRPointDeviceService;
/** /**
* @author HlQ * @author HlQ
* @date 2024/1/12 * @date 2024/1/12
......
...@@ -5,6 +5,7 @@ import org.springframework.stereotype.Service; ...@@ -5,6 +5,7 @@ import org.springframework.stereotype.Service;
import vion.mapper.RPointWxMapper; import vion.mapper.RPointWxMapper;
import vion.model.RPointWx; import vion.model.RPointWx;
import vion.service.IRPointWxService; import vion.service.IRPointWxService;
/** /**
* @author HlQ * @author HlQ
* @date 2024/1/12 * @date 2024/1/12
......
...@@ -5,6 +5,7 @@ import org.springframework.stereotype.Service; ...@@ -5,6 +5,7 @@ import org.springframework.stereotype.Service;
import vion.mapper.RRepairDeviceMapper; import vion.mapper.RRepairDeviceMapper;
import vion.model.RRepairDevice; import vion.model.RRepairDevice;
import vion.service.IRRepairDeviceService; import vion.service.IRRepairDeviceService;
/** /**
* @author HlQ * @author HlQ
* @date 2024/1/25 * @date 2024/1/25
......
...@@ -5,6 +5,7 @@ import org.springframework.stereotype.Service; ...@@ -5,6 +5,7 @@ import org.springframework.stereotype.Service;
import vion.mapper.RRoleResourceMapper; import vion.mapper.RRoleResourceMapper;
import vion.model.RRoleResource; import vion.model.RRoleResource;
import vion.service.IRRoleResourceService; import vion.service.IRRoleResourceService;
/** /**
* @author HlQ * @author HlQ
* @date 2023/11/28 * @date 2023/11/28
......
package vion.service.impl; package vion.service.impl;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import vion.model.RStoreConfederate; import org.springframework.stereotype.Service;
import vion.mapper.RStoreConfederateMapper; import vion.mapper.RStoreConfederateMapper;
import vion.model.RStoreConfederate;
import vion.service.IRStoreConfederateService; import vion.service.IRStoreConfederateService;
@Service @Service
......
...@@ -5,6 +5,7 @@ import org.springframework.stereotype.Service; ...@@ -5,6 +5,7 @@ import org.springframework.stereotype.Service;
import vion.mapper.RStoreTagMapper; import vion.mapper.RStoreTagMapper;
import vion.model.RStoreTag; import vion.model.RStoreTag;
import vion.service.IRStoreTagService; import vion.service.IRStoreTagService;
/** /**
* @author HlQ * @author HlQ
* @date 2024/1/30 * @date 2024/1/30
......
...@@ -5,6 +5,7 @@ import org.springframework.stereotype.Service; ...@@ -5,6 +5,7 @@ import org.springframework.stereotype.Service;
import vion.mapper.RStoreUserMapper; import vion.mapper.RStoreUserMapper;
import vion.model.RStoreUser; import vion.model.RStoreUser;
import vion.service.IRStoreUserService; import vion.service.IRStoreUserService;
/** /**
* @author HlQ * @author HlQ
* @date 2023/12/27 * @date 2023/12/27
......
...@@ -5,6 +5,7 @@ import org.springframework.stereotype.Service; ...@@ -5,6 +5,7 @@ import org.springframework.stereotype.Service;
import vion.mapper.RUserRoleMapper; import vion.mapper.RUserRoleMapper;
import vion.model.RUserRole; import vion.model.RUserRole;
import vion.service.IRUserRoleService; import vion.service.IRUserRoleService;
/** /**
* @author HlQ * @author HlQ
* @date 2023/11/28 * @date 2023/11/28
......
...@@ -5,6 +5,7 @@ import org.springframework.stereotype.Service; ...@@ -5,6 +5,7 @@ import org.springframework.stereotype.Service;
import vion.mapper.RejectInfoMapper; import vion.mapper.RejectInfoMapper;
import vion.model.RejectInfo; import vion.model.RejectInfo;
import vion.service.IRejectInfoService; import vion.service.IRejectInfoService;
/** /**
* @author HlQ * @author HlQ
* @date 2024/1/8 * @date 2024/1/8
......
...@@ -7,7 +7,7 @@ import io.github.linpeilie.Converter; ...@@ -7,7 +7,7 @@ import io.github.linpeilie.Converter;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.dromara.hutool.core.array.ArrayUtil; import org.dromara.hutool.core.array.ArrayUtil;
import org.dromara.hutool.core.data.id.IdUtil; import org.dromara.hutool.core.data.id.IdUtil;
import org.dromara.hutool.core.date.DateUtil; import org.dromara.hutool.core.date.TimeUtil;
import org.dromara.hutool.core.io.file.FileNameUtil; import org.dromara.hutool.core.io.file.FileNameUtil;
import org.dromara.hutool.core.io.file.FileUtil; import org.dromara.hutool.core.io.file.FileUtil;
import org.dromara.hutool.core.lang.Opt; import org.dromara.hutool.core.lang.Opt;
...@@ -29,8 +29,8 @@ import vion.vo.UserVO; ...@@ -29,8 +29,8 @@ import vion.vo.UserVO;
import java.io.File; import java.io.File;
import java.io.IOException; import java.io.IOException;
import java.time.LocalDateTime;
import java.util.Arrays; import java.util.Arrays;
import java.util.Date;
import java.util.List; import java.util.List;
import java.util.stream.Collectors; import java.util.stream.Collectors;
...@@ -99,7 +99,8 @@ public class RepairRecServiceImpl extends MPJBaseServiceImpl<RepairRecMapper, Re ...@@ -99,7 +99,8 @@ public class RepairRecServiceImpl extends MPJBaseServiceImpl<RepairRecMapper, Re
String orgName = infile.getOriginalFilename(); String orgName = infile.getOriginalFilename();
String mainName = FileNameUtil.mainName(orgName); String mainName = FileNameUtil.mainName(orgName);
String fileExt = FileNameUtil.extName(orgName); String fileExt = FileNameUtil.extName(orgName);
String filename = StrUtil.format("{}_{}.{}", mainName, DateUtil.format(new Date(), "yyyyMMdd_HHmmssSSS"), fileExt); String filename = StrUtil.format("{}_{}.{}", mainName,
TimeUtil.format(LocalDateTime.now(), "yyyyMMdd_HHmmssSSS"), fileExt);
String path = String path =
fileUrl + FileUtil.FILE_SEPARATOR + "repairRec" + FileUtil.FILE_SEPARATOR + id + FileUtil.FILE_SEPARATOR + filename; fileUrl + FileUtil.FILE_SEPARATOR + "repairRec" + FileUtil.FILE_SEPARATOR + id + FileUtil.FILE_SEPARATOR + filename;
File file = FileUtil.touch(path); File file = FileUtil.touch(path);
...@@ -152,7 +153,7 @@ public class RepairRecServiceImpl extends MPJBaseServiceImpl<RepairRecMapper, Re ...@@ -152,7 +153,7 @@ public class RepairRecServiceImpl extends MPJBaseServiceImpl<RepairRecMapper, Re
### 发送时间:{} ### 发送时间:{}
""", repairRecVO.getProjectName(), Opt.ofBlankAble(repairRecVO.getTrackingNumber()).orElse("暂无"), """, repairRecVO.getProjectName(), Opt.ofBlankAble(repairRecVO.getTrackingNumber()).orElse("暂无"),
deviceNoStr, deviceNoStr,
Opt.ofBlankAble(DateUtil.formatDate(repairRecVO.getShipDate())).orElse("暂无"), DateUtil.now()); Opt.ofBlankAble(repairRecVO.getShipDate().toString()).orElse("暂无"), TimeUtil.formatNormal(LocalDateTime.now()));
content.put("text", text); content.put("text", text);
var msg = JsonUtil.createObj().put("msgtype", "markdown").set("markdown", content); var msg = JsonUtil.createObj().put("msgtype", "markdown").set("markdown", content);
......
...@@ -5,7 +5,7 @@ import com.github.yulichang.base.MPJBaseServiceImpl; ...@@ -5,7 +5,7 @@ import com.github.yulichang.base.MPJBaseServiceImpl;
import io.github.linpeilie.Converter; import io.github.linpeilie.Converter;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.dromara.hutool.core.collection.ListUtil; import org.dromara.hutool.core.collection.ListUtil;
import org.dromara.hutool.core.date.DateUtil; import org.dromara.hutool.core.date.TimeUtil;
import org.dromara.hutool.core.lang.Opt; import org.dromara.hutool.core.lang.Opt;
import org.dromara.hutool.core.map.MapUtil; import org.dromara.hutool.core.map.MapUtil;
import org.dromara.hutool.core.tree.MapTree; import org.dromara.hutool.core.tree.MapTree;
...@@ -57,8 +57,8 @@ public class ResourceServiceImpl extends MPJBaseServiceImpl<ResourceMapper, Reso ...@@ -57,8 +57,8 @@ public class ResourceServiceImpl extends MPJBaseServiceImpl<ResourceMapper, Reso
.put("sortCode", v.getSortCode()) .put("sortCode", v.getSortCode())
.put("type", v.getType()) .put("type", v.getType())
.put("remark", v.getRemark()) .put("remark", v.getRemark())
.put("createTime", DateUtil.formatDateTime(v.getCreateTime())) .put("createTime", TimeUtil.formatNormal(v.getCreateTime()))
.put("updateTime", DateUtil.formatDateTime(v.getUpdateTime())) .put("updateTime", TimeUtil.formatNormal(v.getUpdateTime()))
.build(); .build();
node.setExtra(map); node.setExtra(map);
nodeList.add(node); nodeList.add(node);
......
package vion.service.impl; package vion.service.impl;
import org.dromara.hutool.core.collection.CollUtil;
import org.dromara.hutool.core.collection.ListUtil;
import org.dromara.hutool.core.lang.Opt;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.toolkit.Db; import com.baomidou.mybatisplus.extension.toolkit.Db;
...@@ -10,6 +7,9 @@ import com.github.yulichang.base.MPJBaseServiceImpl; ...@@ -10,6 +7,9 @@ import com.github.yulichang.base.MPJBaseServiceImpl;
import io.github.linpeilie.Converter; import io.github.linpeilie.Converter;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import me.chanjar.weixin.mp.bean.template.WxMpTemplateData; import me.chanjar.weixin.mp.bean.template.WxMpTemplateData;
import org.dromara.hutool.core.collection.CollUtil;
import org.dromara.hutool.core.collection.ListUtil;
import org.dromara.hutool.core.lang.Opt;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import vion.dto.ServiceOrderDTO; import vion.dto.ServiceOrderDTO;
import vion.mapper.ServiceOrderMapper; import vion.mapper.ServiceOrderMapper;
......
package vion.service.impl; package vion.service.impl;
import cn.dev33.satoken.stp.StpUtil; import cn.dev33.satoken.stp.StpUtil;
import org.dromara.hutool.core.date.DateUtil; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.github.yulichang.base.MPJBaseServiceImpl;
import io.github.linpeilie.Converter;
import lombok.RequiredArgsConstructor;
import org.dromara.hutool.core.date.TimeUtil;
import org.dromara.hutool.core.io.file.FileNameUtil; import org.dromara.hutool.core.io.file.FileNameUtil;
import org.dromara.hutool.core.io.file.FileUtil; import org.dromara.hutool.core.io.file.FileUtil;
import org.dromara.hutool.core.lang.Opt; import org.dromara.hutool.core.lang.Opt;
import org.dromara.hutool.core.text.StrUtil; import org.dromara.hutool.core.text.StrUtil;
import org.dromara.hutool.crypto.SecureUtil; import org.dromara.hutool.crypto.SecureUtil;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.github.yulichang.base.MPJBaseServiceImpl;
import io.github.linpeilie.Converter;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
...@@ -28,8 +28,8 @@ import vion.vo.UserVO; ...@@ -28,8 +28,8 @@ import vion.vo.UserVO;
import java.io.File; import java.io.File;
import java.io.IOException; import java.io.IOException;
import java.time.LocalDateTime;
import java.util.Arrays; import java.util.Arrays;
import java.util.Date;
import java.util.List; import java.util.List;
/** /**
...@@ -125,7 +125,7 @@ public class SettlementDiffServiceImpl extends MPJBaseServiceImpl<SettlementDiff ...@@ -125,7 +125,7 @@ public class SettlementDiffServiceImpl extends MPJBaseServiceImpl<SettlementDiff
String orgName = infile.getOriginalFilename(); String orgName = infile.getOriginalFilename();
String mainName = FileNameUtil.mainName(orgName); String mainName = FileNameUtil.mainName(orgName);
String fileExt = FileNameUtil.extName(orgName); String fileExt = FileNameUtil.extName(orgName);
String filename = StrUtil.format("{}_{}.{}", mainName, DateUtil.format(new Date(), "yyyyMMdd_HHmmssSSS"), fileExt); String filename = StrUtil.format("{}_{}.{}", mainName, TimeUtil.format(LocalDateTime.now(), "yyyyMMdd_HHmmssSSS"), fileExt);
String path = fileUrl + FileUtil.FILE_SEPARATOR + "settlementDiff" + FileUtil.FILE_SEPARATOR + dto.getContractNo() + FileUtil.FILE_SEPARATOR + filename; String path = fileUrl + FileUtil.FILE_SEPARATOR + "settlementDiff" + FileUtil.FILE_SEPARATOR + dto.getContractNo() + FileUtil.FILE_SEPARATOR + filename;
File file = FileUtil.touch(path); File file = FileUtil.touch(path);
try { try {
......
...@@ -7,7 +7,7 @@ import io.github.linpeilie.Converter; ...@@ -7,7 +7,7 @@ import io.github.linpeilie.Converter;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.dromara.hutool.core.array.ArrayUtil; import org.dromara.hutool.core.array.ArrayUtil;
import org.dromara.hutool.core.data.id.IdUtil; import org.dromara.hutool.core.data.id.IdUtil;
import org.dromara.hutool.core.date.DateUtil; import org.dromara.hutool.core.date.TimeUtil;
import org.dromara.hutool.core.io.file.FileNameUtil; import org.dromara.hutool.core.io.file.FileNameUtil;
import org.dromara.hutool.core.io.file.FileUtil; import org.dromara.hutool.core.io.file.FileUtil;
import org.dromara.hutool.core.lang.Opt; import org.dromara.hutool.core.lang.Opt;
...@@ -29,8 +29,8 @@ import vion.vo.UserVO; ...@@ -29,8 +29,8 @@ import vion.vo.UserVO;
import java.io.File; import java.io.File;
import java.io.IOException; import java.io.IOException;
import java.time.LocalDateTime;
import java.util.Arrays; import java.util.Arrays;
import java.util.Date;
import java.util.List; import java.util.List;
import java.util.stream.Collectors; import java.util.stream.Collectors;
...@@ -94,7 +94,8 @@ public class SparePartServiceImpl extends MPJBaseServiceImpl<SparePartMapper, Sp ...@@ -94,7 +94,8 @@ public class SparePartServiceImpl extends MPJBaseServiceImpl<SparePartMapper, Sp
String orgName = infile.getOriginalFilename(); String orgName = infile.getOriginalFilename();
String mainName = FileNameUtil.mainName(orgName); String mainName = FileNameUtil.mainName(orgName);
String fileExt = FileNameUtil.extName(orgName); String fileExt = FileNameUtil.extName(orgName);
String filename = StrUtil.format("{}_{}.{}", mainName, DateUtil.format(new Date(), "yyyyMMdd_HHmmssSSS"), fileExt); String filename = StrUtil.format("{}_{}.{}", mainName,
TimeUtil.format(LocalDateTime.now(), "yyyyMMdd_HHmmssSSS"), fileExt);
String path = fileUrl + FileUtil.FILE_SEPARATOR + "sparePart" + FileUtil.FILE_SEPARATOR + id + FileUtil.FILE_SEPARATOR + filename; String path = fileUrl + FileUtil.FILE_SEPARATOR + "sparePart" + FileUtil.FILE_SEPARATOR + id + FileUtil.FILE_SEPARATOR + filename;
File file = FileUtil.touch(path); File file = FileUtil.touch(path);
try { try {
...@@ -146,7 +147,7 @@ public class SparePartServiceImpl extends MPJBaseServiceImpl<SparePartMapper, Sp ...@@ -146,7 +147,7 @@ public class SparePartServiceImpl extends MPJBaseServiceImpl<SparePartMapper, Sp
### 发送时间:{} ### 发送时间:{}
""", sparePartVO.getProjectName(), Opt.ofBlankAble(sparePartVO.getTrackingNumber()).orElse("暂无"), """, sparePartVO.getProjectName(), Opt.ofBlankAble(sparePartVO.getTrackingNumber()).orElse("暂无"),
deviceNoStr, deviceNoStr,
Opt.ofBlankAble(DateUtil.formatDate(sparePartVO.getShipDate())).orElse("暂无"), DateUtil.now()); Opt.ofBlankAble(sparePartVO.getShipDate().toString()).orElse("暂无"), TimeUtil.formatNormal(LocalDateTime.now()));
content.put("text", text); content.put("text", text);
var msg = JsonUtil.createObj().put("msgtype", "markdown").set("markdown", content); var msg = JsonUtil.createObj().put("msgtype", "markdown").set("markdown", content);
......
...@@ -5,6 +5,7 @@ import org.springframework.stereotype.Service; ...@@ -5,6 +5,7 @@ import org.springframework.stereotype.Service;
import vion.mapper.StoreLogMapper; import vion.mapper.StoreLogMapper;
import vion.model.StoreLog; import vion.model.StoreLog;
import vion.service.IStoreLogService; import vion.service.IStoreLogService;
/** /**
* @author HlQ * @author HlQ
* @date 2023/12/27 * @date 2023/12/27
......
...@@ -18,7 +18,7 @@ import lombok.extern.slf4j.Slf4j; ...@@ -18,7 +18,7 @@ import lombok.extern.slf4j.Slf4j;
import org.dromara.hutool.core.array.ArrayUtil; import org.dromara.hutool.core.array.ArrayUtil;
import org.dromara.hutool.core.collection.CollUtil; import org.dromara.hutool.core.collection.CollUtil;
import org.dromara.hutool.core.collection.ListUtil; import org.dromara.hutool.core.collection.ListUtil;
import org.dromara.hutool.core.date.DateUtil; import org.dromara.hutool.core.date.TimeUtil;
import org.dromara.hutool.core.io.file.FileNameUtil; import org.dromara.hutool.core.io.file.FileNameUtil;
import org.dromara.hutool.core.io.file.FileUtil; import org.dromara.hutool.core.io.file.FileUtil;
import org.dromara.hutool.core.lang.Opt; import org.dromara.hutool.core.lang.Opt;
...@@ -52,6 +52,8 @@ import vion.vo.UserVO; ...@@ -52,6 +52,8 @@ import vion.vo.UserVO;
import java.awt.*; import java.awt.*;
import java.io.File; import java.io.File;
import java.io.IOException; import java.io.IOException;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.List; import java.util.List;
import java.util.*; import java.util.*;
import java.util.function.Function; import java.util.function.Function;
...@@ -253,7 +255,7 @@ public class StoreServiceImpl extends MPJBaseServiceImpl<StoreMapper, Store> imp ...@@ -253,7 +255,7 @@ public class StoreServiceImpl extends MPJBaseServiceImpl<StoreMapper, Store> imp
String orgName = infile.getOriginalFilename(); String orgName = infile.getOriginalFilename();
String mainName = FileNameUtil.mainName(orgName); String mainName = FileNameUtil.mainName(orgName);
String fileExt = FileNameUtil.extName(orgName); String fileExt = FileNameUtil.extName(orgName);
String filename = StrUtil.format("{}_{}.{}", mainName, DateUtil.format(new Date(), "yyyyMMdd_HHmmssSSS"), fileExt); String filename = StrUtil.format("{}_{}.{}", mainName, TimeUtil.format(LocalDateTime.now(), "yyyyMMdd_HHmmssSSS"), fileExt);
String path = fileUrl + FileUtil.FILE_SEPARATOR + statusDTO.getStoreId() + FileUtil.FILE_SEPARATOR + statusDTO.getSourceId() + FileUtil.FILE_SEPARATOR + filename; String path = fileUrl + FileUtil.FILE_SEPARATOR + statusDTO.getStoreId() + FileUtil.FILE_SEPARATOR + statusDTO.getSourceId() + FileUtil.FILE_SEPARATOR + filename;
File file = FileUtil.touch(path); File file = FileUtil.touch(path);
try { try {
...@@ -315,11 +317,11 @@ public class StoreServiceImpl extends MPJBaseServiceImpl<StoreMapper, Store> imp ...@@ -315,11 +317,11 @@ public class StoreServiceImpl extends MPJBaseServiceImpl<StoreMapper, Store> imp
.filter(CollUtil::isNotEmpty) .filter(CollUtil::isNotEmpty)
.map(l -> l.getFirst().getNodeDate()) .map(l -> l.getFirst().getNodeDate())
.ifPresent(masterContract::setFinalDate); .ifPresent(masterContract::setFinalDate);
Date finalDate = masterContract.getFinalDate(); LocalDate finalDate = masterContract.getFinalDate();
if (ArrayUtil.isAllNotNull(finalDate, warrantyPeriod)) { if (ArrayUtil.isAllNotNull(finalDate, warrantyPeriod)) {
Date finalDateEnd = DateUtil.offsetMonth(finalDate, warrantyPeriod); LocalDate finalDateEnd = finalDate.plusMonths(warrantyPeriod);
boolean isIn = DateUtil.isIn(new Date(), finalDate, finalDateEnd); boolean isIn = TimeUtil.isIn(LocalDate.now(), finalDate, finalDateEnd);
if (isIn) { if (isIn) {
s.setMaintainStatus("在保"); s.setMaintainStatus("在保");
Store updStore = new Store(); Store updStore = new Store();
...@@ -339,7 +341,7 @@ public class StoreServiceImpl extends MPJBaseServiceImpl<StoreMapper, Store> imp ...@@ -339,7 +341,7 @@ public class StoreServiceImpl extends MPJBaseServiceImpl<StoreMapper, Store> imp
.filter(contract -> ObjUtil.equals(contract.getType(), 1)) .filter(contract -> ObjUtil.equals(contract.getType(), 1))
.map(Contract::getMaintainEdate) .map(Contract::getMaintainEdate)
.filter(Objects::nonNull) .filter(Objects::nonNull)
.forEach(maintainEdate -> maintainStatusSet.add(DateUtil.compare(maintainEdate, new Date()) >= 0)); .forEach(maintainEdate -> maintainStatusSet.add(!maintainEdate.isBefore(LocalDate.now())));
s.setMaintainStatus(CollUtil.isEmpty(maintainStatusSet) ? s.getMaintainStatus() : maintainStatusSet.contains(true) ? "在保" : "脱保"); s.setMaintainStatus(CollUtil.isEmpty(maintainStatusSet) ? s.getMaintainStatus() : maintainStatusSet.contains(true) ? "在保" : "脱保");
} }
Store updStore = new Store(); Store updStore = new Store();
...@@ -456,7 +458,7 @@ public class StoreServiceImpl extends MPJBaseServiceImpl<StoreMapper, Store> imp ...@@ -456,7 +458,7 @@ public class StoreServiceImpl extends MPJBaseServiceImpl<StoreMapper, Store> imp
### 提交日期:{} ### 提交日期:{}
### 内容: ### 内容:
> {} > {}
""", storeVO.getName(), user.getUsername(), DateUtil.formatDate(storeLog.getLogDate()), logText); """, storeVO.getName(), user.getUsername(), storeLog.getLogDate(), logText);
var markdown = JsonUtil.createObj() var markdown = JsonUtil.createObj()
.put("title", "项目日志提醒") .put("title", "项目日志提醒")
.put("text", text); .put("text", text);
...@@ -476,7 +478,7 @@ public class StoreServiceImpl extends MPJBaseServiceImpl<StoreMapper, Store> imp ...@@ -476,7 +478,7 @@ public class StoreServiceImpl extends MPJBaseServiceImpl<StoreMapper, Store> imp
### 提交日期:{} ### 提交日期:{}
### 内容: ### 内容:
> {} > {}
""", atUser, storeVO.getName(), user.getUsername(), DateUtil.formatDate(storeLog.getLogDate()), logText); """, atUser, storeVO.getName(), user.getUsername(), storeLog.getLogDate(), logText);
markdown.put("text", text); markdown.put("text", text);
} }
...@@ -653,8 +655,7 @@ public class StoreServiceImpl extends MPJBaseServiceImpl<StoreMapper, Store> imp ...@@ -653,8 +655,7 @@ public class StoreServiceImpl extends MPJBaseServiceImpl<StoreMapper, Store> imp
watermark.setText(user.getUsername() + "-" + user.getPhone()); watermark.setText(user.getUsername() + "-" + user.getPhone());
watermark.setFont(new Font("SimSun", Font.PLAIN, 16)); watermark.setFont(new Font("SimSun", Font.PLAIN, 16));
WatermarkUtil.addWatermark(workbook, watermark); WatermarkUtil.addWatermark(workbook, watermark);
AttachmentExportUtil.export(workbook, StrUtil.format("项目资料_{}", DateUtil.formatDateTime(new Date())), AttachmentExportUtil.export(workbook, StrUtil.format("项目资料_{}", TimeUtil.formatNormal(LocalDateTime.now())), response);
response);
} catch (IOException e) { } catch (IOException e) {
throw new RuntimeException(e); throw new RuntimeException(e);
} }
...@@ -694,7 +695,7 @@ public class StoreServiceImpl extends MPJBaseServiceImpl<StoreMapper, Store> imp ...@@ -694,7 +695,7 @@ public class StoreServiceImpl extends MPJBaseServiceImpl<StoreMapper, Store> imp
.put("title", "项目日志提醒") .put("title", "项目日志提醒")
.put("text", StrUtil.format(""" .put("text", StrUtil.format("""
#### 项目:[{}]请及时提交日志 #### 项目:[{}]请及时提交日志
#### 发送时间:{}""", storeName, DateUtil.now())); #### 发送时间:{}""", storeName, TimeUtil.formatNormal(LocalDateTime.now())));
var msg = JsonUtil.createObj().put("msgtype", "markdown").set("markdown", content); var msg = JsonUtil.createObj().put("msgtype", "markdown").set("markdown", content);
jsonObj.set("msg", msg); jsonObj.set("msg", msg);
...@@ -723,7 +724,7 @@ public class StoreServiceImpl extends MPJBaseServiceImpl<StoreMapper, Store> imp ...@@ -723,7 +724,7 @@ public class StoreServiceImpl extends MPJBaseServiceImpl<StoreMapper, Store> imp
#### 资料名称: #### 资料名称:
{} {}
#### 发送时间:{}""", storeName, contractNo, userVO.getUsername(), sourceName, fileNameStr, #### 发送时间:{}""", storeName, contractNo, userVO.getUsername(), sourceName, fileNameStr,
DateUtil.now())); TimeUtil.formatNormal(LocalDateTime.now())));
var msg = JsonUtil.createObj().put("msgtype", "markdown").set("markdown", content); var msg = JsonUtil.createObj().put("msgtype", "markdown").set("markdown", content);
jsonObj.set("msg", msg); jsonObj.set("msg", msg);
......
...@@ -5,6 +5,7 @@ import org.springframework.stereotype.Service; ...@@ -5,6 +5,7 @@ import org.springframework.stereotype.Service;
import vion.mapper.TagMapper; import vion.mapper.TagMapper;
import vion.model.Tag; import vion.model.Tag;
import vion.service.ITagService; import vion.service.ITagService;
/** /**
* @author HlQ * @author HlQ
* @date 2024/1/30 * @date 2024/1/30
......
...@@ -13,7 +13,7 @@ import org.dromara.hutool.core.collection.ListUtil; ...@@ -13,7 +13,7 @@ import org.dromara.hutool.core.collection.ListUtil;
import org.dromara.hutool.core.collection.set.SetUtil; import org.dromara.hutool.core.collection.set.SetUtil;
import org.dromara.hutool.core.data.MaskingUtil; import org.dromara.hutool.core.data.MaskingUtil;
import org.dromara.hutool.core.data.id.IdUtil; import org.dromara.hutool.core.data.id.IdUtil;
import org.dromara.hutool.core.date.DateUtil; import org.dromara.hutool.core.date.TimeUtil;
import org.dromara.hutool.core.io.file.FileNameUtil; import org.dromara.hutool.core.io.file.FileNameUtil;
import org.dromara.hutool.core.io.file.FileUtil; import org.dromara.hutool.core.io.file.FileUtil;
import org.dromara.hutool.core.lang.Assert; import org.dromara.hutool.core.lang.Assert;
...@@ -43,6 +43,8 @@ import vion.vo.UserVO; ...@@ -43,6 +43,8 @@ import vion.vo.UserVO;
import java.io.File; import java.io.File;
import java.io.IOException; import java.io.IOException;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.*; import java.util.*;
import java.util.stream.Collectors; import java.util.stream.Collectors;
...@@ -344,7 +346,7 @@ public class TaskServiceImpl extends MPJBaseServiceImpl<TaskMapper, Task> implem ...@@ -344,7 +346,7 @@ public class TaskServiceImpl extends MPJBaseServiceImpl<TaskMapper, Task> implem
List<WxMpTemplateData> wxMpTemplateDataList = ListUtil.of( List<WxMpTemplateData> wxMpTemplateDataList = ListUtil.of(
new WxMpTemplateData("character_string21", existTask.getUuid()), new WxMpTemplateData("character_string21", existTask.getUuid()),
new WxMpTemplateData("thing12", MaskingUtil.chineseName(user.getUsername())), new WxMpTemplateData("thing12", MaskingUtil.chineseName(user.getUsername())),
new WxMpTemplateData("time11", DateUtil.formatDateTime(new Date())), new WxMpTemplateData("time11", TimeUtil.formatNormal(LocalDateTime.now())),
new WxMpTemplateData("thing20", existTask.getFaultDescription().length() > 20 ? StrUtil.sub(existTask.getFaultDescription(), 0, 17) + "..." : existTask.getFaultDescription()), new WxMpTemplateData("thing20", existTask.getFaultDescription().length() > 20 ? StrUtil.sub(existTask.getFaultDescription(), 0, 17) + "..." : existTask.getFaultDescription()),
new WxMpTemplateData("phrase25", statusMap.get(existTask.getStatus()))); new WxMpTemplateData("phrase25", statusMap.get(existTask.getStatus())));
String sentMsg = wechatMod.sendMsg("H3zWJysLWrcxrUlrgqPnjDV7LyWLaml_Ap9WsLuQDCs", openid, wxMpTemplateDataList, null); String sentMsg = wechatMod.sendMsg("H3zWJysLWrcxrUlrgqPnjDV7LyWLaml_Ap9WsLuQDCs", openid, wxMpTemplateDataList, null);
...@@ -366,7 +368,8 @@ public class TaskServiceImpl extends MPJBaseServiceImpl<TaskMapper, Task> implem ...@@ -366,7 +368,8 @@ public class TaskServiceImpl extends MPJBaseServiceImpl<TaskMapper, Task> implem
String orgName = infile.getOriginalFilename(); String orgName = infile.getOriginalFilename();
String mainName = FileNameUtil.mainName(orgName); String mainName = FileNameUtil.mainName(orgName);
String fileExt = FileNameUtil.extName(orgName); String fileExt = FileNameUtil.extName(orgName);
String filename = StrUtil.format("{}_{}.{}", mainName, DateUtil.format(new Date(), "yyyyMMdd_HHmmssSSS"), fileExt); String filename = StrUtil.format("{}_{}.{}", mainName,
TimeUtil.format(LocalDateTime.now(), "yyyyMMdd_HHmmssSSS"), fileExt);
String path = fileUrl + FileUtil.FILE_SEPARATOR + task.getStoreId() + FileUtil.FILE_SEPARATOR + task.getId() + FileUtil.FILE_SEPARATOR + filename; String path = fileUrl + FileUtil.FILE_SEPARATOR + task.getStoreId() + FileUtil.FILE_SEPARATOR + task.getId() + FileUtil.FILE_SEPARATOR + filename;
File file = FileUtil.touch(path); File file = FileUtil.touch(path);
try { try {
...@@ -410,7 +413,7 @@ public class TaskServiceImpl extends MPJBaseServiceImpl<TaskMapper, Task> implem ...@@ -410,7 +413,7 @@ public class TaskServiceImpl extends MPJBaseServiceImpl<TaskMapper, Task> implem
FaultLog faultLog = new FaultLog(); FaultLog faultLog = new FaultLog();
faultLog.setOperator(vo.getActiveUser()); faultLog.setOperator(vo.getActiveUser());
faultLog.setContent("工单正在处理中"); faultLog.setContent("工单正在处理中");
faultLog.setCreateTime(new Date()); faultLog.setCreateTime(LocalDateTime.now());
vo.getFaultLogList().add(faultLog); vo.getFaultLogList().add(faultLog);
} }
return vo; return vo;
...@@ -442,7 +445,7 @@ public class TaskServiceImpl extends MPJBaseServiceImpl<TaskMapper, Task> implem ...@@ -442,7 +445,7 @@ public class TaskServiceImpl extends MPJBaseServiceImpl<TaskMapper, Task> implem
} }
@Override @Override
public List<Map<String, Object>> peopleAnalysis(Date startDate, Date endDate, Integer source, List<Long> userIds) { public List<Map<String, Object>> peopleAnalysis(LocalDate startDate, LocalDate endDate, Integer source, List<Long> userIds) {
List<Task> taskList = this.lambdaQuery() List<Task> taskList = this.lambdaQuery()
.between(ArrayUtil.isAllNotNull(startDate, endDate), Task::getRepairTime, startDate, endDate) .between(ArrayUtil.isAllNotNull(startDate, endDate), Task::getRepairTime, startDate, endDate)
.isNotNull(ObjUtil.equals(source, 1), Task::getTaskTempId) .isNotNull(ObjUtil.equals(source, 1), Task::getTaskTempId)
...@@ -469,7 +472,7 @@ public class TaskServiceImpl extends MPJBaseServiceImpl<TaskMapper, Task> implem ...@@ -469,7 +472,7 @@ public class TaskServiceImpl extends MPJBaseServiceImpl<TaskMapper, Task> implem
var hourSum = list.stream().mapToDouble(v -> taskId2HourMap.getOrDefault(v.getId(), 0D)).sum(); var hourSum = list.stream().mapToDouble(v -> taskId2HourMap.getOrDefault(v.getId(), 0D)).sum();
var inList = list.stream().filter(v -> v.getStatus().equals(2)).toList(); var inList = list.stream().filter(v -> v.getStatus().equals(2)).toList();
var expList = inList.stream().filter(v -> v.getExpDate().after(new Date())).toList(); var expList = inList.stream().filter(v -> v.getExpDate().isAfter(LocalDate.now())).toList();
var finishList = taskList.stream().filter(t -> user2TaskIdMap.getOrDefault(p, List.of()).contains(t.getId())).toList(); var finishList = taskList.stream().filter(t -> user2TaskIdMap.getOrDefault(p, List.of()).contains(t.getId())).toList();
var storeIdSet = list.stream().map(Task::getStoreId).collect(Collectors.toSet()); var storeIdSet = list.stream().map(Task::getStoreId).collect(Collectors.toSet());
var storeNameList = storeList.stream().filter(v -> storeIdSet.contains(v.getId())).distinct().map(Store::getName).collect(Collectors.joining(",")); var storeNameList = storeList.stream().filter(v -> storeIdSet.contains(v.getId())).distinct().map(Store::getName).collect(Collectors.joining(","));
...@@ -488,7 +491,7 @@ public class TaskServiceImpl extends MPJBaseServiceImpl<TaskMapper, Task> implem ...@@ -488,7 +491,7 @@ public class TaskServiceImpl extends MPJBaseServiceImpl<TaskMapper, Task> implem
} }
@Override @Override
public List<Map<String, Object>> proAnalysis(Date startDate, Date endDate, Integer source, List<Long> userIds) { public List<Map<String, Object>> proAnalysis(LocalDate startDate, LocalDate endDate, Integer source, List<Long> userIds) {
List<Task> taskList = this.lambdaQuery() List<Task> taskList = this.lambdaQuery()
.between(ArrayUtil.isAllNotNull(startDate, endDate), Task::getRepairTime, startDate, endDate) .between(ArrayUtil.isAllNotNull(startDate, endDate), Task::getRepairTime, startDate, endDate)
.isNotNull(ObjUtil.equals(source, 1), Task::getTaskTempId) .isNotNull(ObjUtil.equals(source, 1), Task::getTaskTempId)
...@@ -508,7 +511,7 @@ public class TaskServiceImpl extends MPJBaseServiceImpl<TaskMapper, Task> implem ...@@ -508,7 +511,7 @@ public class TaskServiceImpl extends MPJBaseServiceImpl<TaskMapper, Task> implem
var hourSum = list.stream().mapToDouble(v -> taskId2HourMap.getOrDefault(v.getId(), 0D)).sum(); var hourSum = list.stream().mapToDouble(v -> taskId2HourMap.getOrDefault(v.getId(), 0D)).sum();
var inList = list.stream().filter(v -> v.getStatus().equals(2)).toList(); var inList = list.stream().filter(v -> v.getStatus().equals(2)).toList();
var expList = inList.stream().filter(v -> v.getExpDate().after(new Date())).toList(); var expList = inList.stream().filter(v -> v.getExpDate().isAfter(LocalDate.now())).toList();
var finishList = list.stream().filter(v -> v.getStatus().equals(3)).toList(); var finishList = list.stream().filter(v -> v.getStatus().equals(3)).toList();
var userSet = list.stream().map(Task::getActiveUser).distinct().map(id2UsernameMap::get).collect(Collectors.joining(",")); var userSet = list.stream().map(Task::getActiveUser).distinct().map(id2UsernameMap::get).collect(Collectors.joining(","));
Map<String, Object> cntMap = Map.of("name", storeId2NameMap.get(p), Map<String, Object> cntMap = Map.of("name", storeId2NameMap.get(p),
...@@ -525,7 +528,7 @@ public class TaskServiceImpl extends MPJBaseServiceImpl<TaskMapper, Task> implem ...@@ -525,7 +528,7 @@ public class TaskServiceImpl extends MPJBaseServiceImpl<TaskMapper, Task> implem
} }
@Override @Override
public Map<String, Map<String, List<Task>>> summaryAnalysis(Date startDate, Date endDate, Integer source) { public Map<String, Map<String, List<Task>>> summaryAnalysis(LocalDate startDate, LocalDate endDate, Integer source) {
Map<Long, String> id2UsernameMap = userService.list().stream().collect(Collectors.toMap(User::getId, User::getUsername)); Map<Long, String> id2UsernameMap = userService.list().stream().collect(Collectors.toMap(User::getId, User::getUsername));
Map<Long, String> id2StoreNameMap = storeService.list().stream().collect(Collectors.toMap(Store::getId, Store::getName)); Map<Long, String> id2StoreNameMap = storeService.list().stream().collect(Collectors.toMap(Store::getId, Store::getName));
...@@ -564,7 +567,8 @@ public class TaskServiceImpl extends MPJBaseServiceImpl<TaskMapper, Task> implem ...@@ -564,7 +567,8 @@ public class TaskServiceImpl extends MPJBaseServiceImpl<TaskMapper, Task> implem
#### 发送时间:{} #### 发送时间:{}
"""; """;
String markdown = StrUtil.format(template, String markdown = StrUtil.format(template,
storeName, task.getUuid(), task.getRepairPeople(), task.getRepairPhone(), orderStatusMap.get(task.getStatus()), task.getFaultDescription(), DateUtil.now()); storeName, task.getUuid(), task.getRepairPeople(), task.getRepairPhone(),
orderStatusMap.get(task.getStatus()), task.getFaultDescription(), TimeUtil.formatNormal(LocalDateTime.now()));
content.put("markdown", markdown).put("btn_orientation", "1"); content.put("markdown", markdown).put("btn_orientation", "1");
var jsonArray = JsonUtil.createArr() var jsonArray = JsonUtil.createArr()
...@@ -593,7 +597,7 @@ public class TaskServiceImpl extends MPJBaseServiceImpl<TaskMapper, Task> implem ...@@ -593,7 +597,7 @@ public class TaskServiceImpl extends MPJBaseServiceImpl<TaskMapper, Task> implem
#### 发送时间:{} #### 发送时间:{}
"""; """;
String markdown = StrUtil.format(template, String markdown = StrUtil.format(template,
storeName, task.getRepairPeople(), task.getRepairPhone(), task.getFaultDescription(), DateUtil.now()); storeName, task.getRepairPeople(), task.getRepairPhone(), task.getFaultDescription(), TimeUtil.formatNormal(LocalDateTime.now()));
content.put("markdown", markdown).put("btn_orientation", "1"); content.put("markdown", markdown).put("btn_orientation", "1");
var jsonArray = JsonUtil.createArr() var jsonArray = JsonUtil.createArr()
...@@ -624,7 +628,7 @@ public class TaskServiceImpl extends MPJBaseServiceImpl<TaskMapper, Task> implem ...@@ -624,7 +628,7 @@ public class TaskServiceImpl extends MPJBaseServiceImpl<TaskMapper, Task> implem
#### 发送时间:{} #### 发送时间:{}
"""; """;
String markdown = StrUtil.format(template, String markdown = StrUtil.format(template,
storeName, task.getUuid(), task.getRepairPeople(), task.getRepairPhone(), orderStatusMap.get(task.getStatus()), task.getFaultDescription(), DateUtil.now()); storeName, task.getUuid(), task.getRepairPeople(), task.getRepairPhone(), orderStatusMap.get(task.getStatus()), task.getFaultDescription(), TimeUtil.formatNormal(LocalDateTime.now()));
content.put("markdown", markdown).put("btn_orientation", "1"); content.put("markdown", markdown).put("btn_orientation", "1");
var jsonArray = JsonUtil.createArr() var jsonArray = JsonUtil.createArr()
...@@ -657,7 +661,7 @@ public class TaskServiceImpl extends MPJBaseServiceImpl<TaskMapper, Task> implem ...@@ -657,7 +661,7 @@ public class TaskServiceImpl extends MPJBaseServiceImpl<TaskMapper, Task> implem
#### 发送时间:{} #### 发送时间:{}
"""; """;
String markdown = StrUtil.format(template, String markdown = StrUtil.format(template,
storeName, task.getUuid(), task.getRepairPeople(), task.getRepairPhone(), orderStatusMap.get(task.getStatus()), remark, DateUtil.now()); storeName, task.getUuid(), task.getRepairPeople(), task.getRepairPhone(), orderStatusMap.get(task.getStatus()), remark, TimeUtil.formatNormal(LocalDateTime.now()));
content.put("markdown", markdown).put("btn_orientation", "1"); content.put("markdown", markdown).put("btn_orientation", "1");
var jsonArray = JsonUtil.createArr() var jsonArray = JsonUtil.createArr()
......
...@@ -12,7 +12,7 @@ import lombok.extern.slf4j.Slf4j; ...@@ -12,7 +12,7 @@ import lombok.extern.slf4j.Slf4j;
import org.dromara.hutool.core.array.ArrayUtil; import org.dromara.hutool.core.array.ArrayUtil;
import org.dromara.hutool.core.bean.BeanUtil; import org.dromara.hutool.core.bean.BeanUtil;
import org.dromara.hutool.core.collection.CollUtil; import org.dromara.hutool.core.collection.CollUtil;
import org.dromara.hutool.core.date.DateUtil; import org.dromara.hutool.core.date.TimeUtil;
import org.dromara.hutool.core.io.file.FileNameUtil; import org.dromara.hutool.core.io.file.FileNameUtil;
import org.dromara.hutool.core.io.file.FileUtil; import org.dromara.hutool.core.io.file.FileUtil;
import org.dromara.hutool.core.lang.Opt; import org.dromara.hutool.core.lang.Opt;
...@@ -35,8 +35,8 @@ import vion.vo.TaskTempVO; ...@@ -35,8 +35,8 @@ import vion.vo.TaskTempVO;
import java.io.File; import java.io.File;
import java.io.IOException; import java.io.IOException;
import java.time.LocalDateTime;
import java.util.Arrays; import java.util.Arrays;
import java.util.Date;
import java.util.Map; import java.util.Map;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors; import java.util.stream.Collectors;
...@@ -94,7 +94,7 @@ public class TaskTempServiceImpl extends MPJBaseServiceImpl<TaskTempMapper, Task ...@@ -94,7 +94,7 @@ public class TaskTempServiceImpl extends MPJBaseServiceImpl<TaskTempMapper, Task
String orgName = infile.getOriginalFilename(); String orgName = infile.getOriginalFilename();
String mainName = FileNameUtil.mainName(orgName); String mainName = FileNameUtil.mainName(orgName);
String fileExt = FileNameUtil.extName(orgName); String fileExt = FileNameUtil.extName(orgName);
String filename = StrUtil.format("{}_{}.{}", mainName, DateUtil.format(new Date(), "yyyyMMdd_HHmmssSSS"), fileExt); String filename = StrUtil.format("{}_{}.{}", mainName, TimeUtil.format(LocalDateTime.now(), "yyyyMMdd_HHmmssSSS"), fileExt);
String path = fileUrl + FileUtil.FILE_SEPARATOR + 0 + FileUtil.FILE_SEPARATOR + taskTemp.getId() + FileUtil.FILE_SEPARATOR + filename; String path = fileUrl + FileUtil.FILE_SEPARATOR + 0 + FileUtil.FILE_SEPARATOR + taskTemp.getId() + FileUtil.FILE_SEPARATOR + filename;
File file = FileUtil.touch(path); File file = FileUtil.touch(path);
try { try {
...@@ -164,7 +164,7 @@ public class TaskTempServiceImpl extends MPJBaseServiceImpl<TaskTempMapper, Task ...@@ -164,7 +164,7 @@ public class TaskTempServiceImpl extends MPJBaseServiceImpl<TaskTempMapper, Task
#### 发送时间:{} #### 发送时间:{}
"""; """;
String markdown = StrUtil.format(template, String markdown = StrUtil.format(template,
taskTemp.getStoreName(), taskTemp.getRepairPeople(), taskTemp.getRepairPhone(), taskTemp.getFaultDescription(), DateUtil.now()); taskTemp.getStoreName(), taskTemp.getRepairPeople(), taskTemp.getRepairPhone(), taskTemp.getFaultDescription(), TimeUtil.formatNormal(LocalDateTime.now()));
var content = JsonUtil.createObj() var content = JsonUtil.createObj()
.put("title", "客户提交工单,请及时处理哦~_~") .put("title", "客户提交工单,请及时处理哦~_~")
.put("markdown", markdown).put("btn_orientation", "1"); .put("markdown", markdown).put("btn_orientation", "1");
......
...@@ -28,6 +28,7 @@ import vion.service.IUserService; ...@@ -28,6 +28,7 @@ import vion.service.IUserService;
import vion.vo.RoleVO; import vion.vo.RoleVO;
import vion.vo.UserVO; import vion.vo.UserVO;
import java.time.LocalDate;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
...@@ -103,7 +104,7 @@ public class UserServiceImpl extends MPJBaseServiceImpl<UserMapper, User> implem ...@@ -103,7 +104,7 @@ public class UserServiceImpl extends MPJBaseServiceImpl<UserMapper, User> implem
@Override @Override
public void syncUser() { public void syncUser() {
Opt.ofEmptyAble(this.list()) Opt.ofEmptyAble(this.lambdaQuery().ge(User::getModifyTime, LocalDate.now()).list())
.ifPresent(l -> l.forEach(user -> { .ifPresent(l -> l.forEach(user -> {
redissonClient.getBucket(RedisKeyEnum.DING_PREFIX.getVal() + RedisKeyEnum.USER_ID.getVal() + user.getId()).set(user); redissonClient.getBucket(RedisKeyEnum.DING_PREFIX.getVal() + RedisKeyEnum.USER_ID.getVal() + user.getId()).set(user);
redissonClient.getBucket(RedisKeyEnum.DING_PREFIX.getVal() + RedisKeyEnum.USER_NAME.getVal() + user.getUsername()).set(user); redissonClient.getBucket(RedisKeyEnum.DING_PREFIX.getVal() + RedisKeyEnum.USER_NAME.getVal() + user.getUsername()).set(user);
......
...@@ -109,8 +109,8 @@ public class DingMod { ...@@ -109,8 +109,8 @@ public class DingMod {
jsonNode.path("result").withArray("data_list") jsonNode.path("result").withArray("data_list")
.forEach(v -> userIdList.add(v.asText())); .forEach(v -> userIdList.add(v.asText()));
Long nextCursor = jsonNode.path("result").path("next_cursor").asLong(); long nextCursor = jsonNode.path("result").path("next_cursor").asLong(-1L);
if (ObjUtil.isNotNull(nextCursor)) { if (nextCursor > 0) {
offset = nextCursor; offset = nextCursor;
} else { } else {
flag = false; flag = false;
......
...@@ -58,7 +58,7 @@ public class WechatMod { ...@@ -58,7 +58,7 @@ public class WechatMod {
/** /**
* 生成微信网页授权链接用于 pc 端故障保修、点位设计等页面,绑定openid * 生成微信网页授权链接用于 pc 端故障保修、点位设计等页面,绑定openid
* *
* @param id 生成单子的 id * @param id 生成单子的 id
* @param flag 1:故障保修 2:点位设计 * @param flag 1:故障保修 2:点位设计
* @return java.lang.String * @return java.lang.String
*/ */
...@@ -72,7 +72,7 @@ public class WechatMod { ...@@ -72,7 +72,7 @@ public class WechatMod {
* 关注公众号的用户,直接获取 openid,返回前端,前端提交工单(或其他单子)时带上 openid。 * 关注公众号的用户,直接获取 openid,返回前端,前端提交工单(或其他单子)时带上 openid。
* 未关注公众号的用户,直接返回一个页面,提示用户关注公众号。 * 未关注公众号的用户,直接返回一个页面,提示用户关注公众号。
* *
* @param id 提交单子的主键id * @param id 提交单子的主键id
* @param flag 1:故障保修 2:点位设计 3:备件申请 4:设备返修 * @param flag 1:故障保修 2:点位设计 3:备件申请 4:设备返修
* @param code 授权码 * @param code 授权码
* @return java.lang.Object * @return java.lang.Object
...@@ -101,7 +101,7 @@ public class WechatMod { ...@@ -101,7 +101,7 @@ public class WechatMod {
/** /**
* 点位设计详情页获取绑定微信二维码 * 点位设计详情页获取绑定微信二维码
* *
* @param uuid 点位记录 uuid * @param uuid 点位记录 uuid
* @return java.lang.String * @return java.lang.String
*/ */
public String genBindOpenidQRCode(String uuid) { public String genBindOpenidQRCode(String uuid) {
......
...@@ -115,7 +115,7 @@ public class JsonUtil { ...@@ -115,7 +115,7 @@ public class JsonUtil {
* 使用 {@link #parseObject(String, Class)} 时,在@JsonTypeInfo(use = JsonTypeInfo.Id.CLASS) 的场景下, * 使用 {@link #parseObject(String, Class)} 时,在@JsonTypeInfo(use = JsonTypeInfo.Id.CLASS) 的场景下,
* 如果 text 没有 class 属性,则会报错。此时,使用这个方法,可以解决。 * 如果 text 没有 class 属性,则会报错。此时,使用这个方法,可以解决。
* *
* @param text 字符串 * @param text 字符串
* @param clazz 类型 * @param clazz 类型
* @return 对象 * @return 对象
*/ */
...@@ -154,7 +154,7 @@ public class JsonUtil { ...@@ -154,7 +154,7 @@ public class JsonUtil {
/** /**
* 解析 JSON 字符串成指定类型的对象,如果解析失败,则返回 null * 解析 JSON 字符串成指定类型的对象,如果解析失败,则返回 null
* *
* @param text 字符串 * @param text 字符串
* @param typeReference 类型引用 * @param typeReference 类型引用
* @return 指定类型的对象 * @return 指定类型的对象
*/ */
......
...@@ -45,7 +45,7 @@ public class AttachmentExportUtil { ...@@ -45,7 +45,7 @@ public class AttachmentExportUtil {
private static void clear(Workbook workbook) { private static void clear(Workbook workbook) {
if (workbook instanceof SXSSFWorkbook) { if (workbook instanceof SXSSFWorkbook) {
((SXSSFWorkbook)workbook).dispose(); ((SXSSFWorkbook) workbook).dispose();
} }
try { try {
......
...@@ -4,7 +4,8 @@ import com.fasterxml.jackson.annotation.JsonFormat; ...@@ -4,7 +4,8 @@ import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;
import java.util.Date; import java.time.LocalDateTime;
@Getter @Getter
@Setter @Setter
public class ConstructionTeamVO { public class ConstructionTeamVO {
...@@ -21,8 +22,8 @@ public class ConstructionTeamVO { ...@@ -21,8 +22,8 @@ public class ConstructionTeamVO {
private String city; private String city;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date createTime; private LocalDateTime createTime;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date updateTime; private LocalDateTime updateTime;
} }
\ No newline at end of file \ No newline at end of file
...@@ -5,7 +5,8 @@ import lombok.Getter; ...@@ -5,7 +5,8 @@ import lombok.Getter;
import lombok.Setter; import lombok.Setter;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.Date; import java.time.LocalDate;
import java.time.LocalDateTime;
/** /**
* 合同收款方式 * 合同收款方式
...@@ -34,13 +35,13 @@ public class ContractPaymentVO { ...@@ -34,13 +35,13 @@ public class ContractPaymentVO {
* 收款日期 * 收款日期
*/ */
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date paymentDate; private LocalDate paymentDate;
/** /**
* 节点日期,指合同到这一阶段时的时间 * 节点日期,指合同到这一阶段时的时间
*/ */
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date nodeDate; private LocalDate nodeDate;
/** /**
* 创建者 * 创建者
...@@ -56,11 +57,11 @@ public class ContractPaymentVO { ...@@ -56,11 +57,11 @@ public class ContractPaymentVO {
* 创建时间 * 创建时间
*/ */
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date createTime; private LocalDateTime createTime;
/** /**
* 修改时间 * 修改时间
*/ */
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date modifyTime; private LocalDateTime modifyTime;
} }
\ No newline at end of file \ No newline at end of file
...@@ -10,7 +10,8 @@ import vion.model.ContractPayment; ...@@ -10,7 +10,8 @@ import vion.model.ContractPayment;
import vion.model.RContractProduct; import vion.model.RContractProduct;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.Date; import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.List; import java.util.List;
@Getter @Getter
...@@ -42,21 +43,21 @@ public class ContractVO { ...@@ -42,21 +43,21 @@ public class ContractVO {
*/ */
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
@ExcelColumn(order = 4, title = "签订日期", format = "yyyy-MM-dd") @ExcelColumn(order = 4, title = "签订日期", format = "yyyy-MM-dd")
private Date signDate; private LocalDate signDate;
/** /**
* 合同维保开始日期 * 合同维保开始日期
*/ */
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
@ExcelColumn(order = 5, title = "维保开始日期", format = "yyyy-MM-dd") @ExcelColumn(order = 5, title = "维保开始日期", format = "yyyy-MM-dd")
private Date maintainSdate; private LocalDate maintainSdate;
/** /**
* 合同维保结束日期 * 合同维保结束日期
*/ */
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
@ExcelColumn(order = 6, title = "维保结束日期", format = "yyyy-MM-dd") @ExcelColumn(order = 6, title = "维保结束日期", format = "yyyy-MM-dd")
private Date maintainEdate; private LocalDate maintainEdate;
/** /**
* 合同进度:1-签订 2-到货 3-系统验收(初验) 4-项目验收(终验) 5-质保 6-第一笔维保款 7-第二笔维保款 8-第三笔维保款 9-维保进度款 10-维保验收款 * 合同进度:1-签订 2-到货 3-系统验收(初验) 4-项目验收(终验) 5-质保 6-第一笔维保款 7-第二笔维保款 8-第三笔维保款 9-维保进度款 10-维保验收款
...@@ -131,13 +132,13 @@ public class ContractVO { ...@@ -131,13 +132,13 @@ public class ContractVO {
* 创建时间 * 创建时间
*/ */
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date createTime; private LocalDateTime createTime;
/** /**
* 修改时间 * 修改时间
*/ */
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date modifyTime; private LocalDateTime modifyTime;
/** /**
* 合同质保周期(月) * 合同质保周期(月)
...@@ -148,7 +149,7 @@ public class ContractVO { ...@@ -148,7 +149,7 @@ public class ContractVO {
* 终验日期 * 终验日期
*/ */
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date finalDate; private LocalDate finalDate;
/** /**
* 财务状态 * 财务状态
...@@ -170,7 +171,7 @@ public class ContractVO { ...@@ -170,7 +171,7 @@ public class ContractVO {
* 录入时间 * 录入时间
*/ */
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date entryTime; private LocalDateTime entryTime;
/** /**
* 合同关联的项目名 * 合同关联的项目名
......
...@@ -5,7 +5,8 @@ import lombok.Getter; ...@@ -5,7 +5,8 @@ import lombok.Getter;
import lombok.Setter; import lombok.Setter;
import vion.model.RContractUser; import vion.model.RContractUser;
import java.util.Date; import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.List; import java.util.List;
@Getter @Getter
...@@ -41,7 +42,7 @@ public class DeliverLogVO { ...@@ -41,7 +42,7 @@ public class DeliverLogVO {
* 日志日期 * 日志日期
*/ */
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date logDate; private LocalDate logDate;
/** /**
* 干系人 * 干系人
...@@ -68,11 +69,11 @@ public class DeliverLogVO { ...@@ -68,11 +69,11 @@ public class DeliverLogVO {
* 创建时间 * 创建时间
*/ */
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date createTime; private LocalDateTime createTime;
/** /**
* 修改时间 * 修改时间
*/ */
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date updateTime; private LocalDateTime updateTime;
} }
\ No newline at end of file \ No newline at end of file
...@@ -5,7 +5,8 @@ import lombok.Getter; ...@@ -5,7 +5,8 @@ import lombok.Getter;
import lombok.Setter; import lombok.Setter;
import vion.model.FileInfo; import vion.model.FileInfo;
import java.util.Date; import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.List; import java.util.List;
@Getter @Getter
...@@ -48,13 +49,13 @@ public class DeliveryRecordVO { ...@@ -48,13 +49,13 @@ public class DeliveryRecordVO {
* 发货日期 * 发货日期
*/ */
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date shipDate; private LocalDate shipDate;
/** /**
* 到货签收日期 * 到货签收日期
*/ */
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date signDate; private LocalDate signDate;
/** /**
* 快递公司 * 快递公司
...@@ -72,21 +73,21 @@ public class DeliveryRecordVO { ...@@ -72,21 +73,21 @@ public class DeliveryRecordVO {
private String shippingRemark; private String shippingRemark;
/** /**
* 备注 * 备注
*/ */
private String remark; private String remark;
/** /**
* 创建时间 * 创建时间
*/ */
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date createTime; private LocalDateTime createTime;
/** /**
* 修改时间 * 修改时间
*/ */
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date updateTime; private LocalDateTime updateTime;
private List<FileInfo> fileList; private List<FileInfo> fileList;
......
...@@ -5,7 +5,8 @@ import lombok.Getter; ...@@ -5,7 +5,8 @@ import lombok.Getter;
import lombok.Setter; import lombok.Setter;
import vion.model.DeviceLog; import vion.model.DeviceLog;
import java.util.Date; import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.List; import java.util.List;
@Getter @Getter
...@@ -57,7 +58,7 @@ public class DeviceVO { ...@@ -57,7 +58,7 @@ public class DeviceVO {
* 入库日期 * 入库日期
*/ */
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date recDate; private LocalDate recDate;
/** /**
* 备注 * 备注
...@@ -65,10 +66,10 @@ public class DeviceVO { ...@@ -65,10 +66,10 @@ public class DeviceVO {
private String remark; private String remark;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date createTime; private LocalDateTime createTime;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date updateTime; private LocalDateTime updateTime;
private List<DeviceLog> logList; private List<DeviceLog> logList;
} }
\ No newline at end of file \ No newline at end of file
...@@ -5,38 +5,64 @@ import com.fasterxml.jackson.annotation.JsonIgnore; ...@@ -5,38 +5,64 @@ import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;
import java.util.Date; import java.time.LocalDateTime;
@Getter @Getter
@Setter @Setter
public class FileInfoVO { public class FileInfoVO {
private Long id; private Long id;
/** 门店id */ /**
* 门店id
*/
private Long storeId; private Long storeId;
/** 文件扩展名 */ /**
* 文件扩展名
*/
private String type; private String type;
/** 文件来源 */ /**
* 文件来源
*/
private Integer sourceType; private Integer sourceType;
/** 文件来源id */ /**
* 文件来源id
*/
private Long sourceId; private Long sourceId;
/** 合同id */ /**
* 合同id
*/
private Long contractId; private Long contractId;
/** 合同编号 */ /**
* 合同编号
*/
private String contractNo; private String contractNo;
/** 合同名称 */ /**
* 合同名称
*/
private String contractName; private String contractName;
/** 文件名称 */ /**
* 文件名称
*/
private String name; private String name;
/** 文件地址 */ /**
* 文件地址
*/
@JsonIgnore @JsonIgnore
private String url; private String url;
/** 创建时间 */ /**
* 创建时间
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date createTime; private LocalDateTime createTime;
/** 备注 */ /**
* 备注
*/
private String remark; private String remark;
/** sha256 */ /**
* sha256
*/
private String sha256; private String sha256;
/** 上传人 */ /**
* 上传人
*/
private String uploader; private String uploader;
} }
...@@ -5,7 +5,7 @@ import lombok.Getter; ...@@ -5,7 +5,7 @@ import lombok.Getter;
import lombok.Setter; import lombok.Setter;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.Date; import java.time.LocalDate;
/** /**
* @author HlQ * @author HlQ
...@@ -16,13 +16,21 @@ import java.util.Date; ...@@ -16,13 +16,21 @@ import java.util.Date;
public class FinancialAgeVO { public class FinancialAgeVO {
private String contractNo; private String contractNo;
private String contractName; private String contractName;
/** 账款类型 */ /**
* 账款类型
*/
private Integer status; private Integer status;
/** 账款金额 */ /**
* 账款金额
*/
private BigDecimal amount; private BigDecimal amount;
/** 应付日期 */ /**
* 应付日期
*/
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date payableDate; private LocalDate payableDate;
/** 财龄 */ /**
* 财龄
*/
private Integer age; private Integer age;
} }
...@@ -4,7 +4,7 @@ import com.fasterxml.jackson.annotation.JsonFormat; ...@@ -4,7 +4,7 @@ import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;
import java.util.Date; import java.time.LocalDateTime;
@Getter @Getter
@Setter @Setter
...@@ -44,7 +44,7 @@ public class FormVO { ...@@ -44,7 +44,7 @@ public class FormVO {
* 签字时间 * 签字时间
*/ */
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date signTime; private LocalDateTime signTime;
/** /**
* 唯一uuid * 唯一uuid
...@@ -66,8 +66,8 @@ public class FormVO { ...@@ -66,8 +66,8 @@ public class FormVO {
private Long updateUser; private Long updateUser;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date createTime; private LocalDateTime createTime;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date updateTime; private LocalDateTime updateTime;
} }
\ No newline at end of file \ No newline at end of file
...@@ -4,7 +4,8 @@ import com.fasterxml.jackson.annotation.JsonFormat; ...@@ -4,7 +4,8 @@ import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;
import java.util.Date; import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.List; import java.util.List;
@Getter @Getter
...@@ -15,37 +16,59 @@ public class InspectVO { ...@@ -15,37 +16,59 @@ public class InspectVO {
private Long storeId; private Long storeId;
/** 巡检时间 */ /**
* 巡检时间
*/
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date inspectDate; private LocalDate inspectDate;
/** 巡检方式(0远程、1现场) */ /**
* 巡检方式(0远程、1现场)
*/
private Integer type; private Integer type;
/** 状态(0进行中、1待审核、2已完成、3、驳回) */ /**
* 状态(0进行中、1待审核、2已完成、3、驳回)
*/
private Integer status; private Integer status;
/** 巡检人 */ /**
* 巡检人
*/
private Integer inspectUser; private Integer inspectUser;
/** 审核人 */ /**
* 审核人
*/
private Integer reviewer; private Integer reviewer;
/** 巡检时间 */ /**
* 巡检时间
*/
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date finishDate; private LocalDate finishDate;
/** 审核时间 */ /**
* 审核时间
*/
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date auditDate; private LocalDate auditDate;
/** 创建时间 */ /**
* 创建时间
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date createTime; private LocalDateTime createTime;
/** 修改时间 */ /**
* 修改时间
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date modifyTime; private LocalDateTime modifyTime;
/** 备注 */ /**
* 备注
*/
private String remark; private String remark;
/** 集团id */ /**
* 集团id
*/
private Long accountId; private Long accountId;
private String accountName; private String accountName;
......
...@@ -7,7 +7,8 @@ import lombok.Getter; ...@@ -7,7 +7,8 @@ import lombok.Getter;
import lombok.Setter; import lombok.Setter;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.Date; import java.time.LocalDate;
import java.time.LocalDateTime;
@Getter @Getter
...@@ -27,7 +28,7 @@ public class InvoiceVO { ...@@ -27,7 +28,7 @@ public class InvoiceVO {
*/ */
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
@ExcelColumn(order = 1, title = "开票时间", format = "yyyy-MM-dd") @ExcelColumn(order = 1, title = "开票时间", format = "yyyy-MM-dd")
private Date invoicingTime; private LocalDate invoicingTime;
/** /**
* 发票金额 * 发票金额
...@@ -55,8 +56,8 @@ public class InvoiceVO { ...@@ -55,8 +56,8 @@ public class InvoiceVO {
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@ExcelColumn(order = 6, title = "录入时间") @ExcelColumn(order = 6, title = "录入时间")
private Date createTime; private LocalDateTime createTime;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date updateTime; private LocalDateTime updateTime;
} }
\ No newline at end of file \ No newline at end of file
...@@ -7,7 +7,8 @@ import lombok.Getter; ...@@ -7,7 +7,8 @@ import lombok.Getter;
import lombok.Setter; import lombok.Setter;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.Date; import java.time.LocalDate;
import java.time.LocalDateTime;
@Getter @Getter
@Setter @Setter
...@@ -32,7 +33,7 @@ public class PaymentVO { ...@@ -32,7 +33,7 @@ public class PaymentVO {
*/ */
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
@ExcelColumn(order = 2, title = "收款时间", format = "yyyy-MM-dd") @ExcelColumn(order = 2, title = "收款时间", format = "yyyy-MM-dd")
private Date collectionTime; private LocalDate collectionTime;
/** /**
* 收款金额 * 收款金额
...@@ -47,8 +48,8 @@ public class PaymentVO { ...@@ -47,8 +48,8 @@ public class PaymentVO {
private String remark; private String remark;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date createTime; private LocalDateTime createTime;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date updateTime; private LocalDateTime updateTime;
} }
\ No newline at end of file \ No newline at end of file
...@@ -9,7 +9,7 @@ import lombok.Setter; ...@@ -9,7 +9,7 @@ import lombok.Setter;
import vion.model.FileInfo; import vion.model.FileInfo;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.Date; import java.time.LocalDateTime;
import java.util.List; import java.util.List;
/** /**
...@@ -234,18 +234,22 @@ public class PointInfoVO { ...@@ -234,18 +234,22 @@ public class PointInfoVO {
*/ */
private String uuid; private String uuid;
/** 绑定单子的微信昵称列表 */ /**
* 绑定单子的微信昵称列表
*/
private List<String> wxNameList; private List<String> wxNameList;
/** 单子施工后的设备序列号列表 */ /**
* 单子施工后的设备序列号列表
*/
private List<String> deviceNoList; private List<String> deviceNoList;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date createTime; private LocalDateTime createTime;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date updateTime; private LocalDateTime updateTime;
/** /**
* 客户上传的图纸文件 * 客户上传的图纸文件
......
...@@ -5,7 +5,8 @@ import com.fasterxml.jackson.annotation.JsonFormat; ...@@ -5,7 +5,8 @@ import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;
import java.util.Date; import java.time.LocalDate;
import java.time.LocalDateTime;
@Getter @Getter
@Setter @Setter
...@@ -16,16 +17,22 @@ public class RContractTeamVO { ...@@ -16,16 +17,22 @@ public class RContractTeamVO {
* 合同id * 合同id
*/ */
private Long contractId; private Long contractId;
/** 合同编号 */ /**
* 合同编号
*/
private String contractNo; private String contractNo;
/** 合同名称 */ /**
* 合同名称
*/
private String contractName; private String contractName;
/** /**
* 施工队id * 施工队id
*/ */
private Long ctId; private Long ctId;
/** 施工队名称 */ /**
* 施工队名称
*/
private String teamName; private String teamName;
/** /**
...@@ -42,13 +49,13 @@ public class RContractTeamVO { ...@@ -42,13 +49,13 @@ public class RContractTeamVO {
* 分配日期 * 分配日期
*/ */
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date assignDate; private LocalDate assignDate;
/** /**
* 完成日期 * 完成日期
*/ */
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date finishDate; private LocalDate finishDate;
/** /**
* 施工状态 * 施工状态
...@@ -72,10 +79,10 @@ public class RContractTeamVO { ...@@ -72,10 +79,10 @@ public class RContractTeamVO {
private String remark; private String remark;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date createTime; private LocalDateTime createTime;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date updateTime; private LocalDateTime updateTime;
private Integer contractStatus; private Integer contractStatus;
} }
\ No newline at end of file \ No newline at end of file
...@@ -5,7 +5,8 @@ import lombok.Getter; ...@@ -5,7 +5,8 @@ import lombok.Getter;
import lombok.Setter; import lombok.Setter;
import vion.model.RRepairDevice; import vion.model.RRepairDevice;
import java.util.Date; import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.List; import java.util.List;
/** /**
...@@ -102,7 +103,7 @@ public class RepairRecVO { ...@@ -102,7 +103,7 @@ public class RepairRecVO {
* 发货日期 * 发货日期
*/ */
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date shipDate; private LocalDate shipDate;
/** /**
* 快递公司 * 快递公司
...@@ -132,10 +133,10 @@ public class RepairRecVO { ...@@ -132,10 +133,10 @@ public class RepairRecVO {
private String remark; private String remark;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date createTime; private LocalDateTime createTime;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date updateTime; private LocalDateTime updateTime;
private List<RRepairDevice> repairDeviceList; private List<RRepairDevice> repairDeviceList;
......
...@@ -4,7 +4,7 @@ import com.fasterxml.jackson.annotation.JsonFormat; ...@@ -4,7 +4,7 @@ import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;
import java.util.Date; import java.time.LocalDateTime;
/** /**
* @author HlQ * @author HlQ
...@@ -55,12 +55,16 @@ public class ResourceVO { ...@@ -55,12 +55,16 @@ public class ResourceVO {
*/ */
private String remark; private String remark;
/** 创建时间 */ /**
* 创建时间
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date createTime; private LocalDateTime createTime;
/** 更新时间 */ /**
* 更新时间
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date updateTime; private LocalDateTime updateTime;
} }
\ No newline at end of file \ No newline at end of file
...@@ -4,7 +4,7 @@ import com.fasterxml.jackson.annotation.JsonFormat; ...@@ -4,7 +4,7 @@ import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;
import java.util.Date; import java.time.LocalDateTime;
/** /**
* @author HlQ * @author HlQ
...@@ -19,9 +19,9 @@ public class RoleVO { ...@@ -19,9 +19,9 @@ public class RoleVO {
private Integer status; private Integer status;
private String remark; private String remark;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date createTime; private LocalDateTime createTime;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date updateTime; private LocalDateTime updateTime;
private Long userId; private Long userId;
} }
...@@ -4,7 +4,7 @@ import com.fasterxml.jackson.annotation.JsonFormat; ...@@ -4,7 +4,7 @@ import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;
import java.util.Date; import java.time.LocalDateTime;
/** /**
* @author HlQ * @author HlQ
...@@ -15,68 +15,108 @@ import java.util.Date; ...@@ -15,68 +15,108 @@ import java.util.Date;
public class ServiceOrderVO { public class ServiceOrderVO {
private String projectName; private String projectName;
/** 报修人 */ /**
* 报修人
*/
private String submitter; private String submitter;
/** 报修人手机号码 */ /**
* 报修人手机号码
*/
private String submitPhone; private String submitPhone;
/** 报修时间 */ /**
* 报修时间
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date submitTime; private LocalDateTime submitTime;
/** 维修人 */ /**
* 维修人
*/
private String repairPeople; private String repairPeople;
/** 维修人手机号码*/ /**
* 维修人手机号码
*/
private String repairPhone; private String repairPhone;
/** 部门 */ /**
* 部门
*/
private String dept; private String dept;
/** 服务方式(1.电话支持 2.远程服务 3.现场服务) */ /**
* 服务方式(1.电话支持 2.远程服务 3.现场服务)
*/
private String serviceType; private String serviceType;
/** 耗时 */ /**
* 耗时
*/
private Double time; private Double time;
/** 故障内容 */ /**
* 故障内容
*/
private String faultContent; private String faultContent;
/** 维修结果 */ /**
* 维修结果
*/
private String repairRes; private String repairRes;
/** 客户评价 */ /**
* 客户评价
*/
private String review; private String review;
/** 工单id */ /**
* 工单id
*/
private Long taskId; private Long taskId;
/** 服务单状态 */ /**
* 服务单状态
*/
private Integer state; private Integer state;
/** 创建时间 */ /**
* 创建时间
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date createTime; private LocalDateTime createTime;
/** 更新时间 */ /**
* 更新时间
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date updateTime; private LocalDateTime updateTime;
/** 五星好评 */ /**
* 五星好评
*/
private Integer stars; private Integer stars;
/** 签字图片base64 */ /**
* 签字图片base64
*/
private String signPic; private String signPic;
/** 签字时间 */ /**
* 签字时间
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date signTime; private LocalDateTime signTime;
/** 完成时间 */ /**
* 完成时间
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date finishTime; private LocalDateTime finishTime;
/** 唯一id */ /**
* 唯一id
*/
private String unid; private String unid;
} }
...@@ -5,7 +5,7 @@ import lombok.Getter; ...@@ -5,7 +5,7 @@ import lombok.Getter;
import lombok.Setter; import lombok.Setter;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.Date; import java.time.LocalDateTime;
@Getter @Getter
@Setter @Setter
...@@ -51,5 +51,5 @@ public class SettlementDiffVO { ...@@ -51,5 +51,5 @@ public class SettlementDiffVO {
* 创建时间 * 创建时间
*/ */
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date createTime; private LocalDateTime createTime;
} }
\ No newline at end of file \ No newline at end of file
...@@ -8,7 +8,8 @@ import lombok.Getter; ...@@ -8,7 +8,8 @@ import lombok.Getter;
import lombok.Setter; import lombok.Setter;
import vion.model.RRepairDevice; import vion.model.RRepairDevice;
import java.util.Date; import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.List; import java.util.List;
/** /**
...@@ -95,7 +96,7 @@ public class SparePartVO { ...@@ -95,7 +96,7 @@ public class SparePartVO {
* 发货日期 * 发货日期
*/ */
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date shipDate; private LocalDate shipDate;
/** /**
* 快递公司 * 快递公司
...@@ -127,14 +128,16 @@ public class SparePartVO { ...@@ -127,14 +128,16 @@ public class SparePartVO {
*/ */
private String uuid; private String uuid;
/** 微信用户id */ /**
* 微信用户id
*/
private String openid; private String openid;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date createTime; private LocalDateTime createTime;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date updateTime; private LocalDateTime updateTime;
private List<RRepairDevice> repairDeviceList; private List<RRepairDevice> repairDeviceList;
......
...@@ -5,7 +5,8 @@ import lombok.Getter; ...@@ -5,7 +5,8 @@ import lombok.Getter;
import lombok.Setter; import lombok.Setter;
import vion.model.StoreLog; import vion.model.StoreLog;
import java.util.Date; import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.List; import java.util.List;
@Getter @Getter
...@@ -45,15 +46,15 @@ public class StoreVO { ...@@ -45,15 +46,15 @@ public class StoreVO {
*/ */
private Integer modifyUser; private Integer modifyUser;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date createTime; private LocalDateTime createTime;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date modifyTime; private LocalDateTime modifyTime;
/** /**
* 立项日期 * 立项日期
*/ */
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date estDate; private LocalDate estDate;
/** /**
* 备注 * 备注
*/ */
...@@ -89,7 +90,7 @@ public class StoreVO { ...@@ -89,7 +90,7 @@ public class StoreVO {
* 实际完成日期 * 实际完成日期
*/ */
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date finishDate; private LocalDate finishDate;
/** /**
* 完成百分比 * 完成百分比
*/ */
...@@ -112,7 +113,7 @@ public class StoreVO { ...@@ -112,7 +113,7 @@ public class StoreVO {
* 计划完成日期 * 计划完成日期
*/ */
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date planFinishDate; private LocalDate planFinishDate;
/** /**
* 项目规模 * 项目规模
......
...@@ -6,7 +6,7 @@ import lombok.Setter; ...@@ -6,7 +6,7 @@ import lombok.Setter;
import vion.model.FileInfo; import vion.model.FileInfo;
import vion.model.Task; import vion.model.Task;
import java.util.Date; import java.time.LocalDateTime;
import java.util.List; import java.util.List;
@Getter @Getter
...@@ -32,7 +32,7 @@ public class TaskTempVO { ...@@ -32,7 +32,7 @@ public class TaskTempVO {
* 报修时间 * 报修时间
*/ */
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date repairTime; private LocalDateTime repairTime;
/** /**
* 故障说明 * 故障说明
*/ */
...@@ -50,9 +50,9 @@ public class TaskTempVO { ...@@ -50,9 +50,9 @@ public class TaskTempVO {
*/ */
private Integer status; private Integer status;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date createTime; private LocalDateTime createTime;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date modifyTime; private LocalDateTime modifyTime;
private String remark; private String remark;
/** /**
* 工程师姓名 * 工程师姓名
......
...@@ -11,7 +11,8 @@ import vion.model.FaultLog; ...@@ -11,7 +11,8 @@ import vion.model.FaultLog;
import vion.model.FileInfo; import vion.model.FileInfo;
import vion.model.ServiceOrder; import vion.model.ServiceOrder;
import java.util.Date; import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.List; import java.util.List;
@Getter @Getter
...@@ -41,7 +42,7 @@ public class TaskVO { ...@@ -41,7 +42,7 @@ public class TaskVO {
*/ */
@ExcelColumn(order = 5, title = "提交时间", format = "yyyy-MM-dd HH:mm:ss") @ExcelColumn(order = 5, title = "提交时间", format = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date repairTime; private LocalDateTime repairTime;
/** /**
* 故障类型 * 故障类型
*/ */
...@@ -71,7 +72,7 @@ public class TaskVO { ...@@ -71,7 +72,7 @@ public class TaskVO {
* 解决日期 * 解决日期
*/ */
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date solveDate; private LocalDate solveDate;
/** /**
* 故障原因 * 故障原因
*/ */
...@@ -98,11 +99,11 @@ public class TaskVO { ...@@ -98,11 +99,11 @@ public class TaskVO {
*/ */
@ExcelColumn(order = 8, title = "截止日期", format = "yyyy-MM-dd") @ExcelColumn(order = 8, title = "截止日期", format = "yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date expDate; private LocalDate expDate;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date createTime; private LocalDateTime createTime;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date modifyTime; private LocalDateTime modifyTime;
/** /**
* 备注 * 备注
*/ */
......
...@@ -5,7 +5,7 @@ import lombok.Getter; ...@@ -5,7 +5,7 @@ import lombok.Getter;
import lombok.Setter; import lombok.Setter;
import vion.model.Resource; import vion.model.Resource;
import java.util.Date; import java.time.LocalDateTime;
import java.util.List; import java.util.List;
@Getter @Getter
...@@ -17,15 +17,19 @@ public class UserVO { ...@@ -17,15 +17,19 @@ public class UserVO {
private String phone; private String phone;
private Long deptId; private Long deptId;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date createTime; private LocalDateTime createTime;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date modifyTime; private LocalDateTime modifyTime;
private String remark; private String remark;
/** 是否是预工单处理人 0:不是 1:是 */ /**
* 是否是预工单处理人 0:不是 1:是
*/
private Integer preWorkOrder; private Integer preWorkOrder;
/** 员工状态 2:试用期 3:正式 5:待离职 -1:无状态 */ /**
* 员工状态 2:试用期 3:正式 5:待离职 -1:无状态
*/
private Integer employeeStatus; private Integer employeeStatus;
/* 状态 0:正常 1:禁用 */ /* 状态 0:正常 1:禁用 */
...@@ -33,7 +37,9 @@ public class UserVO { ...@@ -33,7 +37,9 @@ public class UserVO {
private String token; private String token;
/** 权限码列表 */ /**
* 权限码列表
*/
private List<Resource> resourceList; private List<Resource> resourceList;
private List<RoleVO> roleVOList; private List<RoleVO> roleVOList;
......
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head> <head>
<meta http-equiv="Content-Type" content="text/xml; charset=utf-8" /> <meta http-equiv="Content-Type" content="text/xml; charset=utf-8"/>
</head> </head>
<title>绑定成功</title> <title>绑定成功</title>
<style> <style>
.center{ .center {
line-height: 200px; line-height: 200px;
height: 100%; height: 100%;
text-align: center; text-align: center;
} }
.center p {
line-height: 1.5; .center p {
display: inline-block; line-height: 1.5;
vertical-align: middle; display: inline-block;
font-size: 6rem; vertical-align: middle;
} font-size: 6rem;
</style> }
<body> </style>
<div class="center"> <body>
<p>绑定成功</p> <div class="center">
</div> <p>绑定成功</p>
</body> </div>
</body>
</html> </html>
\ No newline at end of file \ No newline at end of file
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head> <head>
<meta http-equiv="Content-Type" content="text/xml; charset=utf-8" /> <meta http-equiv="Content-Type" content="text/xml; charset=utf-8"/>
</head> </head>
<title>绑定失败</title> <title>绑定失败</title>
<style> <style>
.center{ .center {
line-height: 200px; line-height: 200px;
height: 100%; height: 100%;
text-align: center; text-align: center;
} }
.center p {
line-height: 1.5; .center p {
display: inline-block; line-height: 1.5;
vertical-align: middle; display: inline-block;
font-size: 6rem; vertical-align: middle;
} font-size: 6rem;
</style> }
<body> </style>
<div class="center"> <body>
<p>绑定失败</p> <div class="center">
</div> <p>绑定失败</p>
</body> </div>
</body>
</html> </html>
\ No newline at end of file \ No newline at end of file
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head> <head>
<meta http-equiv="Content-Type" content="text/xml; charset=utf-8" /> <meta http-equiv="Content-Type" content="text/xml; charset=utf-8"/>
</head> </head>
<title>绑定成功</title> <title>绑定成功</title>
<style> <style>
.center{ .center {
/*line-height: 200px;*/ /*line-height: 200px;*/
height: auto; height: auto;
text-align: center; text-align: center;
} }
.center p {
line-height: 1.5; .center p {
display: inline-block; line-height: 1.5;
vertical-align: middle; display: inline-block;
font-size: 3rem; vertical-align: middle;
} font-size: 3rem;
.center img { }
width: 30rem;
height: 100%; .center img {
} width: 30rem;
</style> height: 100%;
<body > }
<div class="center"> </style>
<p>关注工单失败!<br>请先关注【VION智慧门店】公众号,<br>再扫工单二维码以接收工单信息提醒。</p> <body>
</div> <div class="center">
<div class="center"> <p>关注工单失败!<br>请先关注【VION智慧门店】公众号,<br>再扫工单二维码以接收工单信息提醒。</p>
<img src="data:image/jpeg;base64,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" alt="VION智慧门店"/> </div>
</div> <div class="center">
<div class="center"> <img src="data:image/jpeg;base64,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"
<p>长按或扫码关注</p> alt="VION智慧门店"/>
</div> </div>
</body> <div class="center">
<p>长按或扫码关注</p>
</div>
</body>
</html> </html>
\ No newline at end of file \ No newline at end of file
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head> <head>
<meta http-equiv="Content-Type" content="text/xml; charset=utf-8" /> <meta http-equiv="Content-Type" content="text/xml; charset=utf-8"/>
</head> </head>
<title>扫码成功</title> <title>扫码成功</title>
<style> <style>
.center{ .center {
line-height: 200px; line-height: 200px;
height: 100%; height: 100%;
text-align: center; text-align: center;
} }
.center p {
line-height: 1.5; .center p {
display: inline-block; line-height: 1.5;
vertical-align: middle; display: inline-block;
font-size: 6rem; vertical-align: middle;
} font-size: 6rem;
</style> }
<body> </style>
<div class="center"> <body>
<p>扫码成功</p> <div class="center">
</div> <p>扫码成功</p>
</body> </div>
</body>
</html> </html>
\ No newline at end of file \ No newline at end of file
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!