Compare commits

...

8 Commits

Author SHA1 Message Date
lg
57855f4307 bug修改 2025-10-25 22:18:10 +08:00
6784eafe6e 供应商-客户中间表引用表的新增修改删除修改 2025-10-25 22:17:26 +08:00
0b42c1d6a6 Merge remote-tracking branch 'origin/dev' into dev 2025-10-25 22:16:07 +08:00
4b37a7327f 10-25-修改 2025-10-25 22:16:00 +08:00
lg
0287f1e4ce bug修改 2025-10-25 21:58:47 +08:00
5d8af1cab8 10-25-供应商删除修改 2025-10-25 21:57:13 +08:00
123896f08b Merge remote-tracking branch 'origin/dev' into dev 2025-10-25 21:25:40 +08:00
a8a198b51f 10-25-增加校验 2025-10-25 21:25:33 +08:00
19 changed files with 113 additions and 63 deletions

View File

@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.util.Date;
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;
/**
* 最终报价(大写)

View File

@ -8,6 +8,7 @@ import lombok.Data;
import lombok.EqualsAndHashCode;
import jakarta.validation.constraints.*;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.util.Date;
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;
/**
* 最终报价(大写)

View File

@ -1,5 +1,6 @@
package org.dromara.xzd.biddingManagement.postAnalysis.domain.vo;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
@ -54,7 +55,7 @@ public class XzdPostBidAnalysisVo implements Serializable {
* 工程造价(万元)
*/
@ExcelProperty(value = "工程造价(万元)")
private Long projectCost;
private BigDecimal projectCost;
/**
* 项目类型
@ -96,13 +97,13 @@ public class XzdPostBidAnalysisVo implements Serializable {
* 招标控制价(万元)
*/
@ExcelProperty(value = "招标控制价(万元)")
private Long controlPrice;
private BigDecimal controlPrice;
/**
* 最终报价(万元)
*/
@ExcelProperty(value = "最终报价(万元)")
private Long finalQuote;
private BigDecimal finalQuote;
/**
* 投标结果
@ -127,7 +128,7 @@ public class XzdPostBidAnalysisVo implements Serializable {
* 最终报价(元)
*/
@ExcelProperty(value = "最终报价(元)")
private Long finalQuoteYuan;
private BigDecimal finalQuoteYuan;
/**
* 最终报价(大写)

View File

@ -32,6 +32,11 @@ public class XzdProject extends BaseEntity {
@TableId(value = "id")
private Long id;
/**
* 区域码
*/
private Long cityCode;
/**
* 项目编号
*/

View File

@ -1,13 +1,13 @@
package org.dromara.xzd.domain;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import com.baomidou.mybatisplus.annotation.*;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import java.io.Serial;
import java.util.Date;
/**
* 项目经理推荐及审批对象 xzd_project_manager_approval
@ -29,6 +29,11 @@ public class XzdProjectManagerApproval extends BaseEntity {
@TableId(value = "id")
private Long id;
/**
* 区域码
*/
private Long cityCode;
/**
* 单据编号
*/

View File

