Browse Source

2026-11-05

项目信息导出优化;
编码保存时校验不区分site;
master
fengyuan_yang 3 days ago
parent
commit
d26151b7a8
  1. 2
      src/main/java/com/spring/modules/code/mapper/CodeDrawingMapper.java
  2. 6
      src/main/java/com/spring/modules/part/service/impl/PartInformationServiceImpl.java
  3. 24
      src/main/java/com/spring/modules/project/service/impl/ProjectServiceImpl.java
  4. 5
      src/main/java/com/spring/modules/quotation/service/impl/QuotationInformationServiceImpl.java
  5. 3
      src/main/resources/mapper/code/CodeDrawingMapper.xml

2
src/main/java/com/spring/modules/code/mapper/CodeDrawingMapper.java

@ -18,5 +18,5 @@ public interface CodeDrawingMapper extends BaseMapper<CodeDrawing> {
List<CodeDrawingVo> queryCodeDrawingList(CodeDrawingVo codeDrawing);
int countGeneratedDrawingNo(@Param("site") String site, @Param("normalizedDrawingNo") String normalizedDrawingNo);
int countGeneratedDrawingNo(@Param("normalizedDrawingNo") String normalizedDrawingNo);
}

6
src/main/java/com/spring/modules/part/service/impl/PartInformationServiceImpl.java

@ -1285,7 +1285,7 @@ public class PartInformationServiceImpl extends ServiceImpl<PartInformationMappe
if (!StringUtils.hasText(drawingNo) || "NA".equalsIgnoreCase(drawingNo)) {
throw new RuntimeException("编码为空,无法自动保存!");
}
assertDrawingNoGenerated(site, drawingNo);
assertDrawingNoGenerated(drawingNo);
PartInformationEntity partData = partInformationMapper.selectOne(
new QueryWrapper<PartInformationEntity>()
.eq("site", site)
@ -1361,12 +1361,12 @@ public class PartInformationServiceImpl extends ServiceImpl<PartInformationMappe
}
}
private void assertDrawingNoGenerated(String site, String drawingNo) {
private void assertDrawingNoGenerated(String drawingNo) {
String normalizedDrawingNo = stripLeadingFrPrefix(drawingNo);
if (!StringUtils.hasText(normalizedDrawingNo)) {
throw new RuntimeException("该编码尚未生成,不能保存");
}
Integer count = codeDrawingMapper.countGeneratedDrawingNo(site, normalizedDrawingNo);
Integer count = codeDrawingMapper.countGeneratedDrawingNo(normalizedDrawingNo);
if (count == null || count <= 0) {
throw new RuntimeException("该编码尚未生成,不能保存");
}

24
src/main/java/com/spring/modules/project/service/impl/ProjectServiceImpl.java

@ -156,10 +156,16 @@ public class ProjectServiceImpl implements ProjectService {
private PageUtils searchProjectInfoPage(PlmProjectInfoData inData, boolean flag) {
int currPage = inData.getPage() > 0 ? inData.getPage() : 1;
int pageSize = inData.getLimit() > 0 ? inData.getLimit() : 10;
long offset = (long) (currPage - 1) * pageSize;
int limit = inData.getLimit();
// limit <= 0:导出全部,Mapper 不拼 OFFSET/FETCH;不能回退成 10
long size = limit > 0 ? limit : -1L;
long offset = limit > 0 ? (long) (currPage - 1) * size : 0L;
if (limit <= 0) {
currPage = 1;
}
long total = this.projectDao.projectInfoSearchCount(inData, flag);
List<PlmProjectInfoData> records = this.projectDao.projectInfoSearch(offset, pageSize, inData, flag);
List<PlmProjectInfoData> records = this.projectDao.projectInfoSearch(offset, size, inData, flag);
int pageSize = limit > 0 ? limit : Math.max((int) total, 1);
return new PageUtils(records, (int) total, pageSize, currPage);
}
@ -705,10 +711,16 @@ public class ProjectServiceImpl implements ProjectService {
params.put("site", data.getSite());
params.put("flag", false);
int currPage = data.getNo() > 0 ? data.getNo() : 1;
int pageSize = data.getSize() > 0 ? data.getSize() : 10;
long offset = (long) (currPage - 1) * pageSize;
int reqSize = data.getSize();
// size <= 0:导出全部,Mapper 不拼 OFFSET/FETCH;不能回退成 10
long size = reqSize > 0 ? reqSize : -1L;
long offset = reqSize > 0 ? (long) (currPage - 1) * size : 0L;
if (reqSize <= 0) {
currPage = 1;
}
long total = this.projectDao.projectInfoSearchByAnyFieldCount(params);
List<PlmProjectInfoData> records = this.projectDao.projectInfoSearchByAnyField(offset, pageSize, params);
List<PlmProjectInfoData> records = this.projectDao.projectInfoSearchByAnyField(offset, size, params);
int pageSize = reqSize > 0 ? reqSize : Math.max((int) total, 1);
return new PageUtils(records, (int) total, pageSize, currPage);
}

5
src/main/java/com/spring/modules/quotation/service/impl/QuotationInformationServiceImpl.java

@ -1119,8 +1119,9 @@ public class QuotationInformationServiceImpl extends ServiceImpl<QuotationInform
if (project == null) {
throw new RuntimeException("未找到对应项目信息");
}
if (!"已完成".equals(project.getStatus())) {
throw new RuntimeException("仅项目单据状态为已完成时允许新增询价,当前状态:" + project.getStatus());
String status = project.getStatus();
if (!"审批中".equals(status) && !"已完成".equals(status)) {
throw new RuntimeException("仅项目单据状态为审批中或已完成时允许新增询价,当前状态:" + status);
}
}

3
src/main/resources/mapper/code/CodeDrawingMapper.xml

@ -78,8 +78,7 @@
<select id="countGeneratedDrawingNo" resultType="int">
select count(1)
from DC_PartList
where site = #{site}
and UPPER(
where UPPER(
case
when UPPER(LEFT(drawing_no, 1)) in ('F', 'R') then SUBSTRING(drawing_no, 2, LEN(drawing_no))
else drawing_no

Loading…
Cancel
Save