将供应商由建管转到新中大供应商,总体计划成本接口修改
This commit is contained in:
@ -73,8 +73,7 @@ public class ExcelReader {
|
||||
|
||||
// 从MultipartFile获取输入流
|
||||
try (InputStream stream = file.getInputStream();
|
||||
org.apache.poi.ss.usermodel.Workbook workbook = isXlsx ?
|
||||
new XSSFWorkbook(stream) : new HSSFWorkbook(stream)) {
|
||||
Workbook workbook = WorkbookFactory.create(stream)) {
|
||||
|
||||
for (int sheetIndex = 0; sheetIndex < workbook.getNumberOfSheets(); sheetIndex++) {
|
||||
org.apache.poi.ss.usermodel.Sheet sheet = workbook.getSheetAt(sheetIndex);
|
||||
|
||||
@ -35,7 +35,9 @@ import org.dromara.design.service.IBusBillofquantitiesService;
|
||||
import org.dromara.design.service.IBusBillofquantitiesVersionsService;
|
||||
import org.dromara.tender.domain.bo.TenderSupplierInputReq;
|
||||
import org.dromara.tender.domain.vo.TenderSupplierInputVo;
|
||||
import org.dromara.tender.service.ITenderSupplierInputService;
|
||||
//import org.dromara.tender.service.ITenderSupplierInputService;
|
||||
import org.dromara.xzd.domain.vo.XzdSupplierInfoVo;
|
||||
import org.dromara.xzd.service.IXzdSupplierInfoService;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
@ -69,7 +71,8 @@ public class BusPurchaseDocController extends BaseController {
|
||||
private final IBusBillofquantitiesService busBillofquantitiesService;
|
||||
|
||||
private final IBusMrpBaseService busMrpBaseService;
|
||||
private final ITenderSupplierInputService tenderSupplierInputService;
|
||||
private final IXzdSupplierInfoService xzdSupplierInfoService;
|
||||
// private final ITenderSupplierInputService tenderSupplierInputService;
|
||||
private final IBusLtnService busLtnService;
|
||||
|
||||
/**
|
||||
@ -96,8 +99,8 @@ public class BusPurchaseDocController extends BaseController {
|
||||
*/
|
||||
@SaCheckPermission(value = {"cailiaoshebei:purchaseDoc:add","cailiaoshebei:purchaseDoc:edit"},mode = SaMode.OR)
|
||||
@GetMapping("/getListByName")
|
||||
public R<List<TenderSupplierInputVo>> getListByName(TenderSupplierInputReq req) {
|
||||
return R.ok(tenderSupplierInputService.getListByName(req));
|
||||
public R<List<XzdSupplierInfoVo>> getListByName(TenderSupplierInputReq req) {
|
||||
return R.ok(xzdSupplierInfoService.getListByName(req));
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@ -3,6 +3,7 @@ package org.dromara.cailiaoshebei.controller.app;
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import jakarta.annotation.Resource;
|
||||
import jakarta.servlet.http.HttpServletResponse;
|
||||
import jakarta.validation.constraints.NotEmpty;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
@ -30,7 +31,10 @@ import org.dromara.design.service.IBusBillofquantitiesService;
|
||||
import org.dromara.design.service.IBusBillofquantitiesVersionsService;
|
||||
import org.dromara.tender.domain.bo.TenderSupplierInputBo;
|
||||
import org.dromara.tender.domain.vo.TenderSupplierInputVo;
|
||||
import org.dromara.tender.service.ITenderSupplierInputService;
|
||||
//import org.dromara.tender.service.ITenderSupplierInputService;
|
||||
import org.dromara.xzd.domain.bo.XzdSupplierInfoBo;
|
||||
import org.dromara.xzd.domain.vo.XzdSupplierInfoVo;
|
||||
import org.dromara.xzd.service.IXzdSupplierInfoService;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
@ -63,7 +67,9 @@ public class BusPurchaseDocAppController extends BaseController {
|
||||
|
||||
private final IBusBillofquantitiesService busBillofquantitiesService;
|
||||
|
||||
private final ITenderSupplierInputService tenderSupplierInputService;
|
||||
// private final ITenderSupplierInputService tenderSupplierInputService;
|
||||
@Resource
|
||||
private IXzdSupplierInfoService supplierInfoService;
|
||||
|
||||
|
||||
/**
|
||||
@ -78,8 +84,8 @@ public class BusPurchaseDocAppController extends BaseController {
|
||||
* 查询供应商入库列表
|
||||
*/
|
||||
@GetMapping("/supList")
|
||||
public TableDataInfo<TenderSupplierInputVo> list(TenderSupplierInputBo bo, PageQuery pageQuery) {
|
||||
return tenderSupplierInputService.queryPageList(bo, pageQuery);
|
||||
public TableDataInfo<XzdSupplierInfoVo> list(XzdSupplierInfoBo bo, PageQuery pageQuery) {
|
||||
return supplierInfoService.queryPageList(bo, pageQuery);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@ -33,7 +33,7 @@ import org.dromara.tender.domain.vo.BusBillofquantitiesLimitListVo;
|
||||
import org.dromara.tender.domain.vo.BusTenderPlanningLimitListVo;
|
||||
import org.dromara.tender.service.IBusBiddingPlanService;
|
||||
import org.dromara.tender.service.IBusBillofquantitiesLimitListService;
|
||||
import org.dromara.tender.service.ITenderSupplierInputService;
|
||||
//import org.dromara.tender.service.ITenderSupplierInputService;
|
||||
import org.springframework.context.annotation.Lazy;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.context.annotation.Lazy;
|
||||
|
||||
@ -31,7 +31,9 @@ import org.dromara.project.service.IBusProjectService;
|
||||
import org.dromara.system.domain.SysUser;
|
||||
import org.dromara.system.service.ISysUserService;
|
||||
import org.dromara.tender.domain.TenderSupplierInput;
|
||||
import org.dromara.tender.service.ITenderSupplierInputService;
|
||||
//import org.dromara.tender.service.ITenderSupplierInputService;
|
||||
import org.dromara.xzd.domain.XzdSupplierInfo;
|
||||
import org.dromara.xzd.service.IXzdSupplierInfoService;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.context.annotation.Lazy;
|
||||
import org.springframework.stereotype.Service;
|
||||
@ -56,8 +58,10 @@ public class SubContractorServiceImpl extends ServiceImpl<SubContractorMapper, S
|
||||
@Resource
|
||||
private IBusProjectService projectService;
|
||||
|
||||
// @Resource
|
||||
// private ITenderSupplierInputService supplierInputService;
|
||||
@Resource
|
||||
private ITenderSupplierInputService supplierInputService;
|
||||
private IXzdSupplierInfoService supplierInfoService;
|
||||
|
||||
@Resource
|
||||
@Lazy
|
||||
@ -195,7 +199,7 @@ public class SubContractorServiceImpl extends ServiceImpl<SubContractorMapper, S
|
||||
if (StringUtils.isNotBlank(custodianPhone) && !PhoneUtil.isPhone(custodianPhone)) {
|
||||
throw new ServiceException("管理人手机号格式不正确", HttpStatus.BAD_REQUEST);
|
||||
}
|
||||
if (ObjectUtils.isNotEmpty(supplierId) && supplierInputService.getById(supplierId) == null) {
|
||||
if (ObjectUtils.isNotEmpty(supplierId) && supplierInfoService.getById(supplierId) == null) {
|
||||
throw new ServiceException("供应商不存在", HttpStatus.NOT_FOUND);
|
||||
}
|
||||
}
|
||||
@ -253,9 +257,9 @@ public class SubContractorServiceImpl extends ServiceImpl<SubContractorMapper, S
|
||||
// 关联供应商名称
|
||||
Long supplierId = contractor.getSupplierId();
|
||||
if (supplierId != null) {
|
||||
TenderSupplierInput supplierInput = supplierInputService.getById(supplierId);
|
||||
if (supplierInput != null) {
|
||||
contractorVo.setSupplierName(supplierInput.getSupplierName());
|
||||
XzdSupplierInfo supplierInfo = supplierInfoService.getById(supplierId);
|
||||
if (supplierInfo != null) {
|
||||
contractorVo.setSupplierName(supplierInfo.getUnitName());
|
||||
}
|
||||
}
|
||||
return contractorVo;
|
||||
|
||||
@ -7,6 +7,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import jakarta.annotation.Resource;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.dromara.bidding.domain.BusBiddingLimitList;
|
||||
@ -36,19 +37,31 @@ import org.dromara.design.exportUtil.bill.BillOfQuantitiesExport;
|
||||
import org.dromara.design.mapper.BusBillofquantitiesVersionsMapper;
|
||||
import org.dromara.design.service.IBusBillofquantitiesService;
|
||||
import org.dromara.design.service.IBusBillofquantitiesVersionsService;
|
||||
import org.dromara.project.domain.BusProjectDept;
|
||||
import org.dromara.project.domain.vo.project.BusProjectVo;
|
||||
import org.dromara.project.service.IBusProjectDeptService;
|
||||
import org.dromara.project.service.IBusProjectService;
|
||||
import org.dromara.system.domain.vo.SysOssUploadVo;
|
||||
import org.dromara.system.service.ISysDeptService;
|
||||
import org.dromara.system.service.ISysOssService;
|
||||
import org.dromara.tender.domain.BusBLimitListVersions;
|
||||
import org.dromara.tender.domain.BusBillofquantitiesLimitList;
|
||||
import org.dromara.tender.domain.vo.BusBLimitListVersionsVo;
|
||||
import org.dromara.tender.service.IBusBLimitListVersionsService;
|
||||
import org.dromara.tender.service.IBusBillofquantitiesLimitListService;
|
||||
import org.dromara.xzd.costProjectApproval.costBudget.domain.XzdCbysZjhcb;
|
||||
import org.dromara.xzd.costProjectApproval.costBudget.service.IXzdCbysZjhcbService;
|
||||
import org.dromara.xzd.domain.XzdProject;
|
||||
import org.dromara.xzd.service.IXzdProjectService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.context.annotation.Lazy;
|
||||
import org.springframework.context.event.EventListener;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDate;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@ -73,9 +86,19 @@ public class BusBillofquantitiesVersionsServiceImpl extends ServiceImpl<BusBillo
|
||||
private final IBusBiddingLimitListService busBiddingLimitListService;
|
||||
private final IBusBLimitListVersionsService busBLimitListVersionsService;
|
||||
private final IBusBiddingLimitVersionsService busBiddingLimitVersions;
|
||||
private final IXzdCbysZjhcbService xzdCbysZjhcbService;
|
||||
@Lazy
|
||||
@Resource
|
||||
private IBusProjectService busProjectService;
|
||||
@Lazy
|
||||
@Resource
|
||||
private IXzdProjectService xzdProjectService;
|
||||
|
||||
@Autowired
|
||||
private ISysOssService ossService;
|
||||
@Lazy
|
||||
@Resource
|
||||
private IBusProjectDeptService projectDeptService;
|
||||
|
||||
/**
|
||||
* 查询工程量清单版本
|
||||
@ -633,6 +656,32 @@ public class BusBillofquantitiesVersionsServiceImpl extends ServiceImpl<BusBillo
|
||||
if (!b) {
|
||||
log.info("新增失败");
|
||||
}
|
||||
|
||||
XzdCbysZjhcb zjhcb = new XzdCbysZjhcb();
|
||||
BusProjectDept projectDept = projectDeptService.getBaseMapper().selectOne(new LambdaQueryWrapper<BusProjectDept>().eq(BusProjectDept::getProjectId, versions.getProjectId()));
|
||||
if (projectDept != null){
|
||||
zjhcb.setDeptId(projectDept.getDeptId());
|
||||
}
|
||||
zjhcb.setVesionId(busBLimitListVersions.getVersions());
|
||||
zjhcb.setSysProjectId(versions.getProjectId());
|
||||
String banBen = BatchNumberGenerator.generateBatchNumber("LXCBZTJHCB-");
|
||||
zjhcb.setDocCode(banBen);
|
||||
XzdProject xzdProject = xzdProjectService.getBaseMapper().selectOne(new LambdaQueryWrapper<XzdProject>().eq(XzdProject::getSysProjectId, versions.getProjectId()));
|
||||
if (xzdProject != null){
|
||||
zjhcb.setProjectId(xzdProject.getId());
|
||||
zjhcb.setProjectLeader(xzdProject.getManagerResponsible());
|
||||
zjhcb.setExecProjectManager(xzdProject.getManagerExecution());
|
||||
zjhcb.setDocTitle(xzdProject.getProjectName());
|
||||
}else {
|
||||
zjhcb.setDocTitle(banBen);
|
||||
}
|
||||
zjhcb.setDocDate(LocalDate.now());
|
||||
zjhcb.setBudgetCategory("1");
|
||||
zjhcb.setContractAmount(BigDecimal.ZERO);
|
||||
boolean save1 = xzdCbysZjhcbService.save(zjhcb);
|
||||
if (!save1) {
|
||||
log.info("新增失败");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -8,6 +8,7 @@ import org.dromara.common.excel.annotation.ExcelDictFormat;
|
||||
import org.dromara.common.excel.convert.ExcelDictConvert;
|
||||
import org.dromara.materials.domain.MatMaterials;
|
||||
import org.dromara.tender.domain.vo.TenderSupplierInputVo;
|
||||
import org.dromara.xzd.domain.vo.XzdSupplierInfoVo;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
@ -56,7 +57,8 @@ public class MatMaterialsVo implements Serializable {
|
||||
* 公司信息
|
||||
*/
|
||||
@ExcelProperty(value = "公司信息")
|
||||
private TenderSupplierInputVo companyVo;
|
||||
// private TenderSupplierInputVo companyVo;
|
||||
private XzdSupplierInfoVo companyVo;
|
||||
|
||||
/**
|
||||
* 项目id
|
||||
|
||||
@ -33,7 +33,8 @@ import org.dromara.materials.mapper.MatMaterialsMapper;
|
||||
import org.dromara.materials.service.*;
|
||||
import org.dromara.project.domain.BusProject;
|
||||
import org.dromara.project.service.IBusProjectService;
|
||||
import org.dromara.tender.service.ITenderSupplierInputService;
|
||||
//import org.dromara.tender.service.ITenderSupplierInputService;
|
||||
import org.dromara.xzd.service.IXzdSupplierInfoService;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.context.annotation.Lazy;
|
||||
import org.springframework.scheduling.annotation.Async;
|
||||
@ -54,8 +55,10 @@ import java.util.stream.Collectors;
|
||||
public class MatMaterialsServiceImpl extends ServiceImpl<MatMaterialsMapper, MatMaterials>
|
||||
implements IMatMaterialsService {
|
||||
|
||||
// @Resource
|
||||
// private ITenderSupplierInputService tenderSupplierInputService;
|
||||
@Resource
|
||||
private ITenderSupplierInputService tenderSupplierInputService;
|
||||
private IXzdSupplierInfoService supplierInfoService;
|
||||
|
||||
@Resource
|
||||
private IBusProjectService projectService;
|
||||
@ -233,7 +236,7 @@ public class MatMaterialsServiceImpl extends ServiceImpl<MatMaterialsMapper, Mat
|
||||
if (companyId == null) {
|
||||
throw new ServiceException("请填写公司ID", HttpStatus.BAD_REQUEST);
|
||||
}
|
||||
if (tenderSupplierInputService.getById(companyId) == null) {
|
||||
if (supplierInfoService.getById(companyId) == null) {
|
||||
throw new ServiceException("对应公司不存在", HttpStatus.BAD_REQUEST);
|
||||
}
|
||||
if (projectId == null) {
|
||||
@ -285,7 +288,7 @@ public class MatMaterialsServiceImpl extends ServiceImpl<MatMaterialsMapper, Mat
|
||||
// 关联查询项目信息
|
||||
Long companyId = materials.getCompanyId();
|
||||
if (companyId != null) {
|
||||
materialsVo.setCompanyVo(tenderSupplierInputService.queryById(companyId));
|
||||
materialsVo.setCompanyVo(supplierInfoService.queryById(companyId));
|
||||
}
|
||||
// 关联对象存储文件信息
|
||||
String fileOssId = materials.getFileOssId();
|
||||
|
||||
@ -139,7 +139,7 @@ public class BusProjectCreateReq implements Serializable {
|
||||
/**
|
||||
* 所属部门列表
|
||||
*/
|
||||
private List<Long> deptIds;
|
||||
private Long deptIds;
|
||||
|
||||
/**
|
||||
* xzd项目id
|
||||
|
||||
@ -155,7 +155,7 @@ public class BusProjectUpdateReq implements Serializable {
|
||||
/**
|
||||
* 所属部门列表
|
||||
*/
|
||||
private List<Long> deptIds;
|
||||
private Long deptIds;
|
||||
|
||||
/**
|
||||
* 省份
|
||||
|
||||
@ -421,18 +421,16 @@ public class BusProjectServiceImpl extends ServiceImpl<BusProjectMapper, BusProj
|
||||
throw new ServiceException("新增用户与项目关联失败,数据库异常", HttpStatus.ERROR);
|
||||
}
|
||||
// 保存项目与部门的关联
|
||||
List<Long> deptIds = req.getDeptIds();
|
||||
if (CollUtil.isNotEmpty(deptIds)) {
|
||||
List<BusProjectDept> projectDeptList = deptIds.stream().map(deptId -> {
|
||||
BusProjectDept projectDept = new BusProjectDept();
|
||||
projectDept.setDeptId(deptId);
|
||||
projectDept.setProjectId(projectId);
|
||||
return projectDept;
|
||||
}).toList();
|
||||
boolean saveBatch = projectDeptService.saveBatch(projectDeptList);
|
||||
if (!saveBatch) {
|
||||
throw new ServiceException("保存项目与部门的关联失败", HttpStatus.ERROR);
|
||||
Long count = projectDeptService.getBaseMapper().selectCount(new LambdaQueryWrapper<BusProjectDept>().eq(BusProjectDept::getProjectId, projectId));
|
||||
if (count > 0) {
|
||||
throw new ServiceException("项目已存在部门关联,请勿重复添加", HttpStatus.BAD_REQUEST);
|
||||
}
|
||||
BusProjectDept projectDept = new BusProjectDept();
|
||||
projectDept.setDeptId(req.getDeptIds());
|
||||
projectDept.setProjectId(projectId);
|
||||
boolean save1 = projectDeptService.save(projectDept);
|
||||
if (!save1) {
|
||||
throw new ServiceException("新增项目与部门关联失败,数据库异常", HttpStatus.ERROR);
|
||||
}
|
||||
// 异步执行数据同步
|
||||
self.insertProjectSyncThing(projectId)
|
||||
@ -570,41 +568,19 @@ public class BusProjectServiceImpl extends ServiceImpl<BusProjectMapper, BusProj
|
||||
throw new ServiceException("打卡范围增加失败", HttpStatus.ERROR);
|
||||
}
|
||||
}
|
||||
List<Long> deptIds = req.getDeptIds();
|
||||
// 根据项目查询部门
|
||||
List<Long> oldDeptIds = projectDeptService.lambdaQuery()
|
||||
.eq(BusProjectDept::getProjectId, project.getId())
|
||||
.list()
|
||||
.stream().map(BusProjectDept::getDeptId)
|
||||
.toList();
|
||||
if (CollUtil.isEmpty(deptIds) && CollUtil.isEmpty(oldDeptIds)) {
|
||||
return true;
|
||||
} else if (CollUtil.isEmpty(deptIds) && CollUtil.isNotEmpty(oldDeptIds)) {
|
||||
//删除所有旧部门
|
||||
boolean remove = projectDeptService.remove(Wrappers.lambdaQuery(BusProjectDept.class)
|
||||
.eq(BusProjectDept::getProjectId, project.getId()));
|
||||
if (!remove) {
|
||||
throw new ServiceException("删除项目部门失败", HttpStatus.ERROR);
|
||||
}
|
||||
} else if (CollUtil.isNotEmpty(deptIds)) {
|
||||
if (CollUtil.isNotEmpty(oldDeptIds)) {
|
||||
//删除所有旧部门
|
||||
boolean remove = projectDeptService.remove(Wrappers.lambdaQuery(BusProjectDept.class)
|
||||
.eq(BusProjectDept::getProjectId, project.getId()));
|
||||
if (!remove) {
|
||||
throw new ServiceException("删除项目部门失败", HttpStatus.ERROR);
|
||||
}
|
||||
}
|
||||
//新增部门
|
||||
List<BusProjectDept> busProjectDepts = deptIds.stream().map(deptId -> {
|
||||
if (req.getDeptIds() !=null) {
|
||||
BusProjectDept projectDept = new BusProjectDept();
|
||||
projectDept.setDeptId(deptId);
|
||||
projectDept.setDeptId(req.getDeptIds());
|
||||
projectDept.setProjectId(project.getId());
|
||||
return projectDept;
|
||||
}).toList();
|
||||
boolean save = projectDeptService.saveBatch(busProjectDepts);
|
||||
if (!save) {
|
||||
throw new ServiceException("部门增加失败", HttpStatus.ERROR);
|
||||
boolean save1 = projectDeptService.save(projectDept);
|
||||
if (!save1) {
|
||||
throw new ServiceException("新增项目与部门关联失败,数据库异常", HttpStatus.ERROR);
|
||||
}
|
||||
}
|
||||
return true;
|
||||
|
||||
@ -90,7 +90,9 @@ public class SysUserServiceImpl implements ISysUserService, UserService {
|
||||
|
||||
private final ISubConstructionUserService constructionUserService;
|
||||
|
||||
private final ISubContractorService contractorService;
|
||||
@Lazy
|
||||
@Resource
|
||||
private ISubContractorService contractorService;
|
||||
|
||||
@Lazy
|
||||
@Resource
|
||||
|
||||
@ -3,6 +3,7 @@ package org.dromara.tender.controller;
|
||||
import java.util.List;
|
||||
|
||||
import cn.dev33.satoken.annotation.SaMode;
|
||||
import jakarta.annotation.Resource;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import jakarta.servlet.http.HttpServletResponse;
|
||||
import jakarta.validation.constraints.*;
|
||||
@ -14,7 +15,10 @@ import org.dromara.tender.domain.bo.*;
|
||||
import org.dromara.tender.domain.vo.*;
|
||||
import org.dromara.tender.service.IBusBiddingPlanAnnexService;
|
||||
import org.dromara.tender.service.IBusBillofquantitiesLimitListService;
|
||||
import org.dromara.tender.service.ITenderSupplierInputService;
|
||||
//import org.dromara.tender.service.ITenderSupplierInputService;
|
||||
import org.dromara.xzd.domain.bo.XzdSupplierInfoBo;
|
||||
import org.dromara.xzd.domain.vo.XzdSupplierInfoVo;
|
||||
import org.dromara.xzd.service.IXzdSupplierInfoService;
|
||||
import org.springframework.context.annotation.Lazy;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
@ -48,16 +52,18 @@ public class BusBiddingPlanController extends BaseController {
|
||||
private final IBusBillofquantitiesLimitListService busBillofquantitiesLimitListService;
|
||||
@Lazy
|
||||
private final IBusBiddingPlanAnnexService busBiddingPlanAnnexService;
|
||||
// private final ITenderSupplierInputService tenderSupplierInputService;
|
||||
@Lazy
|
||||
private final ITenderSupplierInputService tenderSupplierInputService;
|
||||
@Resource
|
||||
private IXzdSupplierInfoService supplierInfoService;
|
||||
|
||||
/**
|
||||
* 查询供应商入库列表
|
||||
*/
|
||||
@SaCheckPermission(value = {"tender:biddingPlan:list","tender:biddingPlan:add","tender:biddingPlan:edit"},mode = SaMode.OR)
|
||||
@GetMapping("/getSupplierInputList")
|
||||
public R<List<TenderSupplierInputVo>> list(TenderSupplierInputBo bo) {
|
||||
return R.ok(tenderSupplierInputService.getList(bo));
|
||||
public R<List<XzdSupplierInfoVo>> list(XzdSupplierInfoBo bo) {
|
||||
return R.ok(supplierInfoService.getList(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@ -114,4 +114,13 @@ public interface IBusBillofquantitiesLimitListService extends IService<BusBillof
|
||||
List<BusBillofquantitiesLimitListWuZiVo> queryVoList(BusBillofquantitiesLimitListBo bo);
|
||||
|
||||
List<BusBillofquantitiesLimitListVo> pList(BusBillofquantitiesLimitListBo bo);
|
||||
|
||||
/**
|
||||
* 立项及成本-成本预算-总体计划成本获取限价一览列表
|
||||
* @param bo
|
||||
* @return
|
||||
*/
|
||||
List<BusBillofquantitiesLimitListVo> getZjhcbTree(BusBillofquantitiesLimitListBo bo);
|
||||
|
||||
List<BusBillofquantitiesLimitListVo> getVoByVersion(Long sysProjectId, String vesion);
|
||||
}
|
||||
|
||||
@ -3,6 +3,7 @@ package org.dromara.tender.service.impl;
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import jakarta.annotation.Resource;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.dromara.common.core.exception.ServiceException;
|
||||
import org.dromara.common.core.utils.MapstructUtils;
|
||||
@ -22,8 +23,11 @@ import org.dromara.tender.domain.vo.*;
|
||||
import org.dromara.tender.mapper.BusTenderPlanningLimitListMapper;
|
||||
import org.dromara.tender.service.IBusBiddingPlanAnnexService;
|
||||
import org.dromara.tender.service.IBusBillofquantitiesLimitListService;
|
||||
import org.dromara.tender.service.ITenderSupplierInputService;
|
||||
//import org.dromara.tender.service.ITenderSupplierInputService;
|
||||
import org.dromara.xzd.domain.XzdSupplierInfo;
|
||||
import org.dromara.xzd.service.IXzdSupplierInfoService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.context.annotation.Lazy;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.dromara.tender.domain.bo.BusBiddingPlanBo;
|
||||
import org.dromara.tender.mapper.BusBiddingPlanMapper;
|
||||
@ -64,8 +68,11 @@ public class BusBiddingPlanServiceImpl extends ServiceImpl<BusBiddingPlanMapper,
|
||||
private ISysOssService ossService;
|
||||
|
||||
|
||||
@Autowired
|
||||
private ITenderSupplierInputService tenderSupplierInputService;
|
||||
// @Autowired
|
||||
// private ITenderSupplierInputService tenderSupplierInputService;
|
||||
@Lazy
|
||||
@Resource
|
||||
private IXzdSupplierInfoService supplierInfoService;
|
||||
|
||||
/**
|
||||
* 查询招标计划
|
||||
@ -284,9 +291,10 @@ public class BusBiddingPlanServiceImpl extends ServiceImpl<BusBiddingPlanMapper,
|
||||
List<BusBiddingPlanAnnexVo> planAnnexVoList = busBiddingPlanAnnexService.queryList(planAnnex);
|
||||
BusBiddingPlan biddingPlan = baseMapper.selectById(bo.getId());
|
||||
//冗余中标单位名称
|
||||
TenderSupplierInput tenderSupplierInput = tenderSupplierInputService.getById(bo.getWinningBidderId());
|
||||
// TenderSupplierInput tenderSupplierInput = tenderSupplierInputService.getById(bo.getWinningBidderId());
|
||||
XzdSupplierInfo supplierInfo = supplierInfoService.getById(bo.getWinningBidderId());
|
||||
biddingPlan.setWinningBidderId(bo.getWinningBidderId());
|
||||
biddingPlan.setWinningBidder(tenderSupplierInput.getSupplierName());
|
||||
biddingPlan.setWinningBidder(supplierInfo.getUnitName());
|
||||
if (biddingPlan.getPlannedBiddingTime() == null){
|
||||
throw new ServiceException("计划招标时间不能为空!!");
|
||||
}
|
||||
|
||||
@ -368,6 +368,34 @@ public class BusBillofquantitiesLimitListServiceImpl extends ServiceImpl<BusBill
|
||||
return listVoList;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<BusBillofquantitiesLimitListVo> getZjhcbTree(BusBillofquantitiesLimitListBo bo) {
|
||||
//获取所有数据
|
||||
List<BusBillofquantitiesLimitListVo> listVoList = baseMapper.selectVoList(new LambdaQueryWrapper<BusBillofquantitiesLimitList>()
|
||||
.eq(bo.getProjectId() != null,BusBillofquantitiesLimitList::getProjectId, bo.getProjectId())
|
||||
.eq(StringUtils.isNotBlank(bo.getType()),BusBillofquantitiesLimitList::getType, bo.getType())
|
||||
.eq(StringUtils.isNotBlank(bo.getVersions()),BusBillofquantitiesLimitList::getVersions, bo.getVersions())
|
||||
.eq(StringUtils.isNotBlank(bo.getSheet()),BusBillofquantitiesLimitList::getSheet, bo.getSheet()));
|
||||
|
||||
//构建父子映射
|
||||
Map<String, List<BusBillofquantitiesLimitListVo>> parentMap = listVoList.stream()
|
||||
.collect(Collectors.groupingBy(BusBillofquantitiesLimitListVo::getPid));
|
||||
//递归组装树形结构
|
||||
List<BusBillofquantitiesLimitListVo> treeList = buildTree("0", parentMap);
|
||||
for (BusBillofquantitiesLimitListVo item : treeList) {
|
||||
calculateTreePrice(item);
|
||||
}
|
||||
return treeList;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<BusBillofquantitiesLimitListVo> getVoByVersion(Long sysProjectId, String vesion) {
|
||||
return baseMapper.selectVoList(new LambdaQueryWrapper<BusBillofquantitiesLimitList>()
|
||||
.eq(BusBillofquantitiesLimitList::getProjectId, sysProjectId)
|
||||
.eq(BusBillofquantitiesLimitList::getVersions, vesion)
|
||||
.isNotNull(BusBillofquantitiesLimitList::getUnitPrice));
|
||||
}
|
||||
|
||||
/**
|
||||
* 递归构建树形结构
|
||||
*
|
||||
|
||||
@ -1,7 +1,6 @@
|
||||
package org.dromara.websocket.service.Impl;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import org.dromara.tender.service.ITenderSupplierInputService;
|
||||
import org.dromara.websocket.domain.ChatHistory;
|
||||
import org.dromara.websocket.mapper.ChatHistoryMapper;
|
||||
import org.dromara.websocket.service.IChatHistoryService;
|
||||
|
||||
@ -15,6 +15,8 @@ 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.tender.domain.bo.TenderSupplierInputBo;
|
||||
import org.dromara.tender.domain.vo.TenderSupplierInputVo;
|
||||
import org.dromara.xzd.domain.bo.XzdProjectBo;
|
||||
import org.dromara.xzd.domain.bo.XzdSupplierInfoBo;
|
||||
import org.dromara.xzd.domain.bo.XzdSupplierOpenBankBo;
|
||||
@ -46,6 +48,15 @@ public class XzdSupplierInfoController extends BaseController {
|
||||
private final IXzdSupplierOpenBankService xzdSupplierOpenBankService;
|
||||
private final IXzdYhxxService xzdYhxxService;
|
||||
|
||||
/**
|
||||
* 查询供应商入库列表
|
||||
*/
|
||||
@SaCheckPermission("supplierInput:supplierInput:getList")
|
||||
@GetMapping("/getList")
|
||||
public R<List<XzdSupplierInfoVo>> list(XzdSupplierInfoBo bo) {
|
||||
return R.ok(xzdSupplierInfoService.getList(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询供应商信息列表
|
||||
*/
|
||||
|
||||
@ -2,10 +2,15 @@ package org.dromara.xzd.costProjectApproval.costBudget.controller;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import cn.dev33.satoken.annotation.SaMode;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import jakarta.servlet.http.HttpServletResponse;
|
||||
import jakarta.validation.constraints.*;
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import org.dromara.tender.domain.bo.BusBillofquantitiesLimitListBo;
|
||||
import org.dromara.tender.domain.vo.BusBillofquantitiesLimitListVo;
|
||||
import org.dromara.tender.enums.LimitListTypeEnum;
|
||||
import org.dromara.tender.service.IBusBillofquantitiesLimitListService;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.dromara.common.idempotent.annotation.RepeatSubmit;
|
||||
@ -35,6 +40,26 @@ import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
public class XzdCbysZjhcbController extends BaseController {
|
||||
|
||||
private final IXzdCbysZjhcbService xzdCbysZjhcbService;
|
||||
private final IBusBillofquantitiesLimitListService busBillofquantitiesLimitListService;
|
||||
|
||||
/**
|
||||
* 获取指定版本的sheet
|
||||
*/
|
||||
@SaCheckPermission(value = {"costBudget:cbysZjhcb:list","costBudget:cbysZjhcb:add","costBudget:cbysZjhcb:edit"},mode = SaMode.OR)
|
||||
@GetMapping("/sheetList")
|
||||
public R<List<String>> sheetList(XzdCbysZjhcbBo bo) {
|
||||
return R.ok(xzdCbysZjhcbService.sheetList(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询限价一览列表
|
||||
*/
|
||||
@SaCheckPermission(value = {"costBudget:cbysZjhcb:list","costBudget:cbysZjhcb:add","costBudget:cbysZjhcb:edit"},mode = SaMode.OR)
|
||||
@GetMapping("/getTree")
|
||||
public R<List<BusBillofquantitiesLimitListVo>> getTree(BusBillofquantitiesLimitListBo bo) {
|
||||
bo.setType(LimitListTypeEnum.COMPANY.getCode());
|
||||
return R.ok(xzdCbysZjhcbService.getTree(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询立项及成本-成本预算-总体计划成本列表
|
||||
|
||||
@ -35,6 +35,11 @@ public class XzdCbysZjhcb extends BaseEntity {
|
||||
*/
|
||||
private Long deptId;
|
||||
|
||||
/**
|
||||
*限价一览版本id
|
||||
*/
|
||||
private String vesionId;
|
||||
|
||||
/**
|
||||
* 单据编码(带*,必填)
|
||||
*/
|
||||
@ -54,6 +59,10 @@ public class XzdCbysZjhcb extends BaseEntity {
|
||||
* 工程项目(带*,必填)
|
||||
*/
|
||||
private Long projectId;
|
||||
/**
|
||||
* 系统项目id
|
||||
*/
|
||||
private Long sysProjectId;
|
||||
|
||||
/**
|
||||
* 预算分类(带*,必填)
|
||||
|
||||
@ -1,5 +1,6 @@
|
||||
package org.dromara.xzd.costProjectApproval.costBudget.domain.bo;
|
||||
|
||||
import org.dromara.tender.domain.bo.BusBillofquantitiesLimitListBo;
|
||||
import org.dromara.xzd.costProjectApproval.costBudget.domain.*;
|
||||
import org.dromara.common.mybatis.core.domain.BaseEntity;
|
||||
import org.dromara.common.core.validate.AddGroup;
|
||||
@ -30,6 +31,12 @@ public class XzdCbysZjhcbBo extends BaseEntity {
|
||||
private Long id;
|
||||
|
||||
|
||||
|
||||
/**
|
||||
*限价一览版本id
|
||||
*/
|
||||
private String vesionId;
|
||||
|
||||
/**
|
||||
* 部门id
|
||||
*/
|
||||
@ -56,6 +63,10 @@ public class XzdCbysZjhcbBo extends BaseEntity {
|
||||
*/
|
||||
@NotNull(message = "工程项目(带*,必填)不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long projectId;
|
||||
/**
|
||||
* 系统项目id
|
||||
*/
|
||||
private Long sysProjectId;
|
||||
|
||||
/**
|
||||
* 预算分类(带*,必填)
|
||||
@ -166,12 +177,17 @@ public class XzdCbysZjhcbBo extends BaseEntity {
|
||||
List<XzdCbysZtjhcbBgjl> xzdCbysZtjhcbBgjl;
|
||||
|
||||
/**
|
||||
* 成本明细
|
||||
* 限价一览
|
||||
*/
|
||||
List<XzdCbysZjhcbFubiao> xzdCbysWgcbtbFubiao;
|
||||
List<BusBillofquantitiesLimitListBo> bos;
|
||||
|
||||
/**
|
||||
* 税收成本
|
||||
*/
|
||||
List<XzdCbysSscb> xzdCbysSscb;
|
||||
// /**
|
||||
// * 成本明细
|
||||
// */
|
||||
// List<XzdCbysZjhcbFubiao> xzdCbysWgcbtbFubiao;
|
||||
//
|
||||
// /**
|
||||
// * 税收成本
|
||||
// */
|
||||
// List<XzdCbysSscb> xzdCbysSscb;
|
||||
}
|
||||
|
||||
@ -4,6 +4,8 @@ import java.math.BigDecimal;
|
||||
|
||||
import org.dromara.common.translation.annotation.Translation;
|
||||
import org.dromara.common.translation.constant.TransConstant;
|
||||
import org.dromara.tender.domain.bo.BusBillofquantitiesLimitListBo;
|
||||
import org.dromara.tender.domain.vo.BusBillofquantitiesLimitListVo;
|
||||
import org.dromara.xzd.costProjectApproval.costBudget.domain.*;
|
||||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
@ -40,6 +42,11 @@ public class XzdCbysZjhcbVo implements Serializable {
|
||||
private Long id;
|
||||
|
||||
|
||||
|
||||
/**
|
||||
*限价一览版本id
|
||||
*/
|
||||
private String vesionId;
|
||||
/**
|
||||
* 部门id
|
||||
*/
|
||||
@ -64,6 +71,10 @@ public class XzdCbysZjhcbVo implements Serializable {
|
||||
*/
|
||||
@ExcelProperty(value = "单据日期")
|
||||
private LocalDate docDate;
|
||||
/**
|
||||
* 系统项目id
|
||||
*/
|
||||
private Long sysProjectId;
|
||||
|
||||
/**
|
||||
* 工程项目(带*,必填)
|
||||
@ -213,10 +224,14 @@ public class XzdCbysZjhcbVo implements Serializable {
|
||||
/**
|
||||
* 成本明细
|
||||
*/
|
||||
List<XzdCbysZjhcbFubiao> xzdCbysWgcbtbFubiao;
|
||||
|
||||
// List<XzdCbysZjhcbFubiao> xzdCbysWgcbtbFubiao;
|
||||
//
|
||||
// /**
|
||||
// * 税收成本
|
||||
// */
|
||||
// List<XzdCbysSscb> xzdCbysSscb;
|
||||
/**
|
||||
* 税收成本
|
||||
* 限价一览
|
||||
*/
|
||||
List<XzdCbysSscb> xzdCbysSscb;
|
||||
List<BusBillofquantitiesLimitListVo> bos;
|
||||
}
|
||||
|
||||
@ -1,5 +1,7 @@
|
||||
package org.dromara.xzd.costProjectApproval.costBudget.service;
|
||||
|
||||
import org.dromara.tender.domain.bo.BusBillofquantitiesLimitListBo;
|
||||
import org.dromara.tender.domain.vo.BusBillofquantitiesLimitListVo;
|
||||
import org.dromara.xzd.costProjectApproval.costBudget.domain.vo.XzdCbysZjhcbVo;
|
||||
import org.dromara.xzd.costProjectApproval.costBudget.domain.bo.XzdCbysZjhcbBo;
|
||||
import org.dromara.xzd.costProjectApproval.costBudget.domain.XzdCbysZjhcb;
|
||||
@ -69,4 +71,16 @@ public interface IXzdCbysZjhcbService extends IService<XzdCbysZjhcb>{
|
||||
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
|
||||
|
||||
String queryNameById(Long id);
|
||||
|
||||
/**
|
||||
* 查询指定版本的sheet通过项目id
|
||||
*/
|
||||
List<String> sheetList(XzdCbysZjhcbBo bo);
|
||||
|
||||
/**
|
||||
* 查询限价一览列表
|
||||
* @param bo
|
||||
* @return
|
||||
*/
|
||||
List<BusBillofquantitiesLimitListVo> getTree(BusBillofquantitiesLimitListBo bo);
|
||||
}
|
||||
|
||||
@ -3,6 +3,7 @@ package org.dromara.xzd.costProjectApproval.costBudget.service.impl;
|
||||
import cn.hutool.core.convert.Convert;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import jakarta.annotation.Resource;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.dromara.common.core.domain.event.ProcessDeleteEvent;
|
||||
import org.dromara.common.core.domain.event.ProcessEvent;
|
||||
@ -21,6 +22,12 @@ import lombok.RequiredArgsConstructor;
|
||||
import org.dromara.common.utils.BatchNumberGenerator;
|
||||
import org.dromara.system.service.ISysUserService;
|
||||
import org.dromara.system.service.impl.SysOssServiceImpl;
|
||||
import org.dromara.tender.domain.BusBillofquantitiesLimitList;
|
||||
import org.dromara.tender.domain.bo.BusBillofquantitiesLimitListBo;
|
||||
import org.dromara.tender.domain.vo.BusBillofquantitiesLimitListVo;
|
||||
import org.dromara.tender.enums.LimitListTypeEnum;
|
||||
import org.dromara.tender.service.IBusBLimitListVersionsService;
|
||||
import org.dromara.tender.service.IBusBillofquantitiesLimitListService;
|
||||
import org.dromara.xzd.costProjectApproval.costBudget.domain.*;
|
||||
import org.dromara.xzd.costProjectApproval.costBudget.service.*;
|
||||
import org.dromara.xzd.domain.vo.XzdProjectManagerApprovalVo;
|
||||
@ -28,13 +35,17 @@ import org.dromara.xzd.service.impl.XzdProjectServiceImpl;
|
||||
import org.dromara.xzd.settlement.domain.XzdJsDeductionItems;
|
||||
import org.dromara.xzd.settlement.domain.vo.XzdJsCgJungonVo;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.context.annotation.Lazy;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.dromara.xzd.costProjectApproval.costBudget.domain.bo.XzdCbysZjhcbBo;
|
||||
import org.dromara.xzd.costProjectApproval.costBudget.domain.vo.XzdCbysZjhcbVo;
|
||||
import org.dromara.xzd.costProjectApproval.costBudget.mapper.XzdCbysZjhcbMapper;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.math.RoundingMode;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* 立项及成本-成本预算-总体计划成本Service业务层处理
|
||||
@ -57,6 +68,10 @@ public class XzdCbysZjhcbServiceImpl extends ServiceImpl<XzdCbysZjhcbMapper, Xzd
|
||||
private IXzdCbysZjhcbFubiaoService fubiaoService;
|
||||
@Autowired
|
||||
private SysOssServiceImpl sysOssService;
|
||||
@Lazy
|
||||
@Resource
|
||||
private IBusBillofquantitiesLimitListService limitListService;
|
||||
|
||||
|
||||
/**
|
||||
* 查询立项及成本-成本预算-总体计划成本
|
||||
@ -145,21 +160,21 @@ public class XzdCbysZjhcbServiceImpl extends ServiceImpl<XzdCbysZjhcbMapper, Xzd
|
||||
if (flag) {
|
||||
bo.setId(add.getId());
|
||||
}
|
||||
if (bo.getXzdCbysSscb() == null || bo.getXzdCbysSscb().isEmpty()) {
|
||||
throw new ServiceException("税收成本不能为空");
|
||||
}
|
||||
// if (bo.getXzdCbysSscb() == null || bo.getXzdCbysSscb().isEmpty()) {
|
||||
// throw new ServiceException("税收成本不能为空");
|
||||
// }
|
||||
if (bo.getXzdCbysZtjhcbBgjl() == null || bo.getXzdCbysZtjhcbBgjl().isEmpty()) {
|
||||
throw new ServiceException("变更记录不能为空");
|
||||
}
|
||||
if (bo.getXzdCbysWgcbtbFubiao() == null || bo.getXzdCbysWgcbtbFubiao().isEmpty()) {
|
||||
throw new ServiceException("成本明细不能为空");
|
||||
}
|
||||
bo.getXzdCbysSscb().forEach(item -> {item.setMainDocumentId(add.getId());});
|
||||
xzdCbysSscbService.saveBatch(bo.getXzdCbysSscb());
|
||||
// if (bo.getXzdCbysWgcbtbFubiao() == null || bo.getXzdCbysWgcbtbFubiao().isEmpty()) {
|
||||
// throw new ServiceException("成本明细不能为空");
|
||||
// }
|
||||
// bo.getXzdCbysSscb().forEach(item -> {item.setMainDocumentId(add.getId());});
|
||||
// xzdCbysSscbService.saveBatch(bo.getXzdCbysSscb());
|
||||
bo.getXzdCbysZtjhcbBgjl().forEach(item -> {item.setMainDocumentId(add.getId());});
|
||||
xzdCbysZtjhcbBgjlService.saveBatch(bo.getXzdCbysZtjhcbBgjl());
|
||||
bo.getXzdCbysWgcbtbFubiao().forEach(item -> {item.setMainDocumentId(add.getId());});
|
||||
fubiaoService.saveBatch(bo.getXzdCbysWgcbtbFubiao());
|
||||
// bo.getXzdCbysWgcbtbFubiao().forEach(item -> {item.setMainDocumentId(add.getId());});
|
||||
// fubiaoService.saveBatch(bo.getXzdCbysWgcbtbFubiao());
|
||||
return flag;
|
||||
}
|
||||
|
||||
@ -174,24 +189,57 @@ public class XzdCbysZjhcbServiceImpl extends ServiceImpl<XzdCbysZjhcbMapper, Xzd
|
||||
public Boolean updateByBo(XzdCbysZjhcbBo bo) {
|
||||
XzdCbysZjhcb update = MapstructUtils.convert(bo, XzdCbysZjhcb.class);
|
||||
validEntityBeforeSave(update);
|
||||
if (bo.getXzdCbysSscb() == null || bo.getXzdCbysSscb().isEmpty()) {
|
||||
throw new ServiceException("税收成本不能为空");
|
||||
}
|
||||
// if (bo.getXzdCbysSscb() == null || bo.getXzdCbysSscb().isEmpty()) {
|
||||
// throw new ServiceException("税收成本不能为空");
|
||||
// }
|
||||
if (bo.getXzdCbysZtjhcbBgjl() == null || bo.getXzdCbysZtjhcbBgjl().isEmpty()) {
|
||||
throw new ServiceException("变更记录不能为空");
|
||||
}
|
||||
if (bo.getXzdCbysWgcbtbFubiao() == null || bo.getXzdCbysWgcbtbFubiao().isEmpty()) {
|
||||
throw new ServiceException("成本明细不能为空");
|
||||
}
|
||||
// if (bo.getXzdCbysWgcbtbFubiao() == null || bo.getXzdCbysWgcbtbFubiao().isEmpty()) {
|
||||
// throw new ServiceException("成本明细不能为空");
|
||||
// }
|
||||
xzdCbysZtjhcbBgjlService.remove(new LambdaQueryWrapper<XzdCbysZtjhcbBgjl>().eq(XzdCbysZtjhcbBgjl::getMainDocumentId, bo.getId()));
|
||||
xzdCbysSscbService.remove(new LambdaQueryWrapper<XzdCbysSscb>().eq(XzdCbysSscb::getMainDocumentId, bo.getId()));
|
||||
fubiaoService.remove(new LambdaQueryWrapper<XzdCbysZjhcbFubiao>().eq(XzdCbysZjhcbFubiao::getMainDocumentId, bo.getId()));
|
||||
bo.getXzdCbysSscb().forEach(item -> {item.setMainDocumentId(bo.getId());});
|
||||
xzdCbysSscbService.saveBatch(bo.getXzdCbysSscb());
|
||||
// xzdCbysSscbService.remove(new LambdaQueryWrapper<XzdCbysSscb>().eq(XzdCbysSscb::getMainDocumentId, bo.getId()));
|
||||
// fubiaoService.remove(new LambdaQueryWrapper<XzdCbysZjhcbFubiao>().eq(XzdCbysZjhcbFubiao::getMainDocumentId, bo.getId()));
|
||||
// bo.getXzdCbysSscb().forEach(item -> {item.setMainDocumentId(bo.getId());});
|
||||
// xzdCbysSscbService.saveBatch(bo.getXzdCbysSscb());
|
||||
bo.getXzdCbysZtjhcbBgjl().forEach(item -> {item.setMainDocumentId(bo.getId());});
|
||||
xzdCbysZtjhcbBgjlService.saveBatch(bo.getXzdCbysZtjhcbBgjl());
|
||||
bo.getXzdCbysWgcbtbFubiao().forEach(item -> {item.setMainDocumentId(bo.getId());});
|
||||
fubiaoService.saveBatch(bo.getXzdCbysWgcbtbFubiao());
|
||||
// bo.getXzdCbysWgcbtbFubiao().forEach(item -> {item.setMainDocumentId(bo.getId());});
|
||||
// fubiaoService.saveBatch(bo.getXzdCbysWgcbtbFubiao());
|
||||
if (bo.getBos() != null){
|
||||
BigDecimal totalTaxInclAmount = BigDecimal.ZERO; //含税金额
|
||||
BigDecimal totalTaxAmount = BigDecimal.ZERO; //税额
|
||||
BigDecimal totalTaxExclAmount = BigDecimal.ZERO; //不含税金额
|
||||
for (BusBillofquantitiesLimitListBo item : bo.getBos()) {//计算含税金额
|
||||
BigDecimal amount = item.getQuantity().multiply(item.getUnitPrice()).setScale(4, RoundingMode.HALF_UP);
|
||||
//税率
|
||||
BigDecimal rate = BigDecimal.ZERO;
|
||||
if (item.getTaxRate() != null){
|
||||
rate=item.getTaxRate().divide(new BigDecimal("100"), 4, RoundingMode.HALF_UP);
|
||||
}
|
||||
//税额
|
||||
BigDecimal taxAmount = amount.multiply(rate).setScale(4, RoundingMode.HALF_UP);
|
||||
//不含税金额
|
||||
BigDecimal taxExclAmount = amount.subtract(taxAmount).setScale(4, RoundingMode.HALF_UP);
|
||||
totalTaxInclAmount = totalTaxInclAmount.add(amount);
|
||||
totalTaxAmount = totalTaxAmount.add(taxAmount);
|
||||
totalTaxExclAmount = totalTaxExclAmount.add(taxExclAmount);
|
||||
}
|
||||
if (totalTaxInclAmount.compareTo(update.getTotalTaxInclAmount()) != 0){
|
||||
throw new ServiceException("含税金额不一致");
|
||||
}
|
||||
if (totalTaxAmount.compareTo(update.getTotalTaxAmount()) != 0){
|
||||
throw new ServiceException("税额不一致");
|
||||
}
|
||||
if (totalTaxExclAmount.compareTo(update.getTotalTaxExclAmount()) != 0){
|
||||
throw new ServiceException("不含税金额不一致");
|
||||
}
|
||||
update.setTotalTaxInclAmount(totalTaxInclAmount);
|
||||
update.setTotalTaxAmount(totalTaxAmount);
|
||||
update.setTotalTaxExclAmount(totalTaxExclAmount);
|
||||
Boolean b = limitListService.updateByBo(bo.getBos());
|
||||
}
|
||||
return baseMapper.updateById(update) > 0;
|
||||
}
|
||||
|
||||
@ -241,7 +289,29 @@ public class XzdCbysZjhcbServiceImpl extends ServiceImpl<XzdCbysZjhcbMapper, Xzd
|
||||
return vo != null ? vo.getDocTitle():"";
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> sheetList(XzdCbysZjhcbBo bo) {
|
||||
XzdCbysZjhcbVo xzdCbysZjhcbVo = baseMapper.selectVoOne(new LambdaQueryWrapper<XzdCbysZjhcb>().eq(XzdCbysZjhcb::getSysProjectId, bo.getSysProjectId()));
|
||||
if (xzdCbysZjhcbVo != null){
|
||||
List<BusBillofquantitiesLimitList> busBillofquantitiesLimitLists = limitListService.getBaseMapper().selectList(new LambdaQueryWrapper<BusBillofquantitiesLimitList>()
|
||||
.select(BusBillofquantitiesLimitList::getSheet)
|
||||
.eq(xzdCbysZjhcbVo.getSysProjectId() != null, BusBillofquantitiesLimitList::getProjectId, xzdCbysZjhcbVo.getSysProjectId())
|
||||
.eq(BusBillofquantitiesLimitList::getType, LimitListTypeEnum.COMPANY.getCode())
|
||||
.eq(StringUtils.isNotBlank(xzdCbysZjhcbVo.getVesionId()), BusBillofquantitiesLimitList::getVersions, xzdCbysZjhcbVo.getVesionId())
|
||||
.orderByAsc(BusBillofquantitiesLimitList::getSheet)
|
||||
.groupBy(BusBillofquantitiesLimitList::getSheet));
|
||||
return busBillofquantitiesLimitLists.stream()
|
||||
.filter(Objects::nonNull)
|
||||
.map(BusBillofquantitiesLimitList::getSheet)
|
||||
.collect(Collectors.toList());
|
||||
}
|
||||
return List.of();
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<BusBillofquantitiesLimitListVo> getTree(BusBillofquantitiesLimitListBo bo) {
|
||||
return limitListService.getZjhcbTree(bo);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
@ -251,10 +321,12 @@ public class XzdCbysZjhcbServiceImpl extends ServiceImpl<XzdCbysZjhcbMapper, Xzd
|
||||
private void getHttk(XzdCbysZjhcbVo vo) {
|
||||
List<XzdCbysZtjhcbBgjl> xzdCbysZtjhcbBgjls = xzdCbysZtjhcbBgjlService.getBaseMapper().selectList(new LambdaQueryWrapper<XzdCbysZtjhcbBgjl>().eq(XzdCbysZtjhcbBgjl::getMainDocumentId, vo.getId()));
|
||||
vo.setXzdCbysZtjhcbBgjl(xzdCbysZtjhcbBgjls);
|
||||
List<XzdCbysSscb> xzdCbysSscbs = xzdCbysSscbService.getBaseMapper().selectList(new LambdaQueryWrapper<XzdCbysSscb>().eq(XzdCbysSscb::getMainDocumentId, vo.getId()));
|
||||
vo.setXzdCbysSscb(xzdCbysSscbs);
|
||||
List<XzdCbysZjhcbFubiao> xzdCbysWgcbtbFubiaos = fubiaoService.getBaseMapper().selectList(new LambdaQueryWrapper<XzdCbysZjhcbFubiao>().eq(XzdCbysZjhcbFubiao::getMainDocumentId, vo.getId()));
|
||||
vo.setXzdCbysWgcbtbFubiao(xzdCbysWgcbtbFubiaos);
|
||||
// List<XzdCbysSscb> xzdCbysSscbs = xzdCbysSscbService.getBaseMapper().selectList(new LambdaQueryWrapper<XzdCbysSscb>().eq(XzdCbysSscb::getMainDocumentId, vo.getId()));
|
||||
// vo.setXzdCbysSscb(xzdCbysSscbs);
|
||||
// List<XzdCbysZjhcbFubiao> xzdCbysWgcbtbFubiaos = fubiaoService.getBaseMapper().selectList(new LambdaQueryWrapper<XzdCbysZjhcbFubiao>().eq(XzdCbysZjhcbFubiao::getMainDocumentId, vo.getId()));
|
||||
// vo.setXzdCbysWgcbtbFubiao(xzdCbysWgcbtbFubiaos);
|
||||
List<BusBillofquantitiesLimitListVo> vos = limitListService.getVoByVersion(vo.getSysProjectId(), vo.getVesionId());
|
||||
vo.setBos(vos);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
package org.dromara.xzd.service;
|
||||
|
||||
import org.dromara.common.core.domain.R;
|
||||
import org.dromara.xzd.domain.vo.XzdCustomertypeInfoVo;
|
||||
import org.dromara.tender.domain.bo.TenderSupplierInputReq;
|
||||
import org.dromara.xzd.domain.vo.XzdCustomertypeVo;
|
||||
import org.dromara.xzd.domain.vo.XzdSupplierInfoVo;
|
||||
import org.dromara.xzd.domain.bo.XzdSupplierInfoBo;
|
||||
@ -74,4 +74,14 @@ public interface IXzdSupplierInfoService extends IService<XzdSupplierInfo>{
|
||||
R<List<XzdCustomertypeVo>> typeList();
|
||||
|
||||
String queryNameById(Long id);
|
||||
|
||||
/**
|
||||
* 根据名称查询供应商信息
|
||||
*
|
||||
* @param req
|
||||
* @return
|
||||
*/
|
||||
List<XzdSupplierInfoVo> getListByName(TenderSupplierInputReq req);
|
||||
|
||||
List<XzdSupplierInfoVo> getList(XzdSupplierInfoBo bo);
|
||||
}
|
||||
|
||||
@ -22,6 +22,15 @@ import org.dromara.system.domain.vo.SysUserVo;
|
||||
import org.dromara.system.service.impl.SysDeptServiceImpl;
|
||||
import org.dromara.system.service.impl.SysOssServiceImpl;
|
||||
import org.dromara.system.service.impl.SysUserServiceImpl;
|
||||
import org.dromara.tender.domain.BusBiddingPlan;
|
||||
import org.dromara.tender.domain.BusBillofquantitiesLimitList;
|
||||
import org.dromara.tender.domain.BusTenderPlanningLimitList;
|
||||
import org.dromara.tender.domain.TenderSupplierInput;
|
||||
import org.dromara.tender.domain.bo.TenderSupplierInputReq;
|
||||
import org.dromara.tender.domain.vo.TenderSupplierInputVo;
|
||||
import org.dromara.tender.service.IBusBiddingPlanService;
|
||||
import org.dromara.tender.service.IBusBillofquantitiesLimitListService;
|
||||
import org.dromara.tender.service.IBusTenderPlanningLimitListService;
|
||||
import org.dromara.xzd.domain.*;
|
||||
import org.dromara.xzd.domain.bo.XzdSupplierInfoBo;
|
||||
import org.dromara.xzd.domain.vo.XzdCustomertypeVo;
|
||||
@ -38,10 +47,7 @@ import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.*;
|
||||
|
||||
/**
|
||||
* 供应商信息Service业务层处理
|
||||
@ -90,11 +96,21 @@ public class XzdSupplierInfoServiceImpl extends ServiceImpl<XzdSupplierInfoMappe
|
||||
|
||||
|
||||
@Autowired
|
||||
@Lazy
|
||||
private SysUserServiceImpl sysUserService;
|
||||
@Autowired
|
||||
private SysOssServiceImpl sysOssService;
|
||||
@Autowired
|
||||
private SysDeptServiceImpl iSysDeptService;
|
||||
@Autowired
|
||||
@Lazy
|
||||
private IBusBillofquantitiesLimitListService billofquantitiesLimitListService;
|
||||
@Autowired
|
||||
@Lazy
|
||||
private IBusTenderPlanningLimitListService busTenderPlanningLimitListService;
|
||||
@Autowired
|
||||
@Lazy
|
||||
private IBusBiddingPlanService busBiddingPlanService;
|
||||
|
||||
private final IXzdCustomerSupplierService iXzdCustomerSupplierService;
|
||||
private final IXzdCustomerSupplierYybService iXzdCustomerSupplierYybService;
|
||||
@ -216,6 +232,7 @@ public class XzdSupplierInfoServiceImpl extends ServiceImpl<XzdSupplierInfoMappe
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getScale()), XzdSupplierInfo::getScale, bo.getScale());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getWebsite()), XzdSupplierInfo::getWebsite, bo.getWebsite());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getEmail()), XzdSupplierInfo::getEmail, bo.getEmail());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getShzt()), XzdSupplierInfo::getShzt, bo.getShzt());
|
||||
return lqw;
|
||||
}
|
||||
|
||||
@ -861,6 +878,65 @@ public class XzdSupplierInfoServiceImpl extends ServiceImpl<XzdSupplierInfoMappe
|
||||
return xzdSupplierInfo != null ? xzdSupplierInfo.getUnitName():null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<XzdSupplierInfoVo> getListByName(TenderSupplierInputReq req) {
|
||||
|
||||
if (req.getName() == null || req.getName().isEmpty()) {
|
||||
return null;
|
||||
}
|
||||
//查询限价一览表中物资限价一览中物资名包含req.getName()的物资
|
||||
List<BusBillofquantitiesLimitList> busBillofquantitiesLimitLists = billofquantitiesLimitListService.getBaseMapper()
|
||||
.selectList(new LambdaQueryWrapper<BusBillofquantitiesLimitList>()
|
||||
.eq(BusBillofquantitiesLimitList::getProjectId, req.getProjectId())
|
||||
.eq(BusBillofquantitiesLimitList::getType, 3)
|
||||
.like(BusBillofquantitiesLimitList::getName, req.getName()));
|
||||
if (busBillofquantitiesLimitLists.isEmpty()) {
|
||||
return null;
|
||||
}
|
||||
Set<Long> b = new HashSet<>();
|
||||
busBillofquantitiesLimitLists.forEach(billofquantitiesLimitList -> {b.add(billofquantitiesLimitList.getId());});
|
||||
if (b.isEmpty()){
|
||||
return null;
|
||||
}
|
||||
//通过物资限价一览id获取到对应的招标计划id
|
||||
List<BusTenderPlanningLimitList> busTenderPlanningLimitLists = busTenderPlanningLimitListService.getBaseMapper().selectList(new LambdaQueryWrapper<BusTenderPlanningLimitList>().isNotNull(BusTenderPlanningLimitList::getNum).in(BusTenderPlanningLimitList::getLimitListId, b));
|
||||
if (busTenderPlanningLimitLists.isEmpty()) {
|
||||
return null;
|
||||
}
|
||||
//通过招标计划id找到对应招标计划并获取到对应供应商id
|
||||
Set<Long> planIds = new HashSet<>();
|
||||
busTenderPlanningLimitLists.forEach(tenderPlanningLimitList -> {planIds.add(tenderPlanningLimitList.getBiddingPlanId());});
|
||||
if (planIds.isEmpty()) {
|
||||
return null;
|
||||
}
|
||||
List<BusBiddingPlan> busBiddingPlans = busBiddingPlanService.getBaseMapper().selectList(new LambdaQueryWrapper<BusBiddingPlan>().in(BusBiddingPlan::getId, planIds));
|
||||
if (busBiddingPlans.isEmpty()) {
|
||||
return null;
|
||||
}
|
||||
//通过供应商id获取供应商列表
|
||||
Set<Long> tenderSupplierIds = new HashSet<>();
|
||||
busBiddingPlans.forEach(biddingPlan -> {tenderSupplierIds.add(biddingPlan.getWinningBidderId());});
|
||||
if (tenderSupplierIds.isEmpty()) {
|
||||
return null;
|
||||
}
|
||||
return baseMapper.selectVoByIds(tenderSupplierIds);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<XzdSupplierInfoVo> getList(XzdSupplierInfoBo bo) {
|
||||
bo.setShzt("finish");
|
||||
LambdaQueryWrapper<XzdSupplierInfo> lqw = buildQueryWrapper(bo);
|
||||
List<XzdSupplierInfoVo> tenderSupplierInputVos = baseMapper.selectVoList(lqw);
|
||||
List<XzdSupplierInfoVo> list = new ArrayList<>();
|
||||
tenderSupplierInputVos.forEach(tenderSupplierInputVo -> {
|
||||
XzdSupplierInfoVo vo = new XzdSupplierInfoVo();
|
||||
vo.setUnitName(tenderSupplierInputVo.getUnitName());
|
||||
vo.setId(tenderSupplierInputVo.getId());
|
||||
list.add(vo);
|
||||
});
|
||||
return list;
|
||||
}
|
||||
|
||||
|
||||
private void getChildren(List<XzdCustomertypeVo> list){
|
||||
LambdaQueryWrapper<XzdCustomertype> queryWrapper = new LambdaQueryWrapper<>();
|
||||
|
||||
Reference in New Issue
Block a user