@ -34,7 +34,7 @@ public class XzdSupplierInfo extends BaseEntity {
/**
* 区域编码
*/
private String cityCode;
private Long cityCode;
/**
* 单位编号

View File

@ -28,6 +28,11 @@ public class XzdProjectBo extends BaseEntity {
*/
private Long id;
/**
* 区域码
*/
private Long cityCode;
/**
* 项目编号
*/

View File

@ -1,15 +1,16 @@
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 jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import lombok.Data;
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 com.fasterxml.jackson.annotation.JsonFormat;
/**
* 项目经理推荐及审批业务对象 xzd_project_manager_approval
@ -28,6 +29,11 @@ public class XzdProjectManagerApprovalBo extends BaseEntity {
@NotNull(message = "主键ID不能为空", groups = { EditGroup.class })
private Long id;
/**
* 区域码
*/
private Long cityCode;
/**
* 单据编号
*/

View File

@ -34,7 +34,7 @@ public class XzdSupplierInfoBo extends BaseEntity {
/**
* 区域编码
*/
private String cityCode;
private Long cityCode;
/**
* 单位编号

View File

@ -1,14 +1,10 @@
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.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 org.dromara.xzd.domain.XzdProjectManagerApproval;
import java.io.Serial;
import java.io.Serializable;
@ -36,6 +32,11 @@ public class XzdProjectManagerApprovalVo implements Serializable {
@ExcelProperty(value = "主键ID")
private Long id;
/**
* 区域码
*/
private Long cityCode;
/**
* 单据编号
*/

View File

@ -37,6 +37,11 @@ public class XzdProjectVo implements Serializable {
@ExcelProperty(value = "主键ID")
private Long id;
/**
* 区域码
*/
private Long cityCode;
/**
* 项目编号
*/

View File

@ -39,7 +39,7 @@ public class XzdSupplierInfoVo implements Serializable {
/**
* 区域编码
*/
private String cityCode;
private Long cityCode;
/**
* 单位编号

View File

@ -1,5 +1,6 @@
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;
@ -27,11 +28,6 @@ public class RequestLogInterceptor implements HandlerInterceptor {
@Autowired
private XzdCustomerSupplierYybMapper customerSupplierYybMapper;
@Autowired
private AutoIncrementIdHolder autoIncrementIdHolder;
// 需要拦截的请求方法
private static final List<String> INTERCEPT_METHODS = Arrays.asList("POST", "PUT", "DELETE");
// 需要提取的请求体字段(根据实际需求修改)
private static final List<String> EXTRACT_FIELDS = Arrays.asList("id",
@ -130,7 +126,9 @@ public class RequestLogInterceptor implements HandlerInterceptor {
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数据库自增/雪花算法生成的情况)
@ -151,6 +149,12 @@ public class RequestLogInterceptor implements HandlerInterceptor {
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));
@ -167,6 +171,9 @@ public class RequestLogInterceptor implements HandlerInterceptor {
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));
@ -178,6 +185,12 @@ public class RequestLogInterceptor implements HandlerInterceptor {
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));

View File

@ -309,6 +309,7 @@ public class XzdCorrespondentListImp implements IXzdCorrespondentList {
}
@Override
@Transactional(rollbackFor = Exception.class)
public R<String> delCorrespondent(Long[] dto) {
for (int i = dto.length - 1; i >= 0; i--) {
@ -571,8 +572,9 @@ public class XzdCorrespondentListImp implements IXzdCorrespondentList {
public void delCorrespondentVoid(Long dto){
// 删除中间表
XzdCustomerSupplierYyb xzdCustomerSupplierYyb = iXzdCustomerSupplierYybService.getBaseMapper().selectOne(new LambdaQueryWrapper<XzdCustomerSupplierYyb>().eq(XzdCustomerSupplierYyb::getCSId, dto));
if (xzdCustomerSupplierYyb == null) {
List<XzdCustomerSupplierYyb> xzdCustomerSupplierYyb = iXzdCustomerSupplierYybService.getBaseMapper().selectList(new LambdaQueryWrapper<XzdCustomerSupplierYyb>().eq(XzdCustomerSupplierYyb::getCSId, dto));
if (xzdCustomerSupplierYyb == null || xzdCustomerSupplierYyb.size() == 0) {
iXzdCustomerSupplierService.getBaseMapper().delete(new LambdaQueryWrapper<XzdCustomerSupplier>().eq(XzdCustomerSupplier::getCSId, dto));
}else {
throw new RuntimeException("该客户信息已被使用,无法删除");

View File

@ -2,7 +2,11 @@ package org.dromara.xzd.service.impl;
import cn.hutool.core.convert.Convert;
import cn.hutool.core.util.ObjectUtil;
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.domain.vo.XzdCustomerSupplierVos;
import org.dromara.common.core.service.XzdCustomerSupplierService;
import org.dromara.common.core.service.XzdCustomerinformationService;
@ -10,25 +14,19 @@ import org.dromara.common.core.service.XzdSupplierInfoService;
import org.dromara.common.core.utils.MapstructUtils;
import org.dromara.common.core.utils.SpringUtils;
import org.dromara.common.core.utils.StringUtils;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.mybatis.core.page.PageQuery;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import lombok.RequiredArgsConstructor;
import org.dromara.system.domain.vo.SysDeptVo;
import org.dromara.xzd.domain.vo.XzdSupplierInfoVo;
import org.springframework.stereotype.Service;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.xzd.domain.XzdCustomerinformation;
import org.dromara.xzd.domain.bo.XzdCustomerinformationBo;
import org.dromara.xzd.domain.vo.XzdCustomerinformationVo;
import org.dromara.xzd.domain.XzdCustomerinformation;
import org.dromara.xzd.mapper.XzdCustomerinformationMapper;
import org.dromara.xzd.service.IXzdCustomerinformationService;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.Map;
import java.util.Collection;
/**
* 客户信息Service业务层处理
@ -194,7 +192,7 @@ public class XzdCustomerinformationServiceImpl extends ServiceImpl<XzdCustomerin
if (ObjectUtil.isEmpty(xzdCustomerSuppliervo) ){
return null;
}
if (xzdCustomerSuppliervo.getType().equals("1")){
if (xzdCustomerSuppliervo.getType()!= null && xzdCustomerSuppliervo.getType().equals("1")){
XzdCustomerinformationVo vo = SpringUtils.getAopProxy(this).getBaseMapper().selectVoById(id);
if (ObjectUtil.isNotNull(vo)) {
list.add(vo.getUnitName());

View File

@ -1,28 +1,30 @@
package org.dromara.xzd.service.impl;
import cn.hutool.core.util.HashUtil;
import cn.hutool.core.util.IdUtil;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.dromara.common.core.utils.MapstructUtils;
import org.dromara.common.core.utils.StringUtils;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.mybatis.core.page.PageQuery;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
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.common.utils.BatchNumberGenerator;
import org.dromara.system.service.impl.SysOssServiceImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.dromara.xzd.domain.XzdProjectManagerApproval;
import org.dromara.xzd.domain.bo.XzdProjectManagerApprovalBo;
import org.dromara.xzd.domain.vo.XzdProjectManagerApprovalVo;
import org.dromara.xzd.domain.XzdProjectManagerApproval;
import org.dromara.xzd.mapper.XzdProjectManagerApprovalMapper;
import org.dromara.xzd.service.IXzdProjectManagerApprovalService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.*;
import java.util.Arrays;
import java.util.Collection;
import java.util.List;
import java.util.Map;
/**
* 项目经理推荐及审批Service业务层处理
@ -80,6 +82,7 @@ public class XzdProjectManagerApprovalServiceImpl extends ServiceImpl<XzdProject
Map<String, Object> params = bo.getParams();
LambdaQueryWrapper<XzdProjectManagerApproval> lqw = Wrappers.lambdaQuery();
lqw.eq(bo.getId() != null, XzdProjectManagerApproval::getId, bo.getId());
lqw.eq(bo.getCityCode() != null, XzdProjectManagerApproval::getCityCode, bo.getCityCode());
lqw.orderByDesc(XzdProjectManagerApproval::getId);
lqw.eq(StringUtils.isNotBlank(bo.getDocumentNumber()), XzdProjectManagerApproval::getDocumentNumber, bo.getDocumentNumber());
lqw.between(params.get("beginRecordDate") != null && params.get("endRecordDate") != null,

View File

@ -561,7 +561,6 @@ public class XzdSupplierInfoServiceImpl extends ServiceImpl<XzdSupplierInfoMappe
if(isValid){
//TODO 做一些业务上的校验,判断是否需要校验
}
boolean b = baseMapper.deleteByIds(ids) > 0;
for (Long id : ids) {
@ -694,7 +693,7 @@ public class XzdSupplierInfoServiceImpl extends ServiceImpl<XzdSupplierInfoMappe
xzdContractInfoService.remove(contractInfoLambdaQueryWrapper);
}
return b;
return baseMapper.deleteByIds(ids) > 0;
}

View File

@ -7,6 +7,7 @@
<select id="search" resultType="org.dromara.xzd.domain.vo.XzdProjectVo">
SELECT
project.id,
project.city_code as cityCode,
project.project_attribute as projectAttribute,
project.project_number as projectNumber,
project.project_name as projectName,
@ -53,6 +54,10 @@
AND project.project_number LIKE CONCAT('%',#{projectNumber},'%')
</if>
<if test="cityCode != null and cityCode != ''">
AND project.city_code = #{cityCode}
</if>
<if test='projectName != null and projectName != ""'>
AND project.project_name LIKE CONCAT('%',#{projectName},'%')
</if>

View File

@ -47,7 +47,7 @@
</if>
<if test='bo.cityCode != null and bo.cityCode != ""'>
AND info.city_code = #{cityCode}
AND info.city_code = #{bo.cityCode}
</if>
<if test='bo.fgbm != null and bo.fgbm != ""'>