Compare commits
32 Commits
56fc4ff83e
...
dev
| Author | SHA1 | Date | |
|---|---|---|---|
| 32f134873a | |||
| f4220be9d6 | |||
| 8252fd7216 | |||
| 57855f4307 | |||
| 6784eafe6e | |||
| 0b42c1d6a6 | |||
| 4b37a7327f | |||
| 0287f1e4ce | |||
| 5d8af1cab8 | |||
| 123896f08b | |||
| a8a198b51f | |||
| f00b98714a | |||
| 4ff87f3996 | |||
| 5f3ae0f9f1 | |||
| 786c864a27 | |||
| c61e802b85 | |||
| 9a568799f4 | |||
| 8aa38063bf | |||
| c4a11ec245 | |||
| 169b76589c | |||
| 199f51ea21 | |||
| 23572dfc07 | |||
| 570b0ce316 | |||
| f953a96c36 | |||
| 25c4eee464 | |||
| b209ef1fab | |||
| 77e9f4d9a2 | |||
| e73c808bc3 | |||
| edf0d1a5db | |||
| cc23a308c1 | |||
| bc891327c9 | |||
| 39bedfeb92 |
@ -321,8 +321,8 @@ ys7:
|
|||||||
app-key: xxx
|
app-key: xxx
|
||||||
app-secret: xxx
|
app-secret: xxx
|
||||||
job:
|
job:
|
||||||
capture-enabled: true # 控制是否启用萤石抓拍任务
|
capture-enabled: false # 控制是否启用萤石抓拍任务
|
||||||
device-sync-enabled: true # 控制是否同步萤石设备
|
device-sync-enabled: false # 控制是否同步萤石设备
|
||||||
# 斯巴达算法
|
# 斯巴达算法
|
||||||
sparta:
|
sparta:
|
||||||
url: http://119.3.204.120:8040
|
url: http://119.3.204.120:8040
|
||||||
|
|||||||
Binary file not shown.
BIN
xinnengyuan/ruoyi-admin/src/main/resources/template/设计验证表.docx
Normal file
BIN
xinnengyuan/ruoyi-admin/src/main/resources/template/设计验证表.docx
Normal file
Binary file not shown.
@ -0,0 +1,32 @@
|
|||||||
|
package org.dromara.common.core.domain.vo;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.io.Serial;
|
||||||
|
import java.io.Serializable;
|
||||||
|
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class XzdCustomerSupplierVos implements Serializable {
|
||||||
|
|
||||||
|
@Serial
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 类型(1、供应商,2、客户)
|
||||||
|
*/
|
||||||
|
private String type;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 供应商-客户id
|
||||||
|
*/
|
||||||
|
private Long cSId;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,14 @@
|
|||||||
|
package org.dromara.common.core.service;
|
||||||
|
|
||||||
|
import org.dromara.common.core.domain.vo.XzdCustomerSupplierVos;
|
||||||
|
|
||||||
|
public interface XzdCustomerSupplierService {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询供应商-客户中间
|
||||||
|
*
|
||||||
|
* @param id 主键
|
||||||
|
* @return 供应商-客户中间
|
||||||
|
*/
|
||||||
|
XzdCustomerSupplierVos queryByIdone(Long id);
|
||||||
|
}
|
||||||
@ -3,4 +3,6 @@ package org.dromara.common.core.service;
|
|||||||
public interface XzdCustomerinformationService {
|
public interface XzdCustomerinformationService {
|
||||||
|
|
||||||
String selectNmaeByIds(String id);
|
String selectNmaeByIds(String id);
|
||||||
|
|
||||||
|
String selectNmaeById(Long id);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -3,4 +3,7 @@ package org.dromara.common.core.service;
|
|||||||
public interface XzdSupplierInfoService {
|
public interface XzdSupplierInfoService {
|
||||||
|
|
||||||
String selectNmaeByIds(String ids);
|
String selectNmaeByIds(String ids);
|
||||||
|
|
||||||
|
String selectNmaeById(Long id);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -44,10 +44,10 @@ public interface TransConstant {
|
|||||||
String XZD_KHXX_ID_TO_NAME = "khxx_id_to_name";
|
String XZD_KHXX_ID_TO_NAME = "khxx_id_to_name";
|
||||||
|
|
||||||
|
|
||||||
/**
|
// /**
|
||||||
* 供应商id转名称
|
// * 供应商id转名称
|
||||||
*/
|
// */
|
||||||
String XZD_GYSXX_ID_TO_NAME = "gysxx_id_to_name";
|
// String XZD_KHXX_ID_TO_NAME = "gysxx_id_to_name";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 新中大项目id转名称
|
* 新中大项目id转名称
|
||||||
|
|||||||
@ -7,7 +7,7 @@ import org.dromara.common.translation.constant.TransConstant;
|
|||||||
import org.dromara.common.translation.core.TranslationInterface;
|
import org.dromara.common.translation.core.TranslationInterface;
|
||||||
|
|
||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
@TranslationType(type = TransConstant.XZD_GYSXX_ID_TO_NAME)
|
//@TranslationType(type = TransConstant.XZD_KHXX_ID_TO_NAME)
|
||||||
public class XzdSupplierInfoImpl implements TranslationInterface<String> {
|
public class XzdSupplierInfoImpl implements TranslationInterface<String> {
|
||||||
|
|
||||||
private final XzdSupplierInfoService xzdSupplierInfoService;
|
private final XzdSupplierInfoService xzdSupplierInfoService;
|
||||||
|
|||||||
@ -101,4 +101,7 @@ public class SubConstructionUserQueryReq implements Serializable {
|
|||||||
*/
|
*/
|
||||||
private String userId;
|
private String userId;
|
||||||
|
|
||||||
|
|
||||||
|
private String phone;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -209,8 +209,10 @@ public class SubConstructionUserServiceImpl extends ServiceImpl<SubConstructionU
|
|||||||
LambdaQueryWrapper<SubConstructionUser> lqw = Wrappers.lambdaQuery();
|
LambdaQueryWrapper<SubConstructionUser> lqw = Wrappers.lambdaQuery();
|
||||||
// 从对象中取值
|
// 从对象中取值
|
||||||
String userName = req.getUserName();
|
String userName = req.getUserName();
|
||||||
|
String phone = req.getPhone();
|
||||||
|
|
||||||
// 模糊查询
|
// 模糊查询
|
||||||
|
lqw.like(StringUtils.isNotBlank(phone), SubConstructionUser::getPhone, phone);
|
||||||
lqw.like(StringUtils.isNotBlank(userName), SubConstructionUser::getUserName, userName);
|
lqw.like(StringUtils.isNotBlank(userName), SubConstructionUser::getUserName, userName);
|
||||||
lqw.isNull(SubConstructionUser::getProjectId);
|
lqw.isNull(SubConstructionUser::getProjectId);
|
||||||
lqw.isNull(SubConstructionUser::getTeamId);
|
lqw.isNull(SubConstructionUser::getTeamId);
|
||||||
|
|||||||
@ -1,17 +1,40 @@
|
|||||||
package org.dromara.design.controller;
|
package org.dromara.design.controller;
|
||||||
|
|
||||||
|
import java.io.ByteArrayOutputStream;
|
||||||
|
import java.io.InputStream;
|
||||||
|
import java.io.OutputStream;
|
||||||
|
import java.net.URLEncoder;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
import cn.hutool.core.util.StrUtil;
|
||||||
|
import com.deepoove.poi.XWPFTemplate;
|
||||||
|
import com.deepoove.poi.config.Configure;
|
||||||
|
import com.deepoove.poi.plugin.table.LoopRowTableRenderPolicy;
|
||||||
import jakarta.annotation.Resource;
|
import jakarta.annotation.Resource;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import jakarta.servlet.http.HttpServletResponse;
|
import jakarta.servlet.http.HttpServletResponse;
|
||||||
import jakarta.validation.constraints.*;
|
import jakarta.validation.constraints.*;
|
||||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||||
|
import org.dromara.design.domain.BusDrawingreviewReceipts;
|
||||||
|
import org.dromara.design.domain.DesCollectFile;
|
||||||
|
import org.dromara.design.domain.DesDesignChange;
|
||||||
import org.dromara.design.domain.bo.DesUserBo;
|
import org.dromara.design.domain.bo.DesUserBo;
|
||||||
|
import org.dromara.design.domain.dto.designchange.DesDesignExtendDetailDto;
|
||||||
|
import org.dromara.design.domain.vo.DesCollectFileWordVo;
|
||||||
import org.dromara.design.domain.vo.DesUserVo;
|
import org.dromara.design.domain.vo.DesUserVo;
|
||||||
|
import org.dromara.design.domain.vo.designchange.DesDesignChangeVo;
|
||||||
|
import org.dromara.design.service.IDesDesignChangeService;
|
||||||
import org.dromara.design.service.IDesUserService;
|
import org.dromara.design.service.IDesUserService;
|
||||||
|
import org.dromara.project.domain.BusProject;
|
||||||
import org.dromara.project.domain.vo.project.BusSubProjectVo;
|
import org.dromara.project.domain.vo.project.BusSubProjectVo;
|
||||||
import org.dromara.project.service.IBusProjectService;
|
import org.dromara.project.service.IBusProjectService;
|
||||||
|
import org.dromara.system.service.ISysDictDataService;
|
||||||
|
import org.dromara.system.service.ISysUserService;
|
||||||
|
import org.springframework.core.io.ClassPathResource;
|
||||||
|
import org.springframework.http.MediaType;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
import org.springframework.validation.annotation.Validated;
|
import org.springframework.validation.annotation.Validated;
|
||||||
import org.dromara.common.idempotent.annotation.RepeatSubmit;
|
import org.dromara.common.idempotent.annotation.RepeatSubmit;
|
||||||
@ -44,6 +67,12 @@ public class BusDrawingreviewReceiptsController extends BaseController {
|
|||||||
|
|
||||||
private final IDesUserService desUserService;
|
private final IDesUserService desUserService;
|
||||||
|
|
||||||
|
private final IDesDesignChangeService desDesignChangeService;
|
||||||
|
|
||||||
|
private final ISysDictDataService dictDataService;
|
||||||
|
|
||||||
|
private final ISysUserService userService;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询设计-图纸评审验证列表
|
* 查询设计-图纸评审验证列表
|
||||||
*/
|
*/
|
||||||
@ -132,4 +161,85 @@ public class BusDrawingreviewReceiptsController extends BaseController {
|
|||||||
return R.ok(desUserService.queryList(bo));
|
return R.ok(desUserService.queryList(bo));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private static final String TEMPLATE_PATH = "template/设计验证表.docx";
|
||||||
|
@PostMapping("/downloadWord")
|
||||||
|
public void generateDesignLeaderDoc(Long id, HttpServletResponse response) {
|
||||||
|
OutputStream outputStream = null;
|
||||||
|
try {
|
||||||
|
// 1. 调用Service生成目标模板的Word字节流
|
||||||
|
byte[] docBytes = generateDocBytes(id);
|
||||||
|
|
||||||
|
// 2. 配置响应头:确保前端正确下载(避免中文乱码、指定文件类型)
|
||||||
|
response.setContentType(MediaType.APPLICATION_OCTET_STREAM_VALUE); // 二进制流类型
|
||||||
|
// 下载文件名:格式为“[项目名]-设计负责人任命通知单.docx”(此处用projectId拼接,真实场景可从数据中获取项目名)
|
||||||
|
String downloadFileName = URLEncoder.encode(
|
||||||
|
"设计验证表.docx",
|
||||||
|
"UTF-8"
|
||||||
|
);
|
||||||
|
response.setHeader("Content-Disposition", "attachment;filename=" + downloadFileName);
|
||||||
|
response.setContentLength(docBytes.length); // 设置响应体长度(优化下载体验)
|
||||||
|
|
||||||
|
// 3. 将Word字节流写入响应
|
||||||
|
outputStream = response.getOutputStream();
|
||||||
|
outputStream.write(docBytes);
|
||||||
|
outputStream.flush();
|
||||||
|
|
||||||
|
} catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
// 异常处理:返回500错误状态码
|
||||||
|
response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
|
||||||
|
} finally {
|
||||||
|
// 关闭流,避免资源泄漏
|
||||||
|
if (outputStream != null) {
|
||||||
|
try {
|
||||||
|
outputStream.close();
|
||||||
|
} catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public byte[] generateDocBytes(Long id) throws Exception {
|
||||||
|
// -------------------------- 步骤1:按projectId查询项目数据(模拟真实业务) --------------------------
|
||||||
|
// 实际场景替换为数据库查询(如调用DAO获取项目名称、负责人等)
|
||||||
|
DesDesignChangeVo desDesignChangeVo = desDesignChangeService.queryById(id);
|
||||||
|
BusDrawingreviewReceipts receipts = busDrawingreviewReceiptsService.lambdaQuery()
|
||||||
|
.eq(BusDrawingreviewReceipts::getDrawingreviewId, id)
|
||||||
|
.last("limit 1")
|
||||||
|
.one();
|
||||||
|
DesDesignExtendDetailDto extendDetail = desDesignChangeVo.getExtendDetail();
|
||||||
|
String s = dictDataService.selectDictLabel("des_user_major", receipts.getProfessional());
|
||||||
|
String designerName = null;
|
||||||
|
if(StrUtil.isNotBlank(receipts.getDesigner())){
|
||||||
|
Long userId = Long.parseLong(receipts.getDesigner());
|
||||||
|
designerName= userService.queryNameById(userId);
|
||||||
|
}
|
||||||
|
|
||||||
|
Map<String, Object> placeholderData = new HashMap<>();
|
||||||
|
placeholderData.put("projectName", receipts.getProjectName());
|
||||||
|
placeholderData.put("subName",extendDetail.getSubName());
|
||||||
|
placeholderData.put("stage", receipts.getStage());
|
||||||
|
placeholderData.put("professionalName", s);
|
||||||
|
placeholderData.put("volume", receipts.getVolume());
|
||||||
|
placeholderData.put("designerName", designerName);
|
||||||
|
placeholderData.put("verificationOpinion", receipts.getVerificationOpinion());
|
||||||
|
placeholderData.put("executionOpinion", receipts.getExecutionOpinion());
|
||||||
|
// -------------------------- 步骤2:用poi-tl加载目标模板并替换占位符 --------------------------
|
||||||
|
// 读取resources下的“设计项目负责人任命通知单.docx”模板
|
||||||
|
ClassPathResource templateResource = new ClassPathResource(TEMPLATE_PATH);
|
||||||
|
try (InputStream templateIs = templateResource.getInputStream();
|
||||||
|
ByteArrayOutputStream outputStream = new ByteArrayOutputStream()) {
|
||||||
|
|
||||||
|
XWPFTemplate template = XWPFTemplate.compile(templateIs).render(placeholderData);
|
||||||
|
|
||||||
|
// -------------------------- 步骤3:将生成的文档写入字节流 --------------------------
|
||||||
|
template.write(outputStream);
|
||||||
|
template.close(); // 关闭模板资源
|
||||||
|
return outputStream.toByteArray();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,15 +1,31 @@
|
|||||||
package org.dromara.design.controller;
|
package org.dromara.design.controller;
|
||||||
|
|
||||||
import java.util.List;
|
import java.io.ByteArrayOutputStream;
|
||||||
|
import java.io.InputStream;
|
||||||
|
import java.io.OutputStream;
|
||||||
|
import java.net.URLEncoder;
|
||||||
|
import java.util.*;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
import com.deepoove.poi.XWPFTemplate;
|
||||||
|
import com.deepoove.poi.config.Configure;
|
||||||
|
import com.deepoove.poi.plugin.table.LoopRowTableRenderPolicy;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import jakarta.servlet.http.HttpServletResponse;
|
import jakarta.servlet.http.HttpServletResponse;
|
||||||
import jakarta.validation.constraints.*;
|
import jakarta.validation.constraints.*;
|
||||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||||
|
import org.dromara.design.domain.DesCollectFile;
|
||||||
import org.dromara.design.domain.bo.DesCollectFileBo;
|
import org.dromara.design.domain.bo.DesCollectFileBo;
|
||||||
import org.dromara.design.domain.dto.ExportDto;
|
import org.dromara.design.domain.dto.ExportDto;
|
||||||
|
import org.dromara.design.domain.dto.designchange.DesDesignExtendDetailDto;
|
||||||
import org.dromara.design.domain.vo.DesCollectFileVo;
|
import org.dromara.design.domain.vo.DesCollectFileVo;
|
||||||
|
import org.dromara.design.domain.vo.DesCollectFileWordVo;
|
||||||
|
import org.dromara.design.domain.vo.designchange.DesDesignChangeVo;
|
||||||
import org.dromara.design.service.IDesCollectFileService;
|
import org.dromara.design.service.IDesCollectFileService;
|
||||||
|
import org.dromara.project.domain.BusProject;
|
||||||
|
import org.dromara.project.service.IBusProjectService;
|
||||||
|
import org.springframework.core.io.ClassPathResource;
|
||||||
|
import org.springframework.http.MediaType;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
import org.springframework.validation.annotation.Validated;
|
import org.springframework.validation.annotation.Validated;
|
||||||
import org.dromara.common.idempotent.annotation.RepeatSubmit;
|
import org.dromara.common.idempotent.annotation.RepeatSubmit;
|
||||||
@ -39,6 +55,8 @@ public class DesCollectFileController extends BaseController {
|
|||||||
|
|
||||||
private final IDesCollectFileService desCollectFileService;
|
private final IDesCollectFileService desCollectFileService;
|
||||||
|
|
||||||
|
private final IBusProjectService projectService;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询收资文件列表
|
* 查询收资文件列表
|
||||||
*/
|
*/
|
||||||
@ -106,7 +124,6 @@ public class DesCollectFileController extends BaseController {
|
|||||||
return toAjax(desCollectFileService.deleteWithValidByIds(List.of(ids), true));
|
return toAjax(desCollectFileService.deleteWithValidByIds(List.of(ids), true));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 上传资料文件
|
* 上传资料文件
|
||||||
*/
|
*/
|
||||||
@ -119,10 +136,92 @@ public class DesCollectFileController extends BaseController {
|
|||||||
return toAjax(desCollectFileService.addFile(file, catalogueId, projectId));
|
return toAjax(desCollectFileService.addFile(file, catalogueId, projectId));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@PostMapping("/exportZip")
|
@PostMapping("/exportZip")
|
||||||
public void exportZip(ExportDto dto, HttpServletResponse response) throws Exception {
|
public void exportZip(ExportDto dto, HttpServletResponse response) throws Exception {
|
||||||
desCollectFileService.exportAsZip(dto, response);
|
desCollectFileService.exportAsZip(dto, response);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static final String TEMPLATE_PATH = "template/设计输入资料清单及评审表.docx";
|
||||||
|
@PostMapping("/downloadWord")
|
||||||
|
public void generateDesignLeaderDoc(Long projectId, HttpServletResponse response) {
|
||||||
|
OutputStream outputStream = null;
|
||||||
|
try {
|
||||||
|
// 1. 调用Service生成目标模板的Word字节流
|
||||||
|
byte[] docBytes = generateDocBytes(projectId);
|
||||||
|
|
||||||
|
// 2. 配置响应头:确保前端正确下载(避免中文乱码、指定文件类型)
|
||||||
|
response.setContentType(MediaType.APPLICATION_OCTET_STREAM_VALUE); // 二进制流类型
|
||||||
|
// 下载文件名:格式为“[项目名]-设计负责人任命通知单.docx”(此处用projectId拼接,真实场景可从数据中获取项目名)
|
||||||
|
String downloadFileName = URLEncoder.encode(
|
||||||
|
"设计输入资料清单及评审表.docx",
|
||||||
|
"UTF-8"
|
||||||
|
);
|
||||||
|
response.setHeader("Content-Disposition", "attachment;filename=" + downloadFileName);
|
||||||
|
response.setContentLength(docBytes.length); // 设置响应体长度(优化下载体验)
|
||||||
|
|
||||||
|
// 3. 将Word字节流写入响应
|
||||||
|
outputStream = response.getOutputStream();
|
||||||
|
outputStream.write(docBytes);
|
||||||
|
outputStream.flush();
|
||||||
|
|
||||||
|
} catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
// 异常处理:返回500错误状态码
|
||||||
|
response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
|
||||||
|
} finally {
|
||||||
|
// 关闭流,避免资源泄漏
|
||||||
|
if (outputStream != null) {
|
||||||
|
try {
|
||||||
|
outputStream.close();
|
||||||
|
} catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public byte[] generateDocBytes(Long projectId) throws Exception {
|
||||||
|
// -------------------------- 步骤1:按projectId查询项目数据(模拟真实业务) --------------------------
|
||||||
|
// 实际场景替换为数据库查询(如调用DAO获取项目名称、负责人等)
|
||||||
|
List<DesCollectFile> list = desCollectFileService.lambdaQuery()
|
||||||
|
.eq(DesCollectFile::getProjectId, projectId).list();
|
||||||
|
|
||||||
|
List<DesCollectFileWordVo> files = new ArrayList<>();
|
||||||
|
int i = 1;
|
||||||
|
for (DesCollectFile desCollectFile : list) {
|
||||||
|
DesCollectFileWordVo desCollectFileWordVo = new DesCollectFileWordVo();
|
||||||
|
desCollectFileWordVo.setNum(i);
|
||||||
|
i++;
|
||||||
|
desCollectFileWordVo.setFileName(desCollectFile.getFileName());
|
||||||
|
files.add(desCollectFileWordVo);
|
||||||
|
}
|
||||||
|
|
||||||
|
BusProject project = projectService.getById(projectId);
|
||||||
|
|
||||||
|
|
||||||
|
Map<String, Object> placeholderData = new HashMap<>();
|
||||||
|
placeholderData.put("projectName", project.getProjectName());
|
||||||
|
placeholderData.put("files",files);
|
||||||
|
// -------------------------- 步骤2:用poi-tl加载目标模板并替换占位符 --------------------------
|
||||||
|
// 读取resources下的“设计项目负责人任命通知单.docx”模板
|
||||||
|
ClassPathResource templateResource = new ClassPathResource(TEMPLATE_PATH);
|
||||||
|
try (InputStream templateIs = templateResource.getInputStream();
|
||||||
|
ByteArrayOutputStream outputStream = new ByteArrayOutputStream()) {
|
||||||
|
|
||||||
|
LoopRowTableRenderPolicy policy = new LoopRowTableRenderPolicy();
|
||||||
|
|
||||||
|
Configure config = Configure.builder()
|
||||||
|
.bind("files", policy).build();
|
||||||
|
|
||||||
|
XWPFTemplate template = XWPFTemplate.compile(templateIs, config).render(placeholderData);
|
||||||
|
|
||||||
|
// -------------------------- 步骤3:将生成的文档写入字节流 --------------------------
|
||||||
|
template.write(outputStream);
|
||||||
|
template.close(); // 关闭模板资源
|
||||||
|
return outputStream.toByteArray();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -0,0 +1,15 @@
|
|||||||
|
package org.dromara.design.domain.vo;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class DesCollectFileWordVo {
|
||||||
|
|
||||||
|
private Integer num;
|
||||||
|
|
||||||
|
private String fileName;
|
||||||
|
|
||||||
|
private String opinion;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@ -1,45 +0,0 @@
|
|||||||
package org.dromara.job.once;
|
|
||||||
|
|
||||||
import jakarta.annotation.Resource;
|
|
||||||
import lombok.extern.slf4j.Slf4j;
|
|
||||||
import org.dromara.manager.ys7manager.Ys7Manager;
|
|
||||||
import org.dromara.manager.ys7manager.vo.Ys7QueryDeviceResponseVo;
|
|
||||||
import org.dromara.other.service.IOthYs7DeviceService;
|
|
||||||
import org.springframework.boot.CommandLineRunner;
|
|
||||||
import org.springframework.stereotype.Component;
|
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 同步摄像头设备数据
|
|
||||||
*
|
|
||||||
* @author lilemy
|
|
||||||
* @date 2025/6/13 11:08
|
|
||||||
*/
|
|
||||||
@Slf4j
|
|
||||||
@Component
|
|
||||||
public class FullSyncYs7DeviceData implements CommandLineRunner {
|
|
||||||
|
|
||||||
@Resource
|
|
||||||
private Ys7Manager ys7Manager;
|
|
||||||
|
|
||||||
@Resource
|
|
||||||
private IOthYs7DeviceService ys7DeviceService;
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void run(String... args) throws Exception {
|
|
||||||
log.info("开始同步摄像头设备数据");
|
|
||||||
try {
|
|
||||||
List<Ys7QueryDeviceResponseVo> ys7QueryDeviceList = ys7Manager.queryAllDeviceList();
|
|
||||||
Boolean result = ys7DeviceService.saveOrUpdateByDeviceList(ys7QueryDeviceList);
|
|
||||||
if (result) {
|
|
||||||
log.info("摄像头设备数据同步成功");
|
|
||||||
} else {
|
|
||||||
log.info("没有需要同步的设备");
|
|
||||||
}
|
|
||||||
} catch (Exception e) {
|
|
||||||
log.info("摄像头设备数据同步失败", e);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -162,6 +162,12 @@ public class PgsProgressPlanServiceImpl extends ServiceImpl<PgsProgressPlanMappe
|
|||||||
Long id = progressPlan.getId();
|
Long id = progressPlan.getId();
|
||||||
List<PgsProgressPlanDetailCreateDto> detailList = req.getDetailList();
|
List<PgsProgressPlanDetailCreateDto> detailList = req.getDetailList();
|
||||||
if (CollUtil.isNotEmpty(detailList)) {
|
if (CollUtil.isNotEmpty(detailList)) {
|
||||||
|
// 判断详情数量是否合法
|
||||||
|
boolean isAnyEmpty = detailList.stream()
|
||||||
|
.allMatch(detail -> detail.getPlanNumber().compareTo(BigDecimal.ZERO) <= 0);
|
||||||
|
if (isAnyEmpty) {
|
||||||
|
throw new ServiceException("新增进度计划详情失败,请进行均分", HttpStatus.BAD_REQUEST);
|
||||||
|
}
|
||||||
List<PgsProgressPlanDetail> newDetailList = detailList.stream().map(detail -> {
|
List<PgsProgressPlanDetail> newDetailList = detailList.stream().map(detail -> {
|
||||||
PgsProgressPlanDetail progressPlanDetail = new PgsProgressPlanDetail();
|
PgsProgressPlanDetail progressPlanDetail = new PgsProgressPlanDetail();
|
||||||
BeanUtils.copyProperties(detail, progressPlanDetail);
|
BeanUtils.copyProperties(detail, progressPlanDetail);
|
||||||
|
|||||||
@ -603,7 +603,7 @@ public class BusLeaveServiceImpl extends ServiceImpl<BusLeaveMapper, BusLeave>
|
|||||||
.eq(BusAttendance::getUserId, busLeave.getUserId())
|
.eq(BusAttendance::getUserId, busLeave.getUserId())
|
||||||
);
|
);
|
||||||
for (BusAttendance attendance : list) {
|
for (BusAttendance attendance : list) {
|
||||||
attendance.setClockStatus(BusAttendanceClockStatusEnum.LATE.getValue());
|
attendance.setClockStatus(BusAttendanceClockStatusEnum.LEAVE.getValue());
|
||||||
}
|
}
|
||||||
if(!list.isEmpty()){
|
if(!list.isEmpty()){
|
||||||
attendanceService.updateBatchById(list);
|
attendanceService.updateBatchById(list);
|
||||||
@ -619,7 +619,7 @@ public class BusLeaveServiceImpl extends ServiceImpl<BusLeaveMapper, BusLeave>
|
|||||||
.eq(BusAttendance::getUserId, busLeave.getUserId())
|
.eq(BusAttendance::getUserId, busLeave.getUserId())
|
||||||
);
|
);
|
||||||
for (BusAttendance attendance : list) {
|
for (BusAttendance attendance : list) {
|
||||||
attendance.setClockStatus(BusAttendanceClockStatusEnum.LATE.getValue());
|
attendance.setClockStatus(BusAttendanceClockStatusEnum.LEAVE.getValue());
|
||||||
}
|
}
|
||||||
if(!list.isEmpty()){
|
if(!list.isEmpty()){
|
||||||
attendanceService.updateBatchById(list);
|
attendanceService.updateBatchById(list);
|
||||||
@ -635,7 +635,7 @@ public class BusLeaveServiceImpl extends ServiceImpl<BusLeaveMapper, BusLeave>
|
|||||||
.eq(BusAttendance::getUserId, busLeave.getUserId())
|
.eq(BusAttendance::getUserId, busLeave.getUserId())
|
||||||
);
|
);
|
||||||
for (BusAttendance attendance : list) {
|
for (BusAttendance attendance : list) {
|
||||||
attendance.setClockStatus(BusAttendanceClockStatusEnum.LATE.getValue());
|
attendance.setClockStatus(BusAttendanceClockStatusEnum.LEAVE.getValue());
|
||||||
}
|
}
|
||||||
if(!list.isEmpty()){
|
if(!list.isEmpty()){
|
||||||
attendanceService.updateBatchById(list);
|
attendanceService.updateBatchById(list);
|
||||||
|
|||||||
@ -0,0 +1,106 @@
|
|||||||
|
package org.dromara.vehicle.controller;
|
||||||
|
|
||||||
|
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||||
|
import jakarta.servlet.http.HttpServletResponse;
|
||||||
|
import jakarta.validation.constraints.NotEmpty;
|
||||||
|
import jakarta.validation.constraints.NotNull;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import org.dromara.common.core.domain.R;
|
||||||
|
import org.dromara.common.core.validate.AddGroup;
|
||||||
|
import org.dromara.common.core.validate.EditGroup;
|
||||||
|
import org.dromara.common.excel.utils.ExcelUtil;
|
||||||
|
import org.dromara.common.idempotent.annotation.RepeatSubmit;
|
||||||
|
import org.dromara.common.log.annotation.Log;
|
||||||
|
import org.dromara.common.log.enums.BusinessType;
|
||||||
|
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||||
|
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||||
|
import org.dromara.common.web.core.BaseController;
|
||||||
|
import org.dromara.vehicle.domain.bo.VehVehicleInfoBo;
|
||||||
|
import org.dromara.vehicle.domain.vo.VehVehicleInfoVo;
|
||||||
|
import org.dromara.vehicle.service.IVehVehicleInfoService;
|
||||||
|
import org.springframework.validation.annotation.Validated;
|
||||||
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 车辆信息
|
||||||
|
*
|
||||||
|
* @author lilemy
|
||||||
|
* @date 2025-10-25
|
||||||
|
*/
|
||||||
|
@Validated
|
||||||
|
@RequiredArgsConstructor
|
||||||
|
@RestController
|
||||||
|
@RequestMapping("/vehicle/vehicleInfo")
|
||||||
|
public class VehVehicleInfoController extends BaseController {
|
||||||
|
|
||||||
|
private final IVehVehicleInfoService vehVehicleInfoService;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询车辆信息列表
|
||||||
|
*/
|
||||||
|
@SaCheckPermission("vehicle:vehicleInfo:list")
|
||||||
|
@GetMapping("/list")
|
||||||
|
public TableDataInfo<VehVehicleInfoVo> list(VehVehicleInfoBo bo, PageQuery pageQuery) {
|
||||||
|
return vehVehicleInfoService.queryPageList(bo, pageQuery);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 导出车辆信息列表
|
||||||
|
*/
|
||||||
|
@SaCheckPermission("vehicle:vehicleInfo:export")
|
||||||
|
@Log(title = "车辆信息", businessType = BusinessType.EXPORT)
|
||||||
|
@PostMapping("/export")
|
||||||
|
public void export(VehVehicleInfoBo bo, HttpServletResponse response) {
|
||||||
|
List<VehVehicleInfoVo> list = vehVehicleInfoService.queryList(bo);
|
||||||
|
ExcelUtil.exportExcel(list, "车辆信息", VehVehicleInfoVo.class, response);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取车辆信息详细信息
|
||||||
|
*
|
||||||
|
* @param id 主键
|
||||||
|
*/
|
||||||
|
@SaCheckPermission("vehicle:vehicleInfo:query")
|
||||||
|
@GetMapping("/{id}")
|
||||||
|
public R<VehVehicleInfoVo> getInfo(@NotNull(message = "主键不能为空")
|
||||||
|
@PathVariable Long id) {
|
||||||
|
return R.ok(vehVehicleInfoService.queryById(id));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增车辆信息
|
||||||
|
*/
|
||||||
|
@SaCheckPermission("vehicle:vehicleInfo:add")
|
||||||
|
@Log(title = "车辆信息", businessType = BusinessType.INSERT)
|
||||||
|
@RepeatSubmit()
|
||||||
|
@PostMapping()
|
||||||
|
public R<Void> add(@Validated(AddGroup.class) @RequestBody VehVehicleInfoBo bo) {
|
||||||
|
return toAjax(vehVehicleInfoService.insertByBo(bo));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修改车辆信息
|
||||||
|
*/
|
||||||
|
@SaCheckPermission("vehicle:vehicleInfo:edit")
|
||||||
|
@Log(title = "车辆信息", businessType = BusinessType.UPDATE)
|
||||||
|
@RepeatSubmit()
|
||||||
|
@PutMapping()
|
||||||
|
public R<Void> edit(@Validated(EditGroup.class) @RequestBody VehVehicleInfoBo bo) {
|
||||||
|
return toAjax(vehVehicleInfoService.updateByBo(bo));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除车辆信息
|
||||||
|
*
|
||||||
|
* @param ids 主键串
|
||||||
|
*/
|
||||||
|
@SaCheckPermission("vehicle:vehicleInfo:remove")
|
||||||
|
@Log(title = "车辆信息", businessType = BusinessType.DELETE)
|
||||||
|
@DeleteMapping("/{ids}")
|
||||||
|
public R<Void> remove(@NotEmpty(message = "主键不能为空")
|
||||||
|
@PathVariable Long[] ids) {
|
||||||
|
return toAjax(vehVehicleInfoService.deleteWithValidByIds(List.of(ids), true));
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,148 @@
|
|||||||
|
package org.dromara.vehicle.domain;
|
||||||
|
|
||||||
|
import org.dromara.common.mybatis.core.domain.BaseEntity;
|
||||||
|
import com.baomidou.mybatisplus.annotation.*;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
|
||||||
|
import java.io.Serial;
|
||||||
|
import java.time.LocalDate;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 车辆信息对象 veh_vehicle_info
|
||||||
|
*
|
||||||
|
* @author lilemy
|
||||||
|
* @date 2025-10-25
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
|
@TableName("veh_vehicle_info")
|
||||||
|
public class VehVehicleInfo extends BaseEntity {
|
||||||
|
|
||||||
|
@Serial
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 主键ID
|
||||||
|
*/
|
||||||
|
@TableId(value = "id")
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 项目ID
|
||||||
|
*/
|
||||||
|
private Long projectId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 车牌号
|
||||||
|
*/
|
||||||
|
private String plateNumber;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 车辆品牌
|
||||||
|
*/
|
||||||
|
private String vehicleBrand;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 车辆类型
|
||||||
|
*/
|
||||||
|
private String vehicleType;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 车辆颜色
|
||||||
|
*/
|
||||||
|
private String vehicleColor;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 座位数
|
||||||
|
*/
|
||||||
|
private Integer seatCount;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 燃料类型
|
||||||
|
*/
|
||||||
|
private String fuelType;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 车辆状态
|
||||||
|
*/
|
||||||
|
private String vehicleStatus;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 车长(米)
|
||||||
|
*/
|
||||||
|
private BigDecimal vehicleLength;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 车宽(米)
|
||||||
|
*/
|
||||||
|
private BigDecimal vehicleWidth;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 车高(米)
|
||||||
|
*/
|
||||||
|
private BigDecimal vehicleHeight;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 轴距(米)
|
||||||
|
*/
|
||||||
|
private BigDecimal wheelBase;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 轮距(米)
|
||||||
|
*/
|
||||||
|
private BigDecimal wheelTrack;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 车辆性质
|
||||||
|
*/
|
||||||
|
private String ownerType;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 租赁方信息
|
||||||
|
*/
|
||||||
|
private String rentalCompany;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 登记证书编号(车管所登记凭证)
|
||||||
|
*/
|
||||||
|
private String registrationCertNo;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 登记日期
|
||||||
|
*/
|
||||||
|
private LocalDate registerDate;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 购置日期
|
||||||
|
*/
|
||||||
|
private LocalDate purchaseDate;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 购置价格
|
||||||
|
*/
|
||||||
|
private BigDecimal purchasePrice;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 保险到期时间
|
||||||
|
*/
|
||||||
|
private LocalDate insuranceExpiry;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 年检到期时间
|
||||||
|
*/
|
||||||
|
private LocalDate inspectionExpiry;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 附件ID
|
||||||
|
*/
|
||||||
|
private String fileIds;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 备注
|
||||||
|
*/
|
||||||
|
private String remark;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,158 @@
|
|||||||
|
package org.dromara.vehicle.domain.bo;
|
||||||
|
|
||||||
|
import io.github.linpeilie.annotations.AutoMapper;
|
||||||
|
import jakarta.validation.constraints.NotBlank;
|
||||||
|
import jakarta.validation.constraints.NotNull;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
import org.dromara.common.core.validate.AddGroup;
|
||||||
|
import org.dromara.common.core.validate.EditGroup;
|
||||||
|
import org.dromara.common.mybatis.core.domain.BaseEntity;
|
||||||
|
import org.dromara.vehicle.domain.VehVehicleInfo;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
import java.time.LocalDate;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 车辆信息业务对象 veh_vehicle_info
|
||||||
|
*
|
||||||
|
* @author lilemy
|
||||||
|
* @date 2025-10-25
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
|
@AutoMapper(target = VehVehicleInfo.class, reverseConvertGenerate = false)
|
||||||
|
public class VehVehicleInfoBo extends BaseEntity {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 主键ID
|
||||||
|
*/
|
||||||
|
@NotNull(message = "主键ID不能为空", groups = {EditGroup.class})
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 项目ID
|
||||||
|
*/
|
||||||
|
@NotNull(message = "项目ID不能为空", groups = {AddGroup.class, EditGroup.class})
|
||||||
|
private Long projectId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 车牌号
|
||||||
|
*/
|
||||||
|
@NotBlank(message = "车牌号不能为空", groups = {AddGroup.class, EditGroup.class})
|
||||||
|
private String plateNumber;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 车辆品牌
|
||||||
|
*/
|
||||||
|
@NotBlank(message = "车辆品牌不能为空", groups = {AddGroup.class, EditGroup.class})
|
||||||
|
private String vehicleBrand;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 车辆类型
|
||||||
|
*/
|
||||||
|
@NotBlank(message = "车辆类型不能为空", groups = {AddGroup.class, EditGroup.class})
|
||||||
|
private String vehicleType;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 车辆颜色
|
||||||
|
*/
|
||||||
|
@NotBlank(message = "车辆颜色不能为空", groups = {AddGroup.class, EditGroup.class})
|
||||||
|
private String vehicleColor;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 座位数
|
||||||
|
*/
|
||||||
|
@NotNull(message = "座位数不能为空", groups = {AddGroup.class, EditGroup.class})
|
||||||
|
private Integer seatCount;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 燃料类型
|
||||||
|
*/
|
||||||
|
@NotBlank(message = "燃料类型不能为空", groups = {AddGroup.class, EditGroup.class})
|
||||||
|
private String fuelType;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 车辆状态
|
||||||
|
*/
|
||||||
|
@NotBlank(message = "车辆状态不能为空", groups = {AddGroup.class, EditGroup.class})
|
||||||
|
private String vehicleStatus;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 车长(米)
|
||||||
|
*/
|
||||||
|
private BigDecimal vehicleLength;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 车宽(米)
|
||||||
|
*/
|
||||||
|
private BigDecimal vehicleWidth;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 车高(米)
|
||||||
|
*/
|
||||||
|
private BigDecimal vehicleHeight;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 轴距(米)
|
||||||
|
*/
|
||||||
|
private BigDecimal wheelBase;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 轮距(米)
|
||||||
|
*/
|
||||||
|
private BigDecimal wheelTrack;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 车辆性质
|
||||||
|
*/
|
||||||
|
@NotBlank(message = "车辆性质不能为空", groups = {AddGroup.class, EditGroup.class})
|
||||||
|
private String ownerType;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 租赁方信息
|
||||||
|
*/
|
||||||
|
private String rentalCompany;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 登记证书编号(车管所登记凭证)
|
||||||
|
*/
|
||||||
|
private String registrationCertNo;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 登记日期
|
||||||
|
*/
|
||||||
|
private LocalDate registerDate;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 购置日期
|
||||||
|
*/
|
||||||
|
private LocalDate purchaseDate;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 购置价格
|
||||||
|
*/
|
||||||
|
private BigDecimal purchasePrice;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 保险到期时间
|
||||||
|
*/
|
||||||
|
private LocalDate insuranceExpiry;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 年检到期时间
|
||||||
|
*/
|
||||||
|
private LocalDate inspectionExpiry;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 附件ID
|
||||||
|
*/
|
||||||
|
private String fileIds;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 备注
|
||||||
|
*/
|
||||||
|
private String remark;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,187 @@
|
|||||||
|
package org.dromara.vehicle.domain.vo;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
import org.dromara.vehicle.domain.VehVehicleInfo;
|
||||||
|
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||||
|
import com.alibaba.excel.annotation.ExcelProperty;
|
||||||
|
import org.dromara.common.excel.annotation.ExcelDictFormat;
|
||||||
|
import org.dromara.common.excel.convert.ExcelDictConvert;
|
||||||
|
import io.github.linpeilie.annotations.AutoMapper;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.io.Serial;
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.time.LocalDate;
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 车辆信息视图对象 veh_vehicle_info
|
||||||
|
*
|
||||||
|
* @author lilemy
|
||||||
|
* @date 2025-10-25
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@ExcelIgnoreUnannotated
|
||||||
|
@AutoMapper(target = VehVehicleInfo.class)
|
||||||
|
public class VehVehicleInfoVo implements Serializable {
|
||||||
|
|
||||||
|
@Serial
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 主键ID
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "主键ID")
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 项目ID
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "项目ID")
|
||||||
|
private Long projectId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 车牌号
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "车牌号")
|
||||||
|
private String plateNumber;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 车辆品牌
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "车辆品牌")
|
||||||
|
private String vehicleBrand;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 车辆类型
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "车辆类型")
|
||||||
|
private String vehicleType;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 车辆颜色
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "车辆颜色")
|
||||||
|
private String vehicleColor;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 座位数
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "座位数")
|
||||||
|
private Integer seatCount;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 燃料类型
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "燃料类型", converter = ExcelDictConvert.class)
|
||||||
|
@ExcelDictFormat(dictType = "veh_vehicle_fuel_type")
|
||||||
|
private String fuelType;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 车辆状态
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "车辆状态", converter = ExcelDictConvert.class)
|
||||||
|
@ExcelDictFormat(dictType = "veh_vehicle_status")
|
||||||
|
private String vehicleStatus;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 车长(米)
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "车长", converter = ExcelDictConvert.class)
|
||||||
|
@ExcelDictFormat(readConverterExp = "米=")
|
||||||
|
private BigDecimal vehicleLength;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 车宽(米)
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "车宽", converter = ExcelDictConvert.class)
|
||||||
|
@ExcelDictFormat(readConverterExp = "米=")
|
||||||
|
private BigDecimal vehicleWidth;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 车高(米)
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "车高", converter = ExcelDictConvert.class)
|
||||||
|
@ExcelDictFormat(readConverterExp = "米=")
|
||||||
|
private BigDecimal vehicleHeight;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 轴距(米)
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "轴距", converter = ExcelDictConvert.class)
|
||||||
|
@ExcelDictFormat(readConverterExp = "米=")
|
||||||
|
private BigDecimal wheelBase;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 轮距(米)
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "轮距", converter = ExcelDictConvert.class)
|
||||||
|
@ExcelDictFormat(readConverterExp = "米=")
|
||||||
|
private BigDecimal wheelTrack;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 车辆性质
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "车辆性质", converter = ExcelDictConvert.class)
|
||||||
|
@ExcelDictFormat(dictType = "veh_vehicle_owner_type")
|
||||||
|
private String ownerType;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 租赁方信息
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "租赁方信息")
|
||||||
|
private String rentalCompany;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 登记证书编号(车管所登记凭证)
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "登记证书编号", converter = ExcelDictConvert.class)
|
||||||
|
@ExcelDictFormat(readConverterExp = "车=管所登记凭证")
|
||||||
|
private String registrationCertNo;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 登记日期
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "登记日期")
|
||||||
|
private LocalDate registerDate;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 购置日期
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "购置日期")
|
||||||
|
private LocalDate purchaseDate;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 购置价格
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "购置价格")
|
||||||
|
private BigDecimal purchasePrice;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 保险到期时间
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "保险到期时间")
|
||||||
|
private LocalDate insuranceExpiry;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 年检到期时间
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "年检到期时间")
|
||||||
|
private LocalDate inspectionExpiry;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 附件ID
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "附件ID")
|
||||||
|
private String fileIds;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 备注
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "备注")
|
||||||
|
private String remark;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,15 @@
|
|||||||
|
package org.dromara.vehicle.mapper;
|
||||||
|
|
||||||
|
import org.dromara.vehicle.domain.VehVehicleInfo;
|
||||||
|
import org.dromara.vehicle.domain.vo.VehVehicleInfoVo;
|
||||||
|
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 车辆信息Mapper接口
|
||||||
|
*
|
||||||
|
* @author lilemy
|
||||||
|
* @date 2025-10-25
|
||||||
|
*/
|
||||||
|
public interface VehVehicleInfoMapper extends BaseMapperPlus<VehVehicleInfo, VehVehicleInfoVo> {
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,70 @@
|
|||||||
|
package org.dromara.vehicle.service;
|
||||||
|
|
||||||
|
import org.dromara.vehicle.domain.vo.VehVehicleInfoVo;
|
||||||
|
import org.dromara.vehicle.domain.bo.VehVehicleInfoBo;
|
||||||
|
import org.dromara.vehicle.domain.VehVehicleInfo;
|
||||||
|
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||||
|
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
|
import java.util.Collection;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 车辆信息Service接口
|
||||||
|
*
|
||||||
|
* @author lilemy
|
||||||
|
* @date 2025-10-25
|
||||||
|
*/
|
||||||
|
public interface IVehVehicleInfoService extends IService<VehVehicleInfo>{
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询车辆信息
|
||||||
|
*
|
||||||
|
* @param id 主键
|
||||||
|
* @return 车辆信息
|
||||||
|
*/
|
||||||
|
VehVehicleInfoVo queryById(Long id);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 分页查询车辆信息列表
|
||||||
|
*
|
||||||
|
* @param bo 查询条件
|
||||||
|
* @param pageQuery 分页参数
|
||||||
|
* @return 车辆信息分页列表
|
||||||
|
*/
|
||||||
|
TableDataInfo<VehVehicleInfoVo> queryPageList(VehVehicleInfoBo bo, PageQuery pageQuery);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询符合条件的车辆信息列表
|
||||||
|
*
|
||||||
|
* @param bo 查询条件
|
||||||
|
* @return 车辆信息列表
|
||||||
|
*/
|
||||||
|
List<VehVehicleInfoVo> queryList(VehVehicleInfoBo bo);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增车辆信息
|
||||||
|
*
|
||||||
|
* @param bo 车辆信息
|
||||||
|
* @return 是否新增成功
|
||||||
|
*/
|
||||||
|
Boolean insertByBo(VehVehicleInfoBo bo);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修改车辆信息
|
||||||
|
*
|
||||||
|
* @param bo 车辆信息
|
||||||
|
* @return 是否修改成功
|
||||||
|
*/
|
||||||
|
Boolean updateByBo(VehVehicleInfoBo bo);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 校验并批量删除车辆信息信息
|
||||||
|
*
|
||||||
|
* @param ids 待删除的主键集合
|
||||||
|
* @param isValid 是否进行有效性校验
|
||||||
|
* @return 是否删除成功
|
||||||
|
*/
|
||||||
|
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
|
||||||
|
}
|
||||||
@ -0,0 +1,151 @@
|
|||||||
|
package org.dromara.vehicle.service.impl;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||||
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import org.dromara.common.core.utils.MapstructUtils;
|
||||||
|
import org.dromara.common.core.utils.StringUtils;
|
||||||
|
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||||
|
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||||
|
import org.dromara.vehicle.domain.VehVehicleInfo;
|
||||||
|
import org.dromara.vehicle.domain.bo.VehVehicleInfoBo;
|
||||||
|
import org.dromara.vehicle.domain.vo.VehVehicleInfoVo;
|
||||||
|
import org.dromara.vehicle.mapper.VehVehicleInfoMapper;
|
||||||
|
import org.dromara.vehicle.service.IVehVehicleInfoService;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import java.util.Collection;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 车辆信息Service业务层处理
|
||||||
|
*
|
||||||
|
* @author lilemy
|
||||||
|
* @date 2025-10-25
|
||||||
|
*/
|
||||||
|
@RequiredArgsConstructor
|
||||||
|
@Service
|
||||||
|
public class VehVehicleInfoServiceImpl extends ServiceImpl<VehVehicleInfoMapper, VehVehicleInfo>
|
||||||
|
implements IVehVehicleInfoService {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询车辆信息
|
||||||
|
*
|
||||||
|
* @param id 主键
|
||||||
|
* @return 车辆信息
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public VehVehicleInfoVo queryById(Long id){
|
||||||
|
return baseMapper.selectVoById(id);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 分页查询车辆信息列表
|
||||||
|
*
|
||||||
|
* @param bo 查询条件
|
||||||
|
* @param pageQuery 分页参数
|
||||||
|
* @return 车辆信息分页列表
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public TableDataInfo<VehVehicleInfoVo> queryPageList(VehVehicleInfoBo bo, PageQuery pageQuery) {
|
||||||
|
LambdaQueryWrapper<VehVehicleInfo> lqw = buildQueryWrapper(bo);
|
||||||
|
Page<VehVehicleInfoVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
|
||||||
|
return TableDataInfo.build(result);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询符合条件的车辆信息列表
|
||||||
|
*
|
||||||
|
* @param bo 查询条件
|
||||||
|
* @return 车辆信息列表
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public List<VehVehicleInfoVo> queryList(VehVehicleInfoBo bo) {
|
||||||
|
LambdaQueryWrapper<VehVehicleInfo> lqw = buildQueryWrapper(bo);
|
||||||
|
return baseMapper.selectVoList(lqw);
|
||||||
|
}
|
||||||
|
|
||||||
|
private LambdaQueryWrapper<VehVehicleInfo> buildQueryWrapper(VehVehicleInfoBo bo) {
|
||||||
|
Map<String, Object> params = bo.getParams();
|
||||||
|
LambdaQueryWrapper<VehVehicleInfo> lqw = Wrappers.lambdaQuery();
|
||||||
|
lqw.orderByDesc(VehVehicleInfo::getId);
|
||||||
|
lqw.eq(bo.getProjectId() != null, VehVehicleInfo::getProjectId, bo.getProjectId());
|
||||||
|
lqw.eq(StringUtils.isNotBlank(bo.getPlateNumber()), VehVehicleInfo::getPlateNumber, bo.getPlateNumber());
|
||||||
|
lqw.eq(StringUtils.isNotBlank(bo.getVehicleBrand()), VehVehicleInfo::getVehicleBrand, bo.getVehicleBrand());
|
||||||
|
lqw.eq(StringUtils.isNotBlank(bo.getVehicleType()), VehVehicleInfo::getVehicleType, bo.getVehicleType());
|
||||||
|
lqw.eq(StringUtils.isNotBlank(bo.getVehicleColor()), VehVehicleInfo::getVehicleColor, bo.getVehicleColor());
|
||||||
|
lqw.eq(bo.getSeatCount() != null, VehVehicleInfo::getSeatCount, bo.getSeatCount());
|
||||||
|
lqw.eq(StringUtils.isNotBlank(bo.getFuelType()), VehVehicleInfo::getFuelType, bo.getFuelType());
|
||||||
|
lqw.eq(StringUtils.isNotBlank(bo.getVehicleStatus()), VehVehicleInfo::getVehicleStatus, bo.getVehicleStatus());
|
||||||
|
lqw.eq(bo.getVehicleLength() != null, VehVehicleInfo::getVehicleLength, bo.getVehicleLength());
|
||||||
|
lqw.eq(bo.getVehicleWidth() != null, VehVehicleInfo::getVehicleWidth, bo.getVehicleWidth());
|
||||||
|
lqw.eq(bo.getVehicleHeight() != null, VehVehicleInfo::getVehicleHeight, bo.getVehicleHeight());
|
||||||
|
lqw.eq(bo.getWheelBase() != null, VehVehicleInfo::getWheelBase, bo.getWheelBase());
|
||||||
|
lqw.eq(bo.getWheelTrack() != null, VehVehicleInfo::getWheelTrack, bo.getWheelTrack());
|
||||||
|
lqw.eq(StringUtils.isNotBlank(bo.getOwnerType()), VehVehicleInfo::getOwnerType, bo.getOwnerType());
|
||||||
|
lqw.eq(StringUtils.isNotBlank(bo.getRentalCompany()), VehVehicleInfo::getRentalCompany, bo.getRentalCompany());
|
||||||
|
lqw.eq(StringUtils.isNotBlank(bo.getRegistrationCertNo()), VehVehicleInfo::getRegistrationCertNo, bo.getRegistrationCertNo());
|
||||||
|
lqw.eq(bo.getRegisterDate() != null, VehVehicleInfo::getRegisterDate, bo.getRegisterDate());
|
||||||
|
lqw.eq(bo.getPurchaseDate() != null, VehVehicleInfo::getPurchaseDate, bo.getPurchaseDate());
|
||||||
|
lqw.eq(bo.getPurchasePrice() != null, VehVehicleInfo::getPurchasePrice, bo.getPurchasePrice());
|
||||||
|
lqw.eq(bo.getInsuranceExpiry() != null, VehVehicleInfo::getInsuranceExpiry, bo.getInsuranceExpiry());
|
||||||
|
lqw.eq(bo.getInspectionExpiry() != null, VehVehicleInfo::getInspectionExpiry, bo.getInspectionExpiry());
|
||||||
|
lqw.eq(StringUtils.isNotBlank(bo.getFileIds()), VehVehicleInfo::getFileIds, bo.getFileIds());
|
||||||
|
return lqw;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增车辆信息
|
||||||
|
*
|
||||||
|
* @param bo 车辆信息
|
||||||
|
* @return 是否新增成功
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public Boolean insertByBo(VehVehicleInfoBo bo) {
|
||||||
|
VehVehicleInfo add = MapstructUtils.convert(bo, VehVehicleInfo.class);
|
||||||
|
validEntityBeforeSave(add);
|
||||||
|
boolean flag = baseMapper.insert(add) > 0;
|
||||||
|
if (flag) {
|
||||||
|
bo.setId(add.getId());
|
||||||
|
}
|
||||||
|
return flag;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修改车辆信息
|
||||||
|
*
|
||||||
|
* @param bo 车辆信息
|
||||||
|
* @return 是否修改成功
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public Boolean updateByBo(VehVehicleInfoBo bo) {
|
||||||
|
VehVehicleInfo update = MapstructUtils.convert(bo, VehVehicleInfo.class);
|
||||||
|
validEntityBeforeSave(update);
|
||||||
|
return baseMapper.updateById(update) > 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 保存前的数据校验
|
||||||
|
*/
|
||||||
|
private void validEntityBeforeSave(VehVehicleInfo entity){
|
||||||
|
//TODO 做一些数据校验,如唯一约束
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 校验并批量删除车辆信息信息
|
||||||
|
*
|
||||||
|
* @param ids 待删除的主键集合
|
||||||
|
* @param isValid 是否进行有效性校验
|
||||||
|
* @return 是否删除成功
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
|
||||||
|
if(isValid){
|
||||||
|
//TODO 做一些业务上的校验,判断是否需要校验
|
||||||
|
}
|
||||||
|
return baseMapper.deleteByIds(ids) > 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -35,7 +35,7 @@ import org.dromara.xzd.biddingManagement.biaoqianlixiang.service.IXzdBidPreProje
|
|||||||
@Validated
|
@Validated
|
||||||
@RequiredArgsConstructor
|
@RequiredArgsConstructor
|
||||||
@RestController
|
@RestController
|
||||||
@RequestMapping("/biddingManagement/bidPreProject")
|
@RequestMapping("/xzd/biddingManagement/bidPreProject")
|
||||||
public class XzdBidPreProjectController extends BaseController {
|
public class XzdBidPreProjectController extends BaseController {
|
||||||
|
|
||||||
private final IXzdBidPreProjectService xzdBidPreProjectService;
|
private final IXzdBidPreProjectService xzdBidPreProjectService;
|
||||||
|
|||||||
@ -147,7 +147,7 @@ public class XzdBidPreProjectVo implements Serializable {
|
|||||||
/**
|
/**
|
||||||
* 联投单位
|
* 联投单位
|
||||||
*/
|
*/
|
||||||
@Translation(type = TransConstant.XZD_GYSXX_ID_TO_NAME, mapper = "jointInvestmentEntity")
|
@Translation(type = TransConstant.XZD_KHXX_ID_TO_NAME, mapper = "jointInvestmentEntity")
|
||||||
private String jointInvestmentEntityName;
|
private String jointInvestmentEntityName;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@ -184,7 +184,7 @@ public class XzdBqlxProjectInfoVo implements Serializable {
|
|||||||
* 建设单位
|
* 建设单位
|
||||||
*/
|
*/
|
||||||
@ExcelProperty(value = "建设单位")
|
@ExcelProperty(value = "建设单位")
|
||||||
@Translation(type = TransConstant.XZD_GYSXX_ID_TO_NAME, mapper = "constructionUnit")
|
@Translation(type = TransConstant.XZD_KHXX_ID_TO_NAME, mapper = "constructionUnit")
|
||||||
private String constructionUnitName;
|
private String constructionUnitName;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -208,7 +208,7 @@ public class XzdBqlxProjectInfoVo implements Serializable {
|
|||||||
* 招标单位
|
* 招标单位
|
||||||
*/
|
*/
|
||||||
@ExcelProperty(value = "招标单位")
|
@ExcelProperty(value = "招标单位")
|
||||||
@Translation(type = TransConstant.XZD_GYSXX_ID_TO_NAME, mapper = "biddingUnit")
|
@Translation(type = TransConstant.XZD_KHXX_ID_TO_NAME, mapper = "biddingUnit")
|
||||||
private String biddingUnitName;
|
private String biddingUnitName;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@ -31,7 +31,7 @@ import org.dromara.common.mybatis.core.page.TableDataInfo;
|
|||||||
@Validated
|
@Validated
|
||||||
@RequiredArgsConstructor
|
@RequiredArgsConstructor
|
||||||
@RestController
|
@RestController
|
||||||
@RequestMapping("/biddingDocument/biddingFileEstimate")
|
@RequestMapping("/xzd/biddingDocument/biddingFileEstimate")
|
||||||
public class XzdBiddingFileEstimateController extends BaseController {
|
public class XzdBiddingFileEstimateController extends BaseController {
|
||||||
|
|
||||||
private final IXzdBiddingFileEstimateService xzdBiddingFileEstimateService;
|
private final IXzdBiddingFileEstimateService xzdBiddingFileEstimateService;
|
||||||
|
|||||||
@ -82,6 +82,13 @@ public class XzdBiddingFileEstimateVo implements Serializable {
|
|||||||
@ExcelProperty(value = "招标单位")
|
@ExcelProperty(value = "招标单位")
|
||||||
private String biddingUnit;
|
private String biddingUnit;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 招标单位
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "招标单位")
|
||||||
|
@Translation(type = TransConstant.XZD_KHXX_ID_TO_NAME, mapper = "biddingUnit")
|
||||||
|
private String biddingUnitName;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 招标方式
|
* 招标方式
|
||||||
*/
|
*/
|
||||||
|
|||||||
@ -34,7 +34,7 @@ import org.dromara.common.mybatis.core.page.TableDataInfo;
|
|||||||
@Validated
|
@Validated
|
||||||
@RequiredArgsConstructor
|
@RequiredArgsConstructor
|
||||||
@RestController
|
@RestController
|
||||||
@RequestMapping("/biddingDocument/biddingDocument")
|
@RequestMapping("/xzd/biddingDocument/biddingDocument")
|
||||||
public class XzdBiddingDocumentController extends BaseController {
|
public class XzdBiddingDocumentController extends BaseController {
|
||||||
|
|
||||||
private final IXzdBiddingDocumentService xzdBiddingDocumentService;
|
private final IXzdBiddingDocumentService xzdBiddingDocumentService;
|
||||||
|
|||||||
@ -80,6 +80,14 @@ public class XzdBiddingDocumentVo implements Serializable {
|
|||||||
@ExcelProperty(value = "投标单位")
|
@ExcelProperty(value = "投标单位")
|
||||||
private String bidUnit;
|
private String bidUnit;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 投标单位
|
||||||
|
*/
|
||||||
|
@ExcelProperty(value = "投标单位")
|
||||||
|
@Translation(type = TransConstant.XZD_KHXX_ID_TO_NAME, mapper = "bidUnit")
|
||||||
|
private String bidUnitName;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 单据日期
|
* 单据日期
|
||||||
*/
|
*/
|
||||||
|
|||||||
@ -33,7 +33,7 @@ import org.dromara.common.mybatis.core.page.TableDataInfo;
|
|||||||
@Validated
|
@Validated
|
||||||
@RequiredArgsConstructor
|
@RequiredArgsConstructor
|
||||||
@RestController
|
@RestController
|
||||||
@RequestMapping("/earnestMoney/bidDepositPayment")
|
@RequestMapping("/xzd/earnestMoney/bidDepositPayment")
|
||||||
public class XzdBidDepositPaymentController extends BaseController {
|
public class XzdBidDepositPaymentController extends BaseController {
|
||||||
|
|
||||||
private final IXzdBidDepositPaymentService xzdBidDepositPaymentService;
|
private final IXzdBidDepositPaymentService xzdBidDepositPaymentService;
|
||||||
|
|||||||
@ -33,7 +33,7 @@ import org.dromara.common.mybatis.core.page.TableDataInfo;
|
|||||||
@Validated
|
@Validated
|
||||||
@RequiredArgsConstructor
|
@RequiredArgsConstructor
|
||||||
@RestController
|
@RestController
|
||||||
@RequestMapping("/biddingManagement/bidDepositRecovery")
|
@RequestMapping("/xzd/biddingManagement/bidDepositRecovery")
|
||||||
public class XzdBidDepositRecoveryController extends BaseController {
|
public class XzdBidDepositRecoveryController extends BaseController {
|
||||||
|
|
||||||
private final IXzdBidDepositRecoveryService xzdBidDepositRecoveryService;
|
private final IXzdBidDepositRecoveryService xzdBidDepositRecoveryService;
|
||||||
|
|||||||
@ -31,7 +31,7 @@ import org.dromara.common.mybatis.core.page.TableDataInfo;
|
|||||||
@Validated
|
@Validated
|
||||||
@RequiredArgsConstructor
|
@RequiredArgsConstructor
|
||||||
@RestController
|
@RestController
|
||||||
@RequestMapping("/paymentapplication/biddingAgencyFeePayment")
|
@RequestMapping("/xzd/paymentapplication/biddingAgencyFeePayment")
|
||||||
public class XzdBiddingAgencyFeePaymentController extends BaseController {
|
public class XzdBiddingAgencyFeePaymentController extends BaseController {
|
||||||
|
|
||||||
private final IXzdBiddingAgencyFeePaymentService xzdBiddingAgencyFeePaymentService;
|
private final IXzdBiddingAgencyFeePaymentService xzdBiddingAgencyFeePaymentService;
|
||||||
|
|||||||
@ -32,7 +32,7 @@ import org.dromara.common.mybatis.core.page.TableDataInfo;
|
|||||||
@Validated
|
@Validated
|
||||||
@RequiredArgsConstructor
|
@RequiredArgsConstructor
|
||||||
@RestController
|
@RestController
|
||||||
@RequestMapping("/postAnalysis/postBidAnalysis")
|
@RequestMapping("/xzd/postAnalysis/postBidAnalysis")
|
||||||
public class XzdPostBidAnalysisController extends BaseController {
|
public class XzdPostBidAnalysisController extends BaseController {
|
||||||
|
|
||||||
private final IXzdPostBidAnalysisService xzdPostBidAnalysisService;
|
private final IXzdPostBidAnalysisService xzdPostBidAnalysisService;
|
||||||
|
|||||||
@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.annotation.*;
|
|||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.EqualsAndHashCode;
|
import lombok.EqualsAndHashCode;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
import java.time.LocalDate;
|
import java.time.LocalDate;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
@ -44,7 +45,7 @@ public class XzdPostBidAnalysis extends BaseEntity {
|
|||||||
/**
|
/**
|
||||||
* 工程造价(万元)
|
* 工程造价(万元)
|
||||||
*/
|
*/
|
||||||
private Long projectCost;
|
private BigDecimal projectCost;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 项目类型
|
* 项目类型
|
||||||
@ -79,12 +80,12 @@ public class XzdPostBidAnalysis extends BaseEntity {
|
|||||||
/**
|
/**
|
||||||
* 招标控制价(万元)
|
* 招标控制价(万元)
|
||||||
*/
|
*/
|
||||||
private Long controlPrice;
|
private BigDecimal controlPrice;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 最终报价(万元)
|
* 最终报价(万元)
|
||||||
*/
|
*/
|
||||||
private Long finalQuote;
|
private BigDecimal finalQuote;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 投标结果
|
* 投标结果
|
||||||
@ -104,7 +105,7 @@ public class XzdPostBidAnalysis extends BaseEntity {
|
|||||||
/**
|
/**
|
||||||
* 最终报价(元)
|
* 最终报价(元)
|
||||||
*/
|
*/
|
||||||
private Long finalQuoteYuan;
|
private BigDecimal finalQuoteYuan;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 最终报价(大写)
|
* 最终报价(大写)
|
||||||
|
|||||||
@ -8,6 +8,7 @@ import lombok.Data;
|
|||||||
import lombok.EqualsAndHashCode;
|
import lombok.EqualsAndHashCode;
|
||||||
import jakarta.validation.constraints.*;
|
import jakarta.validation.constraints.*;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
import java.time.LocalDate;
|
import java.time.LocalDate;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@ -45,7 +46,7 @@ public class XzdPostBidAnalysisBo extends BaseEntity {
|
|||||||
/**
|
/**
|
||||||
* 工程造价(万元)
|
* 工程造价(万元)
|
||||||
*/
|
*/
|
||||||
private Long projectCost;
|
private BigDecimal projectCost;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 项目类型
|
* 项目类型
|
||||||
@ -80,12 +81,12 @@ public class XzdPostBidAnalysisBo extends BaseEntity {
|
|||||||
/**
|
/**
|
||||||
* 招标控制价(万元)
|
* 招标控制价(万元)
|
||||||
*/
|
*/
|
||||||
private Long controlPrice;
|
private BigDecimal controlPrice;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 最终报价(万元)
|
* 最终报价(万元)
|
||||||
*/
|
*/
|
||||||
private Long finalQuote;
|
private BigDecimal finalQuote;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 投标结果
|
* 投标结果
|
||||||
@ -106,7 +107,7 @@ public class XzdPostBidAnalysisBo extends BaseEntity {
|
|||||||
/**
|
/**
|
||||||
* 最终报价(元)
|
* 最终报价(元)
|
||||||
*/
|
*/
|
||||||
private Long finalQuoteYuan;
|
private BigDecimal finalQuoteYuan;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 最终报价(大写)
|
* 最终报价(大写)
|
||||||
|
|||||||
@ -1,7 +1,11 @@
|
|||||||
package org.dromara.xzd.biddingManagement.postAnalysis.domain.vo;
|
package org.dromara.xzd.biddingManagement.postAnalysis.domain.vo;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
import java.time.LocalDate;
|
import java.time.LocalDate;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.FieldFill;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableField;
|
||||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||||
import com.alibaba.excel.annotation.ExcelProperty;
|
import com.alibaba.excel.annotation.ExcelProperty;
|
||||||
@ -9,6 +13,8 @@ import org.dromara.common.excel.annotation.ExcelDictFormat;
|
|||||||
import org.dromara.common.excel.convert.ExcelDictConvert;
|
import org.dromara.common.excel.convert.ExcelDictConvert;
|
||||||
import io.github.linpeilie.annotations.AutoMapper;
|
import io.github.linpeilie.annotations.AutoMapper;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
import org.dromara.common.translation.annotation.Translation;
|
||||||
|
import org.dromara.common.translation.constant.TransConstant;
|
||||||
import org.dromara.xzd.biddingManagement.postAnalysis.domain.XzdBhfxDwpm;
|
import org.dromara.xzd.biddingManagement.postAnalysis.domain.XzdBhfxDwpm;
|
||||||
import org.dromara.xzd.biddingManagement.postAnalysis.domain.XzdPostBidAnalysis;
|
import org.dromara.xzd.biddingManagement.postAnalysis.domain.XzdPostBidAnalysis;
|
||||||
|
|
||||||
@ -54,7 +60,7 @@ public class XzdPostBidAnalysisVo implements Serializable {
|
|||||||
* 工程造价(万元)
|
* 工程造价(万元)
|
||||||
*/
|
*/
|
||||||
@ExcelProperty(value = "工程造价(万元)")
|
@ExcelProperty(value = "工程造价(万元)")
|
||||||
private Long projectCost;
|
private BigDecimal projectCost;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 项目类型
|
* 项目类型
|
||||||
@ -96,13 +102,13 @@ public class XzdPostBidAnalysisVo implements Serializable {
|
|||||||
* 招标控制价(万元)
|
* 招标控制价(万元)
|
||||||
*/
|
*/
|
||||||
@ExcelProperty(value = "招标控制价(万元)")
|
@ExcelProperty(value = "招标控制价(万元)")
|
||||||
private Long controlPrice;
|
private BigDecimal controlPrice;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 最终报价(万元)
|
* 最终报价(万元)
|
||||||
*/
|
*/
|
||||||
@ExcelProperty(value = "最终报价(万元)")
|
@ExcelProperty(value = "最终报价(万元)")
|
||||||
private Long finalQuote;
|
private BigDecimal finalQuote;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 投标结果
|
* 投标结果
|
||||||
@ -127,7 +133,7 @@ public class XzdPostBidAnalysisVo implements Serializable {
|
|||||||
* 最终报价(元)
|
* 最终报价(元)
|
||||||
*/
|
*/
|
||||||
@ExcelProperty(value = "最终报价(元)")
|
@ExcelProperty(value = "最终报价(元)")
|
||||||
private Long finalQuoteYuan;
|
private BigDecimal finalQuoteYuan;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 最终报价(大写)
|
* 最终报价(大写)
|
||||||
@ -153,6 +159,24 @@ public class XzdPostBidAnalysisVo implements Serializable {
|
|||||||
@ExcelProperty(value = "审核状态")
|
@ExcelProperty(value = "审核状态")
|
||||||
private String auditStatus;
|
private String auditStatus;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 创建者
|
||||||
|
*/
|
||||||
|
@TableField(fill = FieldFill.INSERT)
|
||||||
|
private Long createBy;
|
||||||
|
|
||||||
|
|
||||||
|
@Translation(type = TransConstant.USER_ID_TO_NICKNAME, mapper = "createBy")
|
||||||
|
private String createByName;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 创建时间
|
||||||
|
*/
|
||||||
|
@TableField(fill = FieldFill.INSERT)
|
||||||
|
private Date createTime;
|
||||||
|
|
||||||
|
|
||||||
private List<XzdBhfxDwpmVo> pm;
|
private List<XzdBhfxDwpmVo> pm;
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -31,7 +31,7 @@ import org.dromara.common.mybatis.core.page.TableDataInfo;
|
|||||||
@Validated
|
@Validated
|
||||||
@RequiredArgsConstructor
|
@RequiredArgsConstructor
|
||||||
@RestController
|
@RestController
|
||||||
@RequestMapping("/comprehensive/csContractChange")
|
@RequestMapping("/xzd/comprehensive/csContractChange")
|
||||||
public class XzdCsContractChangeController extends BaseController {
|
public class XzdCsContractChangeController extends BaseController {
|
||||||
|
|
||||||
private final IXzdCsContractChangeService xzdCsContractChangeService;
|
private final IXzdCsContractChangeService xzdCsContractChangeService;
|
||||||
|
|||||||
@ -31,7 +31,7 @@ import org.dromara.common.mybatis.core.page.TableDataInfo;
|
|||||||
@Validated
|
@Validated
|
||||||
@RequiredArgsConstructor
|
@RequiredArgsConstructor
|
||||||
@RestController
|
@RestController
|
||||||
@RequestMapping("/comprehensive/csContractInformation")
|
@RequestMapping("/xzd/comprehensive/csContractInformation")
|
||||||
public class XzdCsContractInformationController extends BaseController {
|
public class XzdCsContractInformationController extends BaseController {
|
||||||
|
|
||||||
private final IXzdCsContractInformationService xzdCsContractInformationService;
|
private final IXzdCsContractInformationService xzdCsContractInformationService;
|
||||||
|
|||||||
@ -31,7 +31,7 @@ import org.dromara.common.mybatis.core.page.TableDataInfo;
|
|||||||
@Validated
|
@Validated
|
||||||
@RequiredArgsConstructor
|
@RequiredArgsConstructor
|
||||||
@RestController
|
@RestController
|
||||||
@RequestMapping("/comprehensive/csContractSuspend")
|
@RequestMapping("/xzd/comprehensive/csContractSuspend")
|
||||||
public class XzdCsContractSuspendController extends BaseController {
|
public class XzdCsContractSuspendController extends BaseController {
|
||||||
|
|
||||||
private final IXzdCsContractSuspendService xzdCsContractSuspendService;
|
private final IXzdCsContractSuspendService xzdCsContractSuspendService;
|
||||||
|
|||||||
@ -123,7 +123,7 @@ public class XzdCsContractChangeVo implements Serializable {
|
|||||||
*/
|
*/
|
||||||
@ExcelProperty(value = "乙方单位")
|
@ExcelProperty(value = "乙方单位")
|
||||||
private Long partyB;
|
private Long partyB;
|
||||||
@Translation(type = TransConstant.XZD_GYSXX_ID_TO_NAME, mapper = "partyB")
|
@Translation(type = TransConstant.XZD_KHXX_ID_TO_NAME, mapper = "partyB")
|
||||||
private String partyBName;
|
private String partyBName;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@ -115,7 +115,7 @@ public class XzdCsContractInformationVo implements Serializable {
|
|||||||
*/
|
*/
|
||||||
@ExcelProperty(value = "乙方单位")
|
@ExcelProperty(value = "乙方单位")
|
||||||
private Long partyB;
|
private Long partyB;
|
||||||
@Translation(type = TransConstant.XZD_GYSXX_ID_TO_NAME, mapper = "partyB")
|
@Translation(type = TransConstant.XZD_KHXX_ID_TO_NAME, mapper = "partyB")
|
||||||
private String partyBName;
|
private String partyBName;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -151,7 +151,7 @@ public class XzdCsContractInformationVo implements Serializable {
|
|||||||
*/
|
*/
|
||||||
@ExcelProperty(value = "开票单位")
|
@ExcelProperty(value = "开票单位")
|
||||||
private Long invoiceIssuer;
|
private Long invoiceIssuer;
|
||||||
@Translation(type = TransConstant.XZD_GYSXX_ID_TO_NAME, mapper = "invoiceIssuer")
|
@Translation(type = TransConstant.XZD_KHXX_ID_TO_NAME, mapper = "invoiceIssuer")
|
||||||
private String invoiceIssuerName;
|
private String invoiceIssuerName;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@ -90,7 +90,7 @@ public class XzdCsContractSuspendVo implements Serializable {
|
|||||||
*/
|
*/
|
||||||
@ExcelProperty(value = "乙方单位")
|
@ExcelProperty(value = "乙方单位")
|
||||||
private Long artyBUnit;
|
private Long artyBUnit;
|
||||||
@Translation(type = TransConstant.XZD_GYSXX_ID_TO_NAME, mapper = "artyBUnit")
|
@Translation(type = TransConstant.XZD_KHXX_ID_TO_NAME, mapper = "artyBUnit")
|
||||||
private String artyBUnitName;
|
private String artyBUnitName;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@ -0,0 +1,21 @@
|
|||||||
|
package org.dromara.xzd.config;
|
||||||
|
|
||||||
|
import org.dromara.xzd.interceptor.RequestLogInterceptor;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.context.annotation.Configuration;
|
||||||
|
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
|
||||||
|
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
|
||||||
|
|
||||||
|
@Configuration
|
||||||
|
public class WebMvcConfig implements WebMvcConfigurer {
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private RequestLogInterceptor requestLogInterceptor;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void addInterceptors(InterceptorRegistry registry) {
|
||||||
|
registry.addInterceptor(requestLogInterceptor)
|
||||||
|
.addPathPatterns("/xzd/**") // 拦截所有路径
|
||||||
|
.order(1);
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -31,7 +31,7 @@ import org.dromara.common.mybatis.core.page.TableDataInfo;
|
|||||||
@Validated
|
@Validated
|
||||||
@RequiredArgsConstructor
|
@RequiredArgsConstructor
|
||||||
@RestController
|
@RestController
|
||||||
@RequestMapping("/contractTermination/purchaseContractSuspend")
|
@RequestMapping("/xzd/contractTermination/purchaseContractSuspend")
|
||||||
public class XzdPurchaseContractSuspendController extends BaseController {
|
public class XzdPurchaseContractSuspendController extends BaseController {
|
||||||
|
|
||||||
private final IXzdPurchaseContractSuspendService xzdPurchaseContractSuspendService;
|
private final IXzdPurchaseContractSuspendService xzdPurchaseContractSuspendService;
|
||||||
|
|||||||
@ -100,6 +100,7 @@ public class XzdPurchaseContractSuspendVo implements Serializable {
|
|||||||
* 乙方单位名称
|
* 乙方单位名称
|
||||||
*/
|
*/
|
||||||
@ExcelProperty(value = "乙方单位名称")
|
@ExcelProperty(value = "乙方单位名称")
|
||||||
|
@Translation(type = TransConstant.XZD_KHXX_ID_TO_NAME, mapper = "artyBUnit")
|
||||||
private String artyBUnitName;
|
private String artyBUnitName;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -112,6 +113,7 @@ public class XzdPurchaseContractSuspendVo implements Serializable {
|
|||||||
* 甲方单位名称
|
* 甲方单位名称
|
||||||
*/
|
*/
|
||||||
@ExcelProperty(value = "甲方单位名称")
|
@ExcelProperty(value = "甲方单位名称")
|
||||||
|
@Translation(type = TransConstant.XZD_KHXX_ID_TO_NAME, mapper = "partyAUnit")
|
||||||
private String partyAUnitName;
|
private String partyAUnitName;
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -55,8 +55,8 @@ public class XzdPurchaseContractSuspendServiceImpl extends ServiceImpl<XzdPurcha
|
|||||||
private final IXzdPurchaseContractInformationService xzdPurchaseContractInformationService;
|
private final IXzdPurchaseContractInformationService xzdPurchaseContractInformationService;
|
||||||
|
|
||||||
|
|
||||||
@Autowired
|
// @Autowired
|
||||||
private XzdSupplierInfoServiceImpl xzdSupplierInfoService;
|
// private XzdSupplierInfoServiceImpl xzdSupplierInfoService;
|
||||||
|
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
@ -83,27 +83,6 @@ public class XzdPurchaseContractSuspendServiceImpl extends ServiceImpl<XzdPurcha
|
|||||||
private void setValue(List<XzdPurchaseContractSuspendVo> res) {
|
private void setValue(List<XzdPurchaseContractSuspendVo> res) {
|
||||||
|
|
||||||
for (XzdPurchaseContractSuspendVo item : res) {
|
for (XzdPurchaseContractSuspendVo item : res) {
|
||||||
// //项目名称
|
|
||||||
// if (item.getProject() != null){
|
|
||||||
// String projectName = xzdProjectService.queryNameById(item.getProject());
|
|
||||||
// if (projectName != null){
|
|
||||||
// item.setProjectName(projectName);
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
//甲方单位(客户信息列表)
|
|
||||||
R<QuerCorrespondentDto> byid = iXzdCorrespondentList.getCustomerByid(item.getPartyAUnit());
|
|
||||||
if (byid!=null){
|
|
||||||
if (byid.getData().getXzdCustomerinformation() != null){
|
|
||||||
item.setPartyAUnitName(byid.getData().getXzdCustomerinformation().getUnitName());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
//乙方单位(供应商信息列表)
|
|
||||||
if (item.getArtyBUnit() != null){
|
|
||||||
String unitName = xzdSupplierInfoService.queryNameById(item.getArtyBUnit());
|
|
||||||
if (unitName != null){
|
|
||||||
item.setArtyBUnitName(unitName);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// 采购合同信息编码
|
// 采购合同信息编码
|
||||||
if (item.getContractInformationId() != null){
|
if (item.getContractInformationId() != null){
|
||||||
XzdPurchaseContractInformationVo queryById = xzdPurchaseContractInformationService.queryById(item.getContractInformationId());
|
XzdPurchaseContractInformationVo queryById = xzdPurchaseContractInformationService.queryById(item.getContractInformationId());
|
||||||
|
|||||||
@ -31,7 +31,7 @@ import org.dromara.common.mybatis.core.page.TableDataInfo;
|
|||||||
@Validated
|
@Validated
|
||||||
@RequiredArgsConstructor
|
@RequiredArgsConstructor
|
||||||
@RestController
|
@RestController
|
||||||
@RequestMapping("/hetongbiangeng/purchaseContractAlteration")
|
@RequestMapping("/xzd/hetongbiangeng/purchaseContractAlteration")
|
||||||
public class XzdPurchaseContractAlterationController extends BaseController {
|
public class XzdPurchaseContractAlterationController extends BaseController {
|
||||||
|
|
||||||
private final IXzdPurchaseContractAlterationService xzdPurchaseContractAlterationService;
|
private final IXzdPurchaseContractAlterationService xzdPurchaseContractAlterationService;
|
||||||
|
|||||||
@ -132,6 +132,7 @@ public class XzdPurchaseContractAlterationVo implements Serializable {
|
|||||||
* 甲方单位
|
* 甲方单位
|
||||||
*/
|
*/
|
||||||
@ExcelProperty(value = "甲方单位")
|
@ExcelProperty(value = "甲方单位")
|
||||||
|
@Translation(type = TransConstant.XZD_KHXX_ID_TO_NAME, mapper = "partyAUnit")
|
||||||
private String partyAUnitName;
|
private String partyAUnitName;
|
||||||
|
|
||||||
|
|
||||||
@ -151,6 +152,7 @@ public class XzdPurchaseContractAlterationVo implements Serializable {
|
|||||||
* 乙方单位
|
* 乙方单位
|
||||||
*/
|
*/
|
||||||
@ExcelProperty(value = "乙方单位")
|
@ExcelProperty(value = "乙方单位")
|
||||||
|
@Translation(type = TransConstant.XZD_KHXX_ID_TO_NAME, mapper = "artyBUnit")
|
||||||
private String artyBUnitName;
|
private String artyBUnitName;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@ -97,20 +97,7 @@ public class XzdPurchaseContractAlterationServiceImpl extends ServiceImpl<XzdPur
|
|||||||
|
|
||||||
for (XzdPurchaseContractAlterationVo item : infos) {
|
for (XzdPurchaseContractAlterationVo item : infos) {
|
||||||
|
|
||||||
//甲方单位(客户信息列表)
|
|
||||||
R<QuerCorrespondentDto> byid = iXzdCorrespondentList.getCustomerByid(item.getPartyAUnit());
|
|
||||||
if (byid!=null){
|
|
||||||
if (byid.getData().getXzdCustomerinformation() != null){
|
|
||||||
item.setPartyAUnitName(byid.getData().getXzdCustomerinformation().getUnitName());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
//乙方单位(供应商信息列表)
|
|
||||||
if (item.getArtyBUnit() != null){
|
|
||||||
String unitName = xzdSupplierInfoService.queryNameById(item.getArtyBUnit());
|
|
||||||
if (unitName != null){
|
|
||||||
item.setArtyBUnitName(unitName);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// 合同编码
|
// 合同编码
|
||||||
if (item.getContractInformationId() != null){
|
if (item.getContractInformationId() != null){
|
||||||
XzdPurchaseContractInformationVo vo = iXzdPurchaseContractInformationService.queryById(item.getContractInformationId());
|
XzdPurchaseContractInformationVo vo = iXzdPurchaseContractInformationService.queryById(item.getContractInformationId());
|
||||||
|
|||||||
@ -31,7 +31,7 @@ import org.dromara.common.mybatis.core.page.TableDataInfo;
|
|||||||
@Validated
|
@Validated
|
||||||
@RequiredArgsConstructor
|
@RequiredArgsConstructor
|
||||||
@RestController
|
@RestController
|
||||||
@RequestMapping("/fenbaohetongbiangg/subcontractChange")
|
@RequestMapping("/xzd/fenbaohetongbiangg/subcontractChange")
|
||||||
public class XzdSubcontractChangeController extends BaseController {
|
public class XzdSubcontractChangeController extends BaseController {
|
||||||
|
|
||||||
private final IXzdSubcontractChangeService xzdSubcontractChangeService;
|
private final IXzdSubcontractChangeService xzdSubcontractChangeService;
|
||||||
|
|||||||
@ -169,6 +169,7 @@ public class XzdSubcontractChangeServiceImpl extends ServiceImpl<XzdSubcontractC
|
|||||||
lqw.orderByDesc(XzdSubcontractChange::getId);
|
lqw.orderByDesc(XzdSubcontractChange::getId);
|
||||||
lqw.eq(StringUtils.isNotBlank(bo.getDocumentCode()), XzdSubcontractChange::getDocumentCode, bo.getDocumentCode());
|
lqw.eq(StringUtils.isNotBlank(bo.getDocumentCode()), XzdSubcontractChange::getDocumentCode, bo.getDocumentCode());
|
||||||
lqw.eq(StringUtils.isNotBlank(bo.getTitle()), XzdSubcontractChange::getTitle, bo.getTitle());
|
lqw.eq(StringUtils.isNotBlank(bo.getTitle()), XzdSubcontractChange::getTitle, bo.getTitle());
|
||||||
|
lqw.eq(StringUtils.isNotBlank(bo.getProjectName()), XzdSubcontractChange::getProjectName, bo.getProjectName());
|
||||||
lqw.eq(bo.getDocumentDate() != null, XzdSubcontractChange::getDocumentDate, bo.getDocumentDate());
|
lqw.eq(bo.getDocumentDate() != null, XzdSubcontractChange::getDocumentDate, bo.getDocumentDate());
|
||||||
lqw.eq(bo.getDeptId() != null, XzdSubcontractChange::getDeptId, bo.getDeptId());
|
lqw.eq(bo.getDeptId() != null, XzdSubcontractChange::getDeptId, bo.getDeptId());
|
||||||
lqw.ge(bo.getStartTime() != null, XzdSubcontractChange::getDocumentDate, bo.getStartTime());
|
lqw.ge(bo.getStartTime() != null, XzdSubcontractChange::getDocumentDate, bo.getStartTime());
|
||||||
|
|||||||
@ -31,7 +31,7 @@ import org.dromara.common.mybatis.core.page.TableDataInfo;
|
|||||||
@Validated
|
@Validated
|
||||||
@RequiredArgsConstructor
|
@RequiredArgsConstructor
|
||||||
@RestController
|
@RestController
|
||||||
@RequestMapping("/fenbaohetongxinxi/subcontract")
|
@RequestMapping("/xzd/fenbaohetongxinxi/subcontract")
|
||||||
public class XzdSubcontractController extends BaseController {
|
public class XzdSubcontractController extends BaseController {
|
||||||
|
|
||||||
private final IXzdSubcontractService xzdSubcontractService;
|
private final IXzdSubcontractService xzdSubcontractService;
|
||||||
|
|||||||
@ -86,6 +86,7 @@ public class XzdSubcontractVo implements Serializable {
|
|||||||
* 项目名称
|
* 项目名称
|
||||||
*/
|
*/
|
||||||
@ExcelProperty(value = "项目名称")
|
@ExcelProperty(value = "项目名称")
|
||||||
|
@Translation(type = TransConstant.XZD_PROJECT_ID_TO_NAME, mapper = "project")
|
||||||
private String projectName;
|
private String projectName;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -129,6 +130,7 @@ public class XzdSubcontractVo implements Serializable {
|
|||||||
* 甲方单位名称
|
* 甲方单位名称
|
||||||
*/
|
*/
|
||||||
@ExcelProperty(value = "甲方单位名称")
|
@ExcelProperty(value = "甲方单位名称")
|
||||||
|
@Translation(type = TransConstant.XZD_KHXX_ID_TO_NAME, mapper = "partyAUnit")
|
||||||
private String partyAUnitName;
|
private String partyAUnitName;
|
||||||
|
|
||||||
|
|
||||||
@ -142,6 +144,7 @@ public class XzdSubcontractVo implements Serializable {
|
|||||||
* 乙方单位名称
|
* 乙方单位名称
|
||||||
*/
|
*/
|
||||||
@ExcelProperty(value = "乙方单位名称")
|
@ExcelProperty(value = "乙方单位名称")
|
||||||
|
@Translation(type = TransConstant.XZD_KHXX_ID_TO_NAME, mapper = "partyBUnit")
|
||||||
private String partyBUnitName;
|
private String partyBUnitName;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -161,6 +164,7 @@ public class XzdSubcontractVo implements Serializable {
|
|||||||
* 管理组织名称
|
* 管理组织名称
|
||||||
*/
|
*/
|
||||||
@ExcelProperty(value = "管理组织名称")
|
@ExcelProperty(value = "管理组织名称")
|
||||||
|
@Translation(type = TransConstant.DEPT_ID_TO_NAME, mapper = "managementOrganization")
|
||||||
private String managementOrganizationName;
|
private String managementOrganizationName;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -186,6 +190,7 @@ public class XzdSubcontractVo implements Serializable {
|
|||||||
* 开票单位名称
|
* 开票单位名称
|
||||||
*/
|
*/
|
||||||
@ExcelProperty(value = "开票单位名称", converter = ExcelDictConvert.class)
|
@ExcelProperty(value = "开票单位名称", converter = ExcelDictConvert.class)
|
||||||
|
@Translation(type = TransConstant.XZD_KHXX_ID_TO_NAME, mapper = "invoicingUnit")
|
||||||
private String invoicingUnitName;
|
private String invoicingUnitName;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -198,6 +203,7 @@ public class XzdSubcontractVo implements Serializable {
|
|||||||
* 收票单位名称
|
* 收票单位名称
|
||||||
*/
|
*/
|
||||||
@ExcelProperty(value = "收票单位名称", converter = ExcelDictConvert.class)
|
@ExcelProperty(value = "收票单位名称", converter = ExcelDictConvert.class)
|
||||||
|
@Translation(type = TransConstant.XZD_KHXX_ID_TO_NAME, mapper = "ticketReceivingUnit")
|
||||||
private String ticketReceivingUnitName;
|
private String ticketReceivingUnitName;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@ -118,44 +118,6 @@ public class XzdSubcontractServiceImpl extends ServiceImpl<XzdSubcontractMapper,
|
|||||||
|
|
||||||
private void setValue(List<XzdSubcontractVo> infos) {
|
private void setValue(List<XzdSubcontractVo> infos) {
|
||||||
for (XzdSubcontractVo item : infos) {
|
for (XzdSubcontractVo item : infos) {
|
||||||
//项目名称
|
|
||||||
if (item.getProject() != null){
|
|
||||||
String projectName = xzdProjectService.queryNameById(item.getProject());
|
|
||||||
if (projectName != null){
|
|
||||||
item.setProjectName(projectName);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
//甲方单位(客户信息列表)
|
|
||||||
R<QuerCorrespondentDto> byid = iXzdCorrespondentList.getCustomerByid(item.getPartyAUnit());
|
|
||||||
if (byid!=null){
|
|
||||||
if (byid.getData().getXzdCustomerinformation() != null){
|
|
||||||
item.setPartyAUnitName(byid.getData().getXzdCustomerinformation().getUnitName());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
//乙方单位(供应商信息列表)
|
|
||||||
if (item.getPartyBUnit() != null){
|
|
||||||
String unitName = xzdSupplierInfoService.queryNameById(item.getPartyBUnit());
|
|
||||||
if (unitName != null){
|
|
||||||
item.setPartyBUnitName(unitName);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
//管理组织(供应商)
|
|
||||||
String unitName = xzdSupplierInfoService.queryNameById(item.getPartyBUnit());
|
|
||||||
if (unitName != null){
|
|
||||||
item.setManagementOrganizationName(unitName);
|
|
||||||
}
|
|
||||||
//开票单位名称
|
|
||||||
R<QuerCorrespondentDto> byidtemp = iXzdCorrespondentList.getCustomerByid((item.getInvoicingUnit()));
|
|
||||||
if (byidtemp!=null){
|
|
||||||
if (byidtemp.getData().getXzdCustomerinformation() != null){
|
|
||||||
item.setInvoicingUnitName(byidtemp.getData().getXzdCustomerinformation().getUnitName());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
//收票单位名称(供应商名称)
|
|
||||||
String unitName2 = xzdSupplierInfoService.queryNameById(item.getTicketReceivingUnit());
|
|
||||||
if (unitName2 != null){
|
|
||||||
item.setTicketReceivingUnitName(unitName2);
|
|
||||||
}
|
|
||||||
|
|
||||||
// //合同文本-预收款项
|
// //合同文本-预收款项
|
||||||
LambdaQueryWrapper<XzdContractAdvanceInfo> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
LambdaQueryWrapper<XzdContractAdvanceInfo> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||||
|
|||||||
@ -31,7 +31,7 @@ import org.dromara.common.mybatis.core.page.TableDataInfo;
|
|||||||
@Validated
|
@Validated
|
||||||
@RequiredArgsConstructor
|
@RequiredArgsConstructor
|
||||||
@RestController
|
@RestController
|
||||||
@RequestMapping("/fenbaohetongzhongzhi/subcontractTermination")
|
@RequestMapping("/xzd/fenbaohetongzhongzhi/subcontractTermination")
|
||||||
public class XzdSubcontractTerminationController extends BaseController {
|
public class XzdSubcontractTerminationController extends BaseController {
|
||||||
|
|
||||||
private final IXzdSubcontractTerminationService xzdSubcontractTerminationService;
|
private final IXzdSubcontractTerminationService xzdSubcontractTerminationService;
|
||||||
|
|||||||
@ -32,7 +32,7 @@ import org.dromara.common.mybatis.core.page.TableDataInfo;
|
|||||||
@Validated
|
@Validated
|
||||||
@RequiredArgsConstructor
|
@RequiredArgsConstructor
|
||||||
@RestController
|
@RestController
|
||||||
@RequestMapping("/contractManagement/purchaseContractInformation")
|
@RequestMapping("/xzd/contractManagement/purchaseContractInformation")
|
||||||
public class XzdPurchaseContractInformationController extends BaseController {
|
public class XzdPurchaseContractInformationController extends BaseController {
|
||||||
|
|
||||||
private final IXzdPurchaseContractInformationService xzdPurchaseContractInformationService;
|
private final IXzdPurchaseContractInformationService xzdPurchaseContractInformationService;
|
||||||
|
|||||||
@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.annotation.*;
|
|||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.EqualsAndHashCode;
|
import lombok.EqualsAndHashCode;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
import java.time.LocalDate;
|
import java.time.LocalDate;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
@ -64,7 +65,7 @@ public class XzdPurchaseContractInformation extends BaseEntity {
|
|||||||
/**
|
/**
|
||||||
* 原合同造价
|
* 原合同造价
|
||||||
*/
|
*/
|
||||||
private Long originalContractCost;
|
private BigDecimal originalContractCost;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 签订日期
|
* 签订日期
|
||||||
@ -79,7 +80,7 @@ public class XzdPurchaseContractInformation extends BaseEntity {
|
|||||||
/**
|
/**
|
||||||
* 含税合同金额
|
* 含税合同金额
|
||||||
*/
|
*/
|
||||||
private Long taxInclusiveContractAmount;
|
private BigDecimal taxInclusiveContractAmount;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 合同状态,例如:新增
|
* 合同状态,例如:新增
|
||||||
@ -89,7 +90,7 @@ public class XzdPurchaseContractInformation extends BaseEntity {
|
|||||||
/**
|
/**
|
||||||
* 累计变更金额
|
* 累计变更金额
|
||||||
*/
|
*/
|
||||||
private Long cumulativeChangeAmount;
|
private BigDecimal cumulativeChangeAmount;
|
||||||
|
|
||||||
|
|
||||||
private Long deptId;
|
private Long deptId;
|
||||||
|
|||||||
@ -9,6 +9,7 @@ import lombok.Data;
|
|||||||
import lombok.EqualsAndHashCode;
|
import lombok.EqualsAndHashCode;
|
||||||
import jakarta.validation.constraints.*;
|
import jakarta.validation.constraints.*;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
import java.time.LocalDate;
|
import java.time.LocalDate;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@ -68,7 +69,7 @@ public class XzdPurchaseContractInformationBo extends BaseEntity {
|
|||||||
/**
|
/**
|
||||||
* 原合同造价
|
* 原合同造价
|
||||||
*/
|
*/
|
||||||
private Long originalContractCost;
|
private BigDecimal originalContractCost;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 签订日期
|
* 签订日期
|
||||||
@ -85,7 +86,7 @@ public class XzdPurchaseContractInformationBo extends BaseEntity {
|
|||||||
/**
|
/**
|
||||||
* 含税合同金额
|
* 含税合同金额
|
||||||
*/
|
*/
|
||||||
private Long taxInclusiveContractAmount;
|
private BigDecimal taxInclusiveContractAmount;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 合同状态,例如:新增
|
* 合同状态,例如:新增
|
||||||
@ -95,7 +96,7 @@ public class XzdPurchaseContractInformationBo extends BaseEntity {
|
|||||||
/**
|
/**
|
||||||
* 累计变更金额
|
* 累计变更金额
|
||||||
*/
|
*/
|
||||||
private Long cumulativeChangeAmount;
|
private BigDecimal cumulativeChangeAmount;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 归档日期
|
* 归档日期
|
||||||
|
|||||||
@ -1,5 +1,6 @@
|
|||||||
package org.dromara.xzd.contractManagement.purchaseManagement.domain.vo;
|
package org.dromara.xzd.contractManagement.purchaseManagement.domain.vo;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
import java.time.LocalDate;
|
import java.time.LocalDate;
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
@ -88,6 +89,7 @@ public class XzdPurchaseContractInformationVo implements Serializable {
|
|||||||
* 项目名称
|
* 项目名称
|
||||||
*/
|
*/
|
||||||
@ExcelProperty(value = "项目名称")
|
@ExcelProperty(value = "项目名称")
|
||||||
|
@Translation(type = TransConstant.XZD_PROJECT_ID_TO_NAME, mapper = "project")
|
||||||
private String projectName;
|
private String projectName;
|
||||||
|
|
||||||
|
|
||||||
@ -101,7 +103,7 @@ public class XzdPurchaseContractInformationVo implements Serializable {
|
|||||||
* 原合同造价
|
* 原合同造价
|
||||||
*/
|
*/
|
||||||
@ExcelProperty(value = "原合同造价")
|
@ExcelProperty(value = "原合同造价")
|
||||||
private Long originalContractCost;
|
private BigDecimal originalContractCost;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 签订日期
|
* 签订日期
|
||||||
@ -119,13 +121,14 @@ public class XzdPurchaseContractInformationVo implements Serializable {
|
|||||||
* 甲方单位名称
|
* 甲方单位名称
|
||||||
*/
|
*/
|
||||||
@ExcelProperty(value = "甲方单位名称")
|
@ExcelProperty(value = "甲方单位名称")
|
||||||
|
@Translation(type = TransConstant.XZD_KHXX_ID_TO_NAME, mapper = "partyAUnit")
|
||||||
private String partyAUnitName;
|
private String partyAUnitName;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 含税合同金额
|
* 含税合同金额
|
||||||
*/
|
*/
|
||||||
@ExcelProperty(value = "含税合同金额")
|
@ExcelProperty(value = "含税合同金额")
|
||||||
private Long taxInclusiveContractAmount;
|
private BigDecimal taxInclusiveContractAmount;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 合同状态,例如:新增
|
* 合同状态,例如:新增
|
||||||
@ -137,7 +140,7 @@ public class XzdPurchaseContractInformationVo implements Serializable {
|
|||||||
* 累计变更金额
|
* 累计变更金额
|
||||||
*/
|
*/
|
||||||
@ExcelProperty(value = "累计变更金额")
|
@ExcelProperty(value = "累计变更金额")
|
||||||
private Long cumulativeChangeAmount;
|
private BigDecimal cumulativeChangeAmount;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 归档日期
|
* 归档日期
|
||||||
@ -169,6 +172,7 @@ public class XzdPurchaseContractInformationVo implements Serializable {
|
|||||||
* 开票单位名称
|
* 开票单位名称
|
||||||
*/
|
*/
|
||||||
@ExcelProperty(value = "开票单位名称", converter = ExcelDictConvert.class)
|
@ExcelProperty(value = "开票单位名称", converter = ExcelDictConvert.class)
|
||||||
|
@Translation(type = TransConstant.XZD_KHXX_ID_TO_NAME, mapper = "invoiceIssuingUnit")
|
||||||
private String invoiceIssuingUnitName;
|
private String invoiceIssuingUnitName;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -182,6 +186,7 @@ public class XzdPurchaseContractInformationVo implements Serializable {
|
|||||||
* 收票单位名称
|
* 收票单位名称
|
||||||
*/
|
*/
|
||||||
@ExcelProperty(value = "收票单位名称", converter = ExcelDictConvert.class)
|
@ExcelProperty(value = "收票单位名称", converter = ExcelDictConvert.class)
|
||||||
|
@Translation(type = TransConstant.XZD_KHXX_ID_TO_NAME, mapper = "invoiceReceivingUnit")
|
||||||
private String invoiceReceivingUnitName;
|
private String invoiceReceivingUnitName;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -217,6 +222,7 @@ public class XzdPurchaseContractInformationVo implements Serializable {
|
|||||||
* 乙方单位名称
|
* 乙方单位名称
|
||||||
*/
|
*/
|
||||||
@ExcelProperty(value = "乙方单位名称")
|
@ExcelProperty(value = "乙方单位名称")
|
||||||
|
@Translation(type = TransConstant.XZD_KHXX_ID_TO_NAME, mapper = "partyBUnit")
|
||||||
private String partyBUnitName;
|
private String partyBUnitName;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -242,6 +248,7 @@ public class XzdPurchaseContractInformationVo implements Serializable {
|
|||||||
* 其他收入合同项目名称
|
* 其他收入合同项目名称
|
||||||
*/
|
*/
|
||||||
@ExcelProperty(value = "其他收入合同项目名称")
|
@ExcelProperty(value = "其他收入合同项目名称")
|
||||||
|
@Translation(type = TransConstant.XZD_PROJECT_ID_TO_NAME, mapper = "otherIncomeContractProject")
|
||||||
private String otherIncomeContractProjectName;
|
private String otherIncomeContractProjectName;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -272,6 +279,7 @@ public class XzdPurchaseContractInformationVo implements Serializable {
|
|||||||
* 签约组织名称
|
* 签约组织名称
|
||||||
*/
|
*/
|
||||||
@ExcelProperty(value = "签约组织名称")
|
@ExcelProperty(value = "签约组织名称")
|
||||||
|
@Translation(type = TransConstant.XZD_KHXX_ID_TO_NAME, mapper = "signingOrganization")
|
||||||
private String signingOrganizationName;
|
private String signingOrganizationName;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -296,6 +304,7 @@ public class XzdPurchaseContractInformationVo implements Serializable {
|
|||||||
* 丙方单位名称
|
* 丙方单位名称
|
||||||
*/
|
*/
|
||||||
@ExcelProperty(value = "丙方单位名称")
|
@ExcelProperty(value = "丙方单位名称")
|
||||||
|
@Translation(type = TransConstant.XZD_KHXX_ID_TO_NAME, mapper = "partyCUnit")
|
||||||
private String partyCUnitName;
|
private String partyCUnitName;
|
||||||
|
|
||||||
|
|
||||||
@ -322,6 +331,7 @@ public class XzdPurchaseContractInformationVo implements Serializable {
|
|||||||
* 关联主合同
|
* 关联主合同
|
||||||
*/
|
*/
|
||||||
@ExcelProperty(value = "关联主合同")
|
@ExcelProperty(value = "关联主合同")
|
||||||
|
@Translation(type = TransConstant.XZD_PROJECT_ID_TO_NAME, mapper = "associatedMainContract")
|
||||||
private String associatedMainContractName;
|
private String associatedMainContractName;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@ -406,74 +406,6 @@ public class XzdPurchaseContractInformationServiceImpl extends ServiceImpl<XzdPu
|
|||||||
public void setValue(List<XzdPurchaseContractInformationVo> infos){
|
public void setValue(List<XzdPurchaseContractInformationVo> infos){
|
||||||
|
|
||||||
for (XzdPurchaseContractInformationVo item : infos) {
|
for (XzdPurchaseContractInformationVo item : infos) {
|
||||||
|
|
||||||
|
|
||||||
//项目名称
|
|
||||||
if (item.getProject() != null){
|
|
||||||
String projectName = xzdProjectService.queryNameById(item.getProject());
|
|
||||||
if (projectName != null){
|
|
||||||
item.setProjectName(projectName);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//其他项目名称
|
|
||||||
if (item.getProject() != null){
|
|
||||||
if (StringUtils.isNotEmpty(item.getAssociatedMainContract())){
|
|
||||||
String projectName = xzdProjectService.queryNameById(Long.parseLong(item.getAssociatedMainContract()));
|
|
||||||
if (projectName != null){
|
|
||||||
item.setAssociatedMainContractName(projectName);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
//其他收入合同项目名称
|
|
||||||
if (item.getOtherIncomeContractProject() != null){
|
|
||||||
String projectName = xzdProjectService.queryNameById(item.getOtherIncomeContractProject());
|
|
||||||
if (projectName != null){
|
|
||||||
item.setOtherIncomeContractProjectName(projectName);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
//甲方单位(客户信息列表)
|
|
||||||
R<QuerCorrespondentDto> byid = iXzdCorrespondentList.getCustomerByid(item.getPartyAUnit());
|
|
||||||
if (byid!=null){
|
|
||||||
if (byid.getData().getXzdCustomerinformation() != null){
|
|
||||||
item.setPartyAUnitName(byid.getData().getXzdCustomerinformation().getUnitName());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
//乙方单位(供应商信息列表)
|
|
||||||
if (item.getPartyBUnit() != null){
|
|
||||||
String unitName = xzdSupplierInfoService.queryNameById(item.getPartyBUnit());
|
|
||||||
if (unitName != null){
|
|
||||||
item.setPartyBUnitName(unitName);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// //管理组织
|
|
||||||
// String unitName = xzdSupplierInfoService.queryNameById(item.getManagementOrganization());
|
|
||||||
//
|
|
||||||
// if (unitName != null){
|
|
||||||
// item.setManagementOrganizationName(unitName);
|
|
||||||
// }
|
|
||||||
//开票单位名称(供应商名称)
|
|
||||||
String unitName1 = xzdSupplierInfoService.queryNameById(item.getInvoiceIssuingUnit());
|
|
||||||
if (unitName1 != null){
|
|
||||||
item.setInvoiceIssuingUnitName(unitName1);
|
|
||||||
}
|
|
||||||
//收票单位名称
|
|
||||||
String unitNametemp = xzdSupplierInfoService.queryNameById(item.getInvoiceReceivingUnit());
|
|
||||||
if (unitNametemp!=null){
|
|
||||||
item.setInvoiceReceivingUnitName(unitNametemp);
|
|
||||||
}
|
|
||||||
//签约组织(供应商)
|
|
||||||
String unitName2 = xzdSupplierInfoService.queryNameById(item.getInvoiceIssuingUnit());
|
|
||||||
if (unitName2!= null){
|
|
||||||
item.setSigningOrganizationName(unitName2);
|
|
||||||
}
|
|
||||||
//丙方单位(供应商)
|
|
||||||
String unitName3 = xzdSupplierInfoService.queryNameById(item.getInvoiceIssuingUnit());
|
|
||||||
|
|
||||||
if (unitName3!= null){
|
|
||||||
item.setPartyCUnitName(unitName3);
|
|
||||||
}
|
|
||||||
//合同文本-预收款项
|
//合同文本-预收款项
|
||||||
LambdaQueryWrapper<XzdContractAdvanceInfo> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
LambdaQueryWrapper<XzdContractAdvanceInfo> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||||
lambdaQueryWrapper.eq(XzdContractAdvanceInfo::getContractDetailsId, item.getId());
|
lambdaQueryWrapper.eq(XzdContractAdvanceInfo::getContractDetailsId, item.getId());
|
||||||
|
|||||||
@ -31,7 +31,7 @@ import org.dromara.common.mybatis.core.page.TableDataInfo;
|
|||||||
@Validated
|
@Validated
|
||||||
@RequiredArgsConstructor
|
@RequiredArgsConstructor
|
||||||
@RestController
|
@RestController
|
||||||
@RequestMapping("/costBudget/cbysJdcbfj")
|
@RequestMapping("/xzd/costBudget/cbysJdcbfj")
|
||||||
public class XzdCbysJdcbfjController extends BaseController {
|
public class XzdCbysJdcbfjController extends BaseController {
|
||||||
|
|
||||||
private final IXzdCbysJdcbfjService xzdCbysJdcbfjService;
|
private final IXzdCbysJdcbfjService xzdCbysJdcbfjService;
|
||||||
|
|||||||
@ -31,7 +31,7 @@ import org.dromara.common.mybatis.core.page.TableDataInfo;
|
|||||||
@Validated
|
@Validated
|
||||||
@RequiredArgsConstructor
|
@RequiredArgsConstructor
|
||||||
@RestController
|
@RestController
|
||||||
@RequestMapping("/costBudget/cbysWgcbtb")
|
@RequestMapping("/xzd/costBudget/cbysWgcbtb")
|
||||||
public class XzdCbysWgcbtbController extends BaseController {
|
public class XzdCbysWgcbtbController extends BaseController {
|
||||||
|
|
||||||
private final IXzdCbysWgcbtbService xzdCbysWgcbtbService;
|
private final IXzdCbysWgcbtbService xzdCbysWgcbtbService;
|
||||||
|
|||||||
@ -31,7 +31,7 @@ import org.dromara.common.mybatis.core.page.TableDataInfo;
|
|||||||
@Validated
|
@Validated
|
||||||
@RequiredArgsConstructor
|
@RequiredArgsConstructor
|
||||||
@RestController
|
@RestController
|
||||||
@RequestMapping("/costBudget/cbysZjhcbAlteration")
|
@RequestMapping("/xzd/costBudget/cbysZjhcbAlteration")
|
||||||
public class XzdCbysZjhcbAlterationController extends BaseController {
|
public class XzdCbysZjhcbAlterationController extends BaseController {
|
||||||
|
|
||||||
private final IXzdCbysZjhcbAlterationService xzdCbysZjhcbAlterationService;
|
private final IXzdCbysZjhcbAlterationService xzdCbysZjhcbAlterationService;
|
||||||
|
|||||||
@ -31,7 +31,7 @@ import org.dromara.common.mybatis.core.page.TableDataInfo;
|
|||||||
@Validated
|
@Validated
|
||||||
@RequiredArgsConstructor
|
@RequiredArgsConstructor
|
||||||
@RestController
|
@RestController
|
||||||
@RequestMapping("/costBudget/cbysZjhcb")
|
@RequestMapping("/xzd/costBudget/cbysZjhcb")
|
||||||
public class XzdCbysZjhcbController extends BaseController {
|
public class XzdCbysZjhcbController extends BaseController {
|
||||||
|
|
||||||
private final IXzdCbysZjhcbService xzdCbysZjhcbService;
|
private final IXzdCbysZjhcbService xzdCbysZjhcbService;
|
||||||
|
|||||||
@ -31,7 +31,7 @@ import org.dromara.common.mybatis.core.page.TableDataInfo;
|
|||||||
@Validated
|
@Validated
|
||||||
@RequiredArgsConstructor
|
@RequiredArgsConstructor
|
||||||
@RestController
|
@RestController
|
||||||
@RequestMapping("/backletter/guaranteeChangeInfo")
|
@RequestMapping("/xzd/backletter/guaranteeChangeInfo")
|
||||||
public class XzdGuaranteeChangeInfoController extends BaseController {
|
public class XzdGuaranteeChangeInfoController extends BaseController {
|
||||||
|
|
||||||
private final IXzdGuaranteeChangeInfoService xzdGuaranteeChangeInfoService;
|
private final IXzdGuaranteeChangeInfoService xzdGuaranteeChangeInfoService;
|
||||||
|
|||||||
@ -32,7 +32,7 @@ import org.dromara.common.mybatis.core.page.TableDataInfo;
|
|||||||
@Validated
|
@Validated
|
||||||
@RequiredArgsConstructor
|
@RequiredArgsConstructor
|
||||||
@RestController
|
@RestController
|
||||||
@RequestMapping("/deposit/guaranteeInfo")
|
@RequestMapping("/xzd/deposit/guaranteeInfo")
|
||||||
public class XzdGuaranteeInfoController extends BaseController {
|
public class XzdGuaranteeInfoController extends BaseController {
|
||||||
|
|
||||||
private final IXzdGuaranteeInfoService xzdGuaranteeInfoService;
|
private final IXzdGuaranteeInfoService xzdGuaranteeInfoService;
|
||||||
|
|||||||
@ -11,6 +11,8 @@ import org.dromara.common.excel.annotation.ExcelDictFormat;
|
|||||||
import org.dromara.common.excel.convert.ExcelDictConvert;
|
import org.dromara.common.excel.convert.ExcelDictConvert;
|
||||||
import io.github.linpeilie.annotations.AutoMapper;
|
import io.github.linpeilie.annotations.AutoMapper;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
import org.dromara.common.translation.annotation.Translation;
|
||||||
|
import org.dromara.common.translation.constant.TransConstant;
|
||||||
import org.dromara.xzd.deposit.contractBackletter.domain.XzdGuaranteeInfo;
|
import org.dromara.xzd.deposit.contractBackletter.domain.XzdGuaranteeInfo;
|
||||||
|
|
||||||
import java.io.Serial;
|
import java.io.Serial;
|
||||||
@ -109,6 +111,7 @@ public class XzdGuaranteeInfoVo implements Serializable {
|
|||||||
* 申请机构名称
|
* 申请机构名称
|
||||||
*/
|
*/
|
||||||
@ExcelProperty(value = "申请机构名称")
|
@ExcelProperty(value = "申请机构名称")
|
||||||
|
@Translation(type = TransConstant.XZD_KHXX_ID_TO_NAME, mapper = "applicationOrganization")
|
||||||
private String applicationOrganizationName;
|
private String applicationOrganizationName;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -128,6 +131,7 @@ public class XzdGuaranteeInfoVo implements Serializable {
|
|||||||
* 甲方单位名称
|
* 甲方单位名称
|
||||||
*/
|
*/
|
||||||
@ExcelProperty(value = "甲方单位名称")
|
@ExcelProperty(value = "甲方单位名称")
|
||||||
|
@Translation(type = TransConstant.XZD_KHXX_ID_TO_NAME, mapper = "applicationOrganization")
|
||||||
private String partyAUnitName;
|
private String partyAUnitName;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -140,6 +144,7 @@ public class XzdGuaranteeInfoVo implements Serializable {
|
|||||||
* 乙方单位名称
|
* 乙方单位名称
|
||||||
*/
|
*/
|
||||||
@ExcelProperty(value = "乙方单位名称")
|
@ExcelProperty(value = "乙方单位名称")
|
||||||
|
@Translation(type = TransConstant.XZD_KHXX_ID_TO_NAME, mapper = "applicationOrganization")
|
||||||
private String partyBUnitName;
|
private String partyBUnitName;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@ -72,7 +72,7 @@ public class XzdGuaranteeInfoServiceImpl extends ServiceImpl<XzdGuaranteeInfoMap
|
|||||||
XzdGuaranteeInfoVo xzdGuaranteeInfoVo = baseMapper.selectVoById(id);
|
XzdGuaranteeInfoVo xzdGuaranteeInfoVo = baseMapper.selectVoById(id);
|
||||||
List<XzdGuaranteeInfoVo> xzdGuaranteeInfoVo1 = List.of(xzdGuaranteeInfoVo);
|
List<XzdGuaranteeInfoVo> xzdGuaranteeInfoVo1 = List.of(xzdGuaranteeInfoVo);
|
||||||
// 装填数据
|
// 装填数据
|
||||||
setValue(xzdGuaranteeInfoVo1);
|
// setValue(xzdGuaranteeInfoVo1);
|
||||||
|
|
||||||
|
|
||||||
return xzdGuaranteeInfoVo1.getFirst();
|
return xzdGuaranteeInfoVo1.getFirst();
|
||||||
@ -113,7 +113,7 @@ public class XzdGuaranteeInfoServiceImpl extends ServiceImpl<XzdGuaranteeInfoMap
|
|||||||
LambdaQueryWrapper<XzdGuaranteeInfo> lqw = buildQueryWrapper(bo);
|
LambdaQueryWrapper<XzdGuaranteeInfo> lqw = buildQueryWrapper(bo);
|
||||||
Page<XzdGuaranteeInfoVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
|
Page<XzdGuaranteeInfoVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
|
||||||
|
|
||||||
setValue(result.getRecords());
|
// setValue(result.getRecords());
|
||||||
return TableDataInfo.build(result);
|
return TableDataInfo.build(result);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -32,7 +32,7 @@ import org.dromara.common.mybatis.core.page.TableDataInfo;
|
|||||||
@Validated
|
@Validated
|
||||||
@RequiredArgsConstructor
|
@RequiredArgsConstructor
|
||||||
@RestController
|
@RestController
|
||||||
@RequestMapping("/earnestMoney/depositApplication")
|
@RequestMapping("/xzd/earnestMoney/depositApplication")
|
||||||
public class XzdDepositApplicationController extends BaseController {
|
public class XzdDepositApplicationController extends BaseController {
|
||||||
|
|
||||||
private final IXzdDepositApplicationService xzdDepositApplicationService;
|
private final IXzdDepositApplicationService xzdDepositApplicationService;
|
||||||
|
|||||||
@ -136,7 +136,7 @@ public class XzdDepositApplicationVo implements Serializable {
|
|||||||
* 收取保证金单位
|
* 收取保证金单位
|
||||||
*/
|
*/
|
||||||
@ExcelProperty(value = "收取保证金单位")
|
@ExcelProperty(value = "收取保证金单位")
|
||||||
@Translation(type = TransConstant.XZD_GYSXX_ID_TO_NAME, mapper = "depositReceivingUnit")
|
@Translation(type = TransConstant.XZD_KHXX_ID_TO_NAME, mapper = "depositReceivingUnit")
|
||||||
private String depositReceivingUnitName;
|
private String depositReceivingUnitName;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@ -31,7 +31,7 @@ import org.dromara.common.mybatis.core.page.TableDataInfo;
|
|||||||
@Validated
|
@Validated
|
||||||
@RequiredArgsConstructor
|
@RequiredArgsConstructor
|
||||||
@RestController
|
@RestController
|
||||||
@RequestMapping("/refundDeposit/fbhtzbjth")
|
@RequestMapping("/xzd/refundDeposit/fbhtzbjth")
|
||||||
public class XzdFbhtzbjthController extends BaseController {
|
public class XzdFbhtzbjthController extends BaseController {
|
||||||
|
|
||||||
private final IXzdFbhtzbjthService xzdFbhtzbjthService;
|
private final IXzdFbhtzbjthService xzdFbhtzbjthService;
|
||||||
|
|||||||
@ -141,7 +141,7 @@ public class XzdFbhtzbjthVo implements Serializable {
|
|||||||
* 申请单位
|
* 申请单位
|
||||||
*/
|
*/
|
||||||
@ExcelProperty(value = "申请单位")
|
@ExcelProperty(value = "申请单位")
|
||||||
@Translation(type = TransConstant.XZD_GYSXX_ID_TO_NAME, mapper = "applicationUnit")
|
@Translation(type = TransConstant.XZD_KHXX_ID_TO_NAME, mapper = "applicationUnit")
|
||||||
private String applicationUnitName;
|
private String applicationUnitName;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@ -6,6 +6,7 @@ import lombok.Data;
|
|||||||
import lombok.EqualsAndHashCode;
|
import lombok.EqualsAndHashCode;
|
||||||
|
|
||||||
import java.io.Serial;
|
import java.io.Serial;
|
||||||
|
import java.io.Serializable;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 供应商-客户中间对象 xzd_customer_supplier
|
* 供应商-客户中间对象 xzd_customer_supplier
|
||||||
@ -14,21 +15,20 @@ import java.io.Serial;
|
|||||||
* @date 2025-10-24
|
* @date 2025-10-24
|
||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
@EqualsAndHashCode(callSuper = true)
|
|
||||||
@TableName("xzd_customer_supplier")
|
@TableName("xzd_customer_supplier")
|
||||||
public class XzdCustomerSupplier extends BaseEntity {
|
public class XzdCustomerSupplier implements Serializable {
|
||||||
|
|
||||||
@Serial
|
@Serial
|
||||||
private static final long serialVersionUID = 1L;
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
@TableId(value = "id")
|
@TableId(value = "id")
|
||||||
private Long id;
|
private Long id;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 类型(1、供应商,2、客户)
|
* 类型(2、客户 1、供应商)
|
||||||
*/
|
*/
|
||||||
private String type;
|
private String type;
|
||||||
|
|
||||||
|
|||||||
@ -6,6 +6,7 @@ import lombok.Data;
|
|||||||
import lombok.EqualsAndHashCode;
|
import lombok.EqualsAndHashCode;
|
||||||
|
|
||||||
import java.io.Serial;
|
import java.io.Serial;
|
||||||
|
import java.io.Serializable;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 供应商-客户中间对象 xzd_customer_supplier_yyb
|
* 供应商-客户中间对象 xzd_customer_supplier_yyb
|
||||||
@ -14,15 +15,14 @@ import java.io.Serial;
|
|||||||
* @date 2025-10-24
|
* @date 2025-10-24
|
||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
@EqualsAndHashCode(callSuper = true)
|
|
||||||
@TableName("xzd_customer_supplier_yyb")
|
@TableName("xzd_customer_supplier_yyb")
|
||||||
public class XzdCustomerSupplierYyb extends BaseEntity {
|
public class XzdCustomerSupplierYyb implements Serializable {
|
||||||
|
|
||||||
@Serial
|
@Serial
|
||||||
private static final long serialVersionUID = 1L;
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
@TableId(value = "id")
|
@TableId(value = "id")
|
||||||
private Long id;
|
private Long id;
|
||||||
|
|||||||
@ -14,9 +14,9 @@ import java.io.Serial;
|
|||||||
* @date 2025-09-30
|
* @date 2025-09-30
|
||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
@EqualsAndHashCode(callSuper = true)
|
//@EqualsAndHashCode(callSuper = true)
|
||||||
@TableName("xzd_customertype")
|
@TableName("xzd_customertype")
|
||||||
public class XzdCustomertype extends BaseEntity {
|
public class XzdCustomertype {
|
||||||
|
|
||||||
@Serial
|
@Serial
|
||||||
private static final long serialVersionUID = 1L;
|
private static final long serialVersionUID = 1L;
|
||||||
|
|||||||
@ -32,6 +32,11 @@ public class XzdProject extends BaseEntity {
|
|||||||
@TableId(value = "id")
|
@TableId(value = "id")
|
||||||
private Long id;
|
private Long id;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 区域码
|
||||||
|
*/
|
||||||
|
private Long cityCode;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 项目编号
|
* 项目编号
|
||||||
*/
|
*/
|
||||||
|
|||||||
@ -1,13 +1,13 @@
|
|||||||
package org.dromara.xzd.domain;
|
package org.dromara.xzd.domain;
|
||||||
|
|
||||||
import org.dromara.common.mybatis.core.domain.BaseEntity;
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
import com.baomidou.mybatisplus.annotation.*;
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.EqualsAndHashCode;
|
import lombok.EqualsAndHashCode;
|
||||||
import java.util.Date;
|
import org.dromara.common.mybatis.core.domain.BaseEntity;
|
||||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
|
||||||
|
|
||||||
import java.io.Serial;
|
import java.io.Serial;
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 项目经理推荐及审批对象 xzd_project_manager_approval
|
* 项目经理推荐及审批对象 xzd_project_manager_approval
|
||||||
@ -29,6 +29,11 @@ public class XzdProjectManagerApproval extends BaseEntity {
|
|||||||
@TableId(value = "id")
|
@TableId(value = "id")
|
||||||
private Long id;
|
private Long id;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 区域码
|
||||||
|
*/
|
||||||
|
private Long cityCode;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 单据编号
|
* 单据编号
|
||||||
*/
|
*/
|
||||||
|
|||||||
@ -1,14 +1,15 @@
|
|||||||
package org.dromara.xzd.domain;
|
package org.dromara.xzd.domain;
|
||||||
|
|
||||||
import org.dromara.common.mybatis.core.domain.BaseEntity;
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
import com.baomidou.mybatisplus.annotation.*;
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.EqualsAndHashCode;
|
import lombok.EqualsAndHashCode;
|
||||||
import java.util.Date;
|
import org.dromara.common.mybatis.core.domain.BaseEntity;
|
||||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
|
||||||
import org.springframework.format.annotation.DateTimeFormat;
|
import org.springframework.format.annotation.DateTimeFormat;
|
||||||
|
|
||||||
import java.io.Serial;
|
import java.io.Serial;
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 供应商信息对象 xzd_supplier_info
|
* 供应商信息对象 xzd_supplier_info
|
||||||
@ -30,6 +31,11 @@ public class XzdSupplierInfo extends BaseEntity {
|
|||||||
@TableId(value = "id")
|
@TableId(value = "id")
|
||||||
private Long id;
|
private Long id;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 区域编码
|
||||||
|
*/
|
||||||
|
private Long cityCode;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 单位编号
|
* 单位编号
|
||||||
*/
|
*/
|
||||||
|
|||||||
@ -16,12 +16,11 @@ import jakarta.validation.constraints.*;
|
|||||||
* @date 2025-10-24
|
* @date 2025-10-24
|
||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
@EqualsAndHashCode(callSuper = true)
|
|
||||||
@AutoMapper(target = XzdCustomerSupplier.class, reverseConvertGenerate = false)
|
@AutoMapper(target = XzdCustomerSupplier.class, reverseConvertGenerate = false)
|
||||||
public class XzdCustomerSupplierBo extends BaseEntity {
|
public class XzdCustomerSupplierBo {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
@NotNull(message = "不能为空", groups = { EditGroup.class })
|
@NotNull(message = "不能为空", groups = { EditGroup.class })
|
||||||
private Long id;
|
private Long id;
|
||||||
|
|||||||
@ -16,12 +16,11 @@ import jakarta.validation.constraints.*;
|
|||||||
* @date 2025-10-24
|
* @date 2025-10-24
|
||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
@EqualsAndHashCode(callSuper = true)
|
|
||||||
@AutoMapper(target = XzdCustomerSupplierYyb.class, reverseConvertGenerate = false)
|
@AutoMapper(target = XzdCustomerSupplierYyb.class, reverseConvertGenerate = false)
|
||||||
public class XzdCustomerSupplierYybBo extends BaseEntity {
|
public class XzdCustomerSupplierYybBo {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
@NotNull(message = "不能为空", groups = { EditGroup.class })
|
@NotNull(message = "不能为空", groups = { EditGroup.class })
|
||||||
private Long id;
|
private Long id;
|
||||||
|
|||||||
@ -28,6 +28,11 @@ public class XzdProjectBo extends BaseEntity {
|
|||||||
*/
|
*/
|
||||||
private Long id;
|
private Long id;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 区域码
|
||||||
|
*/
|
||||||
|
private Long cityCode;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 项目编号
|
* 项目编号
|
||||||
*/
|
*/
|
||||||
|
|||||||
@ -1,15 +1,16 @@
|
|||||||
package org.dromara.xzd.domain.bo;
|
package org.dromara.xzd.domain.bo;
|
||||||
|
|
||||||
import org.dromara.xzd.domain.XzdProjectManagerApproval;
|
|
||||||
import org.dromara.common.mybatis.core.domain.BaseEntity;
|
|
||||||
import org.dromara.common.core.validate.AddGroup;
|
|
||||||
import org.dromara.common.core.validate.EditGroup;
|
|
||||||
import io.github.linpeilie.annotations.AutoMapper;
|
import io.github.linpeilie.annotations.AutoMapper;
|
||||||
|
import jakarta.validation.constraints.NotBlank;
|
||||||
|
import jakarta.validation.constraints.NotNull;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.EqualsAndHashCode;
|
import lombok.EqualsAndHashCode;
|
||||||
import jakarta.validation.constraints.*;
|
import org.dromara.common.core.validate.AddGroup;
|
||||||
|
import org.dromara.common.core.validate.EditGroup;
|
||||||
|
import org.dromara.common.mybatis.core.domain.BaseEntity;
|
||||||
|
import org.dromara.xzd.domain.XzdProjectManagerApproval;
|
||||||
|
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 项目经理推荐及审批业务对象 xzd_project_manager_approval
|
* 项目经理推荐及审批业务对象 xzd_project_manager_approval
|
||||||
@ -28,6 +29,11 @@ public class XzdProjectManagerApprovalBo extends BaseEntity {
|
|||||||
@NotNull(message = "主键ID不能为空", groups = { EditGroup.class })
|
@NotNull(message = "主键ID不能为空", groups = { EditGroup.class })
|
||||||
private Long id;
|
private Long id;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 区域码
|
||||||
|
*/
|
||||||
|
private Long cityCode;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 单据编号
|
* 单据编号
|
||||||
*/
|
*/
|
||||||
|
|||||||
@ -1,19 +1,20 @@
|
|||||||
package org.dromara.xzd.domain.bo;
|
package org.dromara.xzd.domain.bo;
|
||||||
|
|
||||||
import org.dromara.xzd.domain.*;
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
import org.dromara.common.mybatis.core.domain.BaseEntity;
|
|
||||||
import org.dromara.common.core.validate.AddGroup;
|
|
||||||
import org.dromara.common.core.validate.EditGroup;
|
|
||||||
import io.github.linpeilie.annotations.AutoMapper;
|
import io.github.linpeilie.annotations.AutoMapper;
|
||||||
|
import jakarta.validation.constraints.NotBlank;
|
||||||
|
import jakarta.validation.constraints.NotNull;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.EqualsAndHashCode;
|
import lombok.EqualsAndHashCode;
|
||||||
import jakarta.validation.constraints.*;
|
import org.dromara.common.core.validate.AddGroup;
|
||||||
|
import org.dromara.common.core.validate.EditGroup;
|
||||||
|
import org.dromara.common.mybatis.core.domain.BaseEntity;
|
||||||
|
import org.dromara.xzd.domain.*;
|
||||||
|
import org.springframework.format.annotation.DateTimeFormat;
|
||||||
|
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
|
||||||
import org.springframework.format.annotation.DateTimeFormat;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 供应商信息业务对象 xzd_supplier_info
|
* 供应商信息业务对象 xzd_supplier_info
|
||||||
*
|
*
|
||||||
@ -30,6 +31,11 @@ public class XzdSupplierInfoBo extends BaseEntity {
|
|||||||
*/
|
*/
|
||||||
private Long id;
|
private Long id;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 区域编码
|
||||||
|
*/
|
||||||
|
private Long cityCode;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 单位编号
|
* 单位编号
|
||||||
*/
|
*/
|
||||||
|
|||||||
@ -1,14 +1,13 @@
|
|||||||
package org.dromara.xzd.domain.vo;
|
package org.dromara.xzd.domain.vo;
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
|
||||||
import java.util.Date;
|
|
||||||
|
|
||||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
|
||||||
import org.dromara.xzd.domain.XzdContractAccount;
|
|
||||||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||||
import com.alibaba.excel.annotation.ExcelProperty;
|
import com.alibaba.excel.annotation.ExcelProperty;
|
||||||
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
import io.github.linpeilie.annotations.AutoMapper;
|
import io.github.linpeilie.annotations.AutoMapper;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
import org.dromara.common.translation.annotation.Translation;
|
||||||
|
import org.dromara.common.translation.constant.TransConstant;
|
||||||
|
import org.dromara.xzd.domain.XzdContractAccount;
|
||||||
import org.dromara.xzd.domain.XzdJsqdTz;
|
import org.dromara.xzd.domain.XzdJsqdTz;
|
||||||
import org.dromara.xzd.domain.XzdSettlementRules;
|
import org.dromara.xzd.domain.XzdSettlementRules;
|
||||||
import org.dromara.xzd.domain.XzdZbjghyd;
|
import org.dromara.xzd.domain.XzdZbjghyd;
|
||||||
@ -17,6 +16,8 @@ import org.springframework.format.annotation.DateTimeFormat;
|
|||||||
|
|
||||||
import java.io.Serial;
|
import java.io.Serial;
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
|
||||||
@ -192,6 +193,7 @@ public class XzdContractAccountVo implements Serializable {
|
|||||||
/**
|
/**
|
||||||
* 业主单位名称
|
* 业主单位名称
|
||||||
*/
|
*/
|
||||||
|
@Translation(type = TransConstant.XZD_KHXX_ID_TO_NAME,mapper = "owner")
|
||||||
private String ownerName;
|
private String ownerName;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -203,6 +205,7 @@ public class XzdContractAccountVo implements Serializable {
|
|||||||
/**
|
/**
|
||||||
* 监理单位名称
|
* 监理单位名称
|
||||||
*/
|
*/
|
||||||
|
@Translation(type = TransConstant.XZD_KHXX_ID_TO_NAME, mapper = "supervision")
|
||||||
private String supervisionName;
|
private String supervisionName;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -214,6 +217,7 @@ public class XzdContractAccountVo implements Serializable {
|
|||||||
/**
|
/**
|
||||||
* 审核单位名称
|
* 审核单位名称
|
||||||
*/
|
*/
|
||||||
|
@Translation(type = TransConstant.XZD_KHXX_ID_TO_NAME, mapper = "review")
|
||||||
private String reviewName;
|
private String reviewName;
|
||||||
|
|
||||||
private String fileId;
|
private String fileId;
|
||||||
|
|||||||
@ -6,6 +6,8 @@ import io.github.linpeilie.annotations.AutoMapper;
|
|||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import org.dromara.common.excel.annotation.ExcelDictFormat;
|
import org.dromara.common.excel.annotation.ExcelDictFormat;
|
||||||
import org.dromara.common.excel.convert.ExcelDictConvert;
|
import org.dromara.common.excel.convert.ExcelDictConvert;
|
||||||
|
import org.dromara.common.translation.annotation.Translation;
|
||||||
|
import org.dromara.common.translation.constant.TransConstant;
|
||||||
import org.dromara.xzd.domain.XzdContractAgreement;
|
import org.dromara.xzd.domain.XzdContractAgreement;
|
||||||
|
|
||||||
import java.io.Serial;
|
import java.io.Serial;
|
||||||
@ -61,6 +63,7 @@ public class XzdContractAgreementVo implements Serializable {
|
|||||||
/**
|
/**
|
||||||
* 客户单位名称
|
* 客户单位名称
|
||||||
*/
|
*/
|
||||||
|
@Translation(type = TransConstant.XZD_KHXX_ID_TO_NAME,mapper = "partyAUnit")
|
||||||
private String partyAUnitName;
|
private String partyAUnitName;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -72,6 +75,7 @@ public class XzdContractAgreementVo implements Serializable {
|
|||||||
/**
|
/**
|
||||||
* 供应商单位名称
|
* 供应商单位名称
|
||||||
*/
|
*/
|
||||||
|
@Translation(type = TransConstant.XZD_KHXX_ID_TO_NAME,mapper = "partyBUnit")
|
||||||
private String partyBUnitName;
|
private String partyBUnitName;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@ -7,6 +7,8 @@ import io.github.linpeilie.annotations.AutoMapper;
|
|||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import org.dromara.common.excel.annotation.ExcelDictFormat;
|
import org.dromara.common.excel.annotation.ExcelDictFormat;
|
||||||
import org.dromara.common.excel.convert.ExcelDictConvert;
|
import org.dromara.common.excel.convert.ExcelDictConvert;
|
||||||
|
import org.dromara.common.translation.annotation.Translation;
|
||||||
|
import org.dromara.common.translation.constant.TransConstant;
|
||||||
import org.dromara.xzd.comprehensive.domain.XzdHtglHtbgqd;
|
import org.dromara.xzd.comprehensive.domain.XzdHtglHtbgqd;
|
||||||
import org.dromara.xzd.domain.*;
|
import org.dromara.xzd.domain.*;
|
||||||
import org.springframework.format.annotation.DateTimeFormat;
|
import org.springframework.format.annotation.DateTimeFormat;
|
||||||
@ -180,7 +182,7 @@ public class XzdContractChangeVo implements Serializable {
|
|||||||
// private String originalInvoiceUnit;
|
// private String originalInvoiceUnit;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 现收票单位
|
* 现收票单位(客户)
|
||||||
*/
|
*/
|
||||||
@ExcelProperty(value = "现收票单位")
|
@ExcelProperty(value = "现收票单位")
|
||||||
private Long currentInvoiceUnit;
|
private Long currentInvoiceUnit;
|
||||||
@ -188,6 +190,7 @@ public class XzdContractChangeVo implements Serializable {
|
|||||||
/**
|
/**
|
||||||
* 现收票单位名
|
* 现收票单位名
|
||||||
*/
|
*/
|
||||||
|
@Translation(type = TransConstant.XZD_KHXX_ID_TO_NAME,mapper = "currentInvoiceUnit")
|
||||||
private String currentInvoiceUnitName;
|
private String currentInvoiceUnitName;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@ -1,21 +1,22 @@
|
|||||||
package org.dromara.xzd.domain.vo;
|
package org.dromara.xzd.domain.vo;
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
|
||||||
import java.util.Date;
|
|
||||||
|
|
||||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
|
||||||
import org.dromara.xzd.comprehensive.domain.XzdHtglHtbgqd;
|
|
||||||
import org.dromara.xzd.domain.*;
|
|
||||||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||||
import com.alibaba.excel.annotation.ExcelProperty;
|
import com.alibaba.excel.annotation.ExcelProperty;
|
||||||
import org.dromara.common.excel.annotation.ExcelDictFormat;
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
import org.dromara.common.excel.convert.ExcelDictConvert;
|
|
||||||
import io.github.linpeilie.annotations.AutoMapper;
|
import io.github.linpeilie.annotations.AutoMapper;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
import org.dromara.common.excel.annotation.ExcelDictFormat;
|
||||||
|
import org.dromara.common.excel.convert.ExcelDictConvert;
|
||||||
|
import org.dromara.common.translation.annotation.Translation;
|
||||||
|
import org.dromara.common.translation.constant.TransConstant;
|
||||||
|
import org.dromara.xzd.comprehensive.domain.XzdHtglHtbgqd;
|
||||||
|
import org.dromara.xzd.domain.*;
|
||||||
import org.springframework.format.annotation.DateTimeFormat;
|
import org.springframework.format.annotation.DateTimeFormat;
|
||||||
|
|
||||||
import java.io.Serial;
|
import java.io.Serial;
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
|
||||||
@ -111,6 +112,7 @@ public class XzdContractDetailsVo implements Serializable {
|
|||||||
/**
|
/**
|
||||||
* 甲方单位名称
|
* 甲方单位名称
|
||||||
*/
|
*/
|
||||||
|
@Translation(type = TransConstant.XZD_KHXX_ID_TO_NAME,mapper = "partyAUnit")
|
||||||
private String partyAUnitName;
|
private String partyAUnitName;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -122,6 +124,7 @@ public class XzdContractDetailsVo implements Serializable {
|
|||||||
/**
|
/**
|
||||||
* 乙方单位名称
|
* 乙方单位名称
|
||||||
*/
|
*/
|
||||||
|
@Translation(type = TransConstant.XZD_KHXX_ID_TO_NAME, mapper = "partyBUnit")
|
||||||
private String partyBUnitName;
|
private String partyBUnitName;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -136,7 +139,7 @@ public class XzdContractDetailsVo implements Serializable {
|
|||||||
private BigDecimal contractAmount;
|
private BigDecimal contractAmount;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 开票单位
|
* 开票单位(供应商)
|
||||||
*/
|
*/
|
||||||
@ExcelProperty(value = "开票单位")
|
@ExcelProperty(value = "开票单位")
|
||||||
private Long invoicingUnit;
|
private Long invoicingUnit;
|
||||||
@ -144,6 +147,7 @@ public class XzdContractDetailsVo implements Serializable {
|
|||||||
/**
|
/**
|
||||||
* 开票单位名称
|
* 开票单位名称
|
||||||
*/
|
*/
|
||||||
|
@Translation(type = TransConstant.XZD_KHXX_ID_TO_NAME, mapper = "invoicingUnit")
|
||||||
private String invoicingUnitName;
|
private String invoicingUnitName;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -164,7 +168,7 @@ public class XzdContractDetailsVo implements Serializable {
|
|||||||
private XzdBudgetClassification budgetClassificationObj;
|
private XzdBudgetClassification budgetClassificationObj;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 收票单位
|
* 收票单位(客户)
|
||||||
*/
|
*/
|
||||||
@ExcelProperty(value = "收票单位")
|
@ExcelProperty(value = "收票单位")
|
||||||
private Long ticketReceivingUnit;
|
private Long ticketReceivingUnit;
|
||||||
@ -172,6 +176,7 @@ public class XzdContractDetailsVo implements Serializable {
|
|||||||
/**
|
/**
|
||||||
* 收票单位名称
|
* 收票单位名称
|
||||||
*/
|
*/
|
||||||
|
@Translation(type = TransConstant.XZD_KHXX_ID_TO_NAME, mapper = "ticketReceivingUnit")
|
||||||
private String ticketReceivingUnitName;
|
private String ticketReceivingUnitName;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -224,7 +229,7 @@ public class XzdContractDetailsVo implements Serializable {
|
|||||||
private String capitalizedTaxInclusiveTotal;
|
private String capitalizedTaxInclusiveTotal;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 签约组织
|
* 签约组织(供应商)
|
||||||
*/
|
*/
|
||||||
@ExcelProperty(value = "签约组织")
|
@ExcelProperty(value = "签约组织")
|
||||||
private Long signingOrganization;
|
private Long signingOrganization;
|
||||||
@ -232,6 +237,7 @@ public class XzdContractDetailsVo implements Serializable {
|
|||||||
/**
|
/**
|
||||||
* 签约组织名称
|
* 签约组织名称
|
||||||
*/
|
*/
|
||||||
|
@Translation(type = TransConstant.XZD_KHXX_ID_TO_NAME, mapper = "signingOrganization")
|
||||||
private String signingOrganizationName;
|
private String signingOrganizationName;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@ -5,6 +5,8 @@ import com.alibaba.excel.annotation.ExcelProperty;
|
|||||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
import io.github.linpeilie.annotations.AutoMapper;
|
import io.github.linpeilie.annotations.AutoMapper;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
import org.dromara.common.translation.annotation.Translation;
|
||||||
|
import org.dromara.common.translation.constant.TransConstant;
|
||||||
import org.dromara.xzd.domain.XzdBusinessChange;
|
import org.dromara.xzd.domain.XzdBusinessChange;
|
||||||
import org.dromara.xzd.domain.XzdContractProgressSettlement;
|
import org.dromara.xzd.domain.XzdContractProgressSettlement;
|
||||||
import org.dromara.xzd.settlement.domain.XzdAlterationInventory;
|
import org.dromara.xzd.settlement.domain.XzdAlterationInventory;
|
||||||
@ -158,6 +160,7 @@ public class XzdContractProgressSettlementVo implements Serializable {
|
|||||||
/**
|
/**
|
||||||
* 结算单位名称
|
* 结算单位名称
|
||||||
*/
|
*/
|
||||||
|
@Translation(type = TransConstant.XZD_KHXX_ID_TO_NAME ,mapper = "settlementUnit")
|
||||||
private String settlementUnitName;
|
private String settlementUnitName;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@ -1,14 +1,10 @@
|
|||||||
package org.dromara.xzd.domain.vo;
|
package org.dromara.xzd.domain.vo;
|
||||||
|
|
||||||
import java.util.Date;
|
|
||||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
|
||||||
import org.dromara.xzd.domain.XzdProjectManagerApproval;
|
|
||||||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||||
import com.alibaba.excel.annotation.ExcelProperty;
|
import com.alibaba.excel.annotation.ExcelProperty;
|
||||||
import org.dromara.common.excel.annotation.ExcelDictFormat;
|
|
||||||
import org.dromara.common.excel.convert.ExcelDictConvert;
|
|
||||||
import io.github.linpeilie.annotations.AutoMapper;
|
import io.github.linpeilie.annotations.AutoMapper;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
import org.dromara.xzd.domain.XzdProjectManagerApproval;
|
||||||
|
|
||||||
import java.io.Serial;
|
import java.io.Serial;
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
@ -36,6 +32,11 @@ public class XzdProjectManagerApprovalVo implements Serializable {
|
|||||||
@ExcelProperty(value = "主键ID")
|
@ExcelProperty(value = "主键ID")
|
||||||
private Long id;
|
private Long id;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 区域码
|
||||||
|
*/
|
||||||
|
private Long cityCode;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 单据编号
|
* 单据编号
|
||||||
*/
|
*/
|
||||||
|
|||||||
@ -5,6 +5,8 @@ import com.alibaba.excel.annotation.ExcelProperty;
|
|||||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
import io.github.linpeilie.annotations.AutoMapper;
|
import io.github.linpeilie.annotations.AutoMapper;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
import org.dromara.common.translation.annotation.Translation;
|
||||||
|
import org.dromara.common.translation.constant.TransConstant;
|
||||||
import org.dromara.xzd.domain.XzdProject;
|
import org.dromara.xzd.domain.XzdProject;
|
||||||
import org.springframework.format.annotation.DateTimeFormat;
|
import org.springframework.format.annotation.DateTimeFormat;
|
||||||
|
|
||||||
@ -35,6 +37,11 @@ public class XzdProjectVo implements Serializable {
|
|||||||
@ExcelProperty(value = "主键ID")
|
@ExcelProperty(value = "主键ID")
|
||||||
private Long id;
|
private Long id;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 区域码
|
||||||
|
*/
|
||||||
|
private Long cityCode;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 项目编号
|
* 项目编号
|
||||||
*/
|
*/
|
||||||
@ -204,8 +211,9 @@ public class XzdProjectVo implements Serializable {
|
|||||||
private Long constructionUnit;
|
private Long constructionUnit;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 建设单位名
|
* 建设单位名(客户)
|
||||||
*/
|
*/
|
||||||
|
@Translation(type = TransConstant.XZD_KHXX_ID_TO_NAME, mapper = "constructionUnit")
|
||||||
private String constructionUnitName;
|
private String constructionUnitName;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@ -1,14 +1,13 @@
|
|||||||
package org.dromara.xzd.domain.vo;
|
package org.dromara.xzd.domain.vo;
|
||||||
|
|
||||||
import java.util.Date;
|
|
||||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
|
||||||
import org.dromara.xzd.domain.*;
|
|
||||||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||||
import com.alibaba.excel.annotation.ExcelProperty;
|
import com.alibaba.excel.annotation.ExcelProperty;
|
||||||
import org.dromara.common.excel.annotation.ExcelDictFormat;
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
import org.dromara.common.excel.convert.ExcelDictConvert;
|
|
||||||
import io.github.linpeilie.annotations.AutoMapper;
|
import io.github.linpeilie.annotations.AutoMapper;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
import org.dromara.common.excel.annotation.ExcelDictFormat;
|
||||||
|
import org.dromara.common.excel.convert.ExcelDictConvert;
|
||||||
|
import org.dromara.xzd.domain.*;
|
||||||
import org.springframework.format.annotation.DateTimeFormat;
|
import org.springframework.format.annotation.DateTimeFormat;
|
||||||
|
|
||||||
import java.io.Serial;
|
import java.io.Serial;
|
||||||
@ -32,11 +31,16 @@ public class XzdSupplierInfoVo implements Serializable {
|
|||||||
private static final long serialVersionUID = 1L;
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
* id
|
||||||
*/
|
*/
|
||||||
@ExcelProperty(value = "")
|
@ExcelProperty(value = "")
|
||||||
private Long id;
|
private Long id;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 区域编码
|
||||||
|
*/
|
||||||
|
private Long cityCode;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 单位编号
|
* 单位编号
|
||||||
*/
|
*/
|
||||||
|
|||||||
@ -31,7 +31,7 @@ import org.dromara.common.mybatis.core.page.TableDataInfo;
|
|||||||
@Validated
|
@Validated
|
||||||
@RequiredArgsConstructor
|
@RequiredArgsConstructor
|
||||||
@RestController
|
@RestController
|
||||||
@RequestMapping("/zengzhishui/invoice")
|
@RequestMapping("/xzd/zengzhishui/invoice")
|
||||||
public class AppreciationInvoiceController extends BaseController {
|
public class AppreciationInvoiceController extends BaseController {
|
||||||
|
|
||||||
private final IAppreciationInvoiceService appreciationInvoiceService;
|
private final IAppreciationInvoiceService appreciationInvoiceService;
|
||||||
|
|||||||
@ -60,6 +60,7 @@ public class AppreciationInvoiceVo implements Serializable {
|
|||||||
* 项目名称
|
* 项目名称
|
||||||
*/
|
*/
|
||||||
@ExcelProperty(value = "项目名称")
|
@ExcelProperty(value = "项目名称")
|
||||||
|
@Translation(type = TransConstant.XZD_PROJECT_ID_TO_NAME, mapper = "project")
|
||||||
private String projectName;
|
private String projectName;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -213,6 +214,7 @@ public class AppreciationInvoiceVo implements Serializable {
|
|||||||
* 购方名称
|
* 购方名称
|
||||||
*/
|
*/
|
||||||
@ExcelProperty(value = "购方名称")
|
@ExcelProperty(value = "购方名称")
|
||||||
|
@Translation(type = TransConstant.XZD_KHXX_ID_TO_NAME, mapper = "buyerName")
|
||||||
private String buyerNameS;
|
private String buyerNameS;
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -104,13 +104,6 @@ public class AppreciationInvoiceServiceImpl extends ServiceImpl<AppreciationInvo
|
|||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//项目名称
|
|
||||||
if (item.getProject() != null){
|
|
||||||
String projectName = xzdProjectService.queryNameById(item.getProject());
|
|
||||||
if (projectName != null){
|
|
||||||
item.setProjectName(projectName);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// 合同
|
// 合同
|
||||||
XzdContractDetails contractDetailsServiceById = xzdContractDetailsService.getById(item.getContractNo());
|
XzdContractDetails contractDetailsServiceById = xzdContractDetailsService.getById(item.getContractNo());
|
||||||
if(contractDetailsServiceById != null){
|
if(contractDetailsServiceById != null){
|
||||||
@ -121,13 +114,6 @@ public class AppreciationInvoiceServiceImpl extends ServiceImpl<AppreciationInvo
|
|||||||
if (taxInfoVo != null){
|
if (taxInfoVo != null){
|
||||||
item.setTaxItemName(taxInfoVo.getTaxItem());
|
item.setTaxItemName(taxInfoVo.getTaxItem());
|
||||||
}
|
}
|
||||||
//购方名称(客户信息列表)
|
|
||||||
R<QuerCorrespondentDto> byid = iXzdCorrespondentList.getCustomerByid(item.getBuyerName());
|
|
||||||
if (byid!=null){
|
|
||||||
if (byid.getData().getXzdCustomerinformation() != null){
|
|
||||||
item.setBuyerNameS(byid.getData().getXzdCustomerinformation().getUnitName());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -0,0 +1,27 @@
|
|||||||
|
package org.dromara.xzd.handler;
|
||||||
|
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 存储AOP拦截到的自增ID,供拦截器使用(线程安全)
|
||||||
|
*/
|
||||||
|
@Component
|
||||||
|
public class AutoIncrementIdHolder {
|
||||||
|
// 存储当前线程新增操作生成的ID
|
||||||
|
private static final ThreadLocal<Long> ID_HOLDER = new ThreadLocal<>();
|
||||||
|
|
||||||
|
// 设置ID
|
||||||
|
public static void setId(Long id) {
|
||||||
|
ID_HOLDER.set(id);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 获取ID
|
||||||
|
public static Long getId() {
|
||||||
|
return ID_HOLDER.get();
|
||||||
|
}
|
||||||
|
|
||||||
|
// 清除ID(避免内存泄漏)
|
||||||
|
public static void clear() {
|
||||||
|
ID_HOLDER.remove();
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,36 @@
|
|||||||
|
package org.dromara.xzd.interceptor;
|
||||||
|
|
||||||
|
import jakarta.servlet.FilterChain;
|
||||||
|
import jakarta.servlet.ServletException;
|
||||||
|
import jakarta.servlet.http.HttpServletRequest;
|
||||||
|
import jakarta.servlet.http.HttpServletResponse;
|
||||||
|
import org.springframework.core.Ordered;
|
||||||
|
import org.springframework.core.annotation.Order;
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
import org.springframework.web.filter.OncePerRequestFilter;
|
||||||
|
import org.springframework.web.util.ContentCachingRequestWrapper;
|
||||||
|
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 提前包装请求,确保POST/PUT请求体能被缓存
|
||||||
|
*/
|
||||||
|
@Component
|
||||||
|
@Order(Ordered.HIGHEST_PRECEDENCE) // 最高优先级
|
||||||
|
public class RequestCachingFilter extends OncePerRequestFilter {
|
||||||
|
private static final int CACHE_SIZE = 1024 * 1024; // 1MB缓存容量
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain)
|
||||||
|
throws ServletException, IOException {
|
||||||
|
String method = request.getMethod();
|
||||||
|
if ("POST".equals(method) || "PUT".equals(method)) {
|
||||||
|
// 包装请求,支持大请求体
|
||||||
|
ContentCachingRequestWrapper wrappedRequest = new ContentCachingRequestWrapper(request, CACHE_SIZE);
|
||||||
|
filterChain.doFilter(wrappedRequest, response);
|
||||||
|
} else {
|
||||||
|
filterChain.doFilter(request, response);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,403 @@
|
|||||||
|
package org.dromara.xzd.interceptor;
|
||||||
|
|
||||||
|
import cn.hutool.core.util.ObjectUtil;
|
||||||
|
import cn.hutool.core.util.StrUtil;
|
||||||
|
import cn.hutool.json.JSONUtil;
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
|
import jakarta.servlet.http.HttpServletRequest;
|
||||||
|
import jakarta.servlet.http.HttpServletResponse;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.dromara.xzd.domain.XzdCustomerSupplierYyb;
|
||||||
|
import org.dromara.xzd.handler.AutoIncrementIdHolder;
|
||||||
|
import org.dromara.xzd.mapper.XzdCustomerSupplierYybMapper;
|
||||||
|
import org.dromara.xzd.utilS.RequestParamExtractor;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
import org.springframework.web.servlet.HandlerInterceptor;
|
||||||
|
import org.springframework.web.servlet.ModelAndView;
|
||||||
|
import org.springframework.web.util.ContentCachingRequestWrapper;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.nio.charset.StandardCharsets;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
import java.util.*;
|
||||||
|
|
||||||
|
@Slf4j
|
||||||
|
@Component
|
||||||
|
public class RequestLogInterceptor implements HandlerInterceptor {
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private XzdCustomerSupplierYybMapper customerSupplierYybMapper;
|
||||||
|
|
||||||
|
// 需要提取的请求体字段(根据实际需求修改)
|
||||||
|
private static final List<String> EXTRACT_FIELDS = Arrays.asList("id",
|
||||||
|
"jointInvestmentEntity",
|
||||||
|
"constructionUnit",
|
||||||
|
"biddingUnit",
|
||||||
|
"bidUnit",
|
||||||
|
"depositReceivingUnit",
|
||||||
|
"applicationOrganization",
|
||||||
|
"applicationUnit",
|
||||||
|
"partyAUnit",
|
||||||
|
"partyBUnit",
|
||||||
|
"invoicingUnit",
|
||||||
|
"ticketReceivingUnit",
|
||||||
|
"invoiceIssuingUnit",
|
||||||
|
"invoiceReceivingUnit",
|
||||||
|
"signingOrganization",
|
||||||
|
"partyCUnit",
|
||||||
|
"buyerName",
|
||||||
|
"auditUnit",
|
||||||
|
"supervisionUnit",
|
||||||
|
"ownerUnit",
|
||||||
|
"partyA",
|
||||||
|
"partyB",
|
||||||
|
"invoiceIssuer",
|
||||||
|
"invoiceReceiver",
|
||||||
|
"receiptUnit",
|
||||||
|
"settlementUnit",
|
||||||
|
"currentInvoiceUnit",
|
||||||
|
"owner",
|
||||||
|
"supervision",
|
||||||
|
"review",
|
||||||
|
"fkdwId",
|
||||||
|
"payer",
|
||||||
|
"skdwId");
|
||||||
|
|
||||||
|
|
||||||
|
// 缓存POST请求数据(线程安全)
|
||||||
|
private final ThreadLocal<Map<String, Object>> postRequestCache = new ThreadLocal<>();
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
|
||||||
|
String method = request.getMethod();
|
||||||
|
if (!Arrays.asList("POST", "PUT", "DELETE").contains(method)) { // 明确拦截的方法
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 处理PUT/DELETE(无需等待ID)
|
||||||
|
if ("PUT".equals(method) || "DELETE".equals(method)) {
|
||||||
|
handlePutOrDelete(request, method);
|
||||||
|
}
|
||||||
|
// 缓存POST请求数据(等待后续处理)
|
||||||
|
else if ("POST".equals(method)) {
|
||||||
|
// 注意:需要将request包装为ContentCachingRequestWrapper才能重复读取请求体
|
||||||
|
ContentCachingRequestWrapper wrappedRequest = new ContentCachingRequestWrapper(request);
|
||||||
|
request.setAttribute("wrappedRequest", wrappedRequest); // 存入attribute供后续使用
|
||||||
|
cachePostRequestData(wrappedRequest);
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
|
||||||
|
log.info("postHandle开始执行:请求方法={},响应状态码={}",
|
||||||
|
request.getMethod(), response.getStatus());
|
||||||
|
|
||||||
|
if ("POST".equals(request.getMethod())) {
|
||||||
|
handlePostAfterSave();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
|
||||||
|
// 清除线程缓存(必须执行,避免内存泄漏)
|
||||||
|
postRequestCache.remove();
|
||||||
|
AutoIncrementIdHolder.clear(); // 清除ID持有者
|
||||||
|
}
|
||||||
|
|
||||||
|
// 缓存POST请求数据(优化:使用包装后的request)
|
||||||
|
private void cachePostRequestData(ContentCachingRequestWrapper wrappedRequest) throws IOException {
|
||||||
|
String uri = wrappedRequest.getRequestURI();
|
||||||
|
Map<String, Object> extractedParams = RequestParamExtractor.extractParams(wrappedRequest, "POST", EXTRACT_FIELDS);
|
||||||
|
|
||||||
|
postRequestCache.set(Map.of(
|
||||||
|
"uri", uri,
|
||||||
|
"extractedParams", extractedParams
|
||||||
|
));
|
||||||
|
}
|
||||||
|
|
||||||
|
// 处理POST请求(核心:从ThreadLocal获取AOP存入的ID)
|
||||||
|
private void handlePostAfterSave() {
|
||||||
|
Map<String, Object> cachedData = postRequestCache.get();
|
||||||
|
if (cachedData == null) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
String uri = (String) cachedData.get("uri");
|
||||||
|
Map<String, Object> extractedParams = (Map<String, Object>) cachedData.get("extractedParams");
|
||||||
|
if (extractedParams == null || extractedParams.isEmpty()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
// 1. 尝试从请求参数获取ID(前端传入的情况,如非自增ID)
|
||||||
|
Long newId = convertToLong(extractedParams.get("id"));
|
||||||
|
// 2. 从AOP存入的ThreadLocal获取ID(数据库自增/雪花算法生成的情况)
|
||||||
|
if (newId == null) {
|
||||||
|
newId = AutoIncrementIdHolder.getId();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (newId == null) {
|
||||||
|
log.warn("未获取到新增ID,跳过保存操作");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
List<XzdCustomerSupplierYyb> list = new ArrayList<>();
|
||||||
|
// // 3. 保存到数据库(你的业务逻辑)
|
||||||
|
for (Map.Entry<String, Object> entry : extractedParams.entrySet()) {
|
||||||
|
String k = entry.getKey();
|
||||||
|
Object v = entry.getValue();
|
||||||
|
if ("id".equals(k)){
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if (ObjectUtil.isEmpty(v)) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if (convertToLong(v) == null){
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
XzdCustomerSupplierYyb entity = new XzdCustomerSupplierYyb();
|
||||||
|
entity.setUri(uri);
|
||||||
|
entity.setCSId(convertToLong(v));
|
||||||
|
entity.setMainTableId(newId); // 核心:使用AOP获取的新增ID
|
||||||
|
list.add(entity);
|
||||||
|
}
|
||||||
|
if (!list.isEmpty()) {
|
||||||
|
customerSupplierYybMapper.insertBatch(list);
|
||||||
|
}
|
||||||
|
log.info("新增ID:{} 已关联保存至XzdCustomerSupplierYyb", newId);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 处理PUT/DELETE
|
||||||
|
private void handlePutOrDelete(HttpServletRequest request, String method) {
|
||||||
|
String uri = request.getRequestURI();
|
||||||
|
Map<String, Object> extractedParams = RequestParamExtractor.extractParams(request, method, EXTRACT_FIELDS);
|
||||||
|
if (extractedParams == null || extractedParams.isEmpty()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if ("PUT".equals(method)) {
|
||||||
|
Long mainTableId = convertToLong(extractedParams.get("id"));
|
||||||
|
customerSupplierYybMapper.delete(new LambdaQueryWrapper<XzdCustomerSupplierYyb>().eq(XzdCustomerSupplierYyb::getMainTableId, mainTableId));
|
||||||
|
List<XzdCustomerSupplierYyb> list = new ArrayList<>();
|
||||||
|
// // 3. 保存到数据库(你的业务逻辑)
|
||||||
|
for (Map.Entry<String, Object> entry : extractedParams.entrySet()) {
|
||||||
|
String k = entry.getKey();
|
||||||
|
Object v = entry.getValue();
|
||||||
|
if ("id".equals(k)){
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if (ObjectUtil.isEmpty(v)) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if (convertToLong(v) == null){
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
XzdCustomerSupplierYyb customerSupplierYyb = new XzdCustomerSupplierYyb();
|
||||||
|
customerSupplierYyb.setUri(uri);
|
||||||
|
customerSupplierYyb.setCSId(convertToLong(v));
|
||||||
|
customerSupplierYyb.setMainTableId(mainTableId); // 核心:使用AOP获取的新增ID
|
||||||
|
list.add(customerSupplierYyb);
|
||||||
|
}
|
||||||
|
if (!list.isEmpty()) {
|
||||||
|
customerSupplierYybMapper.insertBatch(list);
|
||||||
|
}
|
||||||
|
} else if ("DELETE".equals(method)) {
|
||||||
|
Object ids = extractedParams.get("ids");
|
||||||
|
if (ids != null) {
|
||||||
|
List<Long> list = JSONUtil.parseArray(ids).toList(Long.class);
|
||||||
|
customerSupplierYybMapper.delete(new LambdaQueryWrapper<XzdCustomerSupplierYyb>().in(XzdCustomerSupplierYyb::getMainTableId, list));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 辅助方法:获取请求体
|
||||||
|
private String getRequestBody(ContentCachingRequestWrapper request) {
|
||||||
|
try {
|
||||||
|
request.getInputStream();
|
||||||
|
} catch (IOException e) {
|
||||||
|
// 忽略异常
|
||||||
|
}
|
||||||
|
byte[] content = request.getContentAsByteArray();
|
||||||
|
return content.length > 0 ? new String(content, StandardCharsets.UTF_8) : StrUtil.EMPTY;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 辅助方法:转换为Long
|
||||||
|
private Long convertToLong(Object value) {
|
||||||
|
if (value == null) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
try {
|
||||||
|
return Long.parseLong(value.toString());
|
||||||
|
} catch (NumberFormatException e) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// @Override
|
||||||
|
// public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
|
||||||
|
// String method = request.getMethod();
|
||||||
|
// // 只处理指定方法,且确保请求已被过滤器包装为ContentCachingRequestWrapper
|
||||||
|
// if (INTERCEPT_METHODS.contains(method) && request instanceof ContentCachingRequestWrapper) {
|
||||||
|
// // 直接使用过滤器包装后的请求对象
|
||||||
|
// ContentCachingRequestWrapper wrappedRequest = (ContentCachingRequestWrapper) request;
|
||||||
|
// handleRequest(wrappedRequest);
|
||||||
|
// }
|
||||||
|
// return true;
|
||||||
|
// }
|
||||||
|
|
||||||
|
// private void handleRequest(ContentCachingRequestWrapper request) throws IOException {
|
||||||
|
// String method = request.getMethod();
|
||||||
|
// String uri = request.getRequestURI();
|
||||||
|
// // 统一提取参数(POST/PUT从body,DELETE从URL)
|
||||||
|
// Map<String, Object> extractedParams = extractParams(request, method, EXTRACT_FIELDS);
|
||||||
|
// String requestBody = getRequestBody(request);
|
||||||
|
//
|
||||||
|
//// XzdCustomerSupplierYyb customerSupplierYyb = new XzdCustomerSupplierYyb();
|
||||||
|
//// customerSupplierYyb.setUri(uri);
|
||||||
|
//// customerSupplierYyb.setCSId();
|
||||||
|
//// customerSupplierYyb.setMainTableId();
|
||||||
|
//
|
||||||
|
// // 根据请求方法执行不同操作
|
||||||
|
//// switch (method) {
|
||||||
|
//// case "POST":
|
||||||
|
//// // 新增请求直接保存
|
||||||
|
//// customerSupplierYybMapper.insert(customerSupplierYyb);
|
||||||
|
//// break;
|
||||||
|
//// case "PUT":
|
||||||
|
//// // 修改请求先删除后新增
|
||||||
|
//// customerSupplierYybMapper.deleteByUri(uri);
|
||||||
|
//// customerSupplierYybMapper.insert(customerSupplierYyb);
|
||||||
|
//// break;
|
||||||
|
//// case "DELETE":
|
||||||
|
//// // 删除请求直接删除记录
|
||||||
|
//// customerSupplierYybMapper.deleteByUri(uri);
|
||||||
|
//// break;
|
||||||
|
//// }
|
||||||
|
// }
|
||||||
|
|
||||||
|
// // 获取请求体内容
|
||||||
|
// private String getRequestBody(ContentCachingRequestWrapper request) {
|
||||||
|
// try {
|
||||||
|
// // 主动读取一次请求体(触发缓存,即使不使用输入流内容)
|
||||||
|
// request.getInputStream();
|
||||||
|
// } catch (IOException e) {
|
||||||
|
// // 忽略异常(读取失败时继续执行)
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// // 此时缓存已生效,获取内容
|
||||||
|
// byte[] content = request.getContentAsByteArray();
|
||||||
|
// if (content.length > 0) {
|
||||||
|
// return new String(content, StandardCharsets.UTF_8);
|
||||||
|
// }
|
||||||
|
// return StrUtil.EMPTY;
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// /**
|
||||||
|
// * 从请求中提取指定字段(根据请求方法自动适配来源)
|
||||||
|
// * @param request 请求对象
|
||||||
|
// * @param method 请求方法(POST/PUT/DELETE)
|
||||||
|
// * @param extractFields 需要提取的字段
|
||||||
|
// * @return 提取的字段键值对
|
||||||
|
// */
|
||||||
|
// public static Map<String, Object> extractParams(HttpServletRequest request, String method, List<String> extractFields) {
|
||||||
|
// Map<String, Object> params = new HashMap<>();
|
||||||
|
// if ("POST".equals(method) || "PUT".equals(method)) {
|
||||||
|
// // POST/PUT:从JSON请求体提取
|
||||||
|
// String requestBody = getJsonBody(request);
|
||||||
|
// if (StrUtil.isNotEmpty(requestBody)) {
|
||||||
|
// JSONObject json = JSONObject.parseObject(requestBody);
|
||||||
|
// for (String field : extractFields) {
|
||||||
|
// if (json.containsKey(field)) {
|
||||||
|
// params.put(field, json.get(field));
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// } else if ("DELETE".equals(method)) {
|
||||||
|
// // DELETE:从URL提取(路径参数 + 查询参数)
|
||||||
|
// Map<String, String> urlParams = extractUrlParams(request);
|
||||||
|
// for (String field : extractFields) {
|
||||||
|
// if (urlParams.containsKey(field)) {
|
||||||
|
// params.put(field, urlParams.get(field));
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// return params;
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// /**
|
||||||
|
// * 获取POST/PUT的JSON请求体(支持大请求体,确保完整读取)
|
||||||
|
// */
|
||||||
|
// private static String getJsonBody(HttpServletRequest request) {
|
||||||
|
// // 仅处理包装后的请求
|
||||||
|
// if (!(request instanceof ContentCachingRequestWrapper)) {
|
||||||
|
// log.warn("请求未被ContentCachingRequestWrapper包装,无法获取请求体");
|
||||||
|
// return StrUtil.EMPTY;
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// ContentCachingRequestWrapper wrappedRequest = (ContentCachingRequestWrapper) request;
|
||||||
|
// byte[] content = null;
|
||||||
|
//
|
||||||
|
// try {
|
||||||
|
// // 1. 尝试通过输入流完整读取(确保大请求体被全部缓存)
|
||||||
|
// InputStream inputStream = wrappedRequest.getInputStream();
|
||||||
|
// if (inputStream != null) {
|
||||||
|
// // 读取全部字节(IOUtils确保完整读取,支持大文件)
|
||||||
|
// byte[] fullContent = IOUtils.toByteArray(inputStream);
|
||||||
|
// if (fullContent.length > 0) {
|
||||||
|
// content = fullContent;
|
||||||
|
// log.debug("通过输入流读取请求体,大小:{}字节", fullContent.length);
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// // 2. 若输入流读取失败,尝试从缓存获取(兼容小请求体)
|
||||||
|
// if (content == null || content.length == 0) {
|
||||||
|
// content = wrappedRequest.getContentAsByteArray();
|
||||||
|
// if (content.length > 0) {
|
||||||
|
// log.debug("通过缓存获取请求体,大小:{}字节", content.length);
|
||||||
|
// } else {
|
||||||
|
// log.debug("请求体为空(输入流和缓存均无内容)");
|
||||||
|
// return StrUtil.EMPTY;
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// // 3. 转换为字符串(指定UTF-8编码)
|
||||||
|
// String jsonBody = new String(content, StandardCharsets.UTF_8);
|
||||||
|
// // 日志脱敏:只输出前1000字符,避免敏感信息和大内容刷屏
|
||||||
|
// if (jsonBody.length() > 1000) {
|
||||||
|
// log.debug("请求体内容:{}...(省略{}字符)", jsonBody.substring(0, 1000), jsonBody.length() - 1000);
|
||||||
|
// } else {
|
||||||
|
// log.debug("请求体内容:{}", jsonBody);
|
||||||
|
// }
|
||||||
|
// return jsonBody;
|
||||||
|
//
|
||||||
|
// } catch (IOException e) {
|
||||||
|
// log.error("读取请求体失败", e); // 记录详细异常,便于排查
|
||||||
|
// // 异常时最后尝试从缓存获取
|
||||||
|
// content = wrappedRequest.getContentAsByteArray();
|
||||||
|
// return content.length > 0 ? new String(content, StandardCharsets.UTF_8) : StrUtil.EMPTY;
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// /**
|
||||||
|
// * 提取DELETE请求的URL参数(路径参数 + 查询参数)
|
||||||
|
// */
|
||||||
|
// private static Map<String, String> extractUrlParams(HttpServletRequest request) {
|
||||||
|
// Map<String, String> params = new HashMap<>();
|
||||||
|
//
|
||||||
|
// // 1. 提取路径参数(如 /api/resource/{id} 中的id)
|
||||||
|
// Map<String, String> pathVariables = (Map<String, String>) request.getAttribute(HandlerMapping.URI_TEMPLATE_VARIABLES_ATTRIBUTE);
|
||||||
|
// if (pathVariables != null) {
|
||||||
|
// params.putAll(pathVariables);
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// // 2. 提取查询参数(如 /api/resource?id=1&name=test 中的id和name)
|
||||||
|
// UriComponentsBuilder builder = UriComponentsBuilder.fromUriString(request.getRequestURI());
|
||||||
|
// request.getParameterMap().forEach((key, values) -> {
|
||||||
|
// if (values != null && values.length > 0) {
|
||||||
|
// params.put(key, values[0]); // 取第一个值
|
||||||
|
// }
|
||||||
|
// });
|
||||||
|
//
|
||||||
|
// return params;
|
||||||
|
// }
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,79 @@
|
|||||||
|
package org.dromara.xzd.interceptor;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
|
import org.aspectj.lang.JoinPoint;
|
||||||
|
import org.aspectj.lang.annotation.AfterReturning;
|
||||||
|
import org.aspectj.lang.annotation.Aspect;
|
||||||
|
import org.aspectj.lang.annotation.Pointcut;
|
||||||
|
import java.lang.reflect.Field;
|
||||||
|
import org.dromara.xzd.handler.AutoIncrementIdHolder;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 拦截Service的保存方法,获取数据库自增ID
|
||||||
|
*/
|
||||||
|
@Aspect
|
||||||
|
@Component
|
||||||
|
public class SaveMethodAspect {
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private AutoIncrementIdHolder autoIncrementIdHolder;
|
||||||
|
|
||||||
|
// 切入点:匹配Service中所有"save"开头的方法(修改为你的Service包路径)
|
||||||
|
@Pointcut("execution(* org.dromara.xzd.*.mapper.*Mapper.insert*(..)) || " +
|
||||||
|
"execution(* org.dromara.xzd.*.*.mapper.*Mapper.insert*(..)) " +
|
||||||
|
"|| execution(* org.dromara.xzd.mapper.*Mapper.insert*(..)) ")
|
||||||
|
public void insertPointcut() {}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 后置通知:方法执行后,从参数实体中提取主键 ID
|
||||||
|
*/
|
||||||
|
@AfterReturning(pointcut = "insertPointcut()")
|
||||||
|
public void afterInsert(JoinPoint joinPoint) {
|
||||||
|
Object[] args = joinPoint.getArgs();
|
||||||
|
if (args == null || args.length == 0) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 遍历方法参数,处理实体对象
|
||||||
|
for (Object arg : args) {
|
||||||
|
if (arg == null) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
// 通过反射获取实体中的主键字段值
|
||||||
|
Object id = getPrimaryKeyValue(arg);
|
||||||
|
if (id != null) {
|
||||||
|
// 处理 ID(日志、关联操作等)
|
||||||
|
AutoIncrementIdHolder.setId((Long) id);
|
||||||
|
System.out.println("新增操作生成的 ID:" + id + "(实体类:" + arg.getClass().getSimpleName() + ")");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 反射获取实体中被 @TableId 注解标识的主键值
|
||||||
|
*/
|
||||||
|
private Object getPrimaryKeyValue(Object entity) {
|
||||||
|
Class<?> clazz = entity.getClass();
|
||||||
|
// 遍历所有字段(包括父类字段)
|
||||||
|
while (clazz != null && clazz != Object.class) {
|
||||||
|
Field[] fields = clazz.getDeclaredFields();
|
||||||
|
for (Field field : fields) {
|
||||||
|
// 判断字段是否被 @TableId 注解标识(MyBatis-Plus 主键)
|
||||||
|
if (field.isAnnotationPresent(TableId.class)) {
|
||||||
|
try {
|
||||||
|
field.setAccessible(true); // 允许访问私有字段
|
||||||
|
return field.get(entity); // 返回主键值
|
||||||
|
} catch (IllegalAccessException e) {
|
||||||
|
System.err.println("获取主键值失败:" + e.getMessage());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
clazz = clazz.getSuperclass(); // 检查父类字段
|
||||||
|
}
|
||||||
|
// 若未找到主键字段,可根据需求返回 null 或抛出异常
|
||||||
|
System.out.println("实体类 " + entity.getClass().getSimpleName() + " 未找到 @TableId 注解的主键字段");
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user