1111
This commit is contained in:
@ -300,7 +300,7 @@ dxf2GeoJson:
|
||||
file-name: main.exe
|
||||
ys7:
|
||||
app-key: 3acf9f1a43dc4209841e0893003db0a2
|
||||
app-secret: 09e29c70ae1161fbc3ce2030fc09ba2e
|
||||
app-secret: 4bbf3e9394f55d3af6e3af27b2d3db36
|
||||
# 斯巴达算法
|
||||
sparta:
|
||||
url: http://119.3.204.120:8040
|
||||
|
||||
@ -18,7 +18,6 @@ import org.dromara.contractor.service.ISubConstructionUserService;
|
||||
import org.dromara.contractor.service.ISubUserSalaryDetailService;
|
||||
import org.dromara.design.service.IDesTechnicalStandardService;
|
||||
import org.dromara.facility.domain.FacMatrix;
|
||||
import org.dromara.facility.domain.FacPhotovoltaicPanel;
|
||||
import org.dromara.facility.service.IFacMatrixService;
|
||||
import org.dromara.facility.service.IFacPhotovoltaicPanelPartsService;
|
||||
import org.dromara.facility.service.IFacPhotovoltaicPanelService;
|
||||
@ -102,52 +101,6 @@ public class DemoTest {
|
||||
@Resource
|
||||
private IOutConstructionValueService constructionValueService;
|
||||
|
||||
@Test
|
||||
void syncTest() {
|
||||
List<BusProject> projects = projectService.lambdaQuery()
|
||||
.eq(BusProject::getPId, 1968506669544656898L)
|
||||
.list();
|
||||
Set<Long> projectIds = projects.stream().map(BusProject::getId).collect(Collectors.toSet());
|
||||
List<FacPhotovoltaicPanel> zujian = photovoltaicPanelService.lambdaQuery()
|
||||
.eq(FacPhotovoltaicPanel::getProgressCategoryName, "组件安装")
|
||||
.in(FacPhotovoltaicPanel::getProjectId, projectIds)
|
||||
.list();
|
||||
Map<Long, List<FacPhotovoltaicPanel>> zujianMap = zujian.stream()
|
||||
.collect(Collectors.groupingBy(FacPhotovoltaicPanel::getMatrixId));
|
||||
List<PgsProgressCategory> zhijia = progressCategoryService.lambdaQuery()
|
||||
.eq(PgsProgressCategory::getName, "支架安装")
|
||||
.in(PgsProgressCategory::getProjectId, projectIds)
|
||||
.list();
|
||||
Map<Long, List<PgsProgressCategory>> zhijiaMap = zhijia.stream()
|
||||
.collect(Collectors.groupingBy(PgsProgressCategory::getMatrixId));
|
||||
List<FacPhotovoltaicPanel> newP = new ArrayList<>();
|
||||
for (Map.Entry<Long, List<FacPhotovoltaicPanel>> entry : zujianMap.entrySet()) {
|
||||
Long key = entry.getKey();
|
||||
List<FacPhotovoltaicPanel> panels = entry.getValue();
|
||||
List<PgsProgressCategory> list = zhijiaMap.getOrDefault(key, new ArrayList<>());
|
||||
if (CollUtil.isEmpty(list)) {
|
||||
continue;
|
||||
}
|
||||
PgsProgressCategory zhi = list.getFirst();
|
||||
List<FacPhotovoltaicPanel> panelList = panels.stream().map(panel -> {
|
||||
FacPhotovoltaicPanel p = new FacPhotovoltaicPanel();
|
||||
p.setProjectId(panel.getProjectId());
|
||||
p.setMatrixId(panel.getMatrixId());
|
||||
p.setName(panel.getName());
|
||||
p.setPositions(panel.getPositions());
|
||||
p.setProgressCategoryId(zhi.getId());
|
||||
p.setProgressCategoryName(zhi.getName());
|
||||
p.setRemark(panel.getRemark());
|
||||
p.setCreateDept(panel.getCreateDept());
|
||||
p.setCreateBy(panel.getCreateBy());
|
||||
p.setUpdateBy(panel.getUpdateBy());
|
||||
return p;
|
||||
}).toList();
|
||||
newP.addAll(panelList);
|
||||
}
|
||||
photovoltaicPanelService.saveBatch(newP);
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
void testConstructionValue() {
|
||||
|
||||
@ -76,8 +76,6 @@ import java.time.temporal.ChronoUnit;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import static org.dromara.project.domain.enums.BusAttendanceClockStatusEnum.ATTENDANCE_LIST;
|
||||
|
||||
/**
|
||||
* 施工人员Service业务层处理
|
||||
*
|
||||
@ -1131,7 +1129,6 @@ public class SubConstructionUserServiceImpl extends ServiceImpl<SubConstructionU
|
||||
}
|
||||
//只查施工人员
|
||||
lqw.eq(SubConstructionUser::getUserRole, "0");
|
||||
lqw.isNotNull(SubConstructionUser::getTeamId);
|
||||
// 分页查询获取数据
|
||||
Page<SubConstructionUser> constructionUserPage = this.page(pageQuery.build(), lqw);
|
||||
List<SubConstructionUser> constructionUserList = constructionUserPage.getRecords();
|
||||
@ -1197,12 +1194,8 @@ public class SubConstructionUserServiceImpl extends ServiceImpl<SubConstructionU
|
||||
unClockDays++;
|
||||
}
|
||||
}
|
||||
if((clockInStatus!=null && ATTENDANCE_LIST.contains(clockInStatus))
|
||||
|| (clockOutStatus!=null && ATTENDANCE_LIST.contains(clockOutStatus))){
|
||||
attendanceDays++;
|
||||
}
|
||||
|
||||
}
|
||||
attendanceDays = dailyMap.size() - leaveDays;
|
||||
}
|
||||
}
|
||||
constructionUserAttendanceTotalResp.setAttendanceDays(attendanceDays);
|
||||
|
||||
@ -14,6 +14,7 @@ import org.dromara.common.core.utils.ObjectUtils;
|
||||
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.satoken.utils.LoginHelper;
|
||||
import org.dromara.contractor.domain.SubConstructionUser;
|
||||
import org.dromara.contractor.domain.SubContractor;
|
||||
import org.dromara.contractor.domain.dto.contractor.SubContractorCreateReq;
|
||||
@ -118,10 +119,7 @@ public class SubContractorServiceImpl extends ServiceImpl<SubContractorMapper, S
|
||||
// 数据校验
|
||||
validEntityBeforeSave(contractor);
|
||||
String name = req.getName();
|
||||
Long count = this.lambdaQuery()
|
||||
.eq(SubContractor::getName, name)
|
||||
.eq(SubContractor::getProjectId, req.getProjectId())
|
||||
.count();
|
||||
Long count = this.lambdaQuery().eq(SubContractor::getName, name).count();
|
||||
if (count > 0) {
|
||||
throw new ServiceException("分包单位名称重复", HttpStatus.BAD_REQUEST);
|
||||
}
|
||||
@ -162,11 +160,7 @@ public class SubContractorServiceImpl extends ServiceImpl<SubContractorMapper, S
|
||||
}
|
||||
// 判断名称是否重复
|
||||
if (!oldContractor.getName().equals(req.getName())) {
|
||||
Long count = this.lambdaQuery()
|
||||
.eq(SubContractor::getName, req.getName())
|
||||
.eq(SubContractor::getProjectId, req.getProjectId())
|
||||
.ne(SubContractor::getId, contractor.getId())
|
||||
.count();
|
||||
Long count = this.lambdaQuery().eq(SubContractor::getName, req.getName()).count();
|
||||
if (count > 0) {
|
||||
throw new ServiceException("分包单位名称重复", HttpStatus.BAD_REQUEST);
|
||||
}
|
||||
|
||||
@ -353,9 +353,6 @@ public class BusBillofquantitiesVersionsServiceImpl extends ServiceImpl<BusBillo
|
||||
lqw.eq(BusBillofquantitiesVersions::getWorkOrderType, "3");
|
||||
lqw.eq(BusBillofquantitiesVersions::getStatus, BusinessStatusEnum.FINISH.getStatus());
|
||||
List<BusBillofquantitiesVersionsVo> result = baseMapper.selectVoList(lqw);
|
||||
if (CollUtil.isEmpty(result)) {
|
||||
return Collections.emptyList();
|
||||
}
|
||||
List<String> versionss = new ArrayList<>();
|
||||
result.forEach(v -> versionss.add(v.getVersions()));
|
||||
List<BusBillofquantities> busBillofquantities = busBillofquantitiesService.getBaseMapper().selectList(new LambdaQueryWrapper<BusBillofquantities>()
|
||||
|
||||
@ -15,9 +15,6 @@ 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.contractor.domain.dto.contractor.SubContractorQueryReq;
|
||||
import org.dromara.contractor.domain.vo.contractor.SubContractorVo;
|
||||
import org.dromara.contractor.service.ISubContractorService;
|
||||
import org.dromara.materials.domain.dto.materials.MatMaterialsCreateReq;
|
||||
import org.dromara.materials.domain.dto.materials.MatMaterialsGisReq;
|
||||
import org.dromara.materials.domain.dto.materials.MatMaterialsQueryReq;
|
||||
@ -43,8 +40,6 @@ public class MatMaterialsController extends BaseController {
|
||||
|
||||
private final IMatMaterialsService materialsService;
|
||||
|
||||
private final ISubContractorService contractorService;
|
||||
|
||||
/**
|
||||
* 查询材料列表
|
||||
*/
|
||||
@ -160,13 +155,4 @@ public class MatMaterialsController extends BaseController {
|
||||
@PathVariable Long[] ids) {
|
||||
return toAjax(materialsService.deleteWithValidByIds(List.of(ids), true));
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询分包单位列表
|
||||
*/
|
||||
@SaCheckPermission("materials:materials:contractorList")
|
||||
@GetMapping("/contractorList")
|
||||
public R<List<SubContractorVo>> contractorList(SubContractorQueryReq req) {
|
||||
return R.ok(contractorService.queryList(req));
|
||||
}
|
||||
}
|
||||
|
||||
@ -94,13 +94,4 @@ public class MatMaterialsInventory extends BaseEntity {
|
||||
*/
|
||||
private String remark;
|
||||
|
||||
/**
|
||||
* 操作人id
|
||||
*/
|
||||
private Long operatorId;
|
||||
|
||||
/**
|
||||
* 分包单位id
|
||||
*/
|
||||
private Long recipientId;
|
||||
}
|
||||
|
||||
@ -114,22 +114,11 @@ public class BusAttendanceController extends BaseController {
|
||||
return toAjax(busAttendanceService.deleteWithValidByIds(List.of(ids), true));
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询项目施工人员前14天考勤状况
|
||||
*/
|
||||
@SaCheckPermission("project:attendance:list")
|
||||
|
||||
@GetMapping("/list/clockDate/twoWeek")
|
||||
public R<List<BusAttendanceClockDateForTwoWeekVo>> getClockDateForTwoWeekList(Long projectId) {
|
||||
return R.ok(busAttendanceService.getClockDateForTwoWeekList(projectId));
|
||||
}
|
||||
/**
|
||||
* 查询项目施工人员当天考勤状况
|
||||
*/
|
||||
@SaCheckPermission("project:attendance:list")
|
||||
@GetMapping("/list/clockDate/today")
|
||||
public R<BusAttendanceClockDateForTwoWeekVo> getTodayAttendanceData(Long projectId) {
|
||||
return R.ok(busAttendanceService.getTodayAttendanceData(projectId));
|
||||
}
|
||||
|
||||
@PostMapping("/exportList")
|
||||
public void exportList(AttendanceExportDto dto, HttpServletResponse response) {
|
||||
|
||||
@ -1,7 +1,6 @@
|
||||
package org.dromara.project.controller.app;
|
||||
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import jakarta.annotation.Resource;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
@ -129,8 +128,8 @@ public class BusAttendanceAppController extends BaseController {
|
||||
* 获取用户打卡异常记录
|
||||
*/
|
||||
@GetMapping("/getAbnormalAttendance/{projectId}")
|
||||
public TableDataInfo<BusAttendanceVo> getAbnormalAttendance(@NotNull @PathVariable("projectId") Long projectId, PageQuery pageQuery){
|
||||
return attendanceService.getAbnormalAttendance(projectId,pageQuery);
|
||||
public R<List<BusAttendanceVo>> getAbnormalAttendance(@NotNull @PathVariable("projectId") Long projectId){
|
||||
return R.ok(attendanceService.getAbnormalAttendance(projectId));
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@ -140,14 +140,4 @@ public class BusLeave extends BaseEntity {
|
||||
*/
|
||||
private String auditStatus;
|
||||
|
||||
/**
|
||||
* 时间类型 1-天 2-小时
|
||||
*/
|
||||
private String timeType;
|
||||
|
||||
/**
|
||||
* 时间段类型 1-上午 2-下午
|
||||
*/
|
||||
private String periodType;
|
||||
|
||||
}
|
||||
|
||||
@ -1,8 +1,8 @@
|
||||
package org.dromara.project.service;
|
||||
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import jakarta.servlet.http.HttpServletResponse;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import org.dromara.common.core.domain.R;
|
||||
import org.dromara.project.domain.dto.attendance.*;
|
||||
import org.dromara.project.domain.vo.BusAttendanceVo;
|
||||
import org.dromara.project.domain.bo.BusAttendanceBo;
|
||||
@ -13,9 +13,12 @@ import org.dromara.common.mybatis.core.page.PageQuery;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import org.dromara.project.domain.vo.BusMonthAttendanceVo;
|
||||
import org.dromara.project.domain.vo.attendance.*;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
import org.springframework.web.bind.annotation.PathVariable;
|
||||
import org.springframework.web.bind.annotation.RequestParam;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
|
||||
@ -129,9 +132,9 @@ public interface IBusAttendanceService extends IService<BusAttendance>{
|
||||
List<BusMonthAttendanceVo> getMonthAttendance(Long projectId, String month);
|
||||
|
||||
/**
|
||||
* 获取用户打卡异常记录
|
||||
* 获取用户指定月份的打卡记录
|
||||
*/
|
||||
TableDataInfo<BusAttendanceVo> getAbnormalAttendance(@NotNull @PathVariable("projectId") Long projectId, PageQuery pageQuery);
|
||||
List<BusAttendanceVo> getAbnormalAttendance(@NotNull @PathVariable("projectId") Long projectId);
|
||||
|
||||
/**
|
||||
* 统计指定日期的打卡人员
|
||||
@ -164,11 +167,6 @@ public interface IBusAttendanceService extends IService<BusAttendance>{
|
||||
*/
|
||||
List<BusAttendanceClockDateForTwoWeekVo> getClockDateForTwoWeekList(Long projectId);
|
||||
|
||||
/**
|
||||
* 获取项目当天的考勤数据
|
||||
*/
|
||||
BusAttendanceClockDateForTwoWeekVo getTodayAttendanceData(Long projectId);
|
||||
|
||||
/**
|
||||
* 获取导出的考勤数据
|
||||
*/
|
||||
|
||||
@ -6,7 +6,6 @@ import cn.hutool.core.util.StrUtil;
|
||||
import cn.hutool.json.JSONArray;
|
||||
import cn.hutool.json.JSONUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
@ -15,6 +14,7 @@ import jakarta.annotation.Resource;
|
||||
import jakarta.servlet.http.HttpServletResponse;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
|
||||
import org.apache.poi.ss.usermodel.*;
|
||||
import org.apache.poi.ss.util.CellRangeAddress;
|
||||
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
|
||||
@ -64,8 +64,6 @@ import java.util.*;
|
||||
import java.util.concurrent.CompletableFuture;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import static org.dromara.project.domain.enums.BusAttendanceClockStatusEnum.ATTENDANCE_LIST;
|
||||
|
||||
/**
|
||||
* 考勤Service业务层处理
|
||||
*
|
||||
@ -324,16 +322,18 @@ public class BusAttendanceServiceImpl extends ServiceImpl<BusAttendanceMapper, B
|
||||
|
||||
//打卡范围
|
||||
if (!checkInRange(req)) {
|
||||
throw new ServiceException("打卡位置不在范围内", HttpStatus.ERROR);
|
||||
throw new ServiceException("打卡位置不在范围内", HttpStatus.BAD_REQUEST);
|
||||
}
|
||||
|
||||
//用户信息校验
|
||||
SubConstructionUser constructionUser = constructionUserService.getBySysUserId(userId);
|
||||
if ("1".equals(constructionUser.getStatus())) {
|
||||
throw new ServiceException("当前用户已离职", HttpStatus.ERROR);
|
||||
final String status = "1";
|
||||
if (constructionUser.getStatus().equals(status)) {
|
||||
throw new ServiceException("当前用户已离职", HttpStatus.BAD_REQUEST);
|
||||
}
|
||||
if ("1".equals(constructionUser.getClock())) {
|
||||
throw new ServiceException("当前用户已被禁止打卡", HttpStatus.ERROR);
|
||||
final String noClock = "1";
|
||||
if (constructionUser.getClock().equals(noClock)) {
|
||||
throw new ServiceException("当前用户已被禁止打卡", HttpStatus.BAD_REQUEST);
|
||||
}
|
||||
// 判断用户是否已经被拉黑
|
||||
constructionBlacklistService.validUserInBlacklist(constructionUser.getSysUserId(), req.getProjectId());
|
||||
@ -342,27 +342,27 @@ public class BusAttendanceServiceImpl extends ServiceImpl<BusAttendanceMapper, B
|
||||
try {
|
||||
result = constructionUserService.faceComparison(file);
|
||||
} catch (Exception e) {
|
||||
throw new ServiceException("人脸识别失败,请重新识别", HttpStatus.ERROR);
|
||||
throw new ServiceException("人脸识别失败,请重新识别", HttpStatus.BAD_REQUEST);
|
||||
}
|
||||
|
||||
if (!result) {
|
||||
throw new ServiceException("人脸识别失败,请重新识别", HttpStatus.ERROR);
|
||||
throw new ServiceException("人脸识别失败,请重新识别", HttpStatus.BAD_REQUEST);
|
||||
}
|
||||
|
||||
//打卡规则
|
||||
BusAttendanceRuleVo busAttendanceRuleVo = attendanceRuleService.queryByProjectId(req.getProjectId());
|
||||
|
||||
if (busAttendanceRuleVo == null) {
|
||||
throw new ServiceException("未设置打卡规则", HttpStatus.ERROR);
|
||||
throw new ServiceException("未设置打卡规则", HttpStatus.BAD_REQUEST);
|
||||
}
|
||||
|
||||
// 考勤时间
|
||||
//确定考勤日期
|
||||
LocalDate localDate = calculateAttendanceDate(now, busAttendanceRuleVo);
|
||||
|
||||
// if (leaveService.isLeave(localDate, userId)) {
|
||||
// throw new ServiceException("当前用户正在请假中", HttpStatus.ERROR);
|
||||
// }
|
||||
if (leaveService.isLeave(localDate, userId)) {
|
||||
throw new ServiceException("当前用户正在请假中", HttpStatus.BAD_REQUEST);
|
||||
}
|
||||
|
||||
// 判断当前用户打卡状态
|
||||
|
||||
@ -399,12 +399,7 @@ public class BusAttendanceServiceImpl extends ServiceImpl<BusAttendanceMapper, B
|
||||
// 记录打卡坐标
|
||||
attendance.setLat(req.getLat());
|
||||
attendance.setLng(req.getLng());
|
||||
try {
|
||||
attendance.setClockLocation(JSTUtil.getLocationName(req.getLat(), req.getLng()));
|
||||
}catch (Exception e) {
|
||||
log.error("获取打卡位置失败", e);
|
||||
}
|
||||
|
||||
attendance.setClockLocation(JSTUtil.getLocationName(req.getLat(), req.getLng()));
|
||||
// 上传人脸照
|
||||
SysOssVo upload = ossService.upload(file);
|
||||
attendance.setFacePic(upload.getOssId().toString());
|
||||
@ -458,11 +453,7 @@ public class BusAttendanceServiceImpl extends ServiceImpl<BusAttendanceMapper, B
|
||||
// 记录打卡坐标
|
||||
attendance.setLat(req.getLat());
|
||||
attendance.setLng(req.getLng());
|
||||
try {
|
||||
attendance.setClockLocation(JSTUtil.getLocationName(req.getLat(), req.getLng()));
|
||||
}catch (Exception e) {
|
||||
log.error("获取打卡位置失败", e);
|
||||
}
|
||||
attendance.setClockLocation(JSTUtil.getLocationName(req.getLat(), req.getLng()));
|
||||
// 上传人脸照
|
||||
SysOssVo upload = ossService.upload(file);
|
||||
attendance.setFacePic(upload.getOssId().toString());
|
||||
@ -598,8 +589,6 @@ public class BusAttendanceServiceImpl extends ServiceImpl<BusAttendanceMapper, B
|
||||
Long userId = LoginHelper.getUserId();
|
||||
Long projectId = req.getProjectId();
|
||||
|
||||
SysUserVo sysUserVo = userService.queryById(userId);
|
||||
|
||||
//判断是否要求范围内打卡
|
||||
BusUserProjectRelevancy relevancy = userProjectRelevancyService.getOne(Wrappers.lambdaQuery(BusUserProjectRelevancy.class)
|
||||
.eq(BusUserProjectRelevancy::getUserId, userId)
|
||||
@ -609,7 +598,7 @@ public class BusAttendanceServiceImpl extends ServiceImpl<BusAttendanceMapper, B
|
||||
throw new ServiceException("当前用户未加入项目", HttpStatus.BAD_REQUEST);
|
||||
}
|
||||
//判断是否是施工员 管理员返回项目全部打卡范围,施工人员返回班组打卡范围
|
||||
boolean isConstruct = "0".equals(sysUserVo.getAppUserType());
|
||||
boolean isConstruct = "1".equals(relevancy.getUserType());
|
||||
List<Long> rangeIds = new ArrayList<>();
|
||||
if (isConstruct) {
|
||||
BusProjectTeamMember one = projectTeamMemberService.getOne(Wrappers.lambdaQuery(BusProjectTeamMember.class)
|
||||
@ -647,7 +636,7 @@ public class BusAttendanceServiceImpl extends ServiceImpl<BusAttendanceMapper, B
|
||||
.toList();
|
||||
|
||||
if (CollUtil.isEmpty(punchRangeList)) {
|
||||
throw new ServiceException(isConstruct ? "班组未配置考勤范围" : "项目未配置考勤范围", HttpStatus.ERROR);
|
||||
throw new ServiceException(isConstruct ? "班组未配置考勤范围" : "项目未配置考勤范围", HttpStatus.BAD_REQUEST);
|
||||
}
|
||||
List<GeoPoint> matchingRange = JSTUtil.findMatchingRange(req.getLat(), req.getLng(), punchRangeList);
|
||||
return matchingRange != null;
|
||||
@ -718,7 +707,7 @@ public class BusAttendanceServiceImpl extends ServiceImpl<BusAttendanceMapper, B
|
||||
|
||||
|
||||
@Override
|
||||
public TableDataInfo<BusAttendanceVo> getAbnormalAttendance(Long projectId, PageQuery pageQuery) {
|
||||
public List<BusAttendanceVo> getAbnormalAttendance(Long projectId) {
|
||||
|
||||
List<String> abnormalList = Arrays.asList(BusAttendanceClockStatusEnum.LATE.getValue(),
|
||||
BusAttendanceClockStatusEnum.LEAVEEARLY.getValue(),
|
||||
@ -733,16 +722,16 @@ public class BusAttendanceServiceImpl extends ServiceImpl<BusAttendanceMapper, B
|
||||
|
||||
boolean b = relevancyList.stream().allMatch(relevancy -> "1".equals(relevancy.getUserType()));
|
||||
|
||||
IPage<BusAttendanceVo> busAttendanceVoIPage = baseMapper.selectVoPage(pageQuery.build(), Wrappers.lambdaQuery(BusAttendance.class)
|
||||
List<BusAttendanceVo> busAttendanceVos = baseMapper.selectVoList(Wrappers.lambdaQuery(BusAttendance.class)
|
||||
.eq(BusAttendance::getUserId, userId)
|
||||
.eq(b, BusAttendance::getProjectId, projectId)
|
||||
.in(BusAttendance::getClockStatus, abnormalList)
|
||||
);
|
||||
//转换星期几
|
||||
for (BusAttendanceVo busAttendanceVo : busAttendanceVoIPage.getRecords()) {
|
||||
for (BusAttendanceVo busAttendanceVo : busAttendanceVos) {
|
||||
busAttendanceVo.setWeek(busAttendanceVo.getClockDate().getDayOfWeek().getValue());
|
||||
}
|
||||
return TableDataInfo.build(busAttendanceVoIPage);
|
||||
return busAttendanceVos;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -879,25 +868,6 @@ public class BusAttendanceServiceImpl extends ServiceImpl<BusAttendanceMapper, B
|
||||
return checkTime.isBefore(clockOutDateTime);
|
||||
}
|
||||
|
||||
// /**
|
||||
// * 判断是否请假
|
||||
// */
|
||||
// private Boolean isLeave(LocalDateTime checkTime,String type,Long userId){
|
||||
// // 获取当天请假数据
|
||||
// LocalDate localDate = checkTim e.toLocalDate();
|
||||
// LocalDateTime dateStart = LocalDateTime.of(localDate, LocalTime.MIN);
|
||||
// LocalDateTime dateEnd = LocalDateTime.of(localDate, LocalTime.MAX);
|
||||
//
|
||||
// leaveService.isLeave()
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
// }
|
||||
|
||||
|
||||
|
||||
@Override
|
||||
public AttendanceCountVo getAttendanceCount(AttendanceCountDto dto) {
|
||||
@ -1186,17 +1156,15 @@ public class BusAttendanceServiceImpl extends ServiceImpl<BusAttendanceMapper, B
|
||||
List<Long> allUserIds = constructionUserService.list(Wrappers.<SubConstructionUser>lambdaQuery()
|
||||
.eq(SubConstructionUser::getUserRole, "0")
|
||||
.eq(SubConstructionUser::getProjectId,projectId)
|
||||
.isNotNull(SubConstructionUser::getTeamId)
|
||||
).stream().map(SubConstructionUser::getSysUserId).toList();
|
||||
|
||||
|
||||
// 往前14天,包含今天
|
||||
LocalDate startDate = now.minusDays(14);
|
||||
LocalDate endDate = now.minusDays(1);
|
||||
List<BusAttendance> list = list(Wrappers.<BusAttendance>lambdaQuery()
|
||||
.eq(BusAttendance::getProjectId, projectId)
|
||||
.notIn(CollectionUtil.isNotEmpty(excludeUserIds),BusAttendance::getUserId, excludeUserIds)
|
||||
.between(BusAttendance::getClockDate, startDate, endDate)
|
||||
.between(BusAttendance::getClockDate, startDate, now)
|
||||
.orderByAsc(BusAttendance::getClockDate)
|
||||
);
|
||||
|
||||
@ -1215,9 +1183,10 @@ public class BusAttendanceServiceImpl extends ServiceImpl<BusAttendanceMapper, B
|
||||
|
||||
// 统计全勤、半勤、缺卡人数
|
||||
List<BusAttendanceClockDateForTwoWeekVo> result = new ArrayList<>();
|
||||
List<String> validStatusList = Arrays.asList("1", "2", "3", "5");
|
||||
|
||||
LocalDate currentDate = startDate;
|
||||
while (!currentDate.isAfter(endDate)) {
|
||||
while (!currentDate.isAfter(now)) {
|
||||
Map<Long, List<BusAttendance>> userAttendanceMap = dateUserMap.getOrDefault(currentDate, new HashMap<>());
|
||||
|
||||
int full = 0, half = 0, absent = 0;
|
||||
@ -1227,11 +1196,13 @@ public class BusAttendanceServiceImpl extends ServiceImpl<BusAttendanceMapper, B
|
||||
|
||||
long validCount = records.stream()
|
||||
.map(BusAttendance::getClockStatus)
|
||||
.filter(ATTENDANCE_LIST::contains)
|
||||
.filter(validStatusList::contains)
|
||||
.count();
|
||||
|
||||
if (validCount >= 1) {
|
||||
if (validCount >= 2) {
|
||||
full++;
|
||||
} else if (validCount == 1) {
|
||||
half++;
|
||||
} else {
|
||||
absent++;
|
||||
}
|
||||
@ -1242,6 +1213,14 @@ public class BusAttendanceServiceImpl extends ServiceImpl<BusAttendanceMapper, B
|
||||
vo.setAttendance(full);
|
||||
vo.setHalfAttendance(half);
|
||||
vo.setAbsenteeism(absent);
|
||||
//如果是当天,则计算考勤率
|
||||
if (currentDate.equals(now)) {
|
||||
vo.setAllUserNum(allUserIds.size());
|
||||
vo.setClockNum(full+half);
|
||||
vo.setAttendanceRate(BigDecimalUtil.toPercentage(new BigDecimal(full+half),
|
||||
new BigDecimal(allUserIds.size())));
|
||||
}
|
||||
|
||||
result.add(vo);
|
||||
currentDate = currentDate.plusDays(1);
|
||||
}
|
||||
@ -1249,66 +1228,6 @@ public class BusAttendanceServiceImpl extends ServiceImpl<BusAttendanceMapper, B
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public BusAttendanceClockDateForTwoWeekVo getTodayAttendanceData(Long projectId) {
|
||||
|
||||
LocalDate now = LocalDate.now();
|
||||
|
||||
//查询所有管理员和分包人员 排除
|
||||
List<Long> excludeUserIds = constructionUserService.list(Wrappers.<SubConstructionUser>lambdaQuery()
|
||||
.ne(SubConstructionUser::getUserRole, "0")
|
||||
).stream().map(SubConstructionUser::getSysUserId).toList();
|
||||
|
||||
List<Long> allUserIds = constructionUserService.list(Wrappers.<SubConstructionUser>lambdaQuery()
|
||||
.eq(SubConstructionUser::getUserRole, "0")
|
||||
.eq(SubConstructionUser::getProjectId,projectId)
|
||||
.isNotNull(SubConstructionUser::getTeamId)
|
||||
).stream().map(SubConstructionUser::getSysUserId).toList();
|
||||
|
||||
|
||||
List<BusAttendance> list = list(Wrappers.<BusAttendance>lambdaQuery()
|
||||
.eq(BusAttendance::getProjectId, projectId)
|
||||
.notIn(CollectionUtil.isNotEmpty(excludeUserIds),BusAttendance::getUserId, excludeUserIds)
|
||||
.eq(BusAttendance::getClockDate, now)
|
||||
.orderByAsc(BusAttendance::getClockDate)
|
||||
);
|
||||
|
||||
Map<Long, List<BusAttendance>> collect = list.stream().collect(Collectors.groupingBy(BusAttendance::getUserId));
|
||||
|
||||
int full = 0, half = 0, absent = 0;
|
||||
|
||||
for (Map.Entry<Long, List<BusAttendance>> userEntry : collect.entrySet()) {
|
||||
List<BusAttendance> records = userEntry.getValue();
|
||||
|
||||
long validCount = records.stream()
|
||||
.map(BusAttendance::getClockStatus)
|
||||
.filter(ATTENDANCE_LIST::contains)
|
||||
.count();
|
||||
|
||||
if (validCount >= 2) {
|
||||
full++;
|
||||
} else if (validCount == 1) {
|
||||
half++;
|
||||
} else {
|
||||
absent++;
|
||||
}
|
||||
}
|
||||
|
||||
BusAttendanceClockDateForTwoWeekVo vo = new BusAttendanceClockDateForTwoWeekVo();
|
||||
vo.setClockDate(now);
|
||||
vo.setAttendance(full);
|
||||
vo.setHalfAttendance(half);
|
||||
vo.setAbsenteeism(absent);
|
||||
//计算考勤率
|
||||
vo.setAllUserNum(allUserIds.size());
|
||||
vo.setClockNum(full+half);
|
||||
vo.setAttendanceRate(BigDecimalUtil.toPercentage(new BigDecimal(full+half),
|
||||
new BigDecimal(allUserIds.size())));
|
||||
|
||||
return vo;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void getExportList(AttendanceExportDto dto, HttpServletResponse response) {
|
||||
try (OutputStream outputStream = response.getOutputStream()) {
|
||||
|
||||
@ -399,10 +399,8 @@ public class BusLeaveServiceImpl extends ServiceImpl<BusLeaveMapper, BusLeave>
|
||||
LambdaQueryWrapper<BusLeave> wrapper = new LambdaQueryWrapper<>();
|
||||
wrapper
|
||||
.eq(BusLeave::getUserId, userId)
|
||||
.lt(BusLeave::getStartTime, newEnd) // 已有记录的开始时间 < 新记录的结束时间
|
||||
.gt(BusLeave::getEndTime, newStart)
|
||||
.eq(BusLeave::getAuditStatus, BusinessStatusEnum.FINISH.getStatus())
|
||||
; // 已有记录的结束时间 > 新记录的开始时间
|
||||
.le(BusLeave::getStartTime, newEnd) // 已有记录的开始时间 < 新记录的结束时间
|
||||
.ge(BusLeave::getEndTime, newStart); // 已有记录的结束时间 > 新记录的开始时间
|
||||
|
||||
// 4. 执行冲突校验
|
||||
if (count(wrapper) > 0) {
|
||||
|
||||
@ -329,7 +329,10 @@ public class BusProjectTeamMemberServiceImpl extends ServiceImpl<BusProjectTeamM
|
||||
constructionUserExit.setSalaryConfirmationFile(salaryConfirmationFile);
|
||||
constructionUserExit.setTeamId(constructionUser.getTeamId());
|
||||
String sfzNumber = constructionUser.getSfzNumber();
|
||||
constructionUserExit.setSfzNumber(sfzNumber);
|
||||
if (StringUtils.isNotBlank(sfzNumber)) {
|
||||
sfzNumber = idCardEncryptorUtil.decrypt(sfzNumber);
|
||||
constructionUserExit.setSfzNumber(sfzNumber);
|
||||
}
|
||||
constructionUserExit.setEntryDate(constructionUser.getEntryDate());
|
||||
constructionUserExit.setLeaveDate(new Date());
|
||||
constructionUserExit.setRemark(req.getRemark());
|
||||
|
||||
@ -149,9 +149,7 @@ public class SysUserVo implements Serializable {
|
||||
*/
|
||||
private List<Long> projectIds;
|
||||
|
||||
/**
|
||||
* app用户类型 0-施工人员 1-管理人员 2-分包人员
|
||||
*/
|
||||
|
||||
private String appUserType;
|
||||
|
||||
/**
|
||||
|
||||
@ -50,7 +50,6 @@ import org.dromara.system.mapper.*;
|
||||
import org.dromara.system.service.ISysOssService;
|
||||
import org.dromara.system.service.ISysUserFileService;
|
||||
import org.dromara.system.service.ISysUserService;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.springframework.cache.annotation.CacheEvict;
|
||||
import org.springframework.cache.annotation.Cacheable;
|
||||
import org.springframework.context.annotation.Lazy;
|
||||
@ -930,25 +929,7 @@ public class SysUserServiceImpl implements ISysUserService, UserService {
|
||||
projects = projectIds;
|
||||
}
|
||||
|
||||
List<SysUserRole> sysUserRoles = getSysUserRoles(userId, appUserType, projects);
|
||||
userRoleMapper.insertBatch(sysUserRoles);
|
||||
|
||||
return baseMapper.update(null,
|
||||
new LambdaUpdateWrapper<SysUser>()
|
||||
.set(SysUser::getAppUserType, appUserType)
|
||||
.set(contractorId!=null,SysUser::getContractorId, contractorId)
|
||||
.eq(SysUser::getUserId, userId)) > 0;
|
||||
}
|
||||
|
||||
private List<SysUserRole> getSysUserRoles(Long userId, String appUserType, List<Long> projects) {
|
||||
Long roleId;
|
||||
if("0".equals(appUserType)){
|
||||
roleId = 2L;
|
||||
}else if("1".equals(appUserType)){
|
||||
roleId = 4L;
|
||||
}else {
|
||||
roleId = 5L;
|
||||
}
|
||||
Long roleId = "1".equals(appUserType)?4L:5L;
|
||||
ArrayList<SysUserRole> sysUserRoles = new ArrayList<>();
|
||||
for (Long project : projects) {
|
||||
SysUserRole sysUserRole = new SysUserRole();
|
||||
@ -957,7 +938,13 @@ public class SysUserServiceImpl implements ISysUserService, UserService {
|
||||
sysUserRole.setRoleId(roleId);
|
||||
sysUserRoles.add(sysUserRole);
|
||||
}
|
||||
return sysUserRoles;
|
||||
userRoleMapper.insertBatch(sysUserRoles);
|
||||
|
||||
return baseMapper.update(null,
|
||||
new LambdaUpdateWrapper<SysUser>()
|
||||
.set(SysUser::getAppUserType, appUserType)
|
||||
.set(contractorId!=null,SysUser::getContractorId, contractorId)
|
||||
.eq(SysUser::getUserId, userId)) > 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@ -0,0 +1,109 @@
|
||||
package org.dromara.xzd.biddingManagement.controller;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import jakarta.servlet.http.HttpServletResponse;
|
||||
import jakarta.validation.constraints.*;
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import org.dromara.xzd.biddingManagement.domain.dto.BiddingManagementDto;
|
||||
import org.dromara.xzd.biddingManagement.domain.dto.QuerBiddingManagementDto;
|
||||
import org.dromara.xzd.biddingManagement.domain.vo.QuerListXzdBidPreVo;
|
||||
import org.dromara.xzd.biddingManagement.domain.vo.QueryListXzdVo;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.dromara.common.idempotent.annotation.RepeatSubmit;
|
||||
import org.dromara.common.log.annotation.Log;
|
||||
import org.dromara.common.web.core.BaseController;
|
||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||
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.log.enums.BusinessType;
|
||||
import org.dromara.common.excel.utils.ExcelUtil;
|
||||
import org.dromara.xzd.biddingManagement.domain.vo.XzdBidPreProjectVo;
|
||||
import org.dromara.xzd.biddingManagement.domain.bo.XzdBidPreProjectBo;
|
||||
import org.dromara.xzd.biddingManagement.service.IXzdBidPreProjectService;
|
||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
|
||||
/**
|
||||
* 标前立项
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-10-10
|
||||
*/
|
||||
@Validated
|
||||
@RequiredArgsConstructor
|
||||
@RestController
|
||||
@RequestMapping("/biddingManagement/bidPreProject")
|
||||
public class XzdBidPreProjectController extends BaseController {
|
||||
|
||||
private final IXzdBidPreProjectService xzdBidPreProjectService;
|
||||
|
||||
/**
|
||||
* 查询标前立项列表
|
||||
*/
|
||||
@SaCheckPermission("biddingManagement:bidPreProject:list")
|
||||
@GetMapping("/list")
|
||||
public QueryListXzdVo list(QuerBiddingManagementDto bo, PageQuery pageQuery) {
|
||||
return xzdBidPreProjectService.queryPageList(bo, pageQuery);
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出标前立项列表
|
||||
*/
|
||||
@SaCheckPermission("biddingManagement:bidPreProject:export")
|
||||
@Log(title = "标前立项", businessType = BusinessType.EXPORT)
|
||||
@PostMapping("/export")
|
||||
public void export(XzdBidPreProjectBo bo, HttpServletResponse response) {
|
||||
List<XzdBidPreProjectVo> list = xzdBidPreProjectService.queryList(bo);
|
||||
ExcelUtil.exportExcel(list, "标前立项", XzdBidPreProjectVo.class, response);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取标前立项详细信息
|
||||
*
|
||||
* @param id 主键
|
||||
*/
|
||||
@SaCheckPermission("biddingManagement:bidPreProject:query")
|
||||
@GetMapping("/{id}")
|
||||
public R<QuerListXzdBidPreVo> getInfo(@NotNull(message = "主键不能为空")
|
||||
@PathVariable Long id) {
|
||||
return R.ok(xzdBidPreProjectService.queryById(id));
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增标前立项
|
||||
*/
|
||||
@SaCheckPermission("biddingManagement:bidPreProject:add")
|
||||
@Log(title = "标前立项", businessType = BusinessType.INSERT)
|
||||
@RepeatSubmit()
|
||||
@PostMapping()
|
||||
public R<Void> add(@Validated(AddGroup.class) @RequestBody BiddingManagementDto bo) {
|
||||
return toAjax(xzdBidPreProjectService.insertByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改标前立项
|
||||
*/
|
||||
@SaCheckPermission("biddingManagement:bidPreProject:edit")
|
||||
@Log(title = "标前立项", businessType = BusinessType.UPDATE)
|
||||
@RepeatSubmit()
|
||||
@PutMapping()
|
||||
public R<Void> edit(@RequestBody BiddingManagementDto bo ) {
|
||||
return toAjax(xzdBidPreProjectService.updateByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除标前立项
|
||||
*
|
||||
* @param ids 主键串
|
||||
*/
|
||||
@SaCheckPermission("biddingManagement:bidPreProject:remove")
|
||||
@Log(title = "标前立项", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{ids}")
|
||||
public R<Void> remove(@NotEmpty(message = "主键不能为空")
|
||||
@PathVariable Long[] ids) {
|
||||
return toAjax(xzdBidPreProjectService.deleteWithValidByIds(List.of(ids), true));
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,106 @@
|
||||
package org.dromara.xzd.biddingManagement.controller;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import jakarta.servlet.http.HttpServletResponse;
|
||||
import jakarta.validation.constraints.*;
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import org.dromara.xzd.biddingManagement.domain.bo.XzdProjectRiskAssessmentBo;
|
||||
import org.dromara.xzd.biddingManagement.domain.vo.XzdProjectRiskAssessmentVo;
|
||||
import org.dromara.xzd.biddingManagement.domain.vo.XzdProjectVo;
|
||||
import org.dromara.xzd.biddingManagement.service.IXzdProjectRiskAssessmentService;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.dromara.common.idempotent.annotation.RepeatSubmit;
|
||||
import org.dromara.common.log.annotation.Log;
|
||||
import org.dromara.common.web.core.BaseController;
|
||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||
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.log.enums.BusinessType;
|
||||
import org.dromara.common.excel.utils.ExcelUtil;
|
||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
|
||||
/**
|
||||
* 项目风险评估签审意见
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-10-10
|
||||
*/
|
||||
@Validated
|
||||
@RequiredArgsConstructor
|
||||
@RestController
|
||||
@RequestMapping("/xzd/projectRiskAssessment")
|
||||
public class XzdProjectRiskAssessmentController extends BaseController {
|
||||
|
||||
private final IXzdProjectRiskAssessmentService xzdProjectRiskAssessmentService;
|
||||
|
||||
/**
|
||||
* 查询项目风险评估签审意见列表
|
||||
*/
|
||||
@SaCheckPermission("xzd:projectRiskAssessment:list")
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo<XzdProjectRiskAssessmentVo> list(XzdProjectVo bo, PageQuery pageQuery) {
|
||||
return xzdProjectRiskAssessmentService.queryPageList(bo, pageQuery);
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出项目风险评估签审意见列表
|
||||
*/
|
||||
@SaCheckPermission("xzd:projectRiskAssessment:export")
|
||||
@Log(title = "项目风险评估签审意见", businessType = BusinessType.EXPORT)
|
||||
@PostMapping("/export")
|
||||
public void export(XzdProjectRiskAssessmentBo bo, HttpServletResponse response) {
|
||||
List<XzdProjectRiskAssessmentVo> list = xzdProjectRiskAssessmentService.queryList(bo);
|
||||
ExcelUtil.exportExcel(list, "项目风险评估签审意见", XzdProjectRiskAssessmentVo.class, response);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取项目风险评估签审意见详细信息
|
||||
*
|
||||
* @param id 主键
|
||||
*/
|
||||
@SaCheckPermission("xzd:projectRiskAssessment:query")
|
||||
@GetMapping("/{id}")
|
||||
public R<XzdProjectRiskAssessmentVo> getInfo(@NotNull(message = "主键不能为空")
|
||||
@PathVariable Long id) {
|
||||
return R.ok(xzdProjectRiskAssessmentService.queryById(id));
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增项目风险评估签审意见
|
||||
*/
|
||||
@SaCheckPermission("xzd:projectRiskAssessment:add")
|
||||
@Log(title = "项目风险评估签审意见", businessType = BusinessType.INSERT)
|
||||
@RepeatSubmit()
|
||||
@PostMapping()
|
||||
public R<Void> add(@Validated(AddGroup.class) @RequestBody XzdProjectRiskAssessmentBo bo) {
|
||||
return toAjax(xzdProjectRiskAssessmentService.insertByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改项目风险评估签审意见
|
||||
*/
|
||||
@SaCheckPermission("xzd:projectRiskAssessment:edit")
|
||||
@Log(title = "项目风险评估签审意见", businessType = BusinessType.UPDATE)
|
||||
@RepeatSubmit()
|
||||
@PutMapping()
|
||||
public R<Void> edit(@Validated(EditGroup.class) @RequestBody XzdProjectRiskAssessmentBo bo) {
|
||||
return toAjax(xzdProjectRiskAssessmentService.updateByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除项目风险评估签审意见
|
||||
*
|
||||
* @param ids 主键串
|
||||
*/
|
||||
@SaCheckPermission("xzd:projectRiskAssessment:remove")
|
||||
@Log(title = "项目风险评估签审意见", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{ids}")
|
||||
public R<Void> remove(@NotEmpty(message = "主键不能为空")
|
||||
@PathVariable Long[] ids) {
|
||||
return toAjax(xzdProjectRiskAssessmentService.deleteWithValidByIds(List.of(ids), true));
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,126 @@
|
||||
package org.dromara.xzd.biddingManagement.domain;
|
||||
|
||||
import org.dromara.common.mybatis.core.domain.BaseEntity;
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import java.io.Serial;
|
||||
|
||||
/**
|
||||
* 标前立项对象 xzd_bid_pre_project
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-10-10
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@TableName("xzd_bid_pre_project")
|
||||
public class XzdBidPreProject extends BaseEntity {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 主键ID
|
||||
*/
|
||||
@TableId(value = "id")
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 项目编码
|
||||
*/
|
||||
private String projectNumber;
|
||||
|
||||
/**
|
||||
* 项目名称
|
||||
*/
|
||||
private String projectName;
|
||||
|
||||
/**
|
||||
* 国家
|
||||
*/
|
||||
private String country;
|
||||
|
||||
/**
|
||||
* 省
|
||||
*/
|
||||
private String province;
|
||||
|
||||
/**
|
||||
* 城市
|
||||
*/
|
||||
private String city;
|
||||
|
||||
/**
|
||||
* 区县
|
||||
*/
|
||||
private String district;
|
||||
|
||||
/**
|
||||
* 工程地点
|
||||
*/
|
||||
private String projectLocation;
|
||||
|
||||
/**
|
||||
* 资金来源
|
||||
*/
|
||||
private String capitalSource;
|
||||
|
||||
/**
|
||||
* 承包方式
|
||||
*/
|
||||
private String contractingMethod;
|
||||
|
||||
/**
|
||||
* 经营模式
|
||||
*/
|
||||
private String operationMode;
|
||||
|
||||
/**
|
||||
* 项目类型
|
||||
*/
|
||||
private Long projectTypeId;
|
||||
|
||||
/**
|
||||
* 招标方式
|
||||
*/
|
||||
private String biddingMethod;
|
||||
|
||||
/**
|
||||
* 联系方法
|
||||
*/
|
||||
private String liaisonMethod;
|
||||
|
||||
/**
|
||||
* 投资单位
|
||||
*/
|
||||
private String investmentUnit;
|
||||
|
||||
/**
|
||||
* 工程造价(万元)
|
||||
*/
|
||||
private Long projectCost;
|
||||
|
||||
/**
|
||||
* 资料费
|
||||
*/
|
||||
private Long informationCost;
|
||||
|
||||
/**
|
||||
* 文件ID
|
||||
*/
|
||||
private String fileId;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remark;
|
||||
|
||||
/**
|
||||
* 审核状态
|
||||
*/
|
||||
private String auditStatus;
|
||||
|
||||
|
||||
}
|
||||
@ -0,0 +1,193 @@
|
||||
package org.dromara.xzd.biddingManagement.domain;
|
||||
|
||||
import org.dromara.common.mybatis.core.domain.BaseEntity;
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import java.util.Date;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
|
||||
import java.io.Serial;
|
||||
|
||||
/**
|
||||
* 标前立项对象 xzd_bqlx_project_info
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-10-10
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@TableName("xzd_bqlx_project_info")
|
||||
public class XzdBqlxProjectInfo extends BaseEntity {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 主键ID
|
||||
*/
|
||||
@TableId(value = "id")
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 关联标前立项ID
|
||||
*/
|
||||
private Long bidPreProjectId;
|
||||
|
||||
/**
|
||||
* 预计开工日期
|
||||
*/
|
||||
private Date expectedStartDate;
|
||||
|
||||
/**
|
||||
* 资质要求
|
||||
*/
|
||||
private String qualificationRequirement;
|
||||
|
||||
/**
|
||||
* 报名开始时间
|
||||
*/
|
||||
private Date bidStartDate;
|
||||
|
||||
/**
|
||||
* 报名截止时间
|
||||
*/
|
||||
private Date bidEndDate;
|
||||
|
||||
/**
|
||||
* 投标截止时间
|
||||
*/
|
||||
private Date submissionDeadline;
|
||||
|
||||
/**
|
||||
* 设计情况
|
||||
*/
|
||||
private String designDescription;
|
||||
|
||||
/**
|
||||
* 工程概况
|
||||
*/
|
||||
private String projectStatus;
|
||||
|
||||
/**
|
||||
* 招标公告地址
|
||||
*/
|
||||
private String biddingAnnouncementAddress;
|
||||
|
||||
/**
|
||||
* 质量要求
|
||||
*/
|
||||
private String qualityRequirement;
|
||||
|
||||
/**
|
||||
* 工期要求(天)
|
||||
*/
|
||||
private Long durationDays;
|
||||
|
||||
/**
|
||||
* 最低资质要求
|
||||
*/
|
||||
private String lowestQualificationRequirement;
|
||||
|
||||
/**
|
||||
* 项目经理要求
|
||||
*/
|
||||
private String projectManagerRequirement;
|
||||
|
||||
/**
|
||||
* 业绩要求
|
||||
*/
|
||||
private String performanceRequirement;
|
||||
|
||||
/**
|
||||
* 开标时间
|
||||
*/
|
||||
private Date startDate;
|
||||
|
||||
/**
|
||||
* 评标方式
|
||||
*/
|
||||
private String evaluationMethod;
|
||||
|
||||
/**
|
||||
* 投标保证金形式
|
||||
*/
|
||||
private String biddingDepositForm;
|
||||
|
||||
/**
|
||||
* 投标保证金
|
||||
*/
|
||||
private Long biddingDeposit;
|
||||
|
||||
/**
|
||||
* 建设单位
|
||||
*/
|
||||
private String constructionUnit;
|
||||
|
||||
/**
|
||||
* 建设单位联系人
|
||||
*/
|
||||
private String constructionPerson;
|
||||
|
||||
/**
|
||||
* 建设单位联系方式
|
||||
*/
|
||||
private String constructionMethod;
|
||||
|
||||
/**
|
||||
* 招标单位
|
||||
*/
|
||||
private String biddingUnit;
|
||||
|
||||
/**
|
||||
* 招标单位联系人
|
||||
*/
|
||||
private String biddingPerson;
|
||||
|
||||
/**
|
||||
* 招标单位联系方式
|
||||
*/
|
||||
private String biddingMethod;
|
||||
|
||||
/**
|
||||
* 成本价
|
||||
*/
|
||||
private Long costPrice;
|
||||
|
||||
/**
|
||||
* 招标控制价
|
||||
*/
|
||||
private Long biddingPriceControl;
|
||||
|
||||
/**
|
||||
* 项目编码
|
||||
*/
|
||||
private String projectNumber;
|
||||
|
||||
/**
|
||||
* 默认财务组织
|
||||
*/
|
||||
private String defaultFinance;
|
||||
|
||||
/**
|
||||
* 涉及财务组织
|
||||
*/
|
||||
private String involveFinance;
|
||||
|
||||
/**
|
||||
* 文件ID
|
||||
*/
|
||||
private String fileId;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remark;
|
||||
|
||||
/**
|
||||
* 审核状态
|
||||
*/
|
||||
private String auditStatus;
|
||||
|
||||
|
||||
}
|
||||
@ -0,0 +1,121 @@
|
||||
package org.dromara.xzd.biddingManagement.domain;
|
||||
|
||||
import org.dromara.common.mybatis.core.domain.BaseEntity;
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import java.io.Serial;
|
||||
|
||||
/**
|
||||
* 项目风险评估签审意见对象 xzd_project_risk_assessment
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-10-10
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@TableName("xzd_project_risk_assessment")
|
||||
public class XzdProjectRiskAssessment extends BaseEntity {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 主键ID
|
||||
*/
|
||||
@TableId(value = "id")
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 单据编号
|
||||
*/
|
||||
private String documentNumber;
|
||||
|
||||
/**
|
||||
* 项目名称
|
||||
*/
|
||||
private String projectName;
|
||||
|
||||
/**
|
||||
* 项目业主
|
||||
*/
|
||||
private String projectBusinessOwner;
|
||||
|
||||
/**
|
||||
* 联合体成员方
|
||||
*/
|
||||
private String jointBodyMembers;
|
||||
|
||||
/**
|
||||
* 预计合同额(万元)
|
||||
*/
|
||||
private Long estimatedContractAmount;
|
||||
|
||||
/**
|
||||
* 单价指标
|
||||
*/
|
||||
private String unitPriceIndex;
|
||||
|
||||
/**
|
||||
* 工期风险
|
||||
*/
|
||||
private String engineeringRisk;
|
||||
|
||||
/**
|
||||
* 技术风险
|
||||
*/
|
||||
private String technicalRisk;
|
||||
|
||||
/**
|
||||
* 经济风险
|
||||
*/
|
||||
private String economicRisk;
|
||||
|
||||
/**
|
||||
* 合同风险
|
||||
*/
|
||||
private String contractRisk;
|
||||
|
||||
/**
|
||||
* 人员风险
|
||||
*/
|
||||
private String personnelRisk;
|
||||
|
||||
/**
|
||||
* 施工风险
|
||||
*/
|
||||
private String constructionRisk;
|
||||
|
||||
/**
|
||||
* 管理风险
|
||||
*/
|
||||
private String managementRisk;
|
||||
|
||||
/**
|
||||
* 分包风险
|
||||
*/
|
||||
private String subcontractRisk;
|
||||
|
||||
/**
|
||||
* 其他风险
|
||||
*/
|
||||
private String otherRisks;
|
||||
|
||||
/**
|
||||
* 文件ID
|
||||
*/
|
||||
private String fileId;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remark;
|
||||
|
||||
/**
|
||||
* 审核状态
|
||||
*/
|
||||
private String auditStatus;
|
||||
|
||||
|
||||
}
|
||||
@ -0,0 +1,134 @@
|
||||
package org.dromara.xzd.biddingManagement.domain.bo;
|
||||
|
||||
import org.dromara.xzd.biddingManagement.domain.XzdBidPreProject;
|
||||
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 lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import jakarta.validation.constraints.*;
|
||||
|
||||
/**
|
||||
* 标前立项业务对象 xzd_bid_pre_project
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-10-10
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@AutoMapper(target = XzdBidPreProject.class, reverseConvertGenerate = false)
|
||||
public class XzdBidPreProjectBo extends BaseEntity {
|
||||
|
||||
/**
|
||||
* 主键ID
|
||||
*/
|
||||
@NotNull(message = "主键ID不能为空", groups = { EditGroup.class })
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 项目编码
|
||||
*/
|
||||
@NotBlank(message = "项目编码不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private String projectNumber;
|
||||
|
||||
/**
|
||||
* 项目名称
|
||||
*/
|
||||
@NotBlank(message = "项目名称不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private String projectName;
|
||||
|
||||
/**
|
||||
* 国家
|
||||
*/
|
||||
@NotBlank(message = "国家不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private String country;
|
||||
|
||||
/**
|
||||
* 省
|
||||
*/
|
||||
@NotBlank(message = "省不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private String province;
|
||||
|
||||
/**
|
||||
* 城市
|
||||
*/
|
||||
@NotBlank(message = "城市不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private String city;
|
||||
|
||||
/**
|
||||
* 区县
|
||||
*/
|
||||
@NotBlank(message = "区县不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private String district;
|
||||
|
||||
/**
|
||||
* 工程地点
|
||||
*/
|
||||
private String projectLocation;
|
||||
|
||||
/**
|
||||
* 资金来源
|
||||
*/
|
||||
private String capitalSource;
|
||||
|
||||
/**
|
||||
* 承包方式
|
||||
*/
|
||||
private String contractingMethod;
|
||||
|
||||
/**
|
||||
* 经营模式
|
||||
*/
|
||||
private String operationMode;
|
||||
|
||||
/**
|
||||
* 项目类型
|
||||
*/
|
||||
@NotNull(message = "项目类型不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long projectTypeId;
|
||||
|
||||
/**
|
||||
* 招标方式
|
||||
*/
|
||||
private String biddingMethod;
|
||||
|
||||
/**
|
||||
* 联系方法
|
||||
*/
|
||||
private String liaisonMethod;
|
||||
|
||||
/**
|
||||
* 投资单位
|
||||
*/
|
||||
private String investmentUnit;
|
||||
|
||||
/**
|
||||
* 工程造价(万元)
|
||||
*/
|
||||
@NotNull(message = "工程造价(万元)不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long projectCost;
|
||||
|
||||
/**
|
||||
* 资料费
|
||||
*/
|
||||
@NotNull(message = "资料费不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long informationCost;
|
||||
|
||||
/**
|
||||
* 文件ID
|
||||
*/
|
||||
private String fileId;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remark;
|
||||
|
||||
/**
|
||||
* 审核状态
|
||||
*/
|
||||
private String auditStatus;
|
||||
|
||||
|
||||
}
|
||||
@ -0,0 +1,195 @@
|
||||
package org.dromara.xzd.biddingManagement.domain.bo;
|
||||
|
||||
import org.dromara.xzd.biddingManagement.domain.XzdBqlxProjectInfo;
|
||||
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 lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import jakarta.validation.constraints.*;
|
||||
import java.util.Date;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
|
||||
/**
|
||||
* 标前立项业务对象 xzd_bqlx_project_info
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-10-10
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@AutoMapper(target = XzdBqlxProjectInfo.class, reverseConvertGenerate = false)
|
||||
public class XzdBqlxProjectInfoBo extends BaseEntity {
|
||||
|
||||
/**
|
||||
* 主键ID
|
||||
*/
|
||||
@NotNull(message = "主键ID不能为空", groups = { EditGroup.class })
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 关联标前立项ID
|
||||
*/
|
||||
@NotNull(message = "关联标前立项ID不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long bidPreProjectId;
|
||||
|
||||
/**
|
||||
* 预计开工日期
|
||||
*/
|
||||
private Date expectedStartDate;
|
||||
|
||||
/**
|
||||
* 资质要求
|
||||
*/
|
||||
private String qualificationRequirement;
|
||||
|
||||
/**
|
||||
* 报名开始时间
|
||||
*/
|
||||
private Date bidStartDate;
|
||||
|
||||
/**
|
||||
* 报名截止时间
|
||||
*/
|
||||
@NotNull(message = "报名截止时间不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Date bidEndDate;
|
||||
|
||||
/**
|
||||
* 投标截止时间
|
||||
*/
|
||||
private Date submissionDeadline;
|
||||
|
||||
/**
|
||||
* 设计情况
|
||||
*/
|
||||
private String designDescription;
|
||||
|
||||
/**
|
||||
* 工程概况
|
||||
*/
|
||||
private String projectStatus;
|
||||
|
||||
/**
|
||||
* 招标公告地址
|
||||
*/
|
||||
private String biddingAnnouncementAddress;
|
||||
|
||||
/**
|
||||
* 质量要求
|
||||
*/
|
||||
private String qualityRequirement;
|
||||
|
||||
/**
|
||||
* 工期要求(天)
|
||||
*/
|
||||
private Long durationDays;
|
||||
|
||||
/**
|
||||
* 最低资质要求
|
||||
*/
|
||||
private String lowestQualificationRequirement;
|
||||
|
||||
/**
|
||||
* 项目经理要求
|
||||
*/
|
||||
private String projectManagerRequirement;
|
||||
|
||||
/**
|
||||
* 业绩要求
|
||||
*/
|
||||
private String performanceRequirement;
|
||||
|
||||
/**
|
||||
* 开标时间
|
||||
*/
|
||||
private Date startDate;
|
||||
|
||||
/**
|
||||
* 评标方式
|
||||
*/
|
||||
private String evaluationMethod;
|
||||
|
||||
/**
|
||||
* 投标保证金形式
|
||||
*/
|
||||
private String biddingDepositForm;
|
||||
|
||||
/**
|
||||
* 投标保证金
|
||||
*/
|
||||
private Long biddingDeposit;
|
||||
|
||||
/**
|
||||
* 建设单位
|
||||
*/
|
||||
private String constructionUnit;
|
||||
|
||||
/**
|
||||
* 建设单位联系人
|
||||
*/
|
||||
private String constructionPerson;
|
||||
|
||||
/**
|
||||
* 建设单位联系方式
|
||||
*/
|
||||
private String constructionMethod;
|
||||
|
||||
/**
|
||||
* 招标单位
|
||||
*/
|
||||
private String biddingUnit;
|
||||
|
||||
/**
|
||||
* 招标单位联系人
|
||||
*/
|
||||
private String biddingPerson;
|
||||
|
||||
/**
|
||||
* 招标单位联系方式
|
||||
*/
|
||||
private String biddingMethod;
|
||||
|
||||
/**
|
||||
* 成本价
|
||||
*/
|
||||
private Long costPrice;
|
||||
|
||||
/**
|
||||
* 招标控制价
|
||||
*/
|
||||
private Long biddingPriceControl;
|
||||
|
||||
/**
|
||||
* 项目编码
|
||||
*/
|
||||
@NotBlank(message = "项目编码不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private String projectNumber;
|
||||
|
||||
/**
|
||||
* 默认财务组织
|
||||
*/
|
||||
private String defaultFinance;
|
||||
|
||||
/**
|
||||
* 涉及财务组织
|
||||
*/
|
||||
private String involveFinance;
|
||||
|
||||
/**
|
||||
* 文件ID
|
||||
*/
|
||||
private String fileId;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remark;
|
||||
|
||||
/**
|
||||
* 审核状态
|
||||
*/
|
||||
private String auditStatus;
|
||||
|
||||
|
||||
}
|
||||
@ -0,0 +1,120 @@
|
||||
package org.dromara.xzd.biddingManagement.domain.bo;
|
||||
|
||||
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 lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import jakarta.validation.constraints.*;
|
||||
import org.dromara.xzd.biddingManagement.domain.XzdProjectRiskAssessment;
|
||||
|
||||
/**
|
||||
* 项目风险评估签审意见业务对象 xzd_project_risk_assessment
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-10-10
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@AutoMapper(target = XzdProjectRiskAssessment.class, reverseConvertGenerate = false)
|
||||
public class XzdProjectRiskAssessmentBo extends BaseEntity {
|
||||
|
||||
/**
|
||||
* 主键ID
|
||||
*/
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 单据编号
|
||||
*/
|
||||
private String documentNumber;
|
||||
|
||||
/**
|
||||
* 项目名称
|
||||
*/
|
||||
private String projectName;
|
||||
|
||||
/**
|
||||
* 项目业主
|
||||
*/
|
||||
private String projectBusinessOwner;
|
||||
|
||||
/**
|
||||
* 联合体成员方
|
||||
*/
|
||||
private String jointBodyMembers;
|
||||
|
||||
/**
|
||||
* 预计合同额(万元)
|
||||
*/
|
||||
@NotNull(message = "预计合同额(万元)不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long estimatedContractAmount;
|
||||
|
||||
/**
|
||||
* 单价指标
|
||||
*/
|
||||
private String unitPriceIndex;
|
||||
|
||||
/**
|
||||
* 工期风险
|
||||
*/
|
||||
private String engineeringRisk;
|
||||
|
||||
/**
|
||||
* 技术风险
|
||||
*/
|
||||
private String technicalRisk;
|
||||
|
||||
/**
|
||||
* 经济风险
|
||||
*/
|
||||
private String economicRisk;
|
||||
|
||||
/**
|
||||
* 合同风险
|
||||
*/
|
||||
private String contractRisk;
|
||||
|
||||
/**
|
||||
* 人员风险
|
||||
*/
|
||||
private String personnelRisk;
|
||||
|
||||
/**
|
||||
* 施工风险
|
||||
*/
|
||||
private String constructionRisk;
|
||||
|
||||
/**
|
||||
* 管理风险
|
||||
*/
|
||||
private String managementRisk;
|
||||
|
||||
/**
|
||||
* 分包风险
|
||||
*/
|
||||
private String subcontractRisk;
|
||||
|
||||
/**
|
||||
* 其他风险
|
||||
*/
|
||||
private String otherRisks;
|
||||
|
||||
/**
|
||||
* 文件ID
|
||||
*/
|
||||
private String fileId;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remark;
|
||||
|
||||
/**
|
||||
* 审核状态
|
||||
*/
|
||||
private String auditStatus;
|
||||
|
||||
|
||||
}
|
||||
@ -0,0 +1,13 @@
|
||||
package org.dromara.xzd.biddingManagement.domain.dto;
|
||||
|
||||
import lombok.Data;
|
||||
import org.dromara.xzd.biddingManagement.domain.bo.XzdBidPreProjectBo;
|
||||
import org.dromara.xzd.biddingManagement.domain.bo.XzdBqlxProjectInfoBo;
|
||||
|
||||
@Data
|
||||
public class BiddingManagementDto {
|
||||
|
||||
private XzdBidPreProjectBo xzdBidPreProjectBo;
|
||||
|
||||
private XzdBqlxProjectInfoBo xzdBqlxProjectInfoBo;
|
||||
}
|
||||
@ -0,0 +1,52 @@
|
||||
package org.dromara.xzd.biddingManagement.domain.dto;
|
||||
|
||||
|
||||
import jakarta.validation.constraints.NotBlank;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import lombok.Data;
|
||||
import org.dromara.common.core.validate.AddGroup;
|
||||
import org.dromara.common.core.validate.EditGroup;
|
||||
|
||||
@Data
|
||||
public class QuerBiddingManagementDto {
|
||||
|
||||
// XzdBidPreProjectBo
|
||||
/**
|
||||
* 项目编码
|
||||
*/
|
||||
private String projectNumber;
|
||||
|
||||
/**
|
||||
* 项目名称
|
||||
*/
|
||||
private String projectName;
|
||||
|
||||
|
||||
/**
|
||||
* 项目类型
|
||||
*/
|
||||
private Long projectTypeId;
|
||||
|
||||
|
||||
private Long createBy;
|
||||
|
||||
|
||||
private Long createDept;
|
||||
|
||||
|
||||
// XzdBqlxProjectInfoBo
|
||||
/**
|
||||
* 建设单位
|
||||
*/
|
||||
private String constructionUnit;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remark;
|
||||
|
||||
|
||||
private Integer num;
|
||||
|
||||
|
||||
}
|
||||
@ -0,0 +1,13 @@
|
||||
package org.dromara.xzd.biddingManagement.domain.vo;
|
||||
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class QuerListXzdBidPreVo {
|
||||
|
||||
private XzdBidPreProjectVo xzdBidPreProjectVo;
|
||||
|
||||
private XzdBqlxProjectInfoVo xzdBqlxProjectInfoVo;
|
||||
|
||||
}
|
||||
@ -0,0 +1,15 @@
|
||||
package org.dromara.xzd.biddingManagement.domain.vo;
|
||||
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
|
||||
@Data
|
||||
public class QueryListXzdVo {
|
||||
|
||||
private List<QuerListXzdBidPreVo> list;
|
||||
|
||||
private Integer total;
|
||||
}
|
||||
@ -0,0 +1,164 @@
|
||||
package org.dromara.xzd.biddingManagement.domain.vo;
|
||||
|
||||
import org.dromara.common.translation.annotation.Translation;
|
||||
import org.dromara.common.translation.constant.TransConstant;
|
||||
import org.dromara.xzd.biddingManagement.domain.XzdBidPreProject;
|
||||
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.util.Date;
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 标前立项视图对象 xzd_bid_pre_project
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-10-10
|
||||
*/
|
||||
@Data
|
||||
@ExcelIgnoreUnannotated
|
||||
@AutoMapper(target = XzdBidPreProject.class)
|
||||
public class XzdBidPreProjectVo implements Serializable {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 主键ID
|
||||
*/
|
||||
@ExcelProperty(value = "主键ID")
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 项目编码
|
||||
*/
|
||||
@ExcelProperty(value = "项目编码")
|
||||
private String projectNumber;
|
||||
|
||||
/**
|
||||
* 项目名称
|
||||
*/
|
||||
@ExcelProperty(value = "项目名称")
|
||||
private String projectName;
|
||||
|
||||
/**
|
||||
* 国家
|
||||
*/
|
||||
@ExcelProperty(value = "国家")
|
||||
private String country;
|
||||
|
||||
/**
|
||||
* 省
|
||||
*/
|
||||
@ExcelProperty(value = "省")
|
||||
private String province;
|
||||
|
||||
/**
|
||||
* 城市
|
||||
*/
|
||||
@ExcelProperty(value = "城市")
|
||||
private String city;
|
||||
|
||||
/**
|
||||
* 区县
|
||||
*/
|
||||
@ExcelProperty(value = "区县")
|
||||
private String district;
|
||||
|
||||
/**
|
||||
* 工程地点
|
||||
*/
|
||||
@ExcelProperty(value = "工程地点")
|
||||
private String projectLocation;
|
||||
|
||||
/**
|
||||
* 资金来源
|
||||
*/
|
||||
@ExcelProperty(value = "资金来源")
|
||||
private String capitalSource;
|
||||
|
||||
/**
|
||||
* 承包方式
|
||||
*/
|
||||
@ExcelProperty(value = "承包方式", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(dictType = "xzd_contracting_method")
|
||||
private String contractingMethod;
|
||||
|
||||
/**
|
||||
* 经营模式
|
||||
*/
|
||||
@ExcelProperty(value = "经营模式", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(dictType = "xzd_business_model")
|
||||
private String operationMode;
|
||||
|
||||
/**
|
||||
* 项目类型
|
||||
*/
|
||||
@ExcelProperty(value = "项目类型")
|
||||
private Long projectTypeId;
|
||||
|
||||
/**
|
||||
* 招标方式
|
||||
*/
|
||||
@ExcelProperty(value = "招标方式", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(dictType = "xzd_bidding_method")
|
||||
private String biddingMethod;
|
||||
|
||||
/**
|
||||
* 联系方法
|
||||
*/
|
||||
@ExcelProperty(value = "联系方法")
|
||||
private String liaisonMethod;
|
||||
|
||||
/**
|
||||
* 投资单位
|
||||
*/
|
||||
@ExcelProperty(value = "投资单位")
|
||||
private String investmentUnit;
|
||||
|
||||
/**
|
||||
* 工程造价(万元)
|
||||
*/
|
||||
@ExcelProperty(value = "工程造价", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "万=元")
|
||||
private Long projectCost;
|
||||
|
||||
/**
|
||||
* 资料费
|
||||
*/
|
||||
@ExcelProperty(value = "资料费")
|
||||
private Long informationCost;
|
||||
|
||||
/**
|
||||
* 文件ID
|
||||
*/
|
||||
@ExcelProperty(value = "文件ID")
|
||||
private String fileId;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
@ExcelProperty(value = "备注")
|
||||
private String remark;
|
||||
|
||||
/**
|
||||
* 审核状态
|
||||
*/
|
||||
@ExcelProperty(value = "审核状态")
|
||||
private String auditStatus;
|
||||
|
||||
private Long createBy;
|
||||
|
||||
|
||||
@Translation(type = TransConstant.USER_ID_TO_NICKNAME, mapper = "createBy")
|
||||
private String createByUserName;
|
||||
|
||||
|
||||
}
|
||||
@ -0,0 +1,235 @@
|
||||
package org.dromara.xzd.biddingManagement.domain.vo;
|
||||
|
||||
import java.util.Date;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import org.dromara.xzd.biddingManagement.domain.XzdBqlxProjectInfo;
|
||||
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.util.Date;
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 标前立项视图对象 xzd_bqlx_project_info
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-10-10
|
||||
*/
|
||||
@Data
|
||||
@ExcelIgnoreUnannotated
|
||||
@AutoMapper(target = XzdBqlxProjectInfo.class)
|
||||
public class XzdBqlxProjectInfoVo implements Serializable {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 主键ID
|
||||
*/
|
||||
@ExcelProperty(value = "主键ID")
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 关联标前立项ID
|
||||
*/
|
||||
@ExcelProperty(value = "关联标前立项ID")
|
||||
private Long bidPreProjectId;
|
||||
|
||||
/**
|
||||
* 预计开工日期
|
||||
*/
|
||||
@ExcelProperty(value = "预计开工日期")
|
||||
private Date expectedStartDate;
|
||||
|
||||
/**
|
||||
* 资质要求
|
||||
*/
|
||||
@ExcelProperty(value = "资质要求")
|
||||
private String qualificationRequirement;
|
||||
|
||||
/**
|
||||
* 报名开始时间
|
||||
*/
|
||||
@ExcelProperty(value = "报名开始时间")
|
||||
private Date bidStartDate;
|
||||
|
||||
/**
|
||||
* 报名截止时间
|
||||
*/
|
||||
@ExcelProperty(value = "报名截止时间")
|
||||
private Date bidEndDate;
|
||||
|
||||
/**
|
||||
* 投标截止时间
|
||||
*/
|
||||
@ExcelProperty(value = "投标截止时间")
|
||||
private Date submissionDeadline;
|
||||
|
||||
/**
|
||||
* 设计情况
|
||||
*/
|
||||
@ExcelProperty(value = "设计情况")
|
||||
private String designDescription;
|
||||
|
||||
/**
|
||||
* 工程概况
|
||||
*/
|
||||
@ExcelProperty(value = "工程概况")
|
||||
private String projectStatus;
|
||||
|
||||
/**
|
||||
* 招标公告地址
|
||||
*/
|
||||
@ExcelProperty(value = "招标公告地址")
|
||||
private String biddingAnnouncementAddress;
|
||||
|
||||
/**
|
||||
* 质量要求
|
||||
*/
|
||||
@ExcelProperty(value = "质量要求")
|
||||
private String qualityRequirement;
|
||||
|
||||
/**
|
||||
* 工期要求(天)
|
||||
*/
|
||||
@ExcelProperty(value = "工期要求", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(readConverterExp = "天=")
|
||||
private Long durationDays;
|
||||
|
||||
/**
|
||||
* 最低资质要求
|
||||
*/
|
||||
@ExcelProperty(value = "最低资质要求")
|
||||
private String lowestQualificationRequirement;
|
||||
|
||||
/**
|
||||
* 项目经理要求
|
||||
*/
|
||||
@ExcelProperty(value = "项目经理要求")
|
||||
private String projectManagerRequirement;
|
||||
|
||||
/**
|
||||
* 业绩要求
|
||||
*/
|
||||
@ExcelProperty(value = "业绩要求")
|
||||
private String performanceRequirement;
|
||||
|
||||
/**
|
||||
* 开标时间
|
||||
*/
|
||||
@ExcelProperty(value = "开标时间")
|
||||
private Date startDate;
|
||||
|
||||
/**
|
||||
* 评标方式
|
||||
*/
|
||||
@ExcelProperty(value = "评标方式", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(dictType = "xzd_evaluation_method")
|
||||
private String evaluationMethod;
|
||||
|
||||
/**
|
||||
* 投标保证金形式
|
||||
*/
|
||||
@ExcelProperty(value = "投标保证金形式", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(dictType = "xzd_margin_type")
|
||||
private String biddingDepositForm;
|
||||
|
||||
/**
|
||||
* 投标保证金
|
||||
*/
|
||||
@ExcelProperty(value = "投标保证金")
|
||||
private Long biddingDeposit;
|
||||
|
||||
/**
|
||||
* 建设单位
|
||||
*/
|
||||
@ExcelProperty(value = "建设单位")
|
||||
private String constructionUnit;
|
||||
|
||||
/**
|
||||
* 建设单位联系人
|
||||
*/
|
||||
@ExcelProperty(value = "建设单位联系人")
|
||||
private String constructionPerson;
|
||||
|
||||
/**
|
||||
* 建设单位联系方式
|
||||
*/
|
||||
@ExcelProperty(value = "建设单位联系方式")
|
||||
private String constructionMethod;
|
||||
|
||||
/**
|
||||
* 招标单位
|
||||
*/
|
||||
@ExcelProperty(value = "招标单位")
|
||||
private String biddingUnit;
|
||||
|
||||
/**
|
||||
* 招标单位联系人
|
||||
*/
|
||||
@ExcelProperty(value = "招标单位联系人")
|
||||
private String biddingPerson;
|
||||
|
||||
/**
|
||||
* 招标单位联系方式
|
||||
*/
|
||||
@ExcelProperty(value = "招标单位联系方式")
|
||||
private String biddingMethod;
|
||||
|
||||
/**
|
||||
* 成本价
|
||||
*/
|
||||
@ExcelProperty(value = "成本价")
|
||||
private Long costPrice;
|
||||
|
||||
/**
|
||||
* 招标控制价
|
||||
*/
|
||||
@ExcelProperty(value = "招标控制价")
|
||||
private Long biddingPriceControl;
|
||||
|
||||
/**
|
||||
* 项目编码
|
||||
*/
|
||||
@ExcelProperty(value = "项目编码")
|
||||
private String projectNumber;
|
||||
|
||||
/**
|
||||
* 默认财务组织
|
||||
*/
|
||||
@ExcelProperty(value = "默认财务组织")
|
||||
private String defaultFinance;
|
||||
|
||||
/**
|
||||
* 涉及财务组织
|
||||
*/
|
||||
@ExcelProperty(value = "涉及财务组织")
|
||||
private String involveFinance;
|
||||
|
||||
/**
|
||||
* 文件ID
|
||||
*/
|
||||
@ExcelProperty(value = "文件ID")
|
||||
private String fileId;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
@ExcelProperty(value = "备注")
|
||||
private String remark;
|
||||
|
||||
/**
|
||||
* 审核状态
|
||||
*/
|
||||
@ExcelProperty(value = "审核状态")
|
||||
private String auditStatus;
|
||||
|
||||
|
||||
}
|
||||
@ -0,0 +1,168 @@
|
||||
package org.dromara.xzd.biddingManagement.domain.vo;
|
||||
|
||||
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.common.translation.annotation.Translation;
|
||||
import org.dromara.common.translation.constant.TransConstant;
|
||||
import org.dromara.xzd.biddingManagement.domain.XzdProjectRiskAssessment;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.Date;
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 项目风险评估签审意见视图对象 xzd_project_risk_assessment
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-10-10
|
||||
*/
|
||||
@Data
|
||||
@ExcelIgnoreUnannotated
|
||||
@AutoMapper(target = XzdProjectRiskAssessment.class)
|
||||
public class XzdProjectRiskAssessmentVo implements Serializable {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 主键ID
|
||||
*/
|
||||
@ExcelProperty(value = "主键ID")
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 单据编号
|
||||
*/
|
||||
@ExcelProperty(value = "单据编号")
|
||||
private String documentNumber;
|
||||
|
||||
/**
|
||||
* 项目名称
|
||||
*/
|
||||
@ExcelProperty(value = "项目名称")
|
||||
private String projectName;
|
||||
|
||||
/**
|
||||
* 项目业主
|
||||
*/
|
||||
@ExcelProperty(value = "项目业主")
|
||||
private String projectBusinessOwner;
|
||||
|
||||
/**
|
||||
* 联合体成员方
|
||||
*/
|
||||
@ExcelProperty(value = "联合体成员方")
|
||||
private String jointBodyMembers;
|
||||
|
||||
/**
|
||||
* 预计合同额(万元)
|
||||
*/
|
||||
@ExcelProperty(value = "预计合同额(万元)")
|
||||
private Long estimatedContractAmount;
|
||||
|
||||
/**
|
||||
* 单价指标
|
||||
*/
|
||||
@ExcelProperty(value = "单价指标")
|
||||
private String unitPriceIndex;
|
||||
|
||||
/**
|
||||
* 工期风险
|
||||
*/
|
||||
@ExcelProperty(value = "工期风险", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(dictType = "xzd_risk_assessment_type")
|
||||
private String engineeringRisk;
|
||||
|
||||
/**
|
||||
* 技术风险
|
||||
*/
|
||||
@ExcelProperty(value = "技术风险", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(dictType = "xzd_risk_assessment_type")
|
||||
private String technicalRisk;
|
||||
|
||||
/**
|
||||
* 经济风险
|
||||
*/
|
||||
@ExcelProperty(value = "经济风险", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(dictType = "xzd_risk_assessment_type")
|
||||
private String economicRisk;
|
||||
|
||||
/**
|
||||
* 合同风险
|
||||
*/
|
||||
@ExcelProperty(value = "合同风险", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(dictType = "xzd_risk_assessment_type")
|
||||
private String contractRisk;
|
||||
|
||||
/**
|
||||
* 人员风险
|
||||
*/
|
||||
@ExcelProperty(value = "人员风险", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(dictType = "xzd_risk_assessment_type")
|
||||
private String personnelRisk;
|
||||
|
||||
/**
|
||||
* 施工风险
|
||||
*/
|
||||
@ExcelProperty(value = "施工风险", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(dictType = "xzd_risk_assessment_type")
|
||||
private String constructionRisk;
|
||||
|
||||
/**
|
||||
* 管理风险
|
||||
*/
|
||||
@ExcelProperty(value = "管理风险", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(dictType = "xzd_risk_assessment_type")
|
||||
private String managementRisk;
|
||||
|
||||
/**
|
||||
* 分包风险
|
||||
*/
|
||||
@ExcelProperty(value = "分包风险", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(dictType = "xzd_risk_assessment_type")
|
||||
private String subcontractRisk;
|
||||
|
||||
/**
|
||||
* 其他风险
|
||||
*/
|
||||
@ExcelProperty(value = "其他风险", converter = ExcelDictConvert.class)
|
||||
@ExcelDictFormat(dictType = "xzd_risk_assessment_type")
|
||||
private String otherRisks;
|
||||
|
||||
/**
|
||||
* 文件ID
|
||||
*/
|
||||
@ExcelProperty(value = "文件ID")
|
||||
private String fileId;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
@ExcelProperty(value = "备注")
|
||||
private String remark;
|
||||
|
||||
/**
|
||||
* 审核状态
|
||||
*/
|
||||
@ExcelProperty(value = "审核状态")
|
||||
private String auditStatus;
|
||||
|
||||
|
||||
private LocalDateTime createTime;
|
||||
|
||||
private String createBy;
|
||||
|
||||
/**
|
||||
* 创建者姓名
|
||||
*/
|
||||
@Translation(type = TransConstant.USER_ID_TO_NICKNAME, mapper = "createBy")
|
||||
private String createByName;
|
||||
|
||||
}
|
||||
@ -0,0 +1,44 @@
|
||||
package org.dromara.xzd.biddingManagement.domain.vo;
|
||||
|
||||
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
import com.baomidou.mybatisplus.annotation.FieldFill;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import lombok.Data;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
@Data
|
||||
public class XzdProjectVo {
|
||||
|
||||
/**
|
||||
* 单据编号
|
||||
*/
|
||||
@ExcelProperty(value = "单据编号")
|
||||
private String documentNumber;
|
||||
|
||||
/**
|
||||
* 项目名称
|
||||
*/
|
||||
@ExcelProperty(value = "项目名称")
|
||||
private String projectName;
|
||||
|
||||
/**
|
||||
* 项目业主
|
||||
*/
|
||||
@ExcelProperty(value = "项目业主")
|
||||
private String projectBusinessOwner;
|
||||
|
||||
/**
|
||||
* 创建者 录入人
|
||||
*/
|
||||
private Long createBy;
|
||||
|
||||
|
||||
private LocalDateTime startTime;
|
||||
|
||||
private LocalDateTime endTime;
|
||||
|
||||
|
||||
|
||||
}
|
||||
@ -0,0 +1,24 @@
|
||||
package org.dromara.xzd.biddingManagement.mapper;
|
||||
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
import org.dromara.xzd.biddingManagement.domain.XzdBidPreProject;
|
||||
import org.dromara.xzd.biddingManagement.domain.dto.QuerBiddingManagementDto;
|
||||
import org.dromara.xzd.biddingManagement.domain.vo.QuerListXzdBidPreVo;
|
||||
import org.dromara.xzd.biddingManagement.domain.vo.XzdBidPreProjectVo;
|
||||
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 标前立项Mapper接口
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-10-10
|
||||
*/
|
||||
public interface XzdBidPreProjectMapper extends BaseMapperPlus<XzdBidPreProject, XzdBidPreProjectVo> {
|
||||
|
||||
|
||||
List<QuerListXzdBidPreVo> queryPageListBy(@Param("bo") QuerBiddingManagementDto bo, @Param("pageSize") Integer pageSize);
|
||||
|
||||
Integer queryPageListByNum(@Param("bo") QuerBiddingManagementDto bo, @Param("pageSize") Integer pageSize);
|
||||
}
|
||||
@ -0,0 +1,15 @@
|
||||
package org.dromara.xzd.biddingManagement.mapper;
|
||||
|
||||
import org.dromara.xzd.biddingManagement.domain.XzdBqlxProjectInfo;
|
||||
import org.dromara.xzd.biddingManagement.domain.vo.XzdBqlxProjectInfoVo;
|
||||
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
|
||||
|
||||
/**
|
||||
* 标前立项Mapper接口
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-10-10
|
||||
*/
|
||||
public interface XzdBqlxProjectInfoMapper extends BaseMapperPlus<XzdBqlxProjectInfo, XzdBqlxProjectInfoVo> {
|
||||
|
||||
}
|
||||
@ -0,0 +1,16 @@
|
||||
package org.dromara.xzd.biddingManagement.mapper;
|
||||
|
||||
|
||||
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
|
||||
import org.dromara.xzd.biddingManagement.domain.XzdProjectRiskAssessment;
|
||||
import org.dromara.xzd.biddingManagement.domain.vo.XzdProjectRiskAssessmentVo;
|
||||
|
||||
/**
|
||||
* 项目风险评估签审意见Mapper接口
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-10-10
|
||||
*/
|
||||
public interface XzdProjectRiskAssessmentMapper extends BaseMapperPlus<XzdProjectRiskAssessment, XzdProjectRiskAssessmentVo> {
|
||||
|
||||
}
|
||||
@ -0,0 +1,74 @@
|
||||
package org.dromara.xzd.biddingManagement.service;
|
||||
|
||||
import org.dromara.xzd.biddingManagement.domain.dto.BiddingManagementDto;
|
||||
import org.dromara.xzd.biddingManagement.domain.dto.QuerBiddingManagementDto;
|
||||
import org.dromara.xzd.biddingManagement.domain.vo.QuerListXzdBidPreVo;
|
||||
import org.dromara.xzd.biddingManagement.domain.vo.QueryListXzdVo;
|
||||
import org.dromara.xzd.biddingManagement.domain.vo.XzdBidPreProjectVo;
|
||||
import org.dromara.xzd.biddingManagement.domain.bo.XzdBidPreProjectBo;
|
||||
import org.dromara.xzd.biddingManagement.domain.XzdBidPreProject;
|
||||
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 Lion Li
|
||||
* @date 2025-10-10
|
||||
*/
|
||||
public interface IXzdBidPreProjectService extends IService<XzdBidPreProject>{
|
||||
|
||||
/**
|
||||
* 查询标前立项
|
||||
*
|
||||
* @param id 主键
|
||||
* @return 标前立项
|
||||
*/
|
||||
QuerListXzdBidPreVo queryById(Long id);
|
||||
|
||||
/**
|
||||
* 分页查询标前立项列表
|
||||
*
|
||||
* @param bo 查询条件
|
||||
* @param pageQuery 分页参数
|
||||
* @return 标前立项分页列表
|
||||
*/
|
||||
QueryListXzdVo queryPageList(QuerBiddingManagementDto bo, PageQuery pageQuery);
|
||||
|
||||
/**
|
||||
* 查询符合条件的标前立项列表
|
||||
*
|
||||
* @param bo 查询条件
|
||||
* @return 标前立项列表
|
||||
*/
|
||||
List<XzdBidPreProjectVo> queryList(XzdBidPreProjectBo bo);
|
||||
|
||||
/**
|
||||
* 新增标前立项
|
||||
*
|
||||
* @param bo 标前立项
|
||||
* @return 是否新增成功
|
||||
*/
|
||||
Boolean insertByBo(BiddingManagementDto bo);
|
||||
|
||||
/**
|
||||
* 修改标前立项
|
||||
*
|
||||
* @param bo 标前立项
|
||||
* @return 是否修改成功
|
||||
*/
|
||||
Boolean updateByBo(BiddingManagementDto bo);
|
||||
|
||||
/**
|
||||
* 校验并批量删除标前立项信息
|
||||
*
|
||||
* @param ids 待删除的主键集合
|
||||
* @param isValid 是否进行有效性校验
|
||||
* @return 是否删除成功
|
||||
*/
|
||||
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
|
||||
}
|
||||
@ -0,0 +1,70 @@
|
||||
package org.dromara.xzd.biddingManagement.service;
|
||||
|
||||
import org.dromara.xzd.biddingManagement.domain.vo.XzdBqlxProjectInfoVo;
|
||||
import org.dromara.xzd.biddingManagement.domain.bo.XzdBqlxProjectInfoBo;
|
||||
import org.dromara.xzd.biddingManagement.domain.XzdBqlxProjectInfo;
|
||||
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 Lion Li
|
||||
* @date 2025-10-10
|
||||
*/
|
||||
public interface IXzdBqlxProjectInfoService extends IService<XzdBqlxProjectInfo>{
|
||||
|
||||
/**
|
||||
* 查询标前立项
|
||||
*
|
||||
* @param id 主键
|
||||
* @return 标前立项
|
||||
*/
|
||||
XzdBqlxProjectInfoVo queryById(Long id);
|
||||
|
||||
/**
|
||||
* 分页查询标前立项列表
|
||||
*
|
||||
* @param bo 查询条件
|
||||
* @param pageQuery 分页参数
|
||||
* @return 标前立项分页列表
|
||||
*/
|
||||
TableDataInfo<XzdBqlxProjectInfoVo> queryPageList(XzdBqlxProjectInfoBo bo, PageQuery pageQuery);
|
||||
|
||||
/**
|
||||
* 查询符合条件的标前立项列表
|
||||
*
|
||||
* @param bo 查询条件
|
||||
* @return 标前立项列表
|
||||
*/
|
||||
List<XzdBqlxProjectInfoVo> queryList(XzdBqlxProjectInfoBo bo);
|
||||
|
||||
/**
|
||||
* 新增标前立项
|
||||
*
|
||||
* @param bo 标前立项
|
||||
* @return 是否新增成功
|
||||
*/
|
||||
Boolean insertByBo(XzdBqlxProjectInfoBo bo);
|
||||
|
||||
/**
|
||||
* 修改标前立项
|
||||
*
|
||||
* @param bo 标前立项
|
||||
* @return 是否修改成功
|
||||
*/
|
||||
Boolean updateByBo(XzdBqlxProjectInfoBo bo);
|
||||
|
||||
/**
|
||||
* 校验并批量删除标前立项信息
|
||||
*
|
||||
* @param ids 待删除的主键集合
|
||||
* @param isValid 是否进行有效性校验
|
||||
* @return 是否删除成功
|
||||
*/
|
||||
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
|
||||
}
|
||||
@ -0,0 +1,73 @@
|
||||
package org.dromara.xzd.biddingManagement.service;
|
||||
|
||||
|
||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import org.dromara.xzd.biddingManagement.domain.XzdProjectRiskAssessment;
|
||||
import org.dromara.xzd.biddingManagement.domain.bo.XzdProjectRiskAssessmentBo;
|
||||
import org.dromara.xzd.biddingManagement.domain.vo.XzdProjectRiskAssessmentVo;
|
||||
import org.dromara.xzd.biddingManagement.domain.vo.XzdProjectVo;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 项目风险评估签审意见Service接口
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-10-10
|
||||
*/
|
||||
public interface IXzdProjectRiskAssessmentService extends IService<XzdProjectRiskAssessment>{
|
||||
|
||||
/**
|
||||
* 查询项目风险评估签审意见
|
||||
*
|
||||
* @param id 主键
|
||||
* @return 项目风险评估签审意见
|
||||
*/
|
||||
XzdProjectRiskAssessmentVo queryById(Long id);
|
||||
|
||||
/**
|
||||
* 分页查询项目风险评估签审意见列表
|
||||
*
|
||||
* @param bo 查询条件
|
||||
* @param pageQuery 分页参数
|
||||
* @return 项目风险评估签审意见分页列表
|
||||
*/
|
||||
TableDataInfo<XzdProjectRiskAssessmentVo> queryPageList(XzdProjectVo bo, PageQuery pageQuery);
|
||||
|
||||
/**
|
||||
* 查询符合条件的项目风险评估签审意见列表
|
||||
*
|
||||
* @param bo 查询条件
|
||||
* @return 项目风险评估签审意见列表
|
||||
*/
|
||||
List<XzdProjectRiskAssessmentVo> queryList(XzdProjectRiskAssessmentBo bo);
|
||||
|
||||
/**
|
||||
* 新增项目风险评估签审意见
|
||||
*
|
||||
* @param bo 项目风险评估签审意见
|
||||
* @return 是否新增成功
|
||||
*/
|
||||
Boolean insertByBo(XzdProjectRiskAssessmentBo bo);
|
||||
|
||||
/**
|
||||
* 修改项目风险评估签审意见
|
||||
*
|
||||
* @param bo 项目风险评估签审意见
|
||||
* @return 是否修改成功
|
||||
*/
|
||||
Boolean updateByBo(XzdProjectRiskAssessmentBo bo);
|
||||
|
||||
/**
|
||||
* 校验并批量删除项目风险评估签审意见信息
|
||||
*
|
||||
* @param ids 待删除的主键集合
|
||||
* @param isValid 是否进行有效性校验
|
||||
* @return 是否删除成功
|
||||
*/
|
||||
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
|
||||
}
|
||||
@ -0,0 +1,217 @@
|
||||
package org.dromara.xzd.biddingManagement.service.impl;
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
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 lombok.RequiredArgsConstructor;
|
||||
import org.dromara.xzd.biddingManagement.domain.XzdBqlxProjectInfo;
|
||||
import org.dromara.xzd.biddingManagement.domain.bo.XzdBqlxProjectInfoBo;
|
||||
import org.dromara.xzd.biddingManagement.domain.dto.BiddingManagementDto;
|
||||
import org.dromara.xzd.biddingManagement.domain.dto.QuerBiddingManagementDto;
|
||||
import org.dromara.xzd.biddingManagement.domain.vo.QuerListXzdBidPreVo;
|
||||
import org.dromara.xzd.biddingManagement.domain.vo.QueryListXzdVo;
|
||||
import org.dromara.xzd.biddingManagement.domain.vo.XzdBqlxProjectInfoVo;
|
||||
import org.dromara.xzd.biddingManagement.mapper.XzdBqlxProjectInfoMapper;
|
||||
import org.dromara.xzd.biddingManagement.service.IXzdBqlxProjectInfoService;
|
||||
import org.dromara.xzd.utilS.AreaUtil;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.dromara.xzd.biddingManagement.domain.bo.XzdBidPreProjectBo;
|
||||
import org.dromara.xzd.biddingManagement.domain.vo.XzdBidPreProjectVo;
|
||||
import org.dromara.xzd.biddingManagement.domain.XzdBidPreProject;
|
||||
import org.dromara.xzd.biddingManagement.mapper.XzdBidPreProjectMapper;
|
||||
import org.dromara.xzd.biddingManagement.service.IXzdBidPreProjectService;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Collection;
|
||||
|
||||
/**
|
||||
* 标前立项Service业务层处理
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-10-10
|
||||
*/
|
||||
@RequiredArgsConstructor
|
||||
@Service
|
||||
public class XzdBidPreProjectServiceImpl extends ServiceImpl<XzdBidPreProjectMapper, XzdBidPreProject> implements IXzdBidPreProjectService {
|
||||
|
||||
private final XzdBidPreProjectMapper baseMapper;
|
||||
|
||||
private final IXzdBqlxProjectInfoService iXzdBqlxProjectInfoService;
|
||||
|
||||
|
||||
|
||||
private final AreaUtil areaUtil;
|
||||
|
||||
|
||||
/**
|
||||
* 查询标前立项
|
||||
*
|
||||
* @param id 主键
|
||||
* @return 标前立项
|
||||
*/
|
||||
@Override
|
||||
public QuerListXzdBidPreVo queryById(Long id){
|
||||
QuerListXzdBidPreVo querListXzdBidPreVo = new QuerListXzdBidPreVo();
|
||||
XzdBidPreProjectVo xzdBidPreProjectVo = baseMapper.selectVoById(id);
|
||||
XzdBqlxProjectInfo xzdBqlxProjectInfo = iXzdBqlxProjectInfoService.getBaseMapper().selectOne(new LambdaQueryWrapper<>(XzdBqlxProjectInfo.class).eq(XzdBqlxProjectInfo::getBidPreProjectId, id));
|
||||
XzdBqlxProjectInfoVo res = new XzdBqlxProjectInfoVo();
|
||||
BeanUtils.copyProperties(xzdBqlxProjectInfo, res);
|
||||
|
||||
querListXzdBidPreVo.setXzdBqlxProjectInfoVo(res);
|
||||
querListXzdBidPreVo.setXzdBidPreProjectVo(xzdBidPreProjectVo);
|
||||
|
||||
return querListXzdBidPreVo;
|
||||
}
|
||||
|
||||
/**
|
||||
* 分页查询标前立项列表
|
||||
*
|
||||
* @param bo 查询条件
|
||||
* @param pageQuery 分页参数
|
||||
* @return 标前立项分页列表
|
||||
*/
|
||||
@Override
|
||||
public QueryListXzdVo queryPageList(QuerBiddingManagementDto bo, PageQuery pageQuery) {
|
||||
|
||||
QueryListXzdVo queryListXzdVo = new QueryListXzdVo();
|
||||
|
||||
if (pageQuery.getPageNum() != null && pageQuery.getPageSize() != null){
|
||||
bo.setNum((pageQuery.getPageNum() - 1 ) * pageQuery.getPageSize() );
|
||||
}
|
||||
|
||||
List<QuerListXzdBidPreVo> list = baseMapper.queryPageListBy(bo,pageQuery.getPageSize());
|
||||
Integer res = baseMapper.queryPageListByNum(bo,pageQuery.getPageSize());
|
||||
|
||||
queryListXzdVo.setList(list);
|
||||
|
||||
queryListXzdVo.setTotal(res);
|
||||
|
||||
return queryListXzdVo;
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询符合条件的标前立项列表
|
||||
*
|
||||
* @param bo 查询条件
|
||||
* @return 标前立项列表
|
||||
*/
|
||||
@Override
|
||||
public List<XzdBidPreProjectVo> queryList(XzdBidPreProjectBo bo) {
|
||||
LambdaQueryWrapper<XzdBidPreProject> lqw = buildQueryWrapper(bo);
|
||||
return baseMapper.selectVoList(lqw);
|
||||
}
|
||||
|
||||
private LambdaQueryWrapper<XzdBidPreProject> buildQueryWrapper(XzdBidPreProjectBo bo) {
|
||||
Map<String, Object> params = bo.getParams();
|
||||
LambdaQueryWrapper<XzdBidPreProject> lqw = Wrappers.lambdaQuery();
|
||||
lqw.orderByDesc(XzdBidPreProject::getId);
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getProjectNumber()), XzdBidPreProject::getProjectNumber, bo.getProjectNumber());
|
||||
lqw.like(StringUtils.isNotBlank(bo.getProjectName()), XzdBidPreProject::getProjectName, bo.getProjectName());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getCountry()), XzdBidPreProject::getCountry, bo.getCountry());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getProvince()), XzdBidPreProject::getProvince, bo.getProvince());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getCity()), XzdBidPreProject::getCity, bo.getCity());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getDistrict()), XzdBidPreProject::getDistrict, bo.getDistrict());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getProjectLocation()), XzdBidPreProject::getProjectLocation, bo.getProjectLocation());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getCapitalSource()), XzdBidPreProject::getCapitalSource, bo.getCapitalSource());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getContractingMethod()), XzdBidPreProject::getContractingMethod, bo.getContractingMethod());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getOperationMode()), XzdBidPreProject::getOperationMode, bo.getOperationMode());
|
||||
lqw.eq(bo.getProjectTypeId() != null, XzdBidPreProject::getProjectTypeId, bo.getProjectTypeId());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getBiddingMethod()), XzdBidPreProject::getBiddingMethod, bo.getBiddingMethod());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getLiaisonMethod()), XzdBidPreProject::getLiaisonMethod, bo.getLiaisonMethod());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getInvestmentUnit()), XzdBidPreProject::getInvestmentUnit, bo.getInvestmentUnit());
|
||||
lqw.eq(bo.getProjectCost() != null, XzdBidPreProject::getProjectCost, bo.getProjectCost());
|
||||
lqw.eq(bo.getInformationCost() != null, XzdBidPreProject::getInformationCost, bo.getInformationCost());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getFileId()), XzdBidPreProject::getFileId, bo.getFileId());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getAuditStatus()), XzdBidPreProject::getAuditStatus, bo.getAuditStatus());
|
||||
return lqw;
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增标前立项
|
||||
*
|
||||
* @param bo 标前立项
|
||||
* @return 是否新增成功
|
||||
*/
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public Boolean insertByBo(BiddingManagementDto bo) {
|
||||
|
||||
try {
|
||||
Long l = baseMapper.selectCount(new LambdaQueryWrapper<XzdBidPreProject>().gt(XzdBidPreProject::getCreateTime, LocalDateTime.now().minusDays(1)));
|
||||
String s = areaUtil.generateDateBasedNumber();
|
||||
|
||||
// 标前立项
|
||||
XzdBidPreProjectBo xzdBidPreProjectBo = bo.getXzdBidPreProjectBo();
|
||||
XzdBidPreProject xzdBidPreProject = new XzdBidPreProject();
|
||||
if (xzdBidPreProjectBo != null) {
|
||||
BeanUtil.copyProperties(xzdBidPreProjectBo, xzdBidPreProject);
|
||||
xzdBidPreProject.setProjectNumber(s+"-"+(l+1));
|
||||
baseMapper.insert(xzdBidPreProject);
|
||||
}
|
||||
|
||||
//标前立项-项目信息
|
||||
XzdBqlxProjectInfoBo xzdBqlxProjectInfoBo = bo.getXzdBqlxProjectInfoBo();
|
||||
xzdBqlxProjectInfoBo.setBidPreProjectId(xzdBidPreProject.getId());
|
||||
|
||||
iXzdBqlxProjectInfoService.insertByBo(xzdBqlxProjectInfoBo);
|
||||
}catch (Exception e) {
|
||||
log.error("新增标前立项失败", e);
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改标前立项
|
||||
*
|
||||
* @param bo 标前立项
|
||||
* @return 是否修改成功
|
||||
*/
|
||||
@Override
|
||||
public Boolean updateByBo(BiddingManagementDto bo) {
|
||||
|
||||
|
||||
// XzdBidPreProjectBo xzdBidPreProjectBo = bo.getXzdBidPreProjectBo();
|
||||
//
|
||||
// baseMapper.updateById(xzdBidPreProjectBo);
|
||||
//
|
||||
// XzdBqlxProjectInfoBo xzdBqlxProjectInfoBo = bo.getXzdBqlxProjectInfoBo();
|
||||
//
|
||||
//
|
||||
// validEntityBeforeSave(update);
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* 保存前的数据校验
|
||||
*/
|
||||
private void validEntityBeforeSave(XzdBidPreProject entity){
|
||||
//TODO 做一些数据校验,如唯一约束
|
||||
}
|
||||
|
||||
/**
|
||||
* 校验并批量删除标前立项信息
|
||||
*
|
||||
* @param ids 待删除的主键集合
|
||||
* @param isValid 是否进行有效性校验
|
||||
* @return 是否删除成功
|
||||
*/
|
||||
@Override
|
||||
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
|
||||
if(isValid){
|
||||
//TODO 做一些业务上的校验,判断是否需要校验
|
||||
}
|
||||
return baseMapper.deleteByIds(ids) > 0;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,161 @@
|
||||
package org.dromara.xzd.biddingManagement.service.impl;
|
||||
|
||||
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 lombok.RequiredArgsConstructor;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.dromara.xzd.biddingManagement.domain.bo.XzdBqlxProjectInfoBo;
|
||||
import org.dromara.xzd.biddingManagement.domain.vo.XzdBqlxProjectInfoVo;
|
||||
import org.dromara.xzd.biddingManagement.domain.XzdBqlxProjectInfo;
|
||||
import org.dromara.xzd.biddingManagement.mapper.XzdBqlxProjectInfoMapper;
|
||||
import org.dromara.xzd.biddingManagement.service.IXzdBqlxProjectInfoService;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Collection;
|
||||
|
||||
/**
|
||||
* 标前立项Service业务层处理
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-10-10
|
||||
*/
|
||||
@RequiredArgsConstructor
|
||||
@Service
|
||||
public class XzdBqlxProjectInfoServiceImpl extends ServiceImpl<XzdBqlxProjectInfoMapper, XzdBqlxProjectInfo> implements IXzdBqlxProjectInfoService {
|
||||
|
||||
private final XzdBqlxProjectInfoMapper baseMapper;
|
||||
|
||||
/**
|
||||
* 查询标前立项
|
||||
*
|
||||
* @param id 主键
|
||||
* @return 标前立项
|
||||
*/
|
||||
@Override
|
||||
public XzdBqlxProjectInfoVo queryById(Long id){
|
||||
return baseMapper.selectVoById(id);
|
||||
}
|
||||
|
||||
/**
|
||||
* 分页查询标前立项列表
|
||||
*
|
||||
* @param bo 查询条件
|
||||
* @param pageQuery 分页参数
|
||||
* @return 标前立项分页列表
|
||||
*/
|
||||
@Override
|
||||
public TableDataInfo<XzdBqlxProjectInfoVo> queryPageList(XzdBqlxProjectInfoBo bo, PageQuery pageQuery) {
|
||||
LambdaQueryWrapper<XzdBqlxProjectInfo> lqw = buildQueryWrapper(bo);
|
||||
Page<XzdBqlxProjectInfoVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
|
||||
return TableDataInfo.build(result);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询符合条件的标前立项列表
|
||||
*
|
||||
* @param bo 查询条件
|
||||
* @return 标前立项列表
|
||||
*/
|
||||
@Override
|
||||
public List<XzdBqlxProjectInfoVo> queryList(XzdBqlxProjectInfoBo bo) {
|
||||
LambdaQueryWrapper<XzdBqlxProjectInfo> lqw = buildQueryWrapper(bo);
|
||||
return baseMapper.selectVoList(lqw);
|
||||
}
|
||||
|
||||
private LambdaQueryWrapper<XzdBqlxProjectInfo> buildQueryWrapper(XzdBqlxProjectInfoBo bo) {
|
||||
Map<String, Object> params = bo.getParams();
|
||||
LambdaQueryWrapper<XzdBqlxProjectInfo> lqw = Wrappers.lambdaQuery();
|
||||
lqw.orderByDesc(XzdBqlxProjectInfo::getId);
|
||||
lqw.eq(bo.getBidPreProjectId() != null, XzdBqlxProjectInfo::getBidPreProjectId, bo.getBidPreProjectId());
|
||||
lqw.eq(bo.getExpectedStartDate() != null, XzdBqlxProjectInfo::getExpectedStartDate, bo.getExpectedStartDate());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getQualificationRequirement()), XzdBqlxProjectInfo::getQualificationRequirement, bo.getQualificationRequirement());
|
||||
lqw.eq(bo.getBidStartDate() != null, XzdBqlxProjectInfo::getBidStartDate, bo.getBidStartDate());
|
||||
lqw.eq(bo.getBidEndDate() != null, XzdBqlxProjectInfo::getBidEndDate, bo.getBidEndDate());
|
||||
lqw.eq(bo.getSubmissionDeadline() != null, XzdBqlxProjectInfo::getSubmissionDeadline, bo.getSubmissionDeadline());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getDesignDescription()), XzdBqlxProjectInfo::getDesignDescription, bo.getDesignDescription());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getProjectStatus()), XzdBqlxProjectInfo::getProjectStatus, bo.getProjectStatus());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getBiddingAnnouncementAddress()), XzdBqlxProjectInfo::getBiddingAnnouncementAddress, bo.getBiddingAnnouncementAddress());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getQualityRequirement()), XzdBqlxProjectInfo::getQualityRequirement, bo.getQualityRequirement());
|
||||
lqw.eq(bo.getDurationDays() != null, XzdBqlxProjectInfo::getDurationDays, bo.getDurationDays());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getLowestQualificationRequirement()), XzdBqlxProjectInfo::getLowestQualificationRequirement, bo.getLowestQualificationRequirement());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getProjectManagerRequirement()), XzdBqlxProjectInfo::getProjectManagerRequirement, bo.getProjectManagerRequirement());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getPerformanceRequirement()), XzdBqlxProjectInfo::getPerformanceRequirement, bo.getPerformanceRequirement());
|
||||
lqw.eq(bo.getStartDate() != null, XzdBqlxProjectInfo::getStartDate, bo.getStartDate());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getEvaluationMethod()), XzdBqlxProjectInfo::getEvaluationMethod, bo.getEvaluationMethod());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getBiddingDepositForm()), XzdBqlxProjectInfo::getBiddingDepositForm, bo.getBiddingDepositForm());
|
||||
lqw.eq(bo.getBiddingDeposit() != null, XzdBqlxProjectInfo::getBiddingDeposit, bo.getBiddingDeposit());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getConstructionUnit()), XzdBqlxProjectInfo::getConstructionUnit, bo.getConstructionUnit());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getConstructionPerson()), XzdBqlxProjectInfo::getConstructionPerson, bo.getConstructionPerson());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getConstructionMethod()), XzdBqlxProjectInfo::getConstructionMethod, bo.getConstructionMethod());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getBiddingUnit()), XzdBqlxProjectInfo::getBiddingUnit, bo.getBiddingUnit());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getBiddingPerson()), XzdBqlxProjectInfo::getBiddingPerson, bo.getBiddingPerson());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getBiddingMethod()), XzdBqlxProjectInfo::getBiddingMethod, bo.getBiddingMethod());
|
||||
lqw.eq(bo.getCostPrice() != null, XzdBqlxProjectInfo::getCostPrice, bo.getCostPrice());
|
||||
lqw.eq(bo.getBiddingPriceControl() != null, XzdBqlxProjectInfo::getBiddingPriceControl, bo.getBiddingPriceControl());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getProjectNumber()), XzdBqlxProjectInfo::getProjectNumber, bo.getProjectNumber());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getDefaultFinance()), XzdBqlxProjectInfo::getDefaultFinance, bo.getDefaultFinance());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getInvolveFinance()), XzdBqlxProjectInfo::getInvolveFinance, bo.getInvolveFinance());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getFileId()), XzdBqlxProjectInfo::getFileId, bo.getFileId());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getAuditStatus()), XzdBqlxProjectInfo::getAuditStatus, bo.getAuditStatus());
|
||||
return lqw;
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增标前立项
|
||||
*
|
||||
* @param bo 标前立项
|
||||
* @return 是否新增成功
|
||||
*/
|
||||
@Override
|
||||
public Boolean insertByBo(XzdBqlxProjectInfoBo bo) {
|
||||
XzdBqlxProjectInfo add = MapstructUtils.convert(bo, XzdBqlxProjectInfo.class);
|
||||
validEntityBeforeSave(add);
|
||||
boolean flag = baseMapper.insert(add) > 0;
|
||||
if (flag) {
|
||||
bo.setId(add.getId());
|
||||
}
|
||||
return flag;
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改标前立项
|
||||
*
|
||||
* @param bo 标前立项
|
||||
* @return 是否修改成功
|
||||
*/
|
||||
@Override
|
||||
public Boolean updateByBo(XzdBqlxProjectInfoBo bo) {
|
||||
XzdBqlxProjectInfo update = MapstructUtils.convert(bo, XzdBqlxProjectInfo.class);
|
||||
validEntityBeforeSave(update);
|
||||
return baseMapper.updateById(update) > 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* 保存前的数据校验
|
||||
*/
|
||||
private void validEntityBeforeSave(XzdBqlxProjectInfo entity){
|
||||
//TODO 做一些数据校验,如唯一约束
|
||||
}
|
||||
|
||||
/**
|
||||
* 校验并批量删除标前立项信息
|
||||
*
|
||||
* @param ids 待删除的主键集合
|
||||
* @param isValid 是否进行有效性校验
|
||||
* @return 是否删除成功
|
||||
*/
|
||||
@Override
|
||||
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
|
||||
if(isValid){
|
||||
//TODO 做一些业务上的校验,判断是否需要校验
|
||||
}
|
||||
return baseMapper.deleteByIds(ids) > 0;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,176 @@
|
||||
package org.dromara.xzd.biddingManagement.service.impl;
|
||||
|
||||
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 lombok.RequiredArgsConstructor;
|
||||
import org.dromara.xzd.biddingManagement.domain.XzdProjectRiskAssessment;
|
||||
import org.dromara.xzd.biddingManagement.domain.bo.XzdProjectRiskAssessmentBo;
|
||||
import org.dromara.xzd.biddingManagement.domain.vo.XzdProjectRiskAssessmentVo;
|
||||
import org.dromara.xzd.biddingManagement.domain.vo.XzdProjectVo;
|
||||
import org.dromara.xzd.biddingManagement.mapper.XzdProjectRiskAssessmentMapper;
|
||||
import org.dromara.xzd.biddingManagement.service.IXzdProjectRiskAssessmentService;
|
||||
import org.dromara.xzd.utilS.AreaUtil;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Collection;
|
||||
|
||||
/**
|
||||
* 项目风险评估签审意见Service业务层处理
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-10-10
|
||||
*/
|
||||
@RequiredArgsConstructor
|
||||
@Service
|
||||
public class XzdProjectRiskAssessmentServiceImpl extends ServiceImpl<XzdProjectRiskAssessmentMapper, XzdProjectRiskAssessment> implements IXzdProjectRiskAssessmentService {
|
||||
|
||||
private final XzdProjectRiskAssessmentMapper baseMapper;
|
||||
|
||||
private final AreaUtil areaUtil;
|
||||
|
||||
/**
|
||||
* 查询项目风险评估签审意见
|
||||
*
|
||||
* @param id 主键
|
||||
* @return 项目风险评估签审意见
|
||||
*/
|
||||
@Override
|
||||
public XzdProjectRiskAssessmentVo queryById(Long id){
|
||||
return baseMapper.selectVoById(id);
|
||||
}
|
||||
|
||||
/**
|
||||
* 分页查询项目风险评估签审意见列表
|
||||
*
|
||||
* @param bo 查询条件
|
||||
* @param pageQuery 分页参数
|
||||
* @return 项目风险评估签审意见分页列表
|
||||
*/
|
||||
@Override
|
||||
public TableDataInfo<XzdProjectRiskAssessmentVo> queryPageList(XzdProjectVo bo, PageQuery pageQuery) {
|
||||
LambdaQueryWrapper<XzdProjectRiskAssessment> lqw = buildQueryWrapper1(bo);
|
||||
Page<XzdProjectRiskAssessmentVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
|
||||
|
||||
return TableDataInfo.build(result);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询符合条件的项目风险评估签审意见列表
|
||||
*
|
||||
* @param bo 查询条件
|
||||
* @return 项目风险评估签审意见列表
|
||||
*/
|
||||
@Override
|
||||
public List<XzdProjectRiskAssessmentVo> queryList(XzdProjectRiskAssessmentBo bo) {
|
||||
LambdaQueryWrapper<XzdProjectRiskAssessment> lqw = buildQueryWrapper(bo);
|
||||
return baseMapper.selectVoList(lqw);
|
||||
}
|
||||
|
||||
private LambdaQueryWrapper<XzdProjectRiskAssessment> buildQueryWrapper(XzdProjectRiskAssessmentBo bo) {
|
||||
Map<String, Object> params = bo.getParams();
|
||||
LambdaQueryWrapper<XzdProjectRiskAssessment> lqw = Wrappers.lambdaQuery();
|
||||
lqw.orderByDesc(XzdProjectRiskAssessment::getId);
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getDocumentNumber()), XzdProjectRiskAssessment::getDocumentNumber, bo.getDocumentNumber());
|
||||
lqw.like(StringUtils.isNotBlank(bo.getProjectName()), XzdProjectRiskAssessment::getProjectName, bo.getProjectName());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getProjectBusinessOwner()), XzdProjectRiskAssessment::getProjectBusinessOwner, bo.getProjectBusinessOwner());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getJointBodyMembers()), XzdProjectRiskAssessment::getJointBodyMembers, bo.getJointBodyMembers());
|
||||
lqw.eq(bo.getEstimatedContractAmount() != null, XzdProjectRiskAssessment::getEstimatedContractAmount, bo.getEstimatedContractAmount());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getUnitPriceIndex()), XzdProjectRiskAssessment::getUnitPriceIndex, bo.getUnitPriceIndex());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getEngineeringRisk()), XzdProjectRiskAssessment::getEngineeringRisk, bo.getEngineeringRisk());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getTechnicalRisk()), XzdProjectRiskAssessment::getTechnicalRisk, bo.getTechnicalRisk());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getEconomicRisk()), XzdProjectRiskAssessment::getEconomicRisk, bo.getEconomicRisk());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getContractRisk()), XzdProjectRiskAssessment::getContractRisk, bo.getContractRisk());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getPersonnelRisk()), XzdProjectRiskAssessment::getPersonnelRisk, bo.getPersonnelRisk());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getConstructionRisk()), XzdProjectRiskAssessment::getConstructionRisk, bo.getConstructionRisk());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getManagementRisk()), XzdProjectRiskAssessment::getManagementRisk, bo.getManagementRisk());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getSubcontractRisk()), XzdProjectRiskAssessment::getSubcontractRisk, bo.getSubcontractRisk());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getOtherRisks()), XzdProjectRiskAssessment::getOtherRisks, bo.getOtherRisks());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getFileId()), XzdProjectRiskAssessment::getFileId, bo.getFileId());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getAuditStatus()), XzdProjectRiskAssessment::getAuditStatus, bo.getAuditStatus());
|
||||
return lqw;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
private LambdaQueryWrapper<XzdProjectRiskAssessment> buildQueryWrapper1(XzdProjectVo bo) {
|
||||
LambdaQueryWrapper<XzdProjectRiskAssessment> lqw = Wrappers.lambdaQuery();
|
||||
lqw.orderByDesc(XzdProjectRiskAssessment::getId);
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getDocumentNumber()), XzdProjectRiskAssessment::getDocumentNumber, bo.getDocumentNumber());
|
||||
lqw.like(StringUtils.isNotBlank(bo.getProjectName()), XzdProjectRiskAssessment::getProjectName, bo.getProjectName());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getProjectBusinessOwner()), XzdProjectRiskAssessment::getProjectBusinessOwner, bo.getProjectBusinessOwner());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getCreateBy().toString()), XzdProjectRiskAssessment::getCreateBy, bo.getCreateBy());
|
||||
lqw.ge(StringUtils.isNotBlank(bo.getStartTime().toString()), XzdProjectRiskAssessment::getCreateTime, bo.getStartTime());
|
||||
lqw.le(StringUtils.isNotBlank(bo.getEndTime().toString()), XzdProjectRiskAssessment::getCreateTime, bo.getEndTime());
|
||||
|
||||
return lqw;
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增项目风险评估签审意见
|
||||
*
|
||||
* @param bo 项目风险评估签审意见
|
||||
* @return 是否新增成功
|
||||
*/
|
||||
@Override
|
||||
public Boolean insertByBo(XzdProjectRiskAssessmentBo bo) {
|
||||
XzdProjectRiskAssessment add = MapstructUtils.convert(bo, XzdProjectRiskAssessment.class);
|
||||
validEntityBeforeSave(add);
|
||||
if(add != null){
|
||||
String s = areaUtil.generateDateBasedNumber();
|
||||
Long l = baseMapper.selectCount(new LambdaQueryWrapper<XzdProjectRiskAssessment>().gt(XzdProjectRiskAssessment::getCreateTime, LocalDateTime.now().minusDays(1)));
|
||||
add.setDocumentNumber(s+"-"+(l+1));
|
||||
}
|
||||
boolean flag = baseMapper.insert(add) > 0;
|
||||
if (flag) {
|
||||
bo.setId(add.getId());
|
||||
}
|
||||
return flag;
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改项目风险评估签审意见
|
||||
*
|
||||
* @param bo 项目风险评估签审意见
|
||||
* @return 是否修改成功
|
||||
*/
|
||||
@Override
|
||||
public Boolean updateByBo(XzdProjectRiskAssessmentBo bo) {
|
||||
XzdProjectRiskAssessment update = MapstructUtils.convert(bo, XzdProjectRiskAssessment.class);
|
||||
validEntityBeforeSave(update);
|
||||
return baseMapper.updateById(update) > 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* 保存前的数据校验
|
||||
*/
|
||||
private void validEntityBeforeSave(XzdProjectRiskAssessment entity){
|
||||
//TODO 做一些数据校验,如唯一约束
|
||||
}
|
||||
|
||||
/**
|
||||
* 校验并批量删除项目风险评估签审意见信息
|
||||
*
|
||||
* @param ids 待删除的主键集合
|
||||
* @param isValid 是否进行有效性校验
|
||||
* @return 是否删除成功
|
||||
*/
|
||||
@Override
|
||||
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
|
||||
if(isValid){
|
||||
//TODO 做一些业务上的校验,判断是否需要校验
|
||||
}
|
||||
return baseMapper.deleteByIds(ids) > 0;
|
||||
}
|
||||
}
|
||||
@ -5,17 +5,14 @@ import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.dromara.common.core.domain.R;
|
||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||
import org.dromara.xzd.domain.XzdCustomertype;
|
||||
import org.dromara.xzd.domain.dto.AddCorrespondentDto;
|
||||
import org.dromara.xzd.domain.dto.QuerCorrespondentDto;
|
||||
import org.dromara.xzd.domain.dto.XzdClienteleListDto;
|
||||
import org.dromara.xzd.domain.vo.XzdClienteleListSumVo;
|
||||
import org.dromara.xzd.domain.vo.XzdClienteleListVo;
|
||||
import org.dromara.xzd.domain.vo.XzdCustomertypeVo;
|
||||
import org.dromara.xzd.domain.vo.XzdPoiAreaVo;
|
||||
import org.dromara.xzd.service.IXzdCorrespondentList;
|
||||
import org.dromara.xzd.service.IXzdCustomertypeInfoService;
|
||||
import org.dromara.xzd.service.IXzdCustomertypeService;
|
||||
import org.dromara.xzd.service.IXzdPoiAreaService;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
@ -38,7 +35,6 @@ public class XzdCorrespondentList {
|
||||
/**
|
||||
* 查询区域列表
|
||||
*/
|
||||
// @SaCheckPermission("xzd:poiArea:list")
|
||||
@GetMapping("/list")
|
||||
public R<XzdPoiAreaVo> list() {
|
||||
return iXzdCorrespondentList.queryPageList();
|
||||
@ -48,19 +44,29 @@ public class XzdCorrespondentList {
|
||||
/**
|
||||
* 客户信息添加
|
||||
*/
|
||||
@SaCheckPermission("xzd:poiArea:add")
|
||||
@SaCheckPermission("xzd:customertypeInfo:add")
|
||||
@PostMapping("/addCorrespondent")
|
||||
public R<String> addCorrespondent(@RequestBody AddCorrespondentDto dto) {
|
||||
return iXzdCorrespondentList.addCorrespondent(dto);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 客户信息修改
|
||||
*/
|
||||
@SaCheckPermission("xzd:customertypeInfo:edit")
|
||||
@PutMapping("/addCorrespondent")
|
||||
public R<String> putCorrespondent(@RequestBody AddCorrespondentDto dto) {
|
||||
return iXzdCorrespondentList.putCorrespondent(dto);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 客户信息删除
|
||||
*/
|
||||
@SaCheckPermission("xzd:poiArea:del")
|
||||
@PostMapping("/delCorrespondent")
|
||||
public R<String> delCorrespondent(@RequestBody List<AddCorrespondentDto> dto) {
|
||||
@SaCheckPermission("xzd:customertypeInfo:remove")
|
||||
@DeleteMapping("/delCorrespondent/{dto}")
|
||||
public R<String> delCorrespondent(@PathVariable Long[] dto) {
|
||||
return iXzdCorrespondentList.delCorrespondent(dto);
|
||||
}
|
||||
|
||||
@ -69,9 +75,9 @@ public class XzdCorrespondentList {
|
||||
/**
|
||||
* 客户信息列表
|
||||
*/
|
||||
@SaCheckPermission("xzd:poiArea:list")
|
||||
@PostMapping("/queryCustomertype")
|
||||
public R<XzdClienteleListSumVo> queryCustomertype(@RequestBody XzdClienteleListDto dto, PageQuery pageQuery) {
|
||||
@SaCheckPermission("xzd:customertypeInfo:query")
|
||||
@GetMapping("/queryCustomertype")
|
||||
public R<XzdClienteleListSumVo> queryCustomertype( XzdClienteleListDto dto, PageQuery pageQuery) {
|
||||
return iXzdCorrespondentList.queryCustomertype(dto, pageQuery);
|
||||
}
|
||||
|
||||
@ -79,21 +85,19 @@ public class XzdCorrespondentList {
|
||||
/**
|
||||
* 客户类型列表
|
||||
*/
|
||||
@SaCheckPermission("xzd:poiArea:list")
|
||||
@SaCheckPermission("xzd:customertypeInfo:query")
|
||||
@PostMapping("/queryCustomertypeList")
|
||||
public R<List<XzdCustomertypeVo>> queryCustomertypeList() {
|
||||
return iXzdCustomertypeService.queryCustomertypeList();
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 客户详情
|
||||
*/
|
||||
@GetMapping("/getCustomerByid/{id}")
|
||||
public R<QuerCorrespondentDto> getCustomerByid(@PathVariable Long id) {
|
||||
return iXzdCorrespondentList.getCustomerByid(id);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -0,0 +1,99 @@
|
||||
package org.dromara.xzd.controller;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import cn.hutool.core.lang.tree.Tree;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import jakarta.servlet.http.HttpServletResponse;
|
||||
import jakarta.validation.constraints.*;
|
||||
import org.dromara.xzd.domain.bo.XzdProjectTypeBo;
|
||||
import org.dromara.xzd.domain.vo.XzdProjectTypeVo;
|
||||
import org.dromara.xzd.service.IXzdProjectTypeService;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.dromara.common.idempotent.annotation.RepeatSubmit;
|
||||
import org.dromara.common.log.annotation.Log;
|
||||
import org.dromara.common.web.core.BaseController;
|
||||
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.log.enums.BusinessType;
|
||||
import org.dromara.common.excel.utils.ExcelUtil;
|
||||
|
||||
|
||||
/**
|
||||
* 项目类型
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-10-09
|
||||
*/
|
||||
@Validated
|
||||
@RequiredArgsConstructor
|
||||
@RestController
|
||||
@RequestMapping("/system/projectType")
|
||||
public class XzdProjectTypeController extends BaseController {
|
||||
|
||||
private final IXzdProjectTypeService xzdProjectTypeService;
|
||||
|
||||
/**
|
||||
* 查询项目类型列表
|
||||
*/
|
||||
@GetMapping("/list")
|
||||
public R<List<Tree<String>>> list(XzdProjectTypeBo bo) {
|
||||
List<XzdProjectTypeVo> list = xzdProjectTypeService.queryList(bo);
|
||||
return R.ok(xzdProjectTypeService.buildMenuTreeSelect(list));
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出项目类型列表
|
||||
*/
|
||||
@Log(title = "项目类型", businessType = BusinessType.EXPORT)
|
||||
@PostMapping("/export")
|
||||
public void export(XzdProjectTypeBo bo, HttpServletResponse response) {
|
||||
List<XzdProjectTypeVo> list = xzdProjectTypeService.queryList(bo);
|
||||
ExcelUtil.exportExcel(list, "项目类型", XzdProjectTypeVo.class, response);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取项目类型详细信息
|
||||
*
|
||||
* @param id 主键
|
||||
*/
|
||||
@GetMapping("/{id}")
|
||||
public R<XzdProjectTypeVo> getInfo(@NotNull(message = "主键不能为空")
|
||||
@PathVariable Long id) {
|
||||
return R.ok(xzdProjectTypeService.queryById(id));
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增项目类型
|
||||
*/
|
||||
@Log(title = "项目类型", businessType = BusinessType.INSERT)
|
||||
@RepeatSubmit()
|
||||
@PostMapping()
|
||||
public R<Void> add(@Validated(AddGroup.class) @RequestBody XzdProjectTypeBo bo) {
|
||||
return toAjax(xzdProjectTypeService.insertByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改项目类型
|
||||
*/
|
||||
@Log(title = "项目类型", businessType = BusinessType.UPDATE)
|
||||
@RepeatSubmit()
|
||||
@PutMapping()
|
||||
public R<Void> edit(@Validated(EditGroup.class) @RequestBody XzdProjectTypeBo bo) {
|
||||
return toAjax(xzdProjectTypeService.updateByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除项目类型
|
||||
*
|
||||
* @param ids 主键串
|
||||
*/
|
||||
@Log(title = "项目类型", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{ids}")
|
||||
public R<Void> remove(@NotEmpty(message = "主键不能为空")
|
||||
@PathVariable Long[] ids) {
|
||||
return toAjax(xzdProjectTypeService.deleteWithValidByIds(List.of(ids), true));
|
||||
}
|
||||
}
|
||||
@ -4,11 +4,8 @@ import org.dromara.common.mybatis.core.domain.BaseEntity;
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import org.dromara.xzd.domain.vo.XzdCustomertypeInfoVo;
|
||||
import org.dromara.xzd.domain.vo.XzdCustomertypeVo;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 客户|供应商类型(公共)对象 xzd_customertype
|
||||
|
||||
@ -14,9 +14,8 @@ import java.io.Serial;
|
||||
* @date 2025-09-30
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@TableName("xzd_poi_area")
|
||||
public class XzdPoiArea extends BaseEntity {
|
||||
public class XzdPoiArea {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@ -0,0 +1,54 @@
|
||||
package org.dromara.xzd.domain;
|
||||
|
||||
import org.dromara.common.mybatis.core.domain.BaseEntity;
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import java.util.Date;
|
||||
|
||||
import java.io.Serial;
|
||||
|
||||
/**
|
||||
* 项目类型对象 xzd_project_type
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-10-09
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@TableName("xzd_project_type")
|
||||
public class XzdProjectType extends BaseEntity {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 主键ID
|
||||
*/
|
||||
@TableId(value = "id")
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 父节点ID
|
||||
*/
|
||||
private Long parentId;
|
||||
|
||||
/**
|
||||
* 项目类型名称
|
||||
*/
|
||||
private String typeName;
|
||||
|
||||
/**
|
||||
* 排序
|
||||
*/
|
||||
private Long sortOrder;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remark;
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
@ -1,5 +1,6 @@
|
||||
package org.dromara.xzd.domain;
|
||||
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
import org.dromara.common.mybatis.core.domain.BaseEntity;
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import lombok.Data;
|
||||
@ -42,6 +43,11 @@ public class XzdSettlementInfo extends BaseEntity {
|
||||
*/
|
||||
private String settlementUnit;
|
||||
|
||||
/**
|
||||
* 分管部门
|
||||
*/
|
||||
private String branchedPassage;
|
||||
|
||||
/**
|
||||
* 结算方式
|
||||
*/
|
||||
|
||||
@ -8,6 +8,9 @@ import io.github.linpeilie.annotations.AutoMapper;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import jakarta.validation.constraints.*;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.Date;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
|
||||
@ -50,12 +53,12 @@ public class XzdCertificateInfoBo extends BaseEntity {
|
||||
/**
|
||||
* 生效日期
|
||||
*/
|
||||
private Date effectiveDate;
|
||||
private LocalDateTime effectiveDate;
|
||||
|
||||
/**
|
||||
* 截止日期
|
||||
*/
|
||||
private Date expirationDate;
|
||||
private LocalDateTime expirationDate;
|
||||
|
||||
/**
|
||||
* 停用标志(0:未停用,1:已停用)
|
||||
|
||||
@ -8,6 +8,9 @@ import io.github.linpeilie.annotations.AutoMapper;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import jakarta.validation.constraints.*;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.Date;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
|
||||
@ -75,12 +78,12 @@ public class XzdCustomerDetailBo extends BaseEntity {
|
||||
/**
|
||||
* 冻结开始时间
|
||||
*/
|
||||
private Date freezeStartTime;
|
||||
private LocalDateTime freezeStartTime;
|
||||
|
||||
/**
|
||||
* 冻结结束时间
|
||||
*/
|
||||
private Date freezeEndTime;
|
||||
private LocalDateTime freezeEndTime;
|
||||
|
||||
/**
|
||||
* 经销商类型
|
||||
|
||||
@ -8,6 +8,9 @@ import io.github.linpeilie.annotations.AutoMapper;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import jakarta.validation.constraints.*;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.Date;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
|
||||
@ -123,7 +126,7 @@ public class XzdCustomerinformationBo extends BaseEntity {
|
||||
/**
|
||||
* 工商变更时间
|
||||
*/
|
||||
private Date industrialCommercialChangeTime;
|
||||
private LocalDateTime industrialCommercialChangeTime;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
@ -163,7 +166,7 @@ public class XzdCustomerinformationBo extends BaseEntity {
|
||||
/**
|
||||
* 单位成立日期
|
||||
*/
|
||||
private Date establishmentDate;
|
||||
private LocalDateTime establishmentDate;
|
||||
|
||||
/**
|
||||
* 纳税身份类型
|
||||
@ -208,7 +211,7 @@ public class XzdCustomerinformationBo extends BaseEntity {
|
||||
/**
|
||||
* 注册时间
|
||||
*/
|
||||
private Date registrationTime;
|
||||
private LocalDateTime registrationTime;
|
||||
|
||||
/**
|
||||
* 营业范围
|
||||
|
||||
@ -8,6 +8,9 @@ import io.github.linpeilie.annotations.AutoMapper;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import jakarta.validation.constraints.*;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.Date;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
|
||||
@ -75,7 +78,7 @@ public class XzdProjectInfoBo extends BaseEntity {
|
||||
/**
|
||||
* 项目日期
|
||||
*/
|
||||
private Date projectDate;
|
||||
private LocalDateTime projectDate;
|
||||
|
||||
/**
|
||||
* 管理组织
|
||||
|
||||
@ -0,0 +1,55 @@
|
||||
package org.dromara.xzd.domain.bo;
|
||||
|
||||
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 lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import jakarta.validation.constraints.*;
|
||||
import org.dromara.xzd.domain.XzdProjectType;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* 项目类型业务对象 xzd_project_type
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-10-09
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@AutoMapper(target = XzdProjectType.class, reverseConvertGenerate = false)
|
||||
public class XzdProjectTypeBo extends BaseEntity {
|
||||
|
||||
/**
|
||||
* 主键ID
|
||||
*/
|
||||
@NotNull(message = "主键ID不能为空", groups = { EditGroup.class })
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 父节点ID
|
||||
*/
|
||||
@NotNull(message = "父节点ID不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long parentId;
|
||||
|
||||
/**
|
||||
* 项目类型名称
|
||||
*/
|
||||
@NotBlank(message = "项目类型名称不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private String typeName;
|
||||
|
||||
/**
|
||||
* 排序
|
||||
*/
|
||||
private Long sortOrder;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remark;
|
||||
|
||||
|
||||
|
||||
}
|
||||
@ -75,6 +75,11 @@ public class XzdSettlementInfoBo extends BaseEntity {
|
||||
*/
|
||||
private String accountName;
|
||||
|
||||
/**
|
||||
* 分管部门
|
||||
*/
|
||||
private String branchedPassage;
|
||||
|
||||
/**
|
||||
* 开户行省
|
||||
*/
|
||||
|
||||
@ -37,10 +37,10 @@ public class AddCorrespondentDto {
|
||||
private XzdBusinessInfoBo xzdBusinessInfo;
|
||||
|
||||
// 项目信息
|
||||
private XzdProjectInfoBo xzdProjectInfo;
|
||||
private List<XzdProjectInfoBo> xzdProjectInfo;
|
||||
|
||||
// 合同信息
|
||||
private XzdContractInfoBo xzdContractInfo;
|
||||
private List<XzdContractInfoBo> xzdContractInfo;
|
||||
|
||||
// 客户类型信息
|
||||
private List<XzdCustomertypeInfoBo> xzdCustomertypeInfo;
|
||||
|
||||
@ -0,0 +1,50 @@
|
||||
package org.dromara.xzd.domain.dto;
|
||||
|
||||
|
||||
import lombok.Data;
|
||||
import org.dromara.xzd.domain.*;
|
||||
import org.dromara.xzd.domain.bo.*;
|
||||
import org.dromara.xzd.domain.vo.XzdCustomerDetailVo;
|
||||
import org.dromara.xzd.domain.vo.XzdCustomerinformationVo;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Data
|
||||
public class QuerCorrespondentDto {
|
||||
|
||||
// 客户信息
|
||||
private XzdCustomerinformationVo xzdCustomerinformation;
|
||||
|
||||
// tab客户信息
|
||||
private XzdCustomerDetail xzdCustomerDetail;
|
||||
|
||||
// 地址信息
|
||||
private List<XzdAddressInfo> xzdAddressInfo;
|
||||
|
||||
// 联系人信息
|
||||
private List<XzdContact> xzdContact;
|
||||
|
||||
// 证件信息
|
||||
private List<XzdCertificateInfo> xzdCertificateInfo;
|
||||
|
||||
// 资质信息
|
||||
private List<XzdQualificationInfo> xzdQualificationInfo;
|
||||
|
||||
// 结算信息
|
||||
private XzdSettlementInfo xzdSettlementInfo;
|
||||
|
||||
// 业务信息
|
||||
private XzdBusinessInfo xzdBusinessInfo;
|
||||
|
||||
// 项目信息
|
||||
private List<XzdProjectInfo> xzdProjectInfo;
|
||||
|
||||
// 合同信息
|
||||
private List<XzdContractInfo> xzdContractInfo;
|
||||
|
||||
// 客户类型信息
|
||||
private List<XzdCustomertypeInfo> xzdCustomertypeInfo;
|
||||
|
||||
|
||||
|
||||
}
|
||||
@ -16,6 +16,12 @@ public class XzdClienteleListDto {
|
||||
*/
|
||||
private String unitCode;
|
||||
|
||||
/**
|
||||
* 区域ID
|
||||
*/
|
||||
private Long poiAreaId;
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 单位名称
|
||||
|
||||
@ -15,15 +15,22 @@ import java.util.Date;
|
||||
public class XzdClienteleListVo {
|
||||
|
||||
|
||||
// 未找到字段 审核人,冻结人,工作流标志,是否加入黑名单,变更状态
|
||||
// 未找到字段 审核人,冻结人,工作流标志,变更状态
|
||||
|
||||
|
||||
// XzdCustomerinformationBo
|
||||
|
||||
// 客户id
|
||||
|
||||
private Long customerId;
|
||||
|
||||
|
||||
/**
|
||||
* 单位编号
|
||||
*/
|
||||
private String unitCode;
|
||||
|
||||
|
||||
/**
|
||||
* 单位名称
|
||||
*/
|
||||
|
||||
@ -11,7 +11,7 @@ import lombok.Data;
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
|
||||
|
||||
/**
|
||||
@ -65,9 +65,5 @@ public class XzdCustomertypeVo implements Serializable {
|
||||
@ExcelProperty(value = "客户类型")
|
||||
private String customerType;
|
||||
|
||||
/**
|
||||
* 子节点
|
||||
*/
|
||||
List<XzdCustomertypeVo> children;
|
||||
|
||||
}
|
||||
|
||||
@ -0,0 +1,67 @@
|
||||
package org.dromara.xzd.domain.vo;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
|
||||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
import io.github.linpeilie.annotations.AutoMapper;
|
||||
import lombok.Data;
|
||||
import org.dromara.xzd.domain.XzdProjectType;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
|
||||
|
||||
/**
|
||||
* 项目类型视图对象 xzd_project_type
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-10-09
|
||||
*/
|
||||
@Data
|
||||
@ExcelIgnoreUnannotated
|
||||
@AutoMapper(target = XzdProjectType.class)
|
||||
public class XzdProjectTypeVo implements Serializable {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 主键ID
|
||||
*/
|
||||
@ExcelProperty(value = "主键ID")
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 父节点ID
|
||||
*/
|
||||
@ExcelProperty(value = "父节点ID")
|
||||
private Long parentId;
|
||||
|
||||
/**
|
||||
* 项目类型名称
|
||||
*/
|
||||
@ExcelProperty(value = "项目类型名称")
|
||||
private String typeName;
|
||||
|
||||
/**
|
||||
* 排序
|
||||
*/
|
||||
@ExcelProperty(value = "排序")
|
||||
private Long sortOrder;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
@ExcelProperty(value = "备注")
|
||||
private String remark;
|
||||
|
||||
|
||||
private List<XzdProjectTypeVo> children = new ArrayList<>();;
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
@ -58,6 +58,13 @@ public class XzdSettlementInfoVo implements Serializable {
|
||||
@ExcelProperty(value = "结算方式")
|
||||
private String settlementMethod;
|
||||
|
||||
|
||||
/**
|
||||
* 分管部门
|
||||
*/
|
||||
@ExcelProperty(value = "分管部门")
|
||||
private String branchedPassage;
|
||||
|
||||
/**
|
||||
* 结算币种
|
||||
*/
|
||||
|
||||
@ -3,8 +3,8 @@ package org.dromara.xzd.enums;
|
||||
|
||||
public enum ZxdEnum {
|
||||
|
||||
TYPE_CORRESPONDENT("类型","1"),
|
||||
TYPE_SUPPLIER("类型","2");
|
||||
TYPE_CORRESPONDENT("客户","1"),
|
||||
TYPE_SUPPLIER("供应商","2");
|
||||
|
||||
|
||||
private final String TypeName;
|
||||
|
||||
@ -0,0 +1,16 @@
|
||||
package org.dromara.xzd.mapper;
|
||||
|
||||
|
||||
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
|
||||
import org.dromara.xzd.domain.XzdProjectType;
|
||||
import org.dromara.xzd.domain.vo.XzdProjectTypeVo;
|
||||
|
||||
/**
|
||||
* 项目类型Mapper接口
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-10-09
|
||||
*/
|
||||
public interface XzdProjectTypeMapper extends BaseMapperPlus<XzdProjectType, XzdProjectTypeVo> {
|
||||
|
||||
}
|
||||
@ -3,6 +3,7 @@ package org.dromara.xzd.service;
|
||||
import org.dromara.common.core.domain.R;
|
||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||
import org.dromara.xzd.domain.dto.AddCorrespondentDto;
|
||||
import org.dromara.xzd.domain.dto.QuerCorrespondentDto;
|
||||
import org.dromara.xzd.domain.dto.XzdClienteleListDto;
|
||||
import org.dromara.xzd.domain.vo.XzdClienteleListSumVo;
|
||||
import org.dromara.xzd.domain.vo.XzdClienteleListVo;
|
||||
@ -16,7 +17,11 @@ public interface IXzdCorrespondentList {
|
||||
|
||||
R<String> addCorrespondent(AddCorrespondentDto dto);
|
||||
|
||||
R<String> delCorrespondent(List<AddCorrespondentDto> dto);
|
||||
R<String> delCorrespondent(Long[] dto);
|
||||
|
||||
R<XzdClienteleListSumVo> queryCustomertype(XzdClienteleListDto dto, PageQuery pageQuery);
|
||||
|
||||
R<String> putCorrespondent(AddCorrespondentDto dto);
|
||||
|
||||
R<QuerCorrespondentDto> getCustomerByid(Long id);
|
||||
}
|
||||
|
||||
@ -73,4 +73,6 @@ public interface IXzdCustomertypeService extends IService<XzdCustomertype>{
|
||||
R<List<AddCorrespondentDto>> queryCustomertype();
|
||||
|
||||
R<List<XzdCustomertypeVo>> queryCustomertypeList();
|
||||
|
||||
R<AddCorrespondentDto> getCustomerByid(Long id);
|
||||
}
|
||||
|
||||
@ -0,0 +1,65 @@
|
||||
package org.dromara.xzd.service;
|
||||
|
||||
|
||||
|
||||
import cn.hutool.core.lang.tree.Tree;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import org.dromara.xzd.domain.XzdProjectType;
|
||||
import org.dromara.xzd.domain.bo.XzdProjectTypeBo;
|
||||
import org.dromara.xzd.domain.vo.XzdProjectTypeVo;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 项目类型Service接口
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-10-09
|
||||
*/
|
||||
public interface IXzdProjectTypeService extends IService<XzdProjectType>{
|
||||
|
||||
/**
|
||||
* 查询项目类型
|
||||
*
|
||||
* @param id 主键
|
||||
* @return 项目类型
|
||||
*/
|
||||
XzdProjectTypeVo queryById(Long id);
|
||||
|
||||
|
||||
/**
|
||||
* 查询符合条件的项目类型列表
|
||||
*
|
||||
* @param bo 查询条件
|
||||
* @return 项目类型列表
|
||||
*/
|
||||
List<XzdProjectTypeVo> queryList(XzdProjectTypeBo bo);
|
||||
|
||||
/**
|
||||
* 新增项目类型
|
||||
*
|
||||
* @param bo 项目类型
|
||||
* @return 是否新增成功
|
||||
*/
|
||||
Boolean insertByBo(XzdProjectTypeBo bo);
|
||||
|
||||
/**
|
||||
* 修改项目类型
|
||||
*
|
||||
* @param bo 项目类型
|
||||
* @return 是否修改成功
|
||||
*/
|
||||
Boolean updateByBo(XzdProjectTypeBo bo);
|
||||
|
||||
/**
|
||||
* 校验并批量删除项目类型信息
|
||||
*
|
||||
* @param ids 待删除的主键集合
|
||||
* @param isValid 是否进行有效性校验
|
||||
* @return 是否删除成功
|
||||
*/
|
||||
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
|
||||
|
||||
List<Tree<String>> buildMenuTreeSelect(List<XzdProjectTypeVo> list);
|
||||
}
|
||||
@ -3,6 +3,8 @@ package org.dromara.xzd.service.impl;
|
||||
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.dromara.common.core.domain.R;
|
||||
@ -13,22 +15,24 @@ import org.dromara.system.service.impl.SysOssServiceImpl;
|
||||
import org.dromara.xzd.domain.*;
|
||||
import org.dromara.xzd.domain.bo.*;
|
||||
import org.dromara.xzd.domain.dto.AddCorrespondentDto;
|
||||
import org.dromara.xzd.domain.dto.QuerCorrespondentDto;
|
||||
import org.dromara.xzd.domain.dto.XzdClienteleListDto;
|
||||
import org.dromara.xzd.domain.vo.XzdClienteleListSumVo;
|
||||
import org.dromara.xzd.domain.vo.XzdClienteleListVo;
|
||||
import org.dromara.xzd.domain.vo.XzdCustomerinformationVo;
|
||||
import org.dromara.xzd.domain.vo.XzdPoiAreaVo;
|
||||
import org.dromara.xzd.enums.ZxdEnum;
|
||||
import org.dromara.xzd.mapper.XzdCustomerinformationMapper;
|
||||
import org.dromara.xzd.service.*;
|
||||
import org.dromara.xzd.utilS.AreaUtil;
|
||||
import org.dromara.xzd.utilS.IdWorker;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.cache.annotation.Cacheable;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
|
||||
@ -43,6 +47,7 @@ public class XzdCorrespondentListImp implements IXzdCorrespondentList {
|
||||
|
||||
private final IXzdCustomerDetailService xzdCustomerDetailService;
|
||||
|
||||
|
||||
private final IXzdAddressInfoService xzdAddressInfoService;
|
||||
|
||||
private final SysOssServiceImpl sysOssService;
|
||||
@ -77,24 +82,26 @@ public class XzdCorrespondentListImp implements IXzdCorrespondentList {
|
||||
@Cacheable(cacheNames = "xzdquList")
|
||||
public R<XzdPoiAreaVo> queryPageList() {
|
||||
XzdPoiAreaVo xzdPoiAreaVo = new XzdPoiAreaVo();
|
||||
XzdPoiAreaVo areaList = areaUtil.getAreaList(100000L, xzdPoiAreaVo);
|
||||
XzdPoiAreaVo areaList = areaUtil.getAreaList(0L, xzdPoiAreaVo);
|
||||
return R.ok("成功",areaList);
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public R<String> addCorrespondent(AddCorrespondentDto dto) {
|
||||
|
||||
// 客户信息添加 客户id
|
||||
long id = IdWorker.getID();
|
||||
dto.getXzdCustomerinformation().setId(id);
|
||||
// dto.getXzdCustomerinformation().setId(id);
|
||||
dto.getXzdCustomerinformation().setPoiAreaId(dto.getXzdCustomerinformation().getPoiAreaId());
|
||||
dto.getXzdCustomerinformation().setCreateDept(LoginHelper.getDeptId());
|
||||
dto.getXzdCustomerinformation().setCreateBy((LoginHelper.getUserId()));
|
||||
// dto.getXzdCustomerinformation().setCreateTime(LocalDateTime.now());
|
||||
xzdCustomerinformationService.insertByBo(dto.getXzdCustomerinformation());
|
||||
|
||||
long id = dto.getXzdCustomerinformation().getId();
|
||||
|
||||
// tab客户信息添加
|
||||
if (dto.getXzdCustomerDetail() != null){
|
||||
dto.getXzdCustomerDetail().setId(IdWorker.getID());
|
||||
dto.getXzdCustomerDetail().setCustomerinformationId(id);
|
||||
dto.getXzdCustomerDetail().setCreateDept(LoginHelper.getDeptId());
|
||||
dto.getXzdCustomerDetail().setCreateBy((LoginHelper.getUserId()));
|
||||
@ -106,7 +113,6 @@ public class XzdCorrespondentListImp implements IXzdCorrespondentList {
|
||||
if (xzdAddressInfo != null && xzdAddressInfo.size() > 0) {
|
||||
Collection<XzdAddressInfo> collect = xzdAddressInfo.stream().map(xzdAddressInfoBo -> {
|
||||
xzdAddressInfoBo.setCustomerinformationId(id);
|
||||
xzdAddressInfoBo.setId(IdWorker.getID());
|
||||
xzdAddressInfoBo.setCreateDept(LoginHelper.getDeptId());
|
||||
xzdAddressInfoBo.setCreateBy((LoginHelper.getUserId()));
|
||||
// xzdAddressInfoBo.setCreateTime(LocalDateTime.now());
|
||||
@ -121,13 +127,11 @@ public class XzdCorrespondentListImp implements IXzdCorrespondentList {
|
||||
|
||||
// 联系人信息添加
|
||||
List<XzdContactBo> xzdContact = dto.getXzdContact();
|
||||
if (xzdContact != null && xzdContact.isEmpty()) {
|
||||
if (xzdContact != null && xzdContact.size() > 0) {
|
||||
Collection<XzdContact> collect1 = xzdContact.stream().map(xzdContactBo -> {
|
||||
xzdContactBo.setCustomerinformationId(id);
|
||||
xzdContactBo.setId(IdWorker.getID());
|
||||
xzdContactBo.setCreateDept(LoginHelper.getDeptId());
|
||||
xzdContactBo.setCreateBy((LoginHelper.getUserId()));
|
||||
// xzdContactBo.setCreateTime(LocalDateTime.now());
|
||||
xzdContactBo.setType(ZxdEnum.TYPE_CORRESPONDENT.getTypeValue());
|
||||
XzdContact temp = new XzdContact();
|
||||
BeanUtil.copyProperties(xzdContactBo, temp);
|
||||
@ -141,7 +145,6 @@ public class XzdCorrespondentListImp implements IXzdCorrespondentList {
|
||||
List<XzdCertificateInfoBo> xzdCertificateInfo = dto.getXzdCertificateInfo();
|
||||
if (xzdCertificateInfo != null && xzdCertificateInfo.size() > 0) {
|
||||
List<XzdCertificateInfo> collect2 = xzdCertificateInfo.stream().map(xzdCertificateInfoBo -> {
|
||||
xzdCertificateInfoBo.setId(IdWorker.getID());
|
||||
xzdCertificateInfoBo.setCustomerinformationId(id);
|
||||
xzdCertificateInfoBo.setCreateDept(LoginHelper.getDeptId());
|
||||
xzdCertificateInfoBo.setCreateBy((LoginHelper.getUserId()));
|
||||
@ -161,7 +164,7 @@ public class XzdCorrespondentListImp implements IXzdCorrespondentList {
|
||||
List<XzdQualificationInfoBo> xzdQualificationInfo = dto.getXzdQualificationInfo();
|
||||
if (xzdQualificationInfo != null && xzdQualificationInfo.size() > 0) {
|
||||
List<XzdQualificationInfo> collect3 = xzdQualificationInfo.stream().map(xzdQualificationInfoBo -> {
|
||||
xzdQualificationInfoBo.setId(IdWorker.getID());
|
||||
|
||||
xzdQualificationInfoBo.setCustomerinformationId(id);
|
||||
xzdQualificationInfoBo.setType(ZxdEnum.TYPE_CORRESPONDENT.getTypeValue());
|
||||
xzdQualificationInfoBo.setCreateBy((LoginHelper.getUserId()));
|
||||
@ -180,7 +183,6 @@ public class XzdCorrespondentListImp implements IXzdCorrespondentList {
|
||||
// 结算信息添加
|
||||
XzdSettlementInfoBo xzdSettlementInfo = dto.getXzdSettlementInfo();
|
||||
if (xzdSettlementInfo != null) {
|
||||
xzdSettlementInfo.setId(IdWorker.getID());
|
||||
xzdSettlementInfo.setCustomerinformationId(id);
|
||||
xzdSettlementInfo.setCreateDept(LoginHelper.getDeptId());
|
||||
xzdSettlementInfo.setCreateBy((LoginHelper.getUserId()));
|
||||
@ -195,7 +197,6 @@ public class XzdCorrespondentListImp implements IXzdCorrespondentList {
|
||||
// 业务信息添加
|
||||
XzdBusinessInfoBo xzdBusinessInfo = dto.getXzdBusinessInfo();
|
||||
if (xzdBusinessInfo != null) {
|
||||
xzdBusinessInfo.setId(IdWorker.getID());
|
||||
xzdBusinessInfo.setCustomerinformationId(id);
|
||||
xzdBusinessInfo.setCreateDept(LoginHelper.getDeptId());
|
||||
xzdBusinessInfo.setCreateBy((LoginHelper.getUserId()));
|
||||
@ -209,32 +210,37 @@ public class XzdCorrespondentListImp implements IXzdCorrespondentList {
|
||||
|
||||
// 项目信息添加
|
||||
|
||||
XzdProjectInfoBo xzdProjectInfo = dto.getXzdProjectInfo();
|
||||
List<XzdProjectInfoBo> xzdProjectInfo = dto.getXzdProjectInfo();
|
||||
if (xzdProjectInfo != null) {
|
||||
xzdProjectInfo.setId(IdWorker.getID());
|
||||
xzdProjectInfo.setCustomerinformationId(id);
|
||||
xzdProjectInfo.setCreateDept(LoginHelper.getDeptId());
|
||||
xzdProjectInfo.setCreateBy((LoginHelper.getUserId()));
|
||||
// xzdProjectInfo.setCreateTime(LocalDateTime.now());
|
||||
xzdProjectInfo.setType(ZxdEnum.TYPE_CORRESPONDENT.getTypeValue());
|
||||
XzdProjectInfo info = new XzdProjectInfo();
|
||||
BeanUtil.copyProperties(xzdProjectInfo, info);
|
||||
xzdProjectInfoService.save(info);
|
||||
List<XzdProjectInfo> collect = xzdProjectInfo.stream().map(item -> {
|
||||
item.setCustomerinformationId(id);
|
||||
item.setCreateDept(LoginHelper.getDeptId());
|
||||
item.setCreateBy((LoginHelper.getUserId()));
|
||||
item.setType(ZxdEnum.TYPE_CORRESPONDENT.getTypeValue());
|
||||
XzdProjectInfo info = new XzdProjectInfo();
|
||||
BeanUtil.copyProperties(item, info);
|
||||
return info;
|
||||
}).collect(Collectors.toList());
|
||||
|
||||
xzdProjectInfoService.saveBatch(collect);
|
||||
|
||||
}
|
||||
|
||||
|
||||
// 合同信息添加
|
||||
XzdContractInfoBo xzdContractInfo = dto.getXzdContractInfo();
|
||||
List<XzdContractInfoBo> xzdContractInfo = dto.getXzdContractInfo();
|
||||
if (xzdContractInfo != null) {
|
||||
xzdContractInfo.setId(IdWorker.getID());
|
||||
xzdContractInfo.setCreateDept(LoginHelper.getDeptId());
|
||||
xzdContractInfo.setCreateBy((LoginHelper.getUserId()));
|
||||
// xzdContractInfo.setCreateTime(LocalDateTime.now());
|
||||
xzdContractInfo.setCustomerinformationId(id);
|
||||
xzdContractInfo.setType(ZxdEnum.TYPE_CORRESPONDENT.getTypeValue());
|
||||
XzdContractInfo info = new XzdContractInfo();
|
||||
BeanUtil.copyProperties(xzdContractInfo, info);
|
||||
xzdContractInfoService.save(info);
|
||||
List<XzdContractInfo> collect = xzdContractInfo.stream().map(item -> {
|
||||
item.setCreateDept(LoginHelper.getDeptId());
|
||||
item.setCreateBy((LoginHelper.getUserId()));
|
||||
item.setCustomerinformationId(id);
|
||||
item.setType(ZxdEnum.TYPE_CORRESPONDENT.getTypeValue());
|
||||
XzdContractInfo info = new XzdContractInfo();
|
||||
BeanUtil.copyProperties(item, info);
|
||||
return info;
|
||||
}).collect(Collectors.toList());
|
||||
|
||||
xzdContractInfoService.saveBatch(collect);
|
||||
}
|
||||
|
||||
|
||||
@ -243,7 +249,7 @@ public class XzdCorrespondentListImp implements IXzdCorrespondentList {
|
||||
List<XzdCustomertypeInfoBo> xzdCustomertypeInfo = dto.getXzdCustomertypeInfo();
|
||||
if (xzdCustomertypeInfo != null && xzdCustomertypeInfo.size() > 0) {
|
||||
List<XzdCustomertypeInfo> collect = xzdCustomertypeInfo.stream().map(item -> {
|
||||
item.setCustomertypeId(id);
|
||||
item.setCustomerinformationId(id);
|
||||
item.setCreateDept(LoginHelper.getDeptId());
|
||||
item.setCreateBy((LoginHelper.getUserId()));
|
||||
// item.setCreateTime(LocalDateTime.now());
|
||||
@ -258,18 +264,14 @@ public class XzdCorrespondentListImp implements IXzdCorrespondentList {
|
||||
}
|
||||
|
||||
@Override
|
||||
public R<String> delCorrespondent(List<AddCorrespondentDto> dtos) {
|
||||
if (dtos != null && dtos.size() > 0) {
|
||||
dtos.forEach(item -> {
|
||||
delCorrespondentVoid(item);
|
||||
|
||||
});
|
||||
public R<String> delCorrespondent(Long[] dto) {
|
||||
|
||||
for (int i = dto.length - 1; i >= 0; i--) {
|
||||
delCorrespondentVoid(dto[i]);
|
||||
}
|
||||
|
||||
return R.ok("删除成功");
|
||||
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -287,31 +289,248 @@ public class XzdCorrespondentListImp implements IXzdCorrespondentList {
|
||||
return R.ok(xzdClienteleListSumVo);
|
||||
|
||||
} catch (Exception e) {
|
||||
log.info(e.toString());
|
||||
return R.warn("查询失败");
|
||||
}
|
||||
}
|
||||
|
||||
public void delCorrespondentVoid(AddCorrespondentDto dto){
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public R<String> putCorrespondent(AddCorrespondentDto dto) {
|
||||
|
||||
|
||||
// 客户信息
|
||||
if( dto.getXzdCustomerinformation() != null){
|
||||
xzdCustomerinformationService.removeById(dto.getXzdCustomerinformation().getId());
|
||||
xzdCustomerinformationService.updateByBo(dto.getXzdCustomerinformation());
|
||||
}
|
||||
// tab客户信息
|
||||
if (dto.getXzdCustomerDetail() != null){
|
||||
xzdCustomerDetailService.removeById(dto.getXzdCustomerDetail().getId());
|
||||
xzdCustomerDetailService.updateByBo(dto.getXzdCustomerDetail());
|
||||
}
|
||||
// 地址信息
|
||||
List<XzdAddressInfoBo> xzdAddressInfo = dto.getXzdAddressInfo();
|
||||
if (xzdAddressInfo != null && xzdAddressInfo.size() > 0) {
|
||||
xzdAddressInfoService.removeByIds(xzdAddressInfo);
|
||||
List<XzdAddressInfo> collect = xzdAddressInfo.stream().map(xzdAddressInfoBo -> {
|
||||
xzdAddressInfoBo.setType(ZxdEnum.TYPE_CORRESPONDENT.getTypeValue());
|
||||
XzdAddressInfo res = new XzdAddressInfo();
|
||||
BeanUtils.copyProperties(xzdAddressInfoBo, res);
|
||||
return res;
|
||||
|
||||
}).collect(Collectors.toList());
|
||||
|
||||
xzdAddressInfoService.saveOrUpdateBatch(collect);
|
||||
}
|
||||
|
||||
|
||||
// 联系人信息添加
|
||||
// 联系人信息
|
||||
List<XzdContactBo> xzdContact = dto.getXzdContact();
|
||||
if (xzdContact != null && xzdContact.isEmpty()) {
|
||||
Collection<XzdContact> collect1 = xzdContact.stream().map(xzdContactBo -> {
|
||||
xzdContact.forEach(xzdContactBo -> {
|
||||
XzdContact xzdContact1 = new XzdContact();
|
||||
xzdContact1.setType(ZxdEnum.TYPE_CORRESPONDENT.getTypeValue());
|
||||
BeanUtils.copyProperties(xzdContactBo, xzdContact1);
|
||||
xzdContactService.saveOrUpdate(xzdContact1);
|
||||
});
|
||||
}
|
||||
|
||||
// 证件信息
|
||||
List<XzdCertificateInfoBo> xzdCertificateInfo = dto.getXzdCertificateInfo();
|
||||
if (xzdCertificateInfo != null && xzdCertificateInfo.size() > 0) {
|
||||
List<XzdCertificateInfo> collect = xzdCertificateInfo.stream().map(xzdCertificateInfoBo -> {
|
||||
XzdCertificateInfo info = new XzdCertificateInfo();
|
||||
BeanUtils.copyProperties(xzdCertificateInfoBo, info);
|
||||
info.setType(ZxdEnum.TYPE_CORRESPONDENT.getTypeValue());
|
||||
return info;
|
||||
}).collect(Collectors.toList());
|
||||
|
||||
|
||||
xzdCertificateInfoService.saveOrUpdateBatch(collect);
|
||||
}
|
||||
|
||||
|
||||
// 资质信息
|
||||
List<XzdQualificationInfoBo> xzdQualificationInfo = dto.getXzdQualificationInfo();
|
||||
if (xzdQualificationInfo != null && xzdQualificationInfo.size() > 0) {
|
||||
List<XzdQualificationInfo> collect = xzdQualificationInfo.stream().map(xzdQualificationInfoBo -> {
|
||||
XzdQualificationInfo info = new XzdQualificationInfo();
|
||||
BeanUtils.copyProperties(xzdQualificationInfoBo, info);
|
||||
info.setType(ZxdEnum.TYPE_CORRESPONDENT.getTypeValue());
|
||||
return info;
|
||||
}).collect(Collectors.toList());
|
||||
xzdQualificationInfoService.saveOrUpdateBatch(collect);
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
// 结算信息
|
||||
XzdSettlementInfoBo xzdSettlementInfo = dto.getXzdSettlementInfo();
|
||||
if (xzdSettlementInfo != null) {
|
||||
xzdSettlementInfo.setType(ZxdEnum.TYPE_CORRESPONDENT.getTypeValue());
|
||||
xzdSettlementInfoService.updateByBo(xzdSettlementInfo);
|
||||
}
|
||||
|
||||
|
||||
// 业务信息
|
||||
XzdBusinessInfoBo xzdBusinessInfo = dto.getXzdBusinessInfo();
|
||||
if (xzdBusinessInfo != null) {
|
||||
|
||||
xzdBusinessInfo.setType(ZxdEnum.TYPE_CORRESPONDENT.getTypeValue());
|
||||
xzdBusinessInfoService.updateByBo(xzdBusinessInfo);
|
||||
}
|
||||
|
||||
|
||||
// 项目信息
|
||||
|
||||
List<XzdProjectInfoBo> xzdProjectInfo = dto.getXzdProjectInfo();
|
||||
if (xzdProjectInfo != null) {
|
||||
Collection<XzdProjectInfo> collect = xzdProjectInfo.stream().map(item -> {
|
||||
XzdProjectInfo xzdProjectInfoBo = new XzdProjectInfo();
|
||||
BeanUtil.copyProperties(item, xzdProjectInfoBo);
|
||||
xzdProjectInfoBo.setType(ZxdEnum.TYPE_CORRESPONDENT.getTypeValue());
|
||||
return xzdProjectInfoBo;
|
||||
}).collect(Collectors.toList());
|
||||
|
||||
xzdProjectInfoService.saveOrUpdateBatch(collect);
|
||||
}
|
||||
|
||||
|
||||
// 合同信息
|
||||
List<XzdContractInfoBo> xzdContractInfo = dto.getXzdContractInfo();
|
||||
if (xzdContractInfo != null) {
|
||||
|
||||
List<XzdContractInfo> collect = xzdContractInfo.stream().map(item -> {
|
||||
XzdContractInfo xzdContractInfoBo = new XzdContractInfo();
|
||||
BeanUtil.copyProperties(item, xzdContractInfoBo);
|
||||
xzdContractInfoBo.setType(ZxdEnum.TYPE_CORRESPONDENT.getTypeValue());
|
||||
return xzdContractInfoBo;
|
||||
}).collect(Collectors.toList());
|
||||
xzdContractInfoService.saveOrUpdateBatch(collect);
|
||||
}
|
||||
|
||||
|
||||
// 客户类型
|
||||
|
||||
List<XzdCustomertypeInfoBo> xzdCustomertypeInfo = dto.getXzdCustomertypeInfo();
|
||||
if (xzdCustomertypeInfo != null && xzdCustomertypeInfo.size() > 0) {
|
||||
xzdCustomertypeInfoService.getBaseMapper().delete(new LambdaQueryWrapper<XzdCustomertypeInfo>().eq(XzdCustomertypeInfo::getCustomerinformationId, dto.getXzdCustomerinformation().getId()));
|
||||
List<XzdCustomertypeInfo> collect = xzdCustomertypeInfo.stream().map(xzdCustomertypeInfoBo -> {
|
||||
XzdCustomertypeInfo xzdCustomertypeInfo1 = new XzdCustomertypeInfo();
|
||||
BeanUtils.copyProperties(xzdCustomertypeInfoBo, xzdCustomertypeInfo1);
|
||||
xzdCustomertypeInfo1.setCustomerinformationId(dto.getXzdCustomerinformation().getId());
|
||||
xzdCustomertypeInfo1.setType(ZxdEnum.TYPE_CORRESPONDENT.getTypeValue());
|
||||
return xzdCustomertypeInfo1;
|
||||
|
||||
}).collect(Collectors.toList());
|
||||
xzdCustomertypeInfoService.saveBatch(collect);
|
||||
}
|
||||
return R.ok("修改成功");
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public R<QuerCorrespondentDto> getCustomerByid(Long id) {
|
||||
QuerCorrespondentDto dto = new QuerCorrespondentDto();
|
||||
// 客户信息
|
||||
XzdCustomerinformationVo xzdCustomerinformationVo = xzdCustomerinformationService.queryById(id);
|
||||
dto.setXzdCustomerinformation(xzdCustomerinformationVo);
|
||||
|
||||
// tab客户信息
|
||||
HashMap<String, Object> temp = new HashMap<>();
|
||||
temp.put("customerinformation_id", id);
|
||||
|
||||
|
||||
XzdCustomerDetail xzdCustomerDetails = xzdCustomerDetailService.getBaseMapper().selectOne(new LambdaQueryWrapper<XzdCustomerDetail>().eq(XzdCustomerDetail::getCustomerinformationId,id));
|
||||
|
||||
dto.setXzdCustomerDetail(xzdCustomerDetails);
|
||||
|
||||
|
||||
// 地址信息
|
||||
List<XzdAddressInfo> xzdAddressInfos = xzdAddressInfoService.getBaseMapper().selectByMap(temp);
|
||||
dto.setXzdAddressInfo(xzdAddressInfos);
|
||||
|
||||
|
||||
// 联系人信息
|
||||
|
||||
|
||||
List<XzdContact> xzdContacts = xzdContactService.getBaseMapper().selectByMap(temp);
|
||||
dto.setXzdContact(xzdContacts);
|
||||
|
||||
|
||||
// 证件信息
|
||||
|
||||
List<XzdCertificateInfo> xzdCertificateInfos = xzdCertificateInfoService.getBaseMapper().selectByMap(temp);
|
||||
dto.setXzdCertificateInfo(xzdCertificateInfos);
|
||||
|
||||
|
||||
// 资质信息
|
||||
|
||||
List<XzdQualificationInfo> xzdQualificationInfos = xzdQualificationInfoService.getBaseMapper().selectByMap(temp);
|
||||
dto.setXzdQualificationInfo(xzdQualificationInfos);
|
||||
|
||||
|
||||
// 结算信息
|
||||
|
||||
XzdSettlementInfo xzdSettlementInfo = xzdSettlementInfoService.getBaseMapper().selectOne(new LambdaQueryWrapper<XzdSettlementInfo>().eq(XzdSettlementInfo::getCustomerinformationId, id));
|
||||
dto.setXzdSettlementInfo(xzdSettlementInfo);
|
||||
|
||||
|
||||
// 业务信息
|
||||
|
||||
XzdBusinessInfo xzdBusinessInfo = xzdBusinessInfoService.getBaseMapper().selectOne(new LambdaQueryWrapper<XzdBusinessInfo>().eq(XzdBusinessInfo::getCustomerinformationId, id));
|
||||
dto.setXzdBusinessInfo(xzdBusinessInfo);
|
||||
|
||||
|
||||
// 项目信息
|
||||
|
||||
|
||||
List<XzdProjectInfo> xzdProjectInfos = xzdProjectInfoService.getBaseMapper().selectByMap(temp);
|
||||
dto.setXzdProjectInfo(xzdProjectInfos);
|
||||
|
||||
|
||||
// 合同信息
|
||||
|
||||
List<XzdContractInfo> xzdContractInfos = xzdContractInfoService.getBaseMapper().selectByMap(temp);
|
||||
dto.setXzdContractInfo(xzdContractInfos);
|
||||
|
||||
|
||||
// 客户类型
|
||||
|
||||
|
||||
List<XzdCustomertypeInfo> xzdCustomertypeInfos = xzdCustomertypeInfoService.getBaseMapper().selectByMap(temp);
|
||||
dto.setXzdCustomertypeInfo(xzdCustomertypeInfos);
|
||||
|
||||
|
||||
return R.ok(dto);
|
||||
}
|
||||
|
||||
public void delCorrespondentVoid(Long dto){
|
||||
|
||||
// 客户信息
|
||||
xzdCustomerinformationService.removeById(dto);
|
||||
|
||||
// tab客户信息
|
||||
QueryWrapper<Object> wrapper = new QueryWrapper<>().eq("customerinformation_id", dto);
|
||||
|
||||
HashMap<String, Object> temp = new HashMap<>();
|
||||
temp.put("customerinformation_id", dto);
|
||||
|
||||
|
||||
xzdCustomerDetailService.removeByMap(temp);
|
||||
|
||||
// 地址信息
|
||||
xzdAddressInfoService.removeByMap(temp);
|
||||
|
||||
|
||||
|
||||
// 联系人信息
|
||||
|
||||
|
||||
|
||||
// 联系人信息
|
||||
List<XzdContact> xzdContact = xzdContactService.getBaseMapper().selectByMap(temp);
|
||||
if (xzdContact != null && xzdContact.size() > 0) {
|
||||
xzdContact.stream().forEach(xzdContactBo -> {
|
||||
// 删除附件
|
||||
if (!StringUtils.isEmpty(xzdContactBo.getAttachment())){
|
||||
List<Long> collect = Arrays.stream(xzdContactBo.getAttachment().split(",")).map(item -> {
|
||||
@ -320,18 +539,15 @@ public class XzdCorrespondentListImp implements IXzdCorrespondentList {
|
||||
sysOssService.deleteWithValidByIds(collect, false);
|
||||
log.info("删除联系人附件成功");
|
||||
}
|
||||
XzdContact temp = new XzdContact();
|
||||
BeanUtil.copyProperties(xzdContactBo, temp);
|
||||
return temp;
|
||||
}).collect(Collectors.toList());
|
||||
|
||||
xzdContactService.removeByIds(collect1);
|
||||
});
|
||||
}
|
||||
|
||||
xzdContactService.removeByMap(temp);
|
||||
|
||||
// 证件信息
|
||||
List<XzdCertificateInfoBo> xzdCertificateInfo = dto.getXzdCertificateInfo();
|
||||
List<XzdCertificateInfo> xzdCertificateInfo = xzdCertificateInfoService.getBaseMapper().selectByMap(temp);
|
||||
if (xzdCertificateInfo != null && xzdCertificateInfo.size() > 0) {
|
||||
List<XzdCertificateInfo> collect2 = xzdCertificateInfo.stream().map(xzdCertificateInfoBo -> {
|
||||
xzdCertificateInfo.stream().forEach(xzdCertificateInfoBo -> {
|
||||
String attachment = xzdCertificateInfoBo.getAttachment();
|
||||
if (!StringUtils.isEmpty(attachment)){
|
||||
List<Long> collect = Arrays.stream(attachment.split(",")).map(item -> {
|
||||
@ -340,20 +556,15 @@ public class XzdCorrespondentListImp implements IXzdCorrespondentList {
|
||||
sysOssService.deleteWithValidByIds(collect, false);
|
||||
log.info("删除证件信息附件成功");
|
||||
}
|
||||
|
||||
XzdCertificateInfo info = new XzdCertificateInfo();
|
||||
BeanUtil.copyProperties(xzdCertificateInfoBo, info);
|
||||
return info;
|
||||
|
||||
}).collect((Collectors.toList()));
|
||||
xzdCertificateInfoService.removeByIds(collect2);
|
||||
});
|
||||
}
|
||||
xzdCertificateInfoService.removeByMap(temp);
|
||||
|
||||
|
||||
// 资质信息
|
||||
List<XzdQualificationInfoBo> xzdQualificationInfo = dto.getXzdQualificationInfo();
|
||||
List<XzdQualificationInfo> xzdQualificationInfo = xzdQualificationInfoService.getBaseMapper().selectByMap(temp);
|
||||
if (xzdQualificationInfo != null && xzdQualificationInfo.size() > 0) {
|
||||
List<XzdQualificationInfo> collect3 = xzdQualificationInfo.stream().map(xzdQualificationInfoBo -> {
|
||||
xzdQualificationInfo.stream().forEach(xzdQualificationInfoBo -> {
|
||||
String attachment = xzdQualificationInfoBo.getAttachment();
|
||||
if (!StringUtils.isEmpty(attachment)){
|
||||
List<Long> collect = Arrays.stream(attachment.split(",")).map(item -> {
|
||||
@ -362,59 +573,40 @@ public class XzdCorrespondentListImp implements IXzdCorrespondentList {
|
||||
sysOssService.deleteWithValidByIds(collect, false);
|
||||
log.info("删除资质信息附件成功");
|
||||
}
|
||||
|
||||
XzdQualificationInfo info = new XzdQualificationInfo();
|
||||
BeanUtil.copyProperties(xzdQualificationInfoBo, info);
|
||||
return info;
|
||||
}).collect((Collectors.toList()));
|
||||
xzdQualificationInfoService.removeByIds(collect3);
|
||||
|
||||
});
|
||||
}
|
||||
xzdQualificationInfoService.removeByMap(temp);
|
||||
|
||||
|
||||
// 结算信息
|
||||
XzdSettlementInfoBo xzdSettlementInfo = dto.getXzdSettlementInfo();
|
||||
if (xzdSettlementInfo != null) {
|
||||
|
||||
xzdSettlementInfoService.removeById(xzdSettlementInfo);
|
||||
}
|
||||
xzdSettlementInfoService.removeByMap(temp);
|
||||
|
||||
|
||||
|
||||
// 业务信息
|
||||
XzdBusinessInfoBo xzdBusinessInfo = dto.getXzdBusinessInfo();
|
||||
if (xzdBusinessInfo != null) {
|
||||
xzdBusinessInfoService.removeById(xzdBusinessInfo);
|
||||
}
|
||||
|
||||
xzdBusinessInfoService.removeByMap(temp);
|
||||
|
||||
|
||||
|
||||
// 项目信息
|
||||
|
||||
XzdProjectInfoBo xzdProjectInfo = dto.getXzdProjectInfo();
|
||||
if (xzdProjectInfo != null) {
|
||||
xzdProjectInfoService.removeById(xzdProjectInfo);
|
||||
}
|
||||
|
||||
xzdProjectInfoService.removeByMap(temp);
|
||||
|
||||
|
||||
|
||||
// 合同信息
|
||||
XzdContractInfoBo xzdContractInfo = dto.getXzdContractInfo();
|
||||
if (xzdContractInfo != null) {
|
||||
xzdContractInfoService.removeById(xzdContractInfo);
|
||||
}
|
||||
|
||||
xzdContractInfoService.removeByMap(temp);
|
||||
|
||||
|
||||
|
||||
// 客户类型
|
||||
|
||||
List<XzdCustomertypeInfoBo> xzdCustomertypeInfo = dto.getXzdCustomertypeInfo();
|
||||
if (xzdCustomertypeInfo != null && xzdCustomertypeInfo.size() > 0) {
|
||||
xzdCustomertypeInfoService.removeByIds(xzdCustomertypeInfo);
|
||||
}
|
||||
|
||||
xzdCustomertypeInfoService.removeByMap(temp);
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
@ -152,4 +152,13 @@ public class XzdCustomertypeServiceImpl extends ServiceImpl<XzdCustomertypeMappe
|
||||
|
||||
return R.ok(vos);
|
||||
}
|
||||
|
||||
@Override
|
||||
public R<AddCorrespondentDto> getCustomerByid(Long id) {
|
||||
AddCorrespondentDto dto = new AddCorrespondentDto();
|
||||
|
||||
|
||||
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
@ -0,0 +1,140 @@
|
||||
package org.dromara.xzd.service.impl;
|
||||
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import cn.hutool.core.lang.tree.Tree;
|
||||
import cn.hutool.core.lang.tree.TreeNodeConfig;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import org.dromara.common.core.utils.MapstructUtils;
|
||||
import org.dromara.common.core.utils.StringUtils;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.dromara.common.core.utils.TreeBuildUtils;
|
||||
import org.dromara.xzd.domain.XzdProjectType;
|
||||
import org.dromara.xzd.domain.bo.XzdProjectTypeBo;
|
||||
import org.dromara.xzd.domain.vo.XzdProjectTypeVo;
|
||||
import org.dromara.xzd.mapper.XzdProjectTypeMapper;
|
||||
import org.dromara.xzd.service.IXzdProjectTypeService;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Collection;
|
||||
|
||||
/**
|
||||
* 项目类型Service业务层处理
|
||||
*
|
||||
* @author Lion Li
|
||||
* @date 2025-10-09
|
||||
*/
|
||||
@RequiredArgsConstructor
|
||||
@Service
|
||||
public class XzdProjectTypeServiceImpl extends ServiceImpl<XzdProjectTypeMapper, XzdProjectType> implements IXzdProjectTypeService {
|
||||
|
||||
private final XzdProjectTypeMapper baseMapper;
|
||||
|
||||
/**
|
||||
* 查询项目类型
|
||||
*
|
||||
* @param id 主键
|
||||
* @return 项目类型
|
||||
*/
|
||||
@Override
|
||||
public XzdProjectTypeVo queryById(Long id){
|
||||
return baseMapper.selectVoById(id);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 查询符合条件的项目类型列表
|
||||
*
|
||||
* @param bo 查询条件
|
||||
* @return 项目类型列表
|
||||
*/
|
||||
@Override
|
||||
public List<XzdProjectTypeVo> queryList(XzdProjectTypeBo bo) {
|
||||
LambdaQueryWrapper<XzdProjectType> lqw = buildQueryWrapper(bo);
|
||||
return baseMapper.selectVoList(lqw);
|
||||
}
|
||||
|
||||
private LambdaQueryWrapper<XzdProjectType> buildQueryWrapper(XzdProjectTypeBo bo) {
|
||||
Map<String, Object> params = bo.getParams();
|
||||
LambdaQueryWrapper<XzdProjectType> lqw = Wrappers.lambdaQuery();
|
||||
lqw.orderByDesc(XzdProjectType::getId);
|
||||
lqw.eq(bo.getParentId() != null, XzdProjectType::getParentId, bo.getParentId());
|
||||
lqw.like(StringUtils.isNotBlank(bo.getTypeName()), XzdProjectType::getTypeName, bo.getTypeName());
|
||||
lqw.eq(bo.getSortOrder() != null, XzdProjectType::getSortOrder, bo.getSortOrder());
|
||||
|
||||
return lqw;
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增项目类型
|
||||
*
|
||||
* @param bo 项目类型
|
||||
* @return 是否新增成功
|
||||
*/
|
||||
@Override
|
||||
public Boolean insertByBo(XzdProjectTypeBo bo) {
|
||||
XzdProjectType add = MapstructUtils.convert(bo, XzdProjectType.class);
|
||||
validEntityBeforeSave(add);
|
||||
boolean flag = baseMapper.insert(add) > 0;
|
||||
if (flag) {
|
||||
bo.setId(add.getId());
|
||||
}
|
||||
return flag;
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改项目类型
|
||||
*
|
||||
* @param bo 项目类型
|
||||
* @return 是否修改成功
|
||||
*/
|
||||
@Override
|
||||
public Boolean updateByBo(XzdProjectTypeBo bo) {
|
||||
XzdProjectType update = MapstructUtils.convert(bo, XzdProjectType.class);
|
||||
validEntityBeforeSave(update);
|
||||
return baseMapper.updateById(update) > 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* 保存前的数据校验
|
||||
*/
|
||||
private void validEntityBeforeSave(XzdProjectType entity){
|
||||
//TODO 做一些数据校验,如唯一约束
|
||||
}
|
||||
|
||||
/**
|
||||
* 校验并批量删除项目类型信息
|
||||
*
|
||||
* @param ids 待删除的主键集合
|
||||
* @param isValid 是否进行有效性校验
|
||||
* @return 是否删除成功
|
||||
*/
|
||||
@Override
|
||||
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
|
||||
if(isValid){
|
||||
//TODO 做一些业务上的校验,判断是否需要校验
|
||||
}
|
||||
return baseMapper.deleteByIds(ids) > 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<Tree<String>> buildMenuTreeSelect(List<XzdProjectTypeVo> list) {
|
||||
if (CollUtil.isEmpty(list)) {
|
||||
return CollUtil.newArrayList();
|
||||
}
|
||||
TreeNodeConfig config = new TreeNodeConfig();
|
||||
|
||||
config.setDeep(2);
|
||||
return TreeBuildUtils.build(list,"0", config, (menu, tree) -> {
|
||||
tree.setId(menu.getId().toString())
|
||||
.setParentId(menu.getParentId().toString())
|
||||
.setName(menu.getTypeName())
|
||||
.setWeight(menu.getSortOrder());
|
||||
});
|
||||
|
||||
}
|
||||
}
|
||||
@ -15,8 +15,11 @@ import org.dromara.xzd.service.impl.XzdPoiAreaServiceImpl;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.concurrent.atomic.AtomicInteger;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
|
||||
@ -30,6 +33,8 @@ public class AreaUtil {
|
||||
private final XzdPoiAreaMapper xzdPoiAreaMapper;
|
||||
|
||||
|
||||
|
||||
|
||||
public XzdPoiAreaVo getAreaList(Long parentId,XzdPoiAreaVo vo) {
|
||||
|
||||
if (StringUtils.isEmpty(parentId.toString())) {
|
||||
@ -59,4 +64,11 @@ public class AreaUtil {
|
||||
return vo;
|
||||
|
||||
}
|
||||
|
||||
|
||||
// 生成日期格式的数字
|
||||
public static String generateDateBasedNumber() {
|
||||
String dateStr = LocalDate.now().format(DateTimeFormatter.ofPattern("yyyyMMdd"));
|
||||
return String.format(dateStr);
|
||||
}
|
||||
}
|
||||
|
||||
@ -7,6 +7,7 @@
|
||||
|
||||
<select id="queryCustomertype" resultType="org.dromara.xzd.domain.vo.XzdClienteleListVo">
|
||||
SELECT
|
||||
a1.id AS customerId,
|
||||
a1.unit_code AS unitCode,
|
||||
a1.unit_name AS unitName,
|
||||
a1.is_group_customer AS isGroupCustomer,
|
||||
@ -36,30 +37,28 @@
|
||||
LEFT JOIN xzd_settlement_info b1 ON a1.id = b1.customerinformation_id
|
||||
LEFT JOIN xzd_contact c1 ON a1.id = c1.customerinformation_id AND c1.is_main_contact = 1
|
||||
<where>
|
||||
<!-- 可选条件:单位代码 -->
|
||||
<if test="dto.unitCode != null and dto.unitCode != ''">
|
||||
AND a1.unit_code = #{dto.unitCode}
|
||||
</if>
|
||||
|
||||
<!-- 可选条件:单位名称 -->
|
||||
<if test="dto.unitName != null and dto.unitName != ''">
|
||||
AND a1.unit_name = #{dto.unitName}
|
||||
</if>
|
||||
|
||||
<!-- 可选条件:负责部门 -->
|
||||
<if test="dto.responsibleDepartment != null and dto.responsibleDepartment != ''">
|
||||
AND a2.responsible_department = #{dto.responsibleDepartment}
|
||||
</if>
|
||||
|
||||
<!-- 可选条件:负责销售员 -->
|
||||
<if test="dto.responsibleSalesman != null and dto.responsibleSalesman != ''">
|
||||
AND a2.responsible_salesman = #{dto.responsibleSalesman}
|
||||
</if>
|
||||
|
||||
<!-- 可选条件:统一社会信用代码 -->
|
||||
<if test="dto.unifiedSocialCreditCode != null and dto.unifiedSocialCreditCode != ''">
|
||||
AND a1.unified_social_credit_code = #{dto.unifiedSocialCreditCode}
|
||||
</if>
|
||||
<if test="dto.poiAreaId != null and dto.poiAreaId != ''">
|
||||
AND a1.poi_area_id = #{dto.poiAreaId}
|
||||
</if>
|
||||
</where>
|
||||
ORDER BY a1.create_time DESC
|
||||
LIMIT #{offset}, #{pageSize}
|
||||
@ -72,30 +71,28 @@
|
||||
LEFT JOIN xzd_settlement_info b1 ON a1.id = b1.customerinformation_id
|
||||
LEFT JOIN xzd_contact c1 ON a1.id = c1.customerinformation_id AND c1.is_main_contact = 1
|
||||
<where>
|
||||
<!-- 可选条件:单位代码 -->
|
||||
<if test="dto.unitCode != null and dto.unitCode != ''">
|
||||
AND a1.unit_code = #{dto.unitCode}
|
||||
</if>
|
||||
|
||||
<!-- 可选条件:单位名称 -->
|
||||
<if test="dto.unitName != null and dto.unitName != ''">
|
||||
AND a1.unit_name = #{dto.unitName}
|
||||
</if>
|
||||
|
||||
<!-- 可选条件:负责部门 -->
|
||||
<if test="dto.responsibleDepartment != null and dto.responsibleDepartment != ''">
|
||||
AND a2.responsible_department = #{dto.responsibleDepartment}
|
||||
</if>
|
||||
|
||||
<!-- 可选条件:负责销售员 -->
|
||||
<if test="dto.responsibleSalesman != null and dto.responsibleSalesman != ''">
|
||||
AND a2.responsible_salesman = #{dto.responsibleSalesman}
|
||||
</if>
|
||||
|
||||
<!-- 可选条件:统一社会信用代码 -->
|
||||
<if test="dto.unifiedSocialCreditCode != null and dto.unifiedSocialCreditCode != ''">
|
||||
AND a1.unified_social_credit_code = #{dto.unifiedSocialCreditCode}
|
||||
</if>
|
||||
<if test="dto.poiAreaId != null and dto.poiAreaId != ''">
|
||||
AND a1.poi_area_id = #{dto.poiAreaId}
|
||||
</if>
|
||||
</where>
|
||||
</select>
|
||||
</mapper>
|
||||
|
||||
@ -0,0 +1,87 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper
|
||||
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="org.dromara.xzd.biddingManagement.mapper.XzdBidPreProjectMapper">
|
||||
|
||||
|
||||
<select id="queryPageListBy" resultType="org.dromara.xzd.biddingManagement.domain.vo.QuerListXzdBidPreVo">
|
||||
SELECT
|
||||
a.*,
|
||||
b.*
|
||||
FROM
|
||||
xzd_bid_pre_project a
|
||||
LEFT JOIN xzd_bqlx_project_info b ON a.id = b.bid_pre_project_id
|
||||
<where>
|
||||
<if test="bo.projectNumber != null and bo.projectNumber != ''">
|
||||
AND a.project_number = #{bo.projectNumber}
|
||||
</if>
|
||||
|
||||
<if test="bo.projectName != null and bo.projectName != ''">
|
||||
AND a.project_name = #{bo.projectName}
|
||||
</if>
|
||||
|
||||
<if test="bo.projectTypeId != null and bo.projectTypeId != ''">
|
||||
AND a.project_type_id = #{bo.projectTypeId}
|
||||
</if>
|
||||
|
||||
<if test="bo.createBy != null and bo.createBy != ''">
|
||||
AND a.create_by = #{bo.createBy}
|
||||
</if>
|
||||
|
||||
<if test="bo.createDept != null and bo.createDept != ''">
|
||||
AND a.create_dept = #{bo.createDept}
|
||||
</if>
|
||||
<if test="bo.constructionUnit != null and bo.constructionUnit != ''">
|
||||
AND b.construction_unit = #{bo.constructionUnit}
|
||||
</if>
|
||||
|
||||
<if test="bo.remark != null and bo.remark != ''">
|
||||
AND b.remark = #{bo.remark}
|
||||
</if>
|
||||
</where>
|
||||
ORDER BY a.create_time DESC
|
||||
LIMIT #{bo.num}, #{pageSize}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</select>
|
||||
<select id="queryPageListByNum" resultType="java.lang.Integer">
|
||||
select count(*) FROM
|
||||
xzd_bid_pre_project a
|
||||
LEFT JOIN xzd_bqlx_project_info b ON a.id = b.bid_pre_project_id
|
||||
<where>
|
||||
<if test="bo.projectNumber != null and bo.projectNumber != ''">
|
||||
AND a.project_number = #{bo.projectNumber}
|
||||
</if>
|
||||
|
||||
<if test="bo.projectName != null and bo.projectName != ''">
|
||||
AND a.project_name = #{bo.projectName}
|
||||
</if>
|
||||
|
||||
<if test="bo.projectTypeId != null and bo.projectTypeId != ''">
|
||||
AND a.project_type_id = #{bo.projectTypeId}
|
||||
</if>
|
||||
|
||||
<if test="bo.createBy != null and bo.createBy != ''">
|
||||
AND a.create_by = #{bo.createBy}
|
||||
</if>
|
||||
|
||||
<if test="bo.createDept != null and bo.createDept != ''">
|
||||
AND a.create_dept = #{bo.createDept}
|
||||
</if>
|
||||
<if test="bo.constructionUnit != null and bo.constructionUnit != ''">
|
||||
AND b.construction_unit = #{bo.constructionUnit}
|
||||
</if>
|
||||
|
||||
<if test="bo.remark != null and bo.remark != ''">
|
||||
AND b.remark = #{bo.remark}
|
||||
</if>
|
||||
</where>
|
||||
</select>
|
||||
|
||||
|
||||
</mapper>
|
||||
@ -25,8 +25,6 @@ import org.springframework.web.bind.annotation.*;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import static org.dromara.workflow.listener.WorkflowGlobalListener.getType;
|
||||
|
||||
@ConditionalOnEnable
|
||||
@Validated
|
||||
@RequiredArgsConstructor
|
||||
@ -50,8 +48,7 @@ public class FlowAppController {
|
||||
}
|
||||
|
||||
List<FlowHisTaskVo> list= (List<FlowHisTaskVo>) stringObjectMap.get("list");
|
||||
Map<String, FlowHisTaskVo> map = list.stream().filter(vo -> !"copy".equals(vo.getFlowStatus()))
|
||||
.collect(Collectors.toMap(FlowHisTaskVo::getNodeCode, vo -> vo));
|
||||
Map<String, FlowHisTaskVo> map = list.stream().collect(Collectors.toMap(FlowHisTaskVo::getNodeCode, vo -> vo));
|
||||
|
||||
|
||||
Long instanceId = (Long) stringObjectMap.get("instanceId");
|
||||
@ -89,24 +86,9 @@ public class FlowAppController {
|
||||
appVo.setFlowStatus(BusinessStatusEnum.WAITING.getStatus());
|
||||
if(nodeJson.getNodeType()==1){
|
||||
String permissionFlag = nodeJson.getPermissionFlag();
|
||||
if(StrUtil.isNotBlank(permissionFlag)){
|
||||
permissionFlag = permissionFlag.replace("@@", ",");
|
||||
}
|
||||
List<UserDTO> userDTOS = flwTaskAssigneeService.fetchUsersByStorageIds(permissionFlag, projectId);
|
||||
String auditName = userDTOS.stream().map(UserDTO::getNickName).collect(Collectors.joining(","));
|
||||
String type = getType(permissionFlag);
|
||||
if(type != null){
|
||||
try {
|
||||
String flowCode = defJson.getFlowCode();
|
||||
List<String> longs = userService.selectUserByProfession(flowCode.split("_")[1], businessId, type,projectId);
|
||||
String s = userService.selectNicknameByIds(longs.stream().map(String::valueOf).collect(Collectors.joining(",")));
|
||||
appVo.setAuditName(s);
|
||||
}catch (Exception e) {
|
||||
appVo.setAuditName(auditName);
|
||||
}
|
||||
}else {
|
||||
appVo.setAuditName(auditName);
|
||||
}
|
||||
appVo.setAuditName(auditName);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -187,7 +187,7 @@ public class WorkflowGlobalListener implements GlobalListener {
|
||||
}
|
||||
|
||||
|
||||
public static String getType(String permissionFlag){
|
||||
public String getType(String permissionFlag){
|
||||
// 1961314792461586433 校审员(系统)
|
||||
// 1961315028017893378 审核员(系统)
|
||||
// 1961315147199041537 审定员(系统)
|
||||
|
||||
@ -1,411 +0,0 @@
|
||||
|
||||
|
||||
|
||||
drop table if exists xzd_project_risk_assessment;
|
||||
CREATE TABLE `xzd_project_risk_assessment`
|
||||
(
|
||||
`id` BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT '主键ID',
|
||||
`document_number` VARCHAR(64) NOT NULL COMMENT '单据编号',
|
||||
`project_name` VARCHAR(255) NOT NULL COMMENT '项目名称',
|
||||
`project_business_owner` VARCHAR(255) NOT NULL COMMENT '项目业主',
|
||||
`joint_body_members` VARCHAR(500) NULL COMMENT '联合体成员方',
|
||||
`estimated_contract_amount` DECIMAL(20, 4) default 0.0000 NOT NULL COMMENT '预计合同额(万元)',
|
||||
`unit_price_index` VARCHAR(255) NULL COMMENT '单价指标',
|
||||
`engineering_risk` VARCHAR(16) NULL COMMENT '工期风险',
|
||||
`technical_risk` VARCHAR(16) NULL COMMENT '技术风险',
|
||||
`economic_risk` VARCHAR(16) NULL COMMENT '经济风险',
|
||||
`contract_risk` VARCHAR(16) NULL COMMENT '合同风险',
|
||||
`personnel_risk` VARCHAR(16) NULL COMMENT '人员风险',
|
||||
`construction_risk` VARCHAR(16) NULL COMMENT '施工风险',
|
||||
`management_risk` VARCHAR(16) NULL COMMENT '管理风险',
|
||||
`subcontract_risk` VARCHAR(16) NULL COMMENT '分包风险',
|
||||
`other_risks` TEXT null COMMENT '其他风险',
|
||||
`file_id` varchar(1024) NULL COMMENT '文件ID',
|
||||
`remark` TEXT null COMMENT '备注',
|
||||
`audit_status` VARCHAR(32) default 'draft' NULL COMMENT '审核状态',
|
||||
`create_by` bigint NULL COMMENT '创建者',
|
||||
`update_by` bigint NULL COMMENT '更新者',
|
||||
`create_dept` bigint null comment '创建部门',
|
||||
`create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
`update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间'
|
||||
) COMMENT ='项目风险评估签审意见';
|
||||
|
||||
drop table if exists xzd_bid_pre_project;
|
||||
|
||||
CREATE TABLE xzd_bid_pre_project
|
||||
(
|
||||
`id` BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT '主键ID',
|
||||
`project_number` VARCHAR(64) NOT NULL COMMENT '项目编码',
|
||||
`project_name` VARCHAR(255) NOT NULL COMMENT '项目名称',
|
||||
`country` VARCHAR(100) NOT NULL COMMENT '国家',
|
||||
`province` VARCHAR(100) NOT NULL COMMENT '省',
|
||||
`city` VARCHAR(100) NOT NULL COMMENT '城市',
|
||||
`district` VARCHAR(100) NOT NULL COMMENT '区县',
|
||||
`project_location` VARCHAR(255) null COMMENT '工程地点',
|
||||
`capital_source` VARCHAR(255) null COMMENT '资金来源',
|
||||
`contracting_method` VARCHAR(16) null COMMENT '承包方式',
|
||||
`operation_mode` VARCHAR(16) null COMMENT '经营模式',
|
||||
`project_type_id` BIGINT NOT NULL COMMENT '项目类型',
|
||||
`bidding_method` VARCHAR(100) null COMMENT '招标方式',
|
||||
`liaison_method` VARCHAR(100) null COMMENT '联系方法',
|
||||
`investment_unit` VARCHAR(255) null COMMENT '投资单位',
|
||||
`project_cost` DECIMAL(20, 2) DEFAULT 0.0000 not null COMMENT '工程造价(万元)',
|
||||
`information_cost` DECIMAL(20, 2) DEFAULT 0.0000 not null COMMENT '资料费',
|
||||
-- 公共字段
|
||||
`file_id` varchar(1024) NULL COMMENT '文件ID',
|
||||
`remark` TEXT null COMMENT '备注',
|
||||
`audit_status` VARCHAR(32) default 'draft' NULL COMMENT '审核状态',
|
||||
`create_by` bigint NULL COMMENT '创建者',
|
||||
`update_by` bigint NULL COMMENT '更新者',
|
||||
`create_dept` bigint null comment '创建部门',
|
||||
`create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
`update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间'
|
||||
) COMMENT ='标前立项';
|
||||
|
||||
drop table if exists xzd_bqlx_project_info;
|
||||
|
||||
CREATE TABLE xzd_bqlx_project_info
|
||||
(
|
||||
`id` BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT '主键ID',
|
||||
`bid_pre_project_id` BIGINT NOT NULL COMMENT '关联标前立项ID',
|
||||
`expected_start_date` DATE COMMENT '预计开工日期',
|
||||
`qualification_requirement` VARCHAR(512) COMMENT '资质要求',
|
||||
`bid_start_date` DATE COMMENT '报名开始时间',
|
||||
`bid_end_date` DATE NOT NULL COMMENT '报名截止时间',
|
||||
`submission_deadline` DATE COMMENT '投标截止时间',
|
||||
`design_description` VARCHAR(512) COMMENT '设计情况',
|
||||
`project_status` TEXT COMMENT '工程概况',
|
||||
`bidding_announcement_address` VARCHAR(512) COMMENT '招标公告地址',
|
||||
`quality_requirement` VARCHAR(255) COMMENT '质量要求',
|
||||
`duration_days` DECIMAL(10, 1) default 0.0 COMMENT '工期要求(天)',
|
||||
`lowest_qualification_requirement` VARCHAR(512) COMMENT '最低资质要求',
|
||||
`project_manager_requirement` VARCHAR(512) COMMENT '项目经理要求',
|
||||
`performance_requirement` VARCHAR(512) COMMENT '业绩要求',
|
||||
`start_date` DATE COMMENT '开标时间',
|
||||
`evaluation_method` VARCHAR(128) COMMENT '评标方式',
|
||||
`bidding_deposit_form` VARCHAR(255) COMMENT '投标保证金形式',
|
||||
`bidding_deposit` DECIMAL(20, 4) default 0.0000 COMMENT '投标保证金',
|
||||
`construction_unit` VARCHAR(255) COMMENT '建设单位',
|
||||
`construction_person` VARCHAR(100) COMMENT '建设单位联系人',
|
||||
`construction_method` VARCHAR(100) COMMENT '建设单位联系方式',
|
||||
`bidding_unit` VARCHAR(255) COMMENT '招标单位',
|
||||
`bidding_person` VARCHAR(100) COMMENT '招标单位联系人',
|
||||
`bidding_method` VARCHAR(100) COMMENT '招标单位联系方式',
|
||||
`cost_price` DECIMAL(20, 4) default 0.0000 COMMENT '成本价',
|
||||
`bidding_price_control` DECIMAL(20, 4) default 0.0000 COMMENT '招标控制价',
|
||||
`project_number` VARCHAR(64) NOT NULL COMMENT '项目编码',
|
||||
`default_finance` varchar(255) NULL COMMENT '默认财务组织',
|
||||
`involve_finance` varchar(255) NULL COMMENT '涉及财务组织',
|
||||
-- 公共字段
|
||||
`file_id` varchar(1024) NULL COMMENT '文件ID',
|
||||
`remark` TEXT null COMMENT '备注',
|
||||
`audit_status` VARCHAR(32) default 'draft' NULL COMMENT '审核状态',
|
||||
`create_by` bigint NULL COMMENT '创建者',
|
||||
`update_by` bigint NULL COMMENT '更新者',
|
||||
`create_dept` bigint null comment '创建部门',
|
||||
`create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
`update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间'
|
||||
) COMMENT ='标前立项-项目信息';
|
||||
|
||||
drop table if exists xzd_project_type;
|
||||
|
||||
CREATE TABLE xzd_project_type
|
||||
(
|
||||
`id` BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT '主键ID',
|
||||
`parent_id` BIGINT DEFAULT 0 NOT NULL COMMENT '父节点ID',
|
||||
`type_name` VARCHAR(100) NOT NULL COMMENT '项目类型名称',
|
||||
`sort_order` INT DEFAULT 0 COMMENT '排序',
|
||||
`remark` VARCHAR(255) COMMENT '备注',
|
||||
-- 公共字段
|
||||
`create_by` bigint NULL COMMENT '创建者',
|
||||
`update_by` bigint NULL COMMENT '更新者',
|
||||
`create_dept` bigint null comment '创建部门',
|
||||
`create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
`update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间'
|
||||
) COMMENT ='项目类型';
|
||||
|
||||
drop table if exists xzd_bidding_file_estimate;
|
||||
|
||||
CREATE TABLE xzd_bidding_file_estimate
|
||||
(
|
||||
`id` BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT '主键ID',
|
||||
`document_code` VARCHAR(50) NOT NULL COMMENT '单据编码',
|
||||
`document_date` DATE NOT NULL COMMENT '单据日期',
|
||||
`project_name` VARCHAR(255) NOT NULL COMMENT '项目名称',
|
||||
`title` VARCHAR(255) COMMENT '标题',
|
||||
`project_location` VARCHAR(255) COMMENT '工程地点',
|
||||
`bidding_unit` VARCHAR(255) COMMENT '招标单位',
|
||||
`bidding_method` VARCHAR(16) COMMENT '招标方式',
|
||||
`contracting_method` VARCHAR(16) COMMENT '承包方式',
|
||||
`start_date` DATE COMMENT '开标时间',
|
||||
`project_overview` TEXT COMMENT '工程概况',
|
||||
`bidding_date` DATE COMMENT '投标时间',
|
||||
`bidding_address` VARCHAR(255) COMMENT '投标地址',
|
||||
`bidding_control_price` DECIMAL(20, 4) DEFAULT 0.0000 COMMENT '招标控制价',
|
||||
`evaluation_method` VARCHAR(100) COMMENT '评标方法',
|
||||
`bidding_scope` VARCHAR(255) COMMENT '招标范围',
|
||||
|
||||
`project_manager_requirement` varchar(1024) COMMENT '项目经理要求',
|
||||
|
||||
-- 公共字段
|
||||
`file_id` varchar(1024) NULL COMMENT '文件ID',
|
||||
`remark` TEXT null COMMENT '备注',
|
||||
`audit_status` VARCHAR(32) default 'draft' NULL COMMENT '审核状态',
|
||||
`create_by` bigint NULL COMMENT '创建者',
|
||||
`update_by` bigint NULL COMMENT '更新者',
|
||||
`create_dept` bigint null comment '创建部门',
|
||||
`create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
`update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间'
|
||||
|
||||
) COMMENT ='招标文件审估';
|
||||
|
||||
|
||||
drop table if exists xzd_bidding_agency_fee_payment;
|
||||
|
||||
CREATE TABLE xzd_bidding_agency_fee_payment
|
||||
(
|
||||
`id` BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT '主键ID',
|
||||
`document_code` VARCHAR(50) NOT NULL COMMENT '单据编码',
|
||||
`document_date` DATE NOT NULL COMMENT '单据日期',
|
||||
`title` VARCHAR(255) COMMENT '标题',
|
||||
|
||||
`project_name` VARCHAR(255) NOT NULL COMMENT '项目',
|
||||
`project_location` VARCHAR(512) COMMENT '工程地点',
|
||||
`contact_person` VARCHAR(100) COMMENT '联系人',
|
||||
`contact_method` VARCHAR(100) COMMENT '联系方式',
|
||||
`bidding_date` DATE COMMENT '投标时间',
|
||||
|
||||
`agency_name` VARCHAR(255) NOT NULL COMMENT '代理机构名称',
|
||||
|
||||
|
||||
`application_amount` DECIMAL(20, 4) DEFAULT 0.0000 NOT NULL COMMENT '申请金额',
|
||||
`payment_method` VARCHAR(16) NOT NULL COMMENT '支付方式',
|
||||
`receiving_bank` VARCHAR(255) COMMENT '收款银行',
|
||||
`receiving_account` VARCHAR(100) COMMENT '收款',
|
||||
`reason` varchar(1024) COMMENT '事由',
|
||||
|
||||
`file_id` varchar(1024) NULL COMMENT '文件ID',
|
||||
`remark` TEXT null COMMENT '备注',
|
||||
`audit_status` VARCHAR(32) default 'draft' NULL COMMENT '审核状态',
|
||||
`create_by` bigint NULL COMMENT '创建者',
|
||||
`update_by` bigint NULL COMMENT '更新者',
|
||||
`create_dept` bigint null comment '创建部门',
|
||||
`create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
`update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间'
|
||||
|
||||
) COMMENT ='招标代理服务费支付申请';
|
||||
|
||||
drop table if exists xzd_bid_deposit_payment;
|
||||
|
||||
CREATE TABLE `xzd_bid_deposit_payment`
|
||||
(
|
||||
`id` BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT '主键ID',
|
||||
`document_code` VARCHAR(50) NOT NULL COMMENT '单据编码',
|
||||
`document_date` DATE NOT NULL COMMENT '单据日期',
|
||||
`project_name` VARCHAR(255) NOT NULL COMMENT '项目名称',
|
||||
`project_cost` DECIMAL(20, 4) DEFAULT 0.0000 COMMENT '工程造价(万元)',
|
||||
`business_mode` VARCHAR(100) DEFAULT NULL COMMENT '经营模式',
|
||||
`deposit_amount` DECIMAL(20, 4) DEFAULT 0.0000 NOT NULL COMMENT '保证金金额',
|
||||
`deposit_amount_capital` VARCHAR(512) NOT NULL COMMENT '保证金金额大写',
|
||||
`remittance_method` VARCHAR(128) DEFAULT NULL COMMENT '汇款方式',
|
||||
`payment_deadline` DATETIME DEFAULT NULL COMMENT '支付截止时间',
|
||||
`receiving_unit` VARCHAR(255) DEFAULT NULL COMMENT '收款单位',
|
||||
`receiving_account_name` VARCHAR(255) DEFAULT NULL COMMENT '收款账户名称',
|
||||
`receiving_bank` VARCHAR(255) DEFAULT NULL COMMENT '收款账户银行',
|
||||
`receiving_bank_account` VARCHAR(100) DEFAULT NULL COMMENT '收款银行账号',
|
||||
`request_recovery_days` INT DEFAULT '0' COMMENT '招标结束后要求工作日收回',
|
||||
`deposit_type` VARCHAR(16) NOT NULL COMMENT '保证金类型',
|
||||
`receipt_requirement` VARCHAR(16) DEFAULT NULL COMMENT '回单要求',
|
||||
`is_mail` TINYINT(1) DEFAULT '0' COMMENT '是否邮寄(0否 1是)',
|
||||
`deposit_ratio` DECIMAL(5, 2) default 0.00 COMMENT '保证金比例',
|
||||
`file_id` varchar(1024) NULL COMMENT '文件ID',
|
||||
`remark` TEXT null COMMENT '备注',
|
||||
`audit_status` VARCHAR(32) default 'draft' NULL COMMENT '审核状态',
|
||||
`create_by` bigint NULL COMMENT '创建者',
|
||||
`update_by` bigint NULL COMMENT '更新者',
|
||||
`create_dept` bigint null comment '创建部门',
|
||||
`create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
`update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间'
|
||||
) COMMENT = '投标保证金缴纳';
|
||||
|
||||
drop table if exists xzd_bid_deposit_recovery;
|
||||
|
||||
CREATE TABLE `xzd_bid_deposit_recovery`
|
||||
(
|
||||
`id` BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT '主键ID',
|
||||
`document_code` VARCHAR(50) NOT NULL COMMENT '单据编码',
|
||||
`document_date` DATE NOT NULL COMMENT '单据日期',
|
||||
`project_name` VARCHAR(255) NOT NULL COMMENT '项目名称',
|
||||
`project_type` BIGINT DEFAULT NULL COMMENT '项目类型',
|
||||
`business_mode` VARCHAR(255) DEFAULT NULL COMMENT '经营模式',
|
||||
`project_cost` DECIMAL(20, 4) DEFAULT 0.0000 COMMENT '工程造价',
|
||||
`recovery_amount` DECIMAL(20, 4) DEFAULT 0.0000 NOT NULL COMMENT '收回金额',
|
||||
`recovery_amount_capital` VARCHAR(255) NOT NULL COMMENT '收回金额大写',
|
||||
`data_fee` DECIMAL(20, 4) DEFAULT 0.0000 COMMENT '资料费',
|
||||
`data_fee_capital` VARCHAR(255) DEFAULT NULL COMMENT '资料费大写',
|
||||
`refund_amount` DECIMAL(20, 4) DEFAULT 0.0000 COMMENT '退款金额',
|
||||
`recovery_date` DATE DEFAULT NULL COMMENT '收回日期',
|
||||
`deposit_status` VARCHAR(50) DEFAULT NULL COMMENT '保证金状态',
|
||||
`deposit_amount` DECIMAL(20, 4) DEFAULT 0.0000 COMMENT '保证金金额',
|
||||
`deposit_amount_capital` VARCHAR(100) DEFAULT NULL COMMENT '保证金金额大写',
|
||||
`deposit_remittance_method` VARCHAR(255) DEFAULT NULL COMMENT '保证金汇款方式',
|
||||
`payment_deadline` DATETIME DEFAULT NULL COMMENT '支付截止时间',
|
||||
`receiving_unit` VARCHAR(255) DEFAULT NULL COMMENT '收款单位',
|
||||
`deposit_receiving_account_name` VARCHAR(255) DEFAULT NULL COMMENT '保证金收款账户名称',
|
||||
`receiving_bank` VARCHAR(255) DEFAULT NULL COMMENT '收款账户银行',
|
||||
`receiving_bank_account` VARCHAR(255) DEFAULT NULL COMMENT '收款账户账号',
|
||||
`applicant` VARCHAR(100) DEFAULT NULL COMMENT '申请人',
|
||||
`application_unit` VARCHAR(255) DEFAULT NULL COMMENT '申请单位',
|
||||
`application_date` DATE DEFAULT NULL COMMENT '申请日期',
|
||||
`file_id` varchar(1024) NULL COMMENT '文件ID',
|
||||
`remark` TEXT null COMMENT '备注',
|
||||
`audit_status` VARCHAR(32) default 'draft' NULL COMMENT '审核状态',
|
||||
`create_by` bigint NULL COMMENT '创建者',
|
||||
`update_by` bigint NULL COMMENT '更新者',
|
||||
`create_dept` bigint null comment '创建部门',
|
||||
`create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
`update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间'
|
||||
) COMMENT = '投标保证金收回';
|
||||
|
||||
drop table if exists xzd_bidding_document;
|
||||
|
||||
CREATE TABLE `xzd_bidding_document`
|
||||
(
|
||||
`id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
||||
`document_number` VARCHAR(50) NOT NULL COMMENT '单据编号',
|
||||
`title` VARCHAR(255) DEFAULT NULL COMMENT '标题',
|
||||
`bidding_time` DATETIME NOT NULL COMMENT '投标时间',
|
||||
`project_name` VARCHAR(255) NOT NULL COMMENT '项目名称',
|
||||
`project_type` BIGINT DEFAULT NULL COMMENT '项目类型ID',
|
||||
`bid_unit` VARCHAR(255) DEFAULT NULL COMMENT '投标单位',
|
||||
`document_date` DATE NOT NULL COMMENT '单据日期',
|
||||
`project_manager` VARCHAR(100) DEFAULT NULL COMMENT '项目经理',
|
||||
`project_overview` TEXT DEFAULT NULL COMMENT '工程概况',
|
||||
`organization` VARCHAR(255) DEFAULT NULL COMMENT '组织',
|
||||
`file_id` varchar(1024) NULL COMMENT '文件ID',
|
||||
`remark` TEXT null COMMENT '备注',
|
||||
`audit_status` VARCHAR(32) default 'draft' NULL COMMENT '审核状态',
|
||||
`create_by` bigint NULL COMMENT '创建者',
|
||||
`update_by` bigint NULL COMMENT '更新者',
|
||||
`create_dept` bigint null comment '创建部门',
|
||||
`create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
`update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||||
PRIMARY KEY (`id`)
|
||||
) COMMENT ='投标文件';
|
||||
|
||||
drop table if exists xzd_tbwj_business_bid;
|
||||
|
||||
CREATE TABLE `xzd_tbwj_business_bid`
|
||||
(
|
||||
`id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
||||
`bidding_document_id` BIGINT NOT NULL COMMENT '投标文件ID',
|
||||
`bid_price` DECIMAL(20, 4) DEFAULT 0.0000 COMMENT '标底价',
|
||||
`discount_rate` DECIMAL(5, 2) DEFAULT 0.00 COMMENT '折扣率',
|
||||
`ceiling_price` DECIMAL(20, 4) DEFAULT 0.0000 COMMENT '最高限价',
|
||||
`cost_price` DECIMAL(20, 4) DEFAULT 0.0000 COMMENT '成本价',
|
||||
`total_bid_price` DECIMAL(20, 4) DEFAULT 0.0000 NOT NULL COMMENT '投标报价',
|
||||
`fee_rate` DECIMAL(5, 2) DEFAULT 0.00 COMMENT '毛利率',
|
||||
`bid_tax_rate` DECIMAL(5, 2) DEFAULT 0.00 COMMENT '投标税率',
|
||||
`petty_cash` DECIMAL(20, 4) DEFAULT 0.0000 COMMENT '备用金',
|
||||
`compilation_dept` VARCHAR(512) NULL COMMENT '编制部门',
|
||||
`estimated_profit` VARCHAR(512) NULL COMMENT '报价说明',
|
||||
PRIMARY KEY (`id`),
|
||||
INDEX `idx_bidding_document_id` (`bidding_document_id`)
|
||||
) COMMENT ='投标文件-商务标';
|
||||
|
||||
drop table if exists xzd_tbwj_technical_bid;
|
||||
|
||||
CREATE TABLE `xzd_tbwj_technical_bid`
|
||||
(
|
||||
`id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
||||
`bidding_document_id` BIGINT NOT NULL COMMENT '投标文件ID',
|
||||
`quality_requirements` TEXT DEFAULT NULL COMMENT '质量要求',
|
||||
`technical_requirements` TEXT DEFAULT NULL COMMENT '技术要求',
|
||||
`compilation_dept` VARCHAR(255) DEFAULT NULL COMMENT '编制部门',
|
||||
`compilation_explain` VARCHAR(255) DEFAULT NULL COMMENT '编制说明',
|
||||
PRIMARY KEY (`id`),
|
||||
INDEX `idx_bidding_document_id` (`bidding_document_id`)
|
||||
) COMMENT ='投标文件-技术标';
|
||||
|
||||
drop table if exists xzd_tbwj_qualification_requirements;
|
||||
CREATE TABLE `xzd_tbwj_qualification_requirements`
|
||||
(
|
||||
`id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
||||
`bidding_document_id` BIGINT NOT NULL COMMENT '投标文件ID',
|
||||
`qualification_requirement` VARCHAR(512) NOT NULL COMMENT '资审要求',
|
||||
`compilation_points` TEXT DEFAULT NULL COMMENT '编制要点',
|
||||
`provide_time` DATETIME NOT NULL COMMENT '提供时间',
|
||||
`remark` TEXT null COMMENT '备注',
|
||||
PRIMARY KEY (`id`),
|
||||
INDEX `idx_bidding_document_id` (`bidding_document_id`)
|
||||
) COMMENT ='投标文件-资审要求';
|
||||
|
||||
drop table if exists xzd_tbwj_business_bid_requirements;
|
||||
CREATE TABLE `xzd_tbwj_business_bid_requirements`
|
||||
(
|
||||
`id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
||||
`bidding_document_id` BIGINT NOT NULL COMMENT '投标文件ID',
|
||||
`business_bid_requirement` VARCHAR(512) NOT NULL COMMENT '商务标要求',
|
||||
`compilation_points` TEXT DEFAULT NULL COMMENT '编制要点',
|
||||
`provide_time` DATETIME NOT NULL COMMENT '提供时间',
|
||||
`remark` TEXT null COMMENT '备注',
|
||||
PRIMARY KEY (`id`),
|
||||
INDEX `idx_bidding_document_id` (`bidding_document_id`)
|
||||
) COMMENT ='投标文件-商务标要求';
|
||||
|
||||
drop table if exists xzd_tbwj_technical_bid_requirements;
|
||||
CREATE TABLE `xzd_tbwj_technical_bid_requirements`
|
||||
(
|
||||
`id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
||||
`bidding_document_id` BIGINT NOT NULL COMMENT '投标文件ID',
|
||||
`technical_bid_requirement` VARCHAR(512) NOT NULL COMMENT '技术标要求',
|
||||
`compilation_points` TEXT DEFAULT NULL COMMENT '编制要点',
|
||||
`provide_time` DATETIME NOT NULL COMMENT '提供时间',
|
||||
`remark` TEXT null COMMENT '备注',
|
||||
PRIMARY KEY (`id`),
|
||||
INDEX `idx_bidding_document_id` (`bidding_document_id`)
|
||||
) COMMENT ='投标文件-技术标要求';
|
||||
|
||||
drop table if exists xzd_post_bid_analysis;
|
||||
CREATE TABLE `xzd_post_bid_analysis`
|
||||
(
|
||||
`id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
||||
`project_code` VARCHAR(100) NOT NULL COMMENT '项目编码',
|
||||
`project_name` VARCHAR(255) NOT NULL COMMENT '项目名称',
|
||||
`project_cost` DECIMAL(20, 4) DEFAULT 0.0000 COMMENT '工程造价(万元)',
|
||||
`project_type` BIGINT DEFAULT NULL COMMENT '项目类型ID',
|
||||
`project_address` VARCHAR(255) DEFAULT NULL COMMENT '项目地址',
|
||||
`project_overview` TEXT DEFAULT NULL COMMENT '工程概况',
|
||||
`construction_unit` VARCHAR(255) DEFAULT NULL COMMENT '建设单位',
|
||||
`bid_opening_date` DATE DEFAULT NULL COMMENT '开标日期',
|
||||
`business_model` VARCHAR(100) DEFAULT NULL COMMENT '经营模式',
|
||||
`control_price` DECIMAL(20, 4) DEFAULT 0.0000 COMMENT '招标控制价(万元)',
|
||||
`final_quote` DECIMAL(20, 4) DEFAULT 0.0000 COMMENT '最终报价(万元)',
|
||||
`bidding_result` VARCHAR(16) NOT NULL COMMENT '投标结果',
|
||||
`bid_record_link` VARCHAR(500) DEFAULT NULL COMMENT '开标记录链接',
|
||||
`analysis_summary` TEXT DEFAULT NULL COMMENT '投标分析与总结',
|
||||
`final_quote_yuan` DECIMAL(20, 4) DEFAULT 0.0000 COMMENT '最终报价(元)',
|
||||
`final_quote_chinese` VARCHAR(255) DEFAULT NULL COMMENT '最终报价(大写)',
|
||||
`file_id` varchar(1024) NULL COMMENT '文件ID',
|
||||
`remark` TEXT null COMMENT '备注',
|
||||
`audit_status` VARCHAR(32) default 'draft' NULL COMMENT '审核状态',
|
||||
`create_by` bigint NULL COMMENT '创建者',
|
||||
`update_by` bigint NULL COMMENT '更新者',
|
||||
`create_dept` bigint null comment '创建部门',
|
||||
`create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
`update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||||
PRIMARY KEY (`id`)
|
||||
) COMMENT ='标后分析';
|
||||
|
||||
drop table if exists xzd_bidding_unit_ranking;
|
||||
CREATE TABLE `xzd_bidding_unit_ranking`
|
||||
(
|
||||
`id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
||||
`bid_analysis_id` BIGINT NOT NULL COMMENT '标后分析ID',
|
||||
`bidding_unit_name` VARCHAR(255) DEFAULT NULL COMMENT '参与投标单位',
|
||||
`bid_price` DECIMAL(20, 4) DEFAULT 0.0000 COMMENT '投标报价(万元)',
|
||||
`ranking` INT NOT NULL COMMENT '排名',
|
||||
`remark` TEXT null COMMENT '备注',
|
||||
PRIMARY KEY (`id`),
|
||||
INDEX `idx_bid_analysis_id` (`bid_analysis_id`)
|
||||
) COMMENT ='标后分析-投标单位排名';
|
||||
Reference in New Issue
Block a user