Merge remote-tracking branch 'origin/dev' into dev
This commit is contained in:
@ -41,41 +41,88 @@ public class SysPackageController {
|
|||||||
/**
|
/**
|
||||||
* 上传最新安装包及版本
|
* 上传最新安装包及版本
|
||||||
*/
|
*/
|
||||||
@Transactional
|
|
||||||
@GetMapping("/uploadNewVersion")
|
@GetMapping("/uploadNewVersion")
|
||||||
public R<SysPackage> uploadNewVersion(String version, String type, MultipartFile file) {
|
public R<SysPackage> uploadNewVersion(String version, String type, MultipartFile file) {
|
||||||
String originalFileName = "apk/package/app-release.apk";
|
String originalFileName = "apk/package/app-release.apk";
|
||||||
|
|
||||||
//覆盖失败,先删除文件
|
// 先查询最新记录
|
||||||
LambdaQueryWrapper<SysPackage> lambdaQueryWrapper =new LambdaQueryWrapper<>();
|
LambdaQueryWrapper<SysPackage> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||||
lambdaQueryWrapper.orderByDesc(SysPackage::getCreateTime);
|
lambdaQueryWrapper.orderByDesc(SysPackage::getCreateTime);
|
||||||
List<SysPackage> list = sysPackageService.list(lambdaQueryWrapper);
|
List<SysPackage> list = sysPackageService.list(lambdaQueryWrapper);
|
||||||
if (list != null && !list.isEmpty()){
|
|
||||||
SysPackage first = list.getFirst();
|
|
||||||
Boolean b = sysOssService.deleteWithValidByIds(List.of(first.getFileId()), false);
|
|
||||||
if (!b){
|
|
||||||
log.error("通过IDS删除文件失败");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
// 分离事务:先处理文件上传
|
||||||
SysOssVo upload = sysOssService.upload(file, originalFileName);
|
SysOssVo upload = sysOssService.upload(file, originalFileName);
|
||||||
if (upload == null){
|
if (upload == null) {
|
||||||
return R.fail("上传失败");
|
return R.fail("上传失败");
|
||||||
}
|
}
|
||||||
SysPackage sysPackage = new SysPackage();
|
|
||||||
sysPackage.setVersion( version);
|
|
||||||
sysPackage.setFileId(upload.getOssId());
|
|
||||||
sysPackage.setFileUrl(upload.getUrl());
|
|
||||||
sysPackage.setType(type);
|
|
||||||
|
|
||||||
boolean save = sysPackageService.save(sysPackage);
|
// 分离事务:再处理数据库操作
|
||||||
if (!save){
|
return handleDatabaseOperations(version, type, upload, list);
|
||||||
return R.fail("保存失败");
|
|
||||||
}
|
|
||||||
|
|
||||||
return R.ok(sysPackage);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Transactional
|
||||||
|
public R<SysPackage> handleDatabaseOperations(String version, String type, SysOssVo upload, List<SysPackage> existingPackages) {
|
||||||
|
try {
|
||||||
|
// 先删除旧文件记录
|
||||||
|
if (existingPackages != null && !existingPackages.isEmpty()) {
|
||||||
|
SysPackage first = existingPackages.getFirst();
|
||||||
|
Boolean b = sysOssService.deleteWithValidByIds(List.of(first.getFileId()), false);
|
||||||
|
if (!b) {
|
||||||
|
log.error("通过IDS删除文件失败");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 保存新记录
|
||||||
|
SysPackage sysPackage = new SysPackage();
|
||||||
|
sysPackage.setVersion(version);
|
||||||
|
sysPackage.setFileId(upload.getOssId());
|
||||||
|
sysPackage.setFileUrl(upload.getUrl());
|
||||||
|
sysPackage.setType(type);
|
||||||
|
|
||||||
|
boolean save = sysPackageService.save(sysPackage);
|
||||||
|
if (!save) {
|
||||||
|
return R.fail("保存失败");
|
||||||
|
}
|
||||||
|
|
||||||
|
return R.ok(sysPackage);
|
||||||
|
} catch (Exception e) {
|
||||||
|
log.error("数据库操作失败", e);
|
||||||
|
throw e; // 重新抛出异常触发事务回滚
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// public R<SysPackage> uploadNewVersion(String version, String type, MultipartFile file) {
|
||||||
|
// String originalFileName = "apk/package/app-release.apk";
|
||||||
|
//
|
||||||
|
// //覆盖失败,先删除文件
|
||||||
|
// LambdaQueryWrapper<SysPackage> lambdaQueryWrapper =new LambdaQueryWrapper<>();
|
||||||
|
// lambdaQueryWrapper.orderByDesc(SysPackage::getCreateTime);
|
||||||
|
// List<SysPackage> list = sysPackageService.list(lambdaQueryWrapper);
|
||||||
|
// if (list != null && !list.isEmpty()){
|
||||||
|
// SysPackage first = list.getFirst();
|
||||||
|
// Boolean b = sysOssService.deleteWithValidByIds(List.of(first.getFileId()), false);
|
||||||
|
// if (!b){
|
||||||
|
// log.error("通过IDS删除文件失败");
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// SysOssVo upload = sysOssService.upload(file, originalFileName);
|
||||||
|
// if (upload == null){
|
||||||
|
// return R.fail("上传失败");
|
||||||
|
// }
|
||||||
|
// SysPackage sysPackage = new SysPackage();
|
||||||
|
// sysPackage.setVersion( version);
|
||||||
|
// sysPackage.setFileId(upload.getOssId());
|
||||||
|
// sysPackage.setFileUrl(upload.getUrl());
|
||||||
|
// sysPackage.setType(type);
|
||||||
|
//
|
||||||
|
// boolean save = sysPackageService.save(sysPackage);
|
||||||
|
// if (!save){
|
||||||
|
// return R.fail("保存失败");
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// return R.ok(sysPackage);
|
||||||
|
// }
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 删除 现在指向的是同一个文件
|
* 删除 现在指向的是同一个文件
|
||||||
|
|||||||
@ -1,8 +1,10 @@
|
|||||||
package org.dromara.bigscreen.controller;
|
package org.dromara.bigscreen.controller;
|
||||||
|
|
||||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||||
|
import cn.hutool.core.collection.CollectionUtil;
|
||||||
import cn.hutool.json.JSONObject;
|
import cn.hutool.json.JSONObject;
|
||||||
import cn.hutool.json.JSONUtil;
|
import cn.hutool.json.JSONUtil;
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||||
import jakarta.annotation.Resource;
|
import jakarta.annotation.Resource;
|
||||||
import jakarta.validation.constraints.NotNull;
|
import jakarta.validation.constraints.NotNull;
|
||||||
@ -28,8 +30,10 @@ import org.dromara.gps.domain.vo.GpsEquipmentSonVo;
|
|||||||
import org.dromara.gps.service.IGpsEquipmentService;
|
import org.dromara.gps.service.IGpsEquipmentService;
|
||||||
import org.dromara.land.domain.BusLandBlock;
|
import org.dromara.land.domain.BusLandBlock;
|
||||||
import org.dromara.land.domain.BusLandTransferLedger;
|
import org.dromara.land.domain.BusLandTransferLedger;
|
||||||
|
import org.dromara.land.domain.BusLandTransferLedgerSon;
|
||||||
import org.dromara.land.service.IBusLandBlockService;
|
import org.dromara.land.service.IBusLandBlockService;
|
||||||
import org.dromara.land.service.IBusLandTransferLedgerService;
|
import org.dromara.land.service.IBusLandTransferLedgerService;
|
||||||
|
import org.dromara.land.service.impl.BusLandTransferLedgerSonServiceImpl;
|
||||||
import org.dromara.manager.weathermanager.vo.WeatherVo;
|
import org.dromara.manager.weathermanager.vo.WeatherVo;
|
||||||
import org.dromara.manager.ys7manager.Ys7Manager;
|
import org.dromara.manager.ys7manager.Ys7Manager;
|
||||||
import org.dromara.other.domain.OthYs7Device;
|
import org.dromara.other.domain.OthYs7Device;
|
||||||
@ -88,6 +92,8 @@ public class ProjectBigScreenController extends BaseController {
|
|||||||
|
|
||||||
private final Ys7Manager ys7Manager;
|
private final Ys7Manager ys7Manager;
|
||||||
|
|
||||||
|
private final BusLandTransferLedgerSonServiceImpl busLandTransferLedgerSonService;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询项目土地统计
|
* 查询项目土地统计
|
||||||
*/
|
*/
|
||||||
@ -97,6 +103,21 @@ public class ProjectBigScreenController extends BaseController {
|
|||||||
List<BusLandTransferLedger> levelList = busLandTransferLedgerService.list(Wrappers.lambdaQuery(BusLandTransferLedger.class)
|
List<BusLandTransferLedger> levelList = busLandTransferLedgerService.list(Wrappers.lambdaQuery(BusLandTransferLedger.class)
|
||||||
.eq(BusLandTransferLedger::getProjectId, projectId));
|
.eq(BusLandTransferLedger::getProjectId, projectId));
|
||||||
|
|
||||||
|
if(CollectionUtil.isNotEmpty(levelList)){
|
||||||
|
List<Long> list1 = levelList.stream().map(BusLandTransferLedger::getId).toList();
|
||||||
|
LambdaQueryWrapper<BusLandTransferLedgerSon> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||||
|
lambdaQueryWrapper.in(BusLandTransferLedgerSon::getParentId,list1);
|
||||||
|
List<BusLandTransferLedgerSon> sonList = busLandTransferLedgerSonService.list(lambdaQueryWrapper);
|
||||||
|
Map<Long, BigDecimal> collect = sonList.stream().filter(vo -> "1".equals(vo.getTransferStatus()))
|
||||||
|
.collect(Collectors.toMap(BusLandTransferLedgerSon::getParentId, BusLandTransferLedgerSon::getAreaValue));
|
||||||
|
|
||||||
|
for (BusLandTransferLedger busLandTransferLedger : levelList) {
|
||||||
|
BigDecimal areaValue = collect.get(busLandTransferLedger.getId());
|
||||||
|
if (areaValue != null) {
|
||||||
|
busLandTransferLedger.setTransferAea(areaValue);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
// 根据 landBlockId 分组,并对 designArea 和 transferAea 进行求和
|
// 根据 landBlockId 分组,并对 designArea 和 transferAea 进行求和
|
||||||
Map<Long, Map<String, BigDecimal>> groupedResult = levelList.stream()
|
Map<Long, Map<String, BigDecimal>> groupedResult = levelList.stream()
|
||||||
.collect(Collectors.groupingBy(
|
.collect(Collectors.groupingBy(
|
||||||
|
|||||||
@ -236,4 +236,12 @@ public interface ISubConstructionUserService extends IService<SubConstructionUse
|
|||||||
TableDataInfo<SubConstructionUserAppVo> queryUndistributedList(SubConstructionUserQueryReq req, PageQuery pageQuery);
|
TableDataInfo<SubConstructionUserAppVo> queryUndistributedList(SubConstructionUserQueryReq req, PageQuery pageQuery);
|
||||||
|
|
||||||
void deleteeBySysUserIds( List<Long> ids);
|
void deleteeBySysUserIds( List<Long> ids);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据系统用户id查询施工人员
|
||||||
|
*
|
||||||
|
* @param sysUserId 系统用户id
|
||||||
|
* @return 施工人员
|
||||||
|
*/
|
||||||
|
SubConstructionUser getByUserId(Long sysUserId);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1548,4 +1548,12 @@ public class SubConstructionUserServiceImpl extends ServiceImpl<SubConstructionU
|
|||||||
this.remove(Wrappers.<SubConstructionUser>lambdaUpdate()
|
this.remove(Wrappers.<SubConstructionUser>lambdaUpdate()
|
||||||
.in(SubConstructionUser::getSysUserId, ids));
|
.in(SubConstructionUser::getSysUserId, ids));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public SubConstructionUser getByUserId(Long sysUserId) {
|
||||||
|
return this.lambdaQuery()
|
||||||
|
.eq(SubConstructionUser::getSysUserId, sysUserId)
|
||||||
|
.last("limit 1")
|
||||||
|
.one();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -14,8 +14,10 @@ import org.dromara.common.mybatis.core.page.TableDataInfo;
|
|||||||
import org.dromara.common.web.core.BaseController;
|
import org.dromara.common.web.core.BaseController;
|
||||||
import org.dromara.design.domain.bo.DesUserBo;
|
import org.dromara.design.domain.bo.DesUserBo;
|
||||||
import org.dromara.design.domain.bo.DesVolumeFileBo;
|
import org.dromara.design.domain.bo.DesVolumeFileBo;
|
||||||
|
import org.dromara.design.domain.dto.volumefile.AuditFileDto;
|
||||||
import org.dromara.design.domain.dto.volumefile.DesVolumeFileCreateReq;
|
import org.dromara.design.domain.dto.volumefile.DesVolumeFileCreateReq;
|
||||||
import org.dromara.design.domain.vo.DesUserVo;
|
import org.dromara.design.domain.vo.DesUserVo;
|
||||||
|
import org.dromara.design.domain.vo.volumefile.AuditFileVo;
|
||||||
import org.dromara.design.domain.vo.volumefile.DesVolumeFileCodeVo;
|
import org.dromara.design.domain.vo.volumefile.DesVolumeFileCodeVo;
|
||||||
import org.dromara.design.domain.vo.volumefile.DesVolumeFileJoinVo;
|
import org.dromara.design.domain.vo.volumefile.DesVolumeFileJoinVo;
|
||||||
import org.dromara.design.domain.vo.volumefile.DesVolumeFileVo;
|
import org.dromara.design.domain.vo.volumefile.DesVolumeFileVo;
|
||||||
@ -101,6 +103,14 @@ public class DesVolumeFileController extends BaseController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取待审核图纸
|
||||||
|
*/
|
||||||
|
@GetMapping("/auditFile")
|
||||||
|
public R<AuditFileVo> auditFile(AuditFileDto dto) {
|
||||||
|
return R.ok(desVolumeFileService.auditFile(dto));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -0,0 +1,11 @@
|
|||||||
|
package org.dromara.design.domain.dto.volumefile;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class AuditFileDto {
|
||||||
|
|
||||||
|
private List<Long> volumeCatalogIds;
|
||||||
|
}
|
||||||
@ -0,0 +1,12 @@
|
|||||||
|
package org.dromara.design.domain.vo.volumefile;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class AuditFileVo {
|
||||||
|
|
||||||
|
private List<DesVolumeFileVo> ltList;
|
||||||
|
private List<DesVolumeFileVo> gcList;
|
||||||
|
}
|
||||||
@ -6,12 +6,10 @@ import org.dromara.common.mybatis.core.page.PageQuery;
|
|||||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||||
import org.dromara.design.domain.DesVolumeFile;
|
import org.dromara.design.domain.DesVolumeFile;
|
||||||
import org.dromara.design.domain.bo.DesVolumeFileBo;
|
import org.dromara.design.domain.bo.DesVolumeFileBo;
|
||||||
|
import org.dromara.design.domain.dto.volumefile.AuditFileDto;
|
||||||
import org.dromara.design.domain.dto.volumefile.DesVolumeFileAppPageDto;
|
import org.dromara.design.domain.dto.volumefile.DesVolumeFileAppPageDto;
|
||||||
import org.dromara.design.domain.dto.volumefile.DesVolumeFileCreateReq;
|
import org.dromara.design.domain.dto.volumefile.DesVolumeFileCreateReq;
|
||||||
import org.dromara.design.domain.vo.volumefile.DesVolumeFileAppVo;
|
import org.dromara.design.domain.vo.volumefile.*;
|
||||||
import org.dromara.design.domain.vo.volumefile.DesVolumeFileCodeVo;
|
|
||||||
import org.dromara.design.domain.vo.volumefile.DesVolumeFileJoinVo;
|
|
||||||
import org.dromara.design.domain.vo.volumefile.DesVolumeFileVo;
|
|
||||||
|
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@ -100,4 +98,6 @@ public interface IDesVolumeFileService extends IService<DesVolumeFile> {
|
|||||||
* app分页查询
|
* app分页查询
|
||||||
*/
|
*/
|
||||||
TableDataInfo<DesVolumeFileAppVo> queryAppPageList(DesVolumeFileAppPageDto dto, PageQuery pageQuery);
|
TableDataInfo<DesVolumeFileAppVo> queryAppPageList(DesVolumeFileAppPageDto dto, PageQuery pageQuery);
|
||||||
|
|
||||||
|
AuditFileVo auditFile(AuditFileDto dto);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -27,13 +27,11 @@ import org.dromara.common.sse.utils.SseMessageUtils;
|
|||||||
import org.dromara.design.domain.DesVolumeCatalog;
|
import org.dromara.design.domain.DesVolumeCatalog;
|
||||||
import org.dromara.design.domain.DesVolumeFile;
|
import org.dromara.design.domain.DesVolumeFile;
|
||||||
import org.dromara.design.domain.bo.DesVolumeFileBo;
|
import org.dromara.design.domain.bo.DesVolumeFileBo;
|
||||||
|
import org.dromara.design.domain.dto.volumefile.AuditFileDto;
|
||||||
import org.dromara.design.domain.dto.volumefile.DesVolumeFileAppPageDto;
|
import org.dromara.design.domain.dto.volumefile.DesVolumeFileAppPageDto;
|
||||||
import org.dromara.design.domain.dto.volumefile.DesVolumeFileCreateReq;
|
import org.dromara.design.domain.dto.volumefile.DesVolumeFileCreateReq;
|
||||||
import org.dromara.design.domain.vo.BusDrawingreviewReceiptsVo;
|
import org.dromara.design.domain.vo.BusDrawingreviewReceiptsVo;
|
||||||
import org.dromara.design.domain.vo.volumefile.DesVolumeFileAppVo;
|
import org.dromara.design.domain.vo.volumefile.*;
|
||||||
import org.dromara.design.domain.vo.volumefile.DesVolumeFileCodeVo;
|
|
||||||
import org.dromara.design.domain.vo.volumefile.DesVolumeFileJoinVo;
|
|
||||||
import org.dromara.design.domain.vo.volumefile.DesVolumeFileVo;
|
|
||||||
import org.dromara.design.mapper.DesVolumeFileMapper;
|
import org.dromara.design.mapper.DesVolumeFileMapper;
|
||||||
import org.dromara.design.service.IBusDrawingreviewReceiptsService;
|
import org.dromara.design.service.IBusDrawingreviewReceiptsService;
|
||||||
import org.dromara.design.service.IDesDrawingService;
|
import org.dromara.design.service.IDesDrawingService;
|
||||||
@ -563,6 +561,21 @@ public class DesVolumeFileServiceImpl extends ServiceImpl<DesVolumeFileMapper, D
|
|||||||
return TableDataInfo.build(result);
|
return TableDataInfo.build(result);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public AuditFileVo auditFile(AuditFileDto dto) {
|
||||||
|
List<Long> volumeCatalogIds = dto.getVolumeCatalogIds();
|
||||||
|
List<DesVolumeFileVo> desVolumeFileVos = baseMapper.selectVoList(Wrappers.lambdaQuery(DesVolumeFile.class)
|
||||||
|
.in(CollectionUtil.isNotEmpty(volumeCatalogIds),DesVolumeFile::getVolumeCatalogId, volumeCatalogIds)
|
||||||
|
.eq(DesVolumeFile::getAuditStatus, "draft")
|
||||||
|
);
|
||||||
|
List<DesVolumeFileVo> list1 = desVolumeFileVos.stream().filter(vo -> "1".equals(vo.getType())).toList();
|
||||||
|
List<DesVolumeFileVo> list2 = desVolumeFileVos.stream().filter(vo -> "3".equals(vo.getType())).toList();
|
||||||
|
AuditFileVo auditFileVo = new AuditFileVo();
|
||||||
|
auditFileVo.setGcList(list1);
|
||||||
|
auditFileVo.setLtList(list2);
|
||||||
|
return auditFileVo;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 总体流程监听(例如: 草稿,撤销,退回,作废,终止,已完成,单任务完成等)
|
* 总体流程监听(例如: 草稿,撤销,退回,作废,终止,已完成,单任务完成等)
|
||||||
* 正常使用只需#processEvent.flowCode=='leave1'
|
* 正常使用只需#processEvent.flowCode=='leave1'
|
||||||
|
|||||||
@ -15,6 +15,9 @@ import org.dromara.common.log.enums.BusinessType;
|
|||||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||||
import org.dromara.common.web.core.BaseController;
|
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.MatMaterialsCreateReq;
|
||||||
import org.dromara.materials.domain.dto.materials.MatMaterialsGisReq;
|
import org.dromara.materials.domain.dto.materials.MatMaterialsGisReq;
|
||||||
import org.dromara.materials.domain.dto.materials.MatMaterialsQueryReq;
|
import org.dromara.materials.domain.dto.materials.MatMaterialsQueryReq;
|
||||||
@ -40,6 +43,8 @@ public class MatMaterialsController extends BaseController {
|
|||||||
|
|
||||||
private final IMatMaterialsService materialsService;
|
private final IMatMaterialsService materialsService;
|
||||||
|
|
||||||
|
private final ISubContractorService contractorService;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询材料列表
|
* 查询材料列表
|
||||||
*/
|
*/
|
||||||
@ -155,4 +160,14 @@ public class MatMaterialsController extends BaseController {
|
|||||||
@PathVariable Long[] ids) {
|
@PathVariable Long[] ids) {
|
||||||
return toAjax(materialsService.deleteWithValidByIds(List.of(ids), true));
|
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));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -111,8 +111,8 @@ public class BusAttendanceAppController extends BaseController {
|
|||||||
* 获取用户当天打卡记录
|
* 获取用户当天打卡记录
|
||||||
*/
|
*/
|
||||||
@GetMapping("/getTodayAttendance/{projectId}")
|
@GetMapping("/getTodayAttendance/{projectId}")
|
||||||
public R<List<BusAttendanceVo>> getTodayAttendance(@NotNull @PathVariable("projectId") Long projectId){
|
public R<List<BusAttendanceVo>> getTodayAttendance(@NotNull @PathVariable("projectId") Long projectId,Long userId){
|
||||||
return R.ok(attendanceService.getTodayAttendance(projectId));
|
return R.ok(attendanceService.getTodayAttendance(projectId,userId));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@ -12,7 +12,9 @@ import org.dromara.common.web.core.BaseController;
|
|||||||
import org.dromara.contractor.service.ISubConstructionUserService;
|
import org.dromara.contractor.service.ISubConstructionUserService;
|
||||||
import org.dromara.project.domain.dto.leave.BusLeaveAddReq;
|
import org.dromara.project.domain.dto.leave.BusLeaveAddReq;
|
||||||
import org.dromara.project.domain.dto.leave.BusLeaveQueryReq;
|
import org.dromara.project.domain.dto.leave.BusLeaveQueryReq;
|
||||||
|
import org.dromara.project.domain.dto.reissuecard.BusReissueCardQueryReq;
|
||||||
import org.dromara.project.domain.vo.leave.BusLeaveVo;
|
import org.dromara.project.domain.vo.leave.BusLeaveVo;
|
||||||
|
import org.dromara.project.domain.vo.reissuecard.BusReissueCardVo;
|
||||||
import org.dromara.project.service.IBusLeaveService;
|
import org.dromara.project.service.IBusLeaveService;
|
||||||
import org.springframework.validation.annotation.Validated;
|
import org.springframework.validation.annotation.Validated;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
@ -38,12 +40,31 @@ public class BusLeaveAppController extends BaseController {
|
|||||||
*/
|
*/
|
||||||
@GetMapping("/list/loginUser")
|
@GetMapping("/list/loginUser")
|
||||||
public TableDataInfo<BusLeaveVo> listByLoginUser(BusLeaveQueryReq req, PageQuery pageQuery) {
|
public TableDataInfo<BusLeaveVo> listByLoginUser(BusLeaveQueryReq req, PageQuery pageQuery) {
|
||||||
// SubConstructionUser constructionUser = constructionUserService.getBySysUserId(LoginHelper.getUserId());
|
|
||||||
req.setUserId(LoginHelper.getUserId());
|
req.setUserId(LoginHelper.getUserId());
|
||||||
//管理员呢
|
|
||||||
return leaveService.listByLoginUser(req, pageQuery);
|
return leaveService.listByLoginUser(req, pageQuery);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询当前登录用户补卡审批列表
|
||||||
|
*/
|
||||||
|
@GetMapping("/list/auditUser")
|
||||||
|
public TableDataInfo<BusLeaveVo> listByAuditUser(BusLeaveQueryReq req, PageQuery pageQuery) {
|
||||||
|
req.setGangerId(LoginHelper.getUserId());
|
||||||
|
return leaveService.listByAuditUser(req, pageQuery);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询角色补卡审批列表
|
||||||
|
*/
|
||||||
|
@GetMapping("/list/auditRole")
|
||||||
|
public TableDataInfo<BusLeaveVo> listByAuditRole(BusLeaveQueryReq req, PageQuery pageQuery) {
|
||||||
|
return leaveService.listByAuditRole(req, pageQuery);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 提交请假
|
* 提交请假
|
||||||
*/
|
*/
|
||||||
|
|||||||
@ -8,6 +8,7 @@ import org.dromara.project.domain.dto.projectteam.BusProjectTeamQueryReq;
|
|||||||
import org.dromara.project.domain.vo.projectteam.BusProjectTeamAppVo;
|
import org.dromara.project.domain.vo.projectteam.BusProjectTeamAppVo;
|
||||||
import org.dromara.project.domain.vo.projectteam.BusProjectTeamForemanVo;
|
import org.dromara.project.domain.vo.projectteam.BusProjectTeamForemanVo;
|
||||||
import org.dromara.project.domain.vo.projectteam.BusProjectTeamVo;
|
import org.dromara.project.domain.vo.projectteam.BusProjectTeamVo;
|
||||||
|
import org.dromara.project.domain.vo.projectteam.TeamManageVo;
|
||||||
import org.dromara.project.service.IBusProjectTeamService;
|
import org.dromara.project.service.IBusProjectTeamService;
|
||||||
import org.springframework.validation.annotation.Validated;
|
import org.springframework.validation.annotation.Validated;
|
||||||
import org.springframework.web.bind.annotation.GetMapping;
|
import org.springframework.web.bind.annotation.GetMapping;
|
||||||
@ -59,4 +60,20 @@ public class BusProjectTeamAppController extends BaseController {
|
|||||||
return R.ok(projectTeamService.getByUserId(userId,projectId));
|
return R.ok(projectTeamService.getByUserId(userId,projectId));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取分包单位的班组
|
||||||
|
*/
|
||||||
|
@GetMapping("/getByContractor/{contractorId}")
|
||||||
|
public R<List<BusProjectTeamAppVo>> getByContractorId(@PathVariable("contractorId") Long contractorId){
|
||||||
|
return R.ok(projectTeamService.getByContractorId(contractorId));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取班组管理员信息
|
||||||
|
*/
|
||||||
|
@GetMapping("/getManager/{teamId}")
|
||||||
|
public R<List<TeamManageVo>> getManager(@PathVariable("teamId") Long teamId){
|
||||||
|
return R.ok(projectTeamService.getManager(teamId));
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -46,4 +46,12 @@ public class BusProjectTeamMemberAppController extends BaseController {
|
|||||||
public R<Void> remove(@RequestBody BusProjectTeamMemberExitReq req) {
|
public R<Void> remove(@RequestBody BusProjectTeamMemberExitReq req) {
|
||||||
return toAjax(projectTeamMemberService.deleteById(req));
|
return toAjax(projectTeamMemberService.deleteById(req));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取岗位
|
||||||
|
*/
|
||||||
|
@GetMapping("/getPost/{userId}/{projectId}")
|
||||||
|
public R<String> getPost(@PathVariable("userId") Long userId, @PathVariable("projectId")Long projectId) {
|
||||||
|
return R.ok(projectTeamMemberService.getPost(userId,projectId));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -75,10 +75,19 @@ public class BusReissueCardAppController extends BaseController {
|
|||||||
*/
|
*/
|
||||||
@GetMapping("/list/auditUser")
|
@GetMapping("/list/auditUser")
|
||||||
public TableDataInfo<BusReissueCardVo> listByAuditUser(BusReissueCardQueryReq req, PageQuery pageQuery) {
|
public TableDataInfo<BusReissueCardVo> listByAuditUser(BusReissueCardQueryReq req, PageQuery pageQuery) {
|
||||||
// SubConstructionUser constructionUser = constructionUserService.getBySysUserId(LoginHelper.getUserId());
|
|
||||||
req.setGangerId(LoginHelper.getUserId());
|
req.setGangerId(LoginHelper.getUserId());
|
||||||
return reissueCardService.listByAuditUser(req, pageQuery);
|
return reissueCardService.listByAuditUser(req, pageQuery);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询角色补卡审批列表
|
||||||
|
*/
|
||||||
|
@GetMapping("/list/auditRole")
|
||||||
|
public TableDataInfo<BusReissueCardVo> listByAuditRole(BusReissueCardQueryReq req, PageQuery pageQuery) {
|
||||||
|
return reissueCardService.listByAuditRole(req, pageQuery);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取施工人员补卡申请详细信息
|
* 获取施工人员补卡申请详细信息
|
||||||
*
|
*
|
||||||
@ -91,9 +100,9 @@ public class BusReissueCardAppController extends BaseController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 修改补卡申请
|
* 审核
|
||||||
*/
|
*/
|
||||||
@Log(title = "修改补卡申请", businessType = BusinessType.UPDATE)
|
@Log(title = "审核补卡申请", businessType = BusinessType.UPDATE)
|
||||||
@RepeatSubmit()
|
@RepeatSubmit()
|
||||||
@PutMapping("")
|
@PutMapping("")
|
||||||
public R<Void> managerReview(@RequestBody BusReissueCardUpdateReq req) {
|
public R<Void> managerReview(@RequestBody BusReissueCardUpdateReq req) {
|
||||||
|
|||||||
@ -149,4 +149,10 @@ public class BusLeave extends BaseEntity {
|
|||||||
* 时间段类型 1-上午 2-下午
|
* 时间段类型 1-上午 2-下午
|
||||||
*/
|
*/
|
||||||
private String periodType;
|
private String periodType;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 申请人类型(0-施工人员 1-管理人员 2-分包人员)
|
||||||
|
*/
|
||||||
|
private String userType;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -130,4 +130,10 @@ public class BusReissueCard extends BaseEntity {
|
|||||||
*/
|
*/
|
||||||
private String status;
|
private String status;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 申请人类型(0-施工人员 1-管理人员 2-分包人员)
|
||||||
|
*/
|
||||||
|
private String userType;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -64,4 +64,9 @@ public class BusLeaveAddReq implements Serializable {
|
|||||||
* 时间段类型 1-上午 2-下午
|
* 时间段类型 1-上午 2-下午
|
||||||
*/
|
*/
|
||||||
private String periodType;
|
private String periodType;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 申请人类型(0-施工人员 1-管理人员 2-分包人员)
|
||||||
|
*/
|
||||||
|
private String userType;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -6,6 +6,7 @@ import lombok.Data;
|
|||||||
import java.io.Serial;
|
import java.io.Serial;
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
import java.time.LocalDate;
|
import java.time.LocalDate;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author lilemy
|
* @author lilemy
|
||||||
@ -73,4 +74,7 @@ public class BusLeaveQueryReq implements Serializable {
|
|||||||
*/
|
*/
|
||||||
private LocalDate date;
|
private LocalDate date;
|
||||||
|
|
||||||
|
|
||||||
|
private List<Long> roleIds;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -63,4 +63,9 @@ public class BusReissueCardAddReq implements Serializable {
|
|||||||
* 补卡类型(1上班 2下班)
|
* 补卡类型(1上班 2下班)
|
||||||
*/
|
*/
|
||||||
private String reissueCardType;
|
private String reissueCardType;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 申请人类型(0-施工人员 1-管理人员 2-分包人员)
|
||||||
|
*/
|
||||||
|
private String userType;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -6,6 +6,7 @@ import lombok.Data;
|
|||||||
import java.io.Serial;
|
import java.io.Serial;
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
import java.time.LocalDate;
|
import java.time.LocalDate;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author lilemy
|
* @author lilemy
|
||||||
@ -77,6 +78,4 @@ public class BusReissueCardQueryReq implements Serializable {
|
|||||||
* 日期
|
* 日期
|
||||||
*/
|
*/
|
||||||
private LocalDate date;
|
private LocalDate date;
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -0,0 +1,12 @@
|
|||||||
|
package org.dromara.project.domain.vo.projectteam;
|
||||||
|
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class TeamManageVo {
|
||||||
|
|
||||||
|
private Long userId;
|
||||||
|
|
||||||
|
private String name;
|
||||||
|
}
|
||||||
@ -6,6 +6,8 @@ import io.github.linpeilie.annotations.AutoMapper;
|
|||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import org.dromara.common.excel.annotation.ExcelDictFormat;
|
import org.dromara.common.excel.annotation.ExcelDictFormat;
|
||||||
import org.dromara.common.excel.convert.ExcelDictConvert;
|
import org.dromara.common.excel.convert.ExcelDictConvert;
|
||||||
|
import org.dromara.common.translation.annotation.Translation;
|
||||||
|
import org.dromara.common.translation.constant.TransConstant;
|
||||||
import org.dromara.project.domain.BusProjectTeamMember;
|
import org.dromara.project.domain.BusProjectTeamMember;
|
||||||
|
|
||||||
import java.io.Serial;
|
import java.io.Serial;
|
||||||
@ -81,4 +83,15 @@ public class BusProjectTeamMemberVo implements Serializable {
|
|||||||
*/
|
*/
|
||||||
private String avatar;
|
private String avatar;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 工种id
|
||||||
|
*/
|
||||||
|
private String typeOfWork;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 工种名称
|
||||||
|
*/
|
||||||
|
@Translation(type = TransConstant.DICT_TYPE_TO_LABEL, mapper = "typeOfWork",other = "type_of_work")
|
||||||
|
private String typeOfWorkName;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -121,7 +121,7 @@ public interface IBusAttendanceService extends IService<BusAttendance>{
|
|||||||
/**
|
/**
|
||||||
* 获取用户当天打卡记录
|
* 获取用户当天打卡记录
|
||||||
*/
|
*/
|
||||||
List<BusAttendanceVo> getTodayAttendance(Long projectId);
|
List<BusAttendanceVo> getTodayAttendance(Long projectId,Long userId);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取用户指定月份的打卡记录
|
* 获取用户指定月份的打卡记录
|
||||||
|
|||||||
@ -10,7 +10,9 @@ import org.dromara.project.domain.dto.leave.BusLeaveAddReq;
|
|||||||
import org.dromara.project.domain.dto.leave.BusLeaveGangerReviewReq;
|
import org.dromara.project.domain.dto.leave.BusLeaveGangerReviewReq;
|
||||||
import org.dromara.project.domain.dto.leave.BusLeaveManagerReviewReq;
|
import org.dromara.project.domain.dto.leave.BusLeaveManagerReviewReq;
|
||||||
import org.dromara.project.domain.dto.leave.BusLeaveQueryReq;
|
import org.dromara.project.domain.dto.leave.BusLeaveQueryReq;
|
||||||
|
import org.dromara.project.domain.dto.reissuecard.BusReissueCardQueryReq;
|
||||||
import org.dromara.project.domain.vo.leave.BusLeaveVo;
|
import org.dromara.project.domain.vo.leave.BusLeaveVo;
|
||||||
|
import org.dromara.project.domain.vo.reissuecard.BusReissueCardVo;
|
||||||
|
|
||||||
import java.time.LocalDate;
|
import java.time.LocalDate;
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
@ -114,4 +116,18 @@ public interface IBusLeaveService extends IService<BusLeave> {
|
|||||||
* 查询当前登录用户请假申请列表
|
* 查询当前登录用户请假申请列表
|
||||||
*/
|
*/
|
||||||
TableDataInfo<BusLeaveVo> listByLoginUser(BusLeaveQueryReq req, PageQuery pageQuery);
|
TableDataInfo<BusLeaveVo> listByLoginUser(BusLeaveQueryReq req, PageQuery pageQuery);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 审批列表(班组长和分包管理)
|
||||||
|
*/
|
||||||
|
TableDataInfo<BusLeaveVo> listByAuditUser(BusLeaveQueryReq req, PageQuery pageQuery);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 审批列表(角色)
|
||||||
|
*/
|
||||||
|
TableDataInfo<BusLeaveVo> listByAuditRole(BusLeaveQueryReq req, PageQuery pageQuery);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -11,6 +11,7 @@ import org.dromara.project.domain.dto.projectteammember.BusProjectTeamMemberExit
|
|||||||
import org.dromara.project.domain.dto.projectteammember.BusProjectTeamMemberQueryReq;
|
import org.dromara.project.domain.dto.projectteammember.BusProjectTeamMemberQueryReq;
|
||||||
import org.dromara.project.domain.dto.projectteammember.BusProjectTeamMemberUpdateReq;
|
import org.dromara.project.domain.dto.projectteammember.BusProjectTeamMemberUpdateReq;
|
||||||
import org.dromara.project.domain.vo.projectteammember.BusProjectTeamMemberVo;
|
import org.dromara.project.domain.vo.projectteammember.BusProjectTeamMemberVo;
|
||||||
|
import org.springframework.web.bind.annotation.PathVariable;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@ -94,4 +95,10 @@ public interface IBusProjectTeamMemberService extends IService<BusProjectTeamMem
|
|||||||
* @return 项目班组成员分页对象视图
|
* @return 项目班组成员分页对象视图
|
||||||
*/
|
*/
|
||||||
Page<BusProjectTeamMemberVo> getVoPage(Page<BusProjectTeamMember> projectTeamMemberPage);
|
Page<BusProjectTeamMemberVo> getVoPage(Page<BusProjectTeamMember> projectTeamMemberPage);
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取用户岗位
|
||||||
|
*/
|
||||||
|
String getPost(Long userId,Long projectId);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -13,6 +13,7 @@ import org.dromara.project.domain.dto.projectteam.BusProjectTeamUpdateReq;
|
|||||||
import org.dromara.project.domain.vo.projectteam.BusProjectTeamAppVo;
|
import org.dromara.project.domain.vo.projectteam.BusProjectTeamAppVo;
|
||||||
import org.dromara.project.domain.vo.projectteam.BusProjectTeamForemanVo;
|
import org.dromara.project.domain.vo.projectteam.BusProjectTeamForemanVo;
|
||||||
import org.dromara.project.domain.vo.projectteam.BusProjectTeamVo;
|
import org.dromara.project.domain.vo.projectteam.BusProjectTeamVo;
|
||||||
|
import org.dromara.project.domain.vo.projectteam.TeamManageVo;
|
||||||
import org.dromara.quality.domain.vo.qualityinspection.QltQualityInspectionVo;
|
import org.dromara.quality.domain.vo.qualityinspection.QltQualityInspectionVo;
|
||||||
import org.springframework.web.bind.annotation.PathVariable;
|
import org.springframework.web.bind.annotation.PathVariable;
|
||||||
|
|
||||||
@ -120,6 +121,9 @@ public interface IBusProjectTeamService extends IService<BusProjectTeam> {
|
|||||||
|
|
||||||
List<BusProjectTeamAppVo> getByUserId(Long userId,Long projectId);
|
List<BusProjectTeamAppVo> getByUserId(Long userId,Long projectId);
|
||||||
|
|
||||||
|
List<BusProjectTeamAppVo> getByContractorId( Long contractorId);
|
||||||
|
|
||||||
Boolean deleteUserId(Long id,Long userId);
|
Boolean deleteUserId(Long id,Long userId);
|
||||||
|
|
||||||
|
List<TeamManageVo> getManager(Long teamId);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -97,10 +97,15 @@ public interface IBusReissueCardService extends IService<BusReissueCard> {
|
|||||||
TableDataInfo<BusReissueCardVo> listByLoginUser(BusReissueCardQueryReq req, PageQuery pageQuery);
|
TableDataInfo<BusReissueCardVo> listByLoginUser(BusReissueCardQueryReq req, PageQuery pageQuery);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 审批列表
|
* 审批列表(班组长和分包管理)
|
||||||
*/
|
*/
|
||||||
TableDataInfo<BusReissueCardVo> listByAuditUser(BusReissueCardQueryReq req, PageQuery pageQuery);
|
TableDataInfo<BusReissueCardVo> listByAuditUser(BusReissueCardQueryReq req, PageQuery pageQuery);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 审批列表(角色)
|
||||||
|
*/
|
||||||
|
TableDataInfo<BusReissueCardVo> listByAuditRole(BusReissueCardQueryReq req, PageQuery pageQuery);
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 新增施工人员补卡申请
|
* 新增施工人员补卡申请
|
||||||
|
|||||||
@ -538,7 +538,7 @@ public class BusAttendanceServiceImpl extends ServiceImpl<BusAttendanceMapper, B
|
|||||||
List<BusAttendance> records = entry.getValue();
|
List<BusAttendance> records = entry.getValue();
|
||||||
|
|
||||||
boolean allValid = records.stream()
|
boolean allValid = records.stream()
|
||||||
.allMatch(record -> ATTENDANCE_STATUS.contains(record.getClockStatus()));
|
.anyMatch(record -> ATTENDANCE_STATUS.contains(record.getClockStatus()));
|
||||||
if (allValid) {
|
if (allValid) {
|
||||||
attendedUserIds.add(userId);
|
attendedUserIds.add(userId);
|
||||||
}
|
}
|
||||||
@ -685,9 +685,11 @@ public class BusAttendanceServiceImpl extends ServiceImpl<BusAttendanceMapper, B
|
|||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<BusAttendanceVo> getTodayAttendance(Long projectId) {
|
public List<BusAttendanceVo> getTodayAttendance(Long projectId,Long userId) {
|
||||||
|
|
||||||
Long userId = LoginHelper.getUserId();
|
if (userId == null) {
|
||||||
|
userId = LoginHelper.getUserId();
|
||||||
|
}
|
||||||
BusAttendanceRuleVo busAttendanceRuleVo = attendanceRuleService.queryByProjectId(projectId);
|
BusAttendanceRuleVo busAttendanceRuleVo = attendanceRuleService.queryByProjectId(projectId);
|
||||||
|
|
||||||
if (busAttendanceRuleVo == null) {
|
if (busAttendanceRuleVo == null) {
|
||||||
@ -1207,15 +1209,14 @@ public class BusAttendanceServiceImpl extends ServiceImpl<BusAttendanceMapper, B
|
|||||||
|
|
||||||
|
|
||||||
// 往前14天,包含今天
|
// 往前14天,包含今天
|
||||||
LocalDate startDate = now.minusDays(14);
|
LocalDate startDate = now.minusDays(13);
|
||||||
LocalDate endDate = now.minusDays(1);
|
|
||||||
List<BusAttendance> list;
|
List<BusAttendance> list;
|
||||||
if(CollectionUtil.isEmpty(allUserIds)){
|
if(CollectionUtil.isEmpty(allUserIds)){
|
||||||
list = new ArrayList<>();
|
list = new ArrayList<>();
|
||||||
}else {
|
}else {
|
||||||
list = list(Wrappers.<BusAttendance>lambdaQuery()
|
list = list(Wrappers.<BusAttendance>lambdaQuery()
|
||||||
.in(BusAttendance::getUserId, allUserIds)
|
.in(BusAttendance::getUserId, allUserIds)
|
||||||
.between(BusAttendance::getClockDate, startDate, endDate)
|
.between(BusAttendance::getClockDate, startDate, now)
|
||||||
.orderByAsc(BusAttendance::getClockDate)
|
.orderByAsc(BusAttendance::getClockDate)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@ -1237,7 +1238,7 @@ public class BusAttendanceServiceImpl extends ServiceImpl<BusAttendanceMapper, B
|
|||||||
List<BusAttendanceClockDateForTwoWeekVo> result = new ArrayList<>();
|
List<BusAttendanceClockDateForTwoWeekVo> result = new ArrayList<>();
|
||||||
|
|
||||||
LocalDate currentDate = startDate;
|
LocalDate currentDate = startDate;
|
||||||
while (!currentDate.isAfter(endDate)) {
|
while (!currentDate.isAfter(now)) {
|
||||||
Map<Long, List<BusAttendance>> userAttendanceMap = dateUserMap.getOrDefault(currentDate, new HashMap<>());
|
Map<Long, List<BusAttendance>> userAttendanceMap = dateUserMap.getOrDefault(currentDate, new HashMap<>());
|
||||||
|
|
||||||
int full = 0, half = 0, absent = 0;
|
int full = 0, half = 0, absent = 0;
|
||||||
|
|||||||
@ -5,6 +5,7 @@ import cn.hutool.core.collection.CollUtil;
|
|||||||
import cn.hutool.core.convert.Convert;
|
import cn.hutool.core.convert.Convert;
|
||||||
import cn.hutool.core.map.MapUtil;
|
import cn.hutool.core.map.MapUtil;
|
||||||
import cn.hutool.core.util.ObjectUtil;
|
import cn.hutool.core.util.ObjectUtil;
|
||||||
|
import cn.hutool.core.util.StrUtil;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
@ -30,12 +31,15 @@ import org.dromara.contractor.service.ISubContractorService;
|
|||||||
import org.dromara.project.domain.*;
|
import org.dromara.project.domain.*;
|
||||||
import org.dromara.project.domain.dto.leave.BusLeaveAddReq;
|
import org.dromara.project.domain.dto.leave.BusLeaveAddReq;
|
||||||
import org.dromara.project.domain.dto.leave.BusLeaveGangerReviewReq;
|
import org.dromara.project.domain.dto.leave.BusLeaveGangerReviewReq;
|
||||||
|
import org.dromara.project.domain.dto.reissuecard.BusReissueCardQueryReq;
|
||||||
import org.dromara.project.domain.enums.*;
|
import org.dromara.project.domain.enums.*;
|
||||||
import org.dromara.project.domain.dto.leave.BusLeaveManagerReviewReq;
|
import org.dromara.project.domain.dto.leave.BusLeaveManagerReviewReq;
|
||||||
import org.dromara.project.domain.dto.leave.BusLeaveQueryReq;
|
import org.dromara.project.domain.dto.leave.BusLeaveQueryReq;
|
||||||
import org.dromara.project.domain.vo.leave.BusLeaveVo;
|
import org.dromara.project.domain.vo.leave.BusLeaveVo;
|
||||||
|
import org.dromara.project.domain.vo.reissuecard.BusReissueCardVo;
|
||||||
import org.dromara.project.mapper.BusLeaveMapper;
|
import org.dromara.project.mapper.BusLeaveMapper;
|
||||||
import org.dromara.project.service.*;
|
import org.dromara.project.service.*;
|
||||||
|
import org.dromara.system.service.ISysRoleService;
|
||||||
import org.dromara.workflow.domain.TestLeave;
|
import org.dromara.workflow.domain.TestLeave;
|
||||||
import org.springframework.beans.BeanUtils;
|
import org.springframework.beans.BeanUtils;
|
||||||
import org.springframework.context.annotation.Lazy;
|
import org.springframework.context.annotation.Lazy;
|
||||||
@ -75,10 +79,11 @@ public class BusLeaveServiceImpl extends ServiceImpl<BusLeaveMapper, BusLeave>
|
|||||||
private ISubConstructionUserService constructionUserService;
|
private ISubConstructionUserService constructionUserService;
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private ISubContractorService contractorService;
|
|
||||||
|
|
||||||
private IBusUserProjectRelevancyService userProjectRelevancyService;
|
private IBusUserProjectRelevancyService userProjectRelevancyService;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private ISysRoleService roleService;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询施工人员请假申请
|
* 查询施工人员请假申请
|
||||||
*
|
*
|
||||||
@ -441,6 +446,55 @@ public class BusLeaveServiceImpl extends ServiceImpl<BusLeaveMapper, BusLeave>
|
|||||||
return TableDataInfo.build(this.getVoPage(result));
|
return TableDataInfo.build(this.getVoPage(result));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public TableDataInfo<BusLeaveVo> listByAuditUser(BusLeaveQueryReq req, PageQuery pageQuery) {
|
||||||
|
LambdaQueryWrapper<BusLeave> lqw = new LambdaQueryWrapper<>();
|
||||||
|
lqw.orderByDesc(BusLeave::getCreateTime);
|
||||||
|
lqw.eq(ObjectUtils.isNotEmpty(req.getGangerId()), BusLeave::getGangerId, req.getGangerId());
|
||||||
|
lqw.like(StrUtil.isNotBlank(req.getUserName()), BusLeave::getUserName, req.getUserName());
|
||||||
|
Page<BusLeave> result = this.page(pageQuery.build(), lqw);
|
||||||
|
return TableDataInfo.build(this.getVoPage(result));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public TableDataInfo<BusLeaveVo> listByAuditRole(BusLeaveQueryReq req, PageQuery pageQuery) {
|
||||||
|
//两个角色 一个审核分包的=6,一个审核管理的=7
|
||||||
|
Long userId = LoginHelper.getUserId();
|
||||||
|
List<Long> roleIds = roleService.selectRoleIdsByUserIdAndProjectId(userId, req.getProjectId());
|
||||||
|
|
||||||
|
List<String> type = new ArrayList<>();
|
||||||
|
if(roleIds.contains(7L)){
|
||||||
|
type.add("7");
|
||||||
|
}
|
||||||
|
if(roleIds.contains(6L)){
|
||||||
|
type.add("6");
|
||||||
|
}
|
||||||
|
if(CollUtil.isEmpty(type)){
|
||||||
|
return TableDataInfo.build();
|
||||||
|
}
|
||||||
|
|
||||||
|
LambdaQueryWrapper<BusLeave> lqw = new LambdaQueryWrapper<>();
|
||||||
|
lqw.orderByDesc(BusLeave::getCreateTime);
|
||||||
|
lqw.like(StrUtil.isNotBlank(req.getUserName()), BusLeave::getUserName, req.getUserName());
|
||||||
|
lqw.in(BusLeave::getUserType, type);
|
||||||
|
Page<BusLeave> result = this.page(pageQuery.build(), lqw);
|
||||||
|
return TableDataInfo.build(this.getVoPage(result));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 总体流程监听(例如: 草稿,撤销,退回,作废,终止,已完成,单任务完成等)
|
* 总体流程监听(例如: 草稿,撤销,退回,作废,终止,已完成,单任务完成等)
|
||||||
* 正常使用只需#processEvent.flowCode=='leave1'
|
* 正常使用只需#processEvent.flowCode=='leave1'
|
||||||
|
|||||||
@ -378,9 +378,10 @@ public class BusProjectTeamMemberServiceImpl extends ServiceImpl<BusProjectTeamM
|
|||||||
projectTeamMemberVo.setAvatar(byId.getUrl());
|
projectTeamMemberVo.setAvatar(byId.getUrl());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
}
|
||||||
SubConstructionUser user = constructionUserService.getBySysUserId(memberId);
|
SubConstructionUser byUserId = constructionUserService.getByUserId(memberId);
|
||||||
projectTeamMemberVo.setMemberName(user.getUserName());
|
if (byUserId != null) {
|
||||||
|
projectTeamMemberVo.setTypeOfWork(byUserId.getTypeOfWork());
|
||||||
}
|
}
|
||||||
return projectTeamMemberVo;
|
return projectTeamMemberVo;
|
||||||
}
|
}
|
||||||
@ -464,4 +465,17 @@ public class BusProjectTeamMemberServiceImpl extends ServiceImpl<BusProjectTeamM
|
|||||||
projectTeamMemberVoPage.setRecords(projectTeamMemberVoList);
|
projectTeamMemberVoPage.setRecords(projectTeamMemberVoList);
|
||||||
return projectTeamMemberVoPage;
|
return projectTeamMemberVoPage;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getPost(Long userId,Long projectId) {
|
||||||
|
BusProjectTeamMember busProjectTeamMember = baseMapper.selectOne(Wrappers.<BusProjectTeamMember>lambdaQuery()
|
||||||
|
.eq(BusProjectTeamMember::getMemberId, userId)
|
||||||
|
.eq(BusProjectTeamMember::getProjectId, projectId)
|
||||||
|
.last("limit 1")
|
||||||
|
);
|
||||||
|
if(busProjectTeamMember == null){
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
return busProjectTeamMember.getPostId();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -27,10 +27,7 @@ import org.dromara.project.domain.dto.projectteam.BusProjectTeamCreateReq;
|
|||||||
import org.dromara.project.domain.dto.projectteam.BusProjectTeamQueryReq;
|
import org.dromara.project.domain.dto.projectteam.BusProjectTeamQueryReq;
|
||||||
import org.dromara.project.domain.dto.projectteam.BusProjectTeamUpdateReq;
|
import org.dromara.project.domain.dto.projectteam.BusProjectTeamUpdateReq;
|
||||||
import org.dromara.project.domain.enums.BusProjectTeamMemberPostEnum;
|
import org.dromara.project.domain.enums.BusProjectTeamMemberPostEnum;
|
||||||
import org.dromara.project.domain.vo.projectteam.BusForemanVo;
|
import org.dromara.project.domain.vo.projectteam.*;
|
||||||
import org.dromara.project.domain.vo.projectteam.BusProjectTeamAppVo;
|
|
||||||
import org.dromara.project.domain.vo.projectteam.BusProjectTeamForemanVo;
|
|
||||||
import org.dromara.project.domain.vo.projectteam.BusProjectTeamVo;
|
|
||||||
import org.dromara.project.mapper.BusProjectTeamMapper;
|
import org.dromara.project.mapper.BusProjectTeamMapper;
|
||||||
import org.dromara.project.service.IBusProjectPunchrangeService;
|
import org.dromara.project.service.IBusProjectPunchrangeService;
|
||||||
import org.dromara.project.service.IBusProjectService;
|
import org.dromara.project.service.IBusProjectService;
|
||||||
@ -490,6 +487,23 @@ public class BusProjectTeamServiceImpl extends ServiceImpl<BusProjectTeamMapper,
|
|||||||
return List.of();
|
return List.of();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<BusProjectTeamAppVo> getByContractorId(Long contractorId) {
|
||||||
|
LambdaQueryWrapper<BusProjectTeam> lqw = new LambdaQueryWrapper<>();
|
||||||
|
lqw.select(BusProjectTeam::getId, BusProjectTeam::getTeamName);
|
||||||
|
lqw.eq(BusProjectTeam::getContractorId, contractorId);
|
||||||
|
List<BusProjectTeam> projectTeamList = list(lqw);
|
||||||
|
if (CollUtil.isNotEmpty(projectTeamList)) {
|
||||||
|
return projectTeamList.stream().map(projectTeam -> {
|
||||||
|
BusProjectTeamAppVo projectTeamAppVo = new BusProjectTeamAppVo();
|
||||||
|
BeanUtils.copyProperties(projectTeam, projectTeamAppVo);
|
||||||
|
return projectTeamAppVo;
|
||||||
|
}).toList();
|
||||||
|
}
|
||||||
|
|
||||||
|
return List.of();
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Boolean deleteUserId(Long id,Long userId) {
|
public Boolean deleteUserId(Long id,Long userId) {
|
||||||
BusProjectTeam projectTeam = baseMapper.selectById(id);
|
BusProjectTeam projectTeam = baseMapper.selectById(id);
|
||||||
@ -505,4 +519,24 @@ public class BusProjectTeamServiceImpl extends ServiceImpl<BusProjectTeamMapper,
|
|||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<TeamManageVo> getManager(Long teamId) {
|
||||||
|
BusProjectTeam projectTeam = baseMapper.selectById(teamId);
|
||||||
|
|
||||||
|
String userId = projectTeam.getUserId();
|
||||||
|
if (StringUtils.isNotBlank(userId)) {
|
||||||
|
String[] split = userId.split(",");
|
||||||
|
List<Long> list1 = Arrays.stream(split).map(s -> Long.valueOf(s.trim())).toList();
|
||||||
|
List<SysUserVo> sysUserVos = userService.selectUserByIds(list1, null);
|
||||||
|
|
||||||
|
return sysUserVos.stream().map(s -> {
|
||||||
|
TeamManageVo teamManageVo = new TeamManageVo();
|
||||||
|
teamManageVo.setUserId(s.getUserId());
|
||||||
|
teamManageVo.setName(s.getNickName());
|
||||||
|
return teamManageVo;
|
||||||
|
}).toList();
|
||||||
|
}
|
||||||
|
return List.of();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -21,6 +21,7 @@ import org.dromara.common.core.utils.ObjectUtils;
|
|||||||
import org.dromara.common.core.utils.StringUtils;
|
import org.dromara.common.core.utils.StringUtils;
|
||||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
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.SubConstructionUser;
|
||||||
import org.dromara.contractor.service.ISubConstructionUserService;
|
import org.dromara.contractor.service.ISubConstructionUserService;
|
||||||
import org.dromara.contractor.service.ISubUserSalaryDetailService;
|
import org.dromara.contractor.service.ISubUserSalaryDetailService;
|
||||||
@ -39,6 +40,7 @@ import org.dromara.project.service.*;
|
|||||||
import org.dromara.system.domain.vo.SysOssVo;
|
import org.dromara.system.domain.vo.SysOssVo;
|
||||||
import org.dromara.system.domain.vo.SysUserVo;
|
import org.dromara.system.domain.vo.SysUserVo;
|
||||||
import org.dromara.system.service.ISysOssService;
|
import org.dromara.system.service.ISysOssService;
|
||||||
|
import org.dromara.system.service.ISysRoleService;
|
||||||
import org.dromara.system.service.ISysUserService;
|
import org.dromara.system.service.ISysUserService;
|
||||||
import org.dromara.websocket.ChatServerHandler;
|
import org.dromara.websocket.ChatServerHandler;
|
||||||
import org.springframework.beans.BeanUtils;
|
import org.springframework.beans.BeanUtils;
|
||||||
@ -89,6 +91,9 @@ public class BusReissueCardServiceImpl extends ServiceImpl<BusReissueCardMapper,
|
|||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private ISubConstructionUserService constructionUserService;
|
private ISubConstructionUserService constructionUserService;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private ISysRoleService roleService;
|
||||||
/**
|
/**
|
||||||
* 查询施工人员补卡申请
|
* 查询施工人员补卡申请
|
||||||
*
|
*
|
||||||
@ -363,6 +368,32 @@ public class BusReissueCardServiceImpl extends ServiceImpl<BusReissueCardMapper,
|
|||||||
return TableDataInfo.build(this.getVoPage(result));
|
return TableDataInfo.build(this.getVoPage(result));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public TableDataInfo<BusReissueCardVo> listByAuditRole(BusReissueCardQueryReq req, PageQuery pageQuery) {
|
||||||
|
Long userId = LoginHelper.getUserId();
|
||||||
|
List<Long> roleIds = roleService.selectRoleIdsByUserIdAndProjectId(userId, req.getProjectId());
|
||||||
|
|
||||||
|
|
||||||
|
//两个角色 一个审核分包的=6,一个审核管理的=7
|
||||||
|
List<String> type = new ArrayList<>();
|
||||||
|
if(roleIds.contains(7L)){
|
||||||
|
type.add("7");
|
||||||
|
}
|
||||||
|
if(roleIds.contains(6L)){
|
||||||
|
type.add("6");
|
||||||
|
}
|
||||||
|
if(CollUtil.isEmpty(type)){
|
||||||
|
return TableDataInfo.build();
|
||||||
|
}
|
||||||
|
|
||||||
|
LambdaQueryWrapper<BusReissueCard> lqw = new LambdaQueryWrapper<>();
|
||||||
|
lqw.orderByDesc(BusReissueCard::getCreateTime);
|
||||||
|
lqw.like(StrUtil.isNotBlank(req.getUserName()), BusReissueCard::getUserName, req.getUserName());
|
||||||
|
lqw.in(BusReissueCard::getUserType, type);
|
||||||
|
Page<BusReissueCard> result = this.page(pageQuery.build(), lqw);
|
||||||
|
return TableDataInfo.build(this.getVoPage(result));
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Long add(BusReissueCardAddReq req) {
|
public Long add(BusReissueCardAddReq req) {
|
||||||
BusReissueCard bean = BeanUtil.toBean(req, BusReissueCard.class);
|
BusReissueCard bean = BeanUtil.toBean(req, BusReissueCard.class);
|
||||||
|
|||||||
@ -366,6 +366,7 @@ public class QltQualityInspectionServiceImpl extends ServiceImpl<QltQualityInspe
|
|||||||
String rectificationUnit = req.getRectificationUnit();
|
String rectificationUnit = req.getRectificationUnit();
|
||||||
Long rectificationId = req.getRectificationId();
|
Long rectificationId = req.getRectificationId();
|
||||||
// 精确查询
|
// 精确查询
|
||||||
|
lqw.orderByAsc(QltQualityInspection::getInspectionStatus);
|
||||||
lqw.orderByDesc(QltQualityInspection::getCreateTime);
|
lqw.orderByDesc(QltQualityInspection::getCreateTime);
|
||||||
lqw.orderByDesc(QltQualityInspection::getVersion);
|
lqw.orderByDesc(QltQualityInspection::getVersion);
|
||||||
lqw.eq(StringUtils.isNotBlank(inspectionType), QltQualityInspection::getInspectionType, inspectionType);
|
lqw.eq(StringUtils.isNotBlank(inspectionType), QltQualityInspection::getInspectionType, inspectionType);
|
||||||
|
|||||||
@ -63,7 +63,7 @@ public class WgzQuestionSavePdfVo implements Serializable {
|
|||||||
/**
|
/**
|
||||||
* pdf路径
|
* pdf路径
|
||||||
*/
|
*/
|
||||||
@Translation(type = TransConstant.OSS_ID_TO_URL, mapper = "pathUrl")
|
@Translation(type = TransConstant.OSS_ID_TO_URL, mapper = "path")
|
||||||
@ExcelProperty(value = "pdf路径(URL)")
|
@ExcelProperty(value = "pdf路径(URL)")
|
||||||
private String pathUrl;
|
private String pathUrl;
|
||||||
|
|
||||||
|
|||||||
@ -139,6 +139,9 @@ public class HseSafetyInspectionServiceImpl extends ServiceImpl<HseSafetyInspect
|
|||||||
// lqw.eq(HseSafetyInspection::getCorrectorId, userId);
|
// lqw.eq(HseSafetyInspection::getCorrectorId, userId);
|
||||||
// }
|
// }
|
||||||
// }
|
// }
|
||||||
|
lqw.orderByAsc(HseSafetyInspection::getStatus);
|
||||||
|
lqw.orderByDesc(HseSafetyInspection::getCreateTime);
|
||||||
|
lqw.orderByDesc(HseSafetyInspection::getVersion);
|
||||||
Page<HseSafetyInspection> result = this.page(pageQuery.build(), lqw);
|
Page<HseSafetyInspection> result = this.page(pageQuery.build(), lqw);
|
||||||
return TableDataInfo.build(this.getVoPage(result));
|
return TableDataInfo.build(this.getVoPage(result));
|
||||||
}
|
}
|
||||||
|
|||||||
@ -215,4 +215,7 @@ public interface ISysRoleService {
|
|||||||
* 批量删除审核审定校审
|
* 批量删除审核审定校审
|
||||||
*/
|
*/
|
||||||
void deleteDesignUser(Long projectId);
|
void deleteDesignUser(Long projectId);
|
||||||
|
|
||||||
|
|
||||||
|
List<Long> selectRoleIdsByUserIdAndProjectId(Long userId,Long projectId);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -640,4 +640,17 @@ public class SysRoleServiceImpl implements ISysRoleService, RoleService {
|
|||||||
.in(SysUserRole::getRoleId, list1)
|
.in(SysUserRole::getRoleId, list1)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<Long> selectRoleIdsByUserIdAndProjectId(Long userId, Long projectId) {
|
||||||
|
|
||||||
|
List<SysUserRole> sysUserRoles = userRoleMapper.selectList(Wrappers.lambdaQuery(SysUserRole.class)
|
||||||
|
.eq(SysUserRole::getUserId, userId)
|
||||||
|
.eq(SysUserRole::getProjectId, projectId)
|
||||||
|
);
|
||||||
|
if (CollUtil.isNotEmpty(sysUserRoles)) {
|
||||||
|
return sysUserRoles.stream().map(SysUserRole::getRoleId).toList();
|
||||||
|
}
|
||||||
|
return List.of();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -66,21 +66,25 @@ public class XzdProjectBo extends BaseEntity {
|
|||||||
/**
|
/**
|
||||||
* 计划开工日期
|
* 计划开工日期
|
||||||
*/
|
*/
|
||||||
|
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||||
private Date plannedStartDate;
|
private Date plannedStartDate;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 计划竣工日期
|
* 计划竣工日期
|
||||||
*/
|
*/
|
||||||
|
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||||
private Date plannedCompletionDate;
|
private Date plannedCompletionDate;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 实际开工日期
|
* 实际开工日期
|
||||||
*/
|
*/
|
||||||
|
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||||
private Date actualStartDate;
|
private Date actualStartDate;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 实际竣工日期
|
* 实际竣工日期
|
||||||
*/
|
*/
|
||||||
|
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||||
private Date actualCompletionDate;
|
private Date actualCompletionDate;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -263,4 +267,41 @@ public class XzdProjectBo extends BaseEntity {
|
|||||||
*/
|
*/
|
||||||
List<XzdProjectParticipatingUnitsBo> cjdw;
|
List<XzdProjectParticipatingUnitsBo> cjdw;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 国家
|
||||||
|
*/
|
||||||
|
private String gj;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 省份
|
||||||
|
*/
|
||||||
|
private String sheng;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 区县
|
||||||
|
*/
|
||||||
|
private String qx;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 项目备案经理
|
||||||
|
*/
|
||||||
|
private String xmbajl;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 分页大小
|
||||||
|
*/
|
||||||
|
private Integer pageSize;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 当前页数
|
||||||
|
*/
|
||||||
|
private Integer pageNum;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 排序列
|
||||||
|
*/
|
||||||
|
private String orderByColumn;
|
||||||
|
|
||||||
|
private Integer offset;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,5 +1,6 @@
|
|||||||
package org.dromara.xzd.domain.vo;
|
package org.dromara.xzd.domain.vo;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
import org.dromara.xzd.domain.XzdProject;
|
import org.dromara.xzd.domain.XzdProject;
|
||||||
@ -61,6 +62,8 @@ public class XzdProjectVo implements Serializable {
|
|||||||
@ExcelProperty(value = "项目类型")
|
@ExcelProperty(value = "项目类型")
|
||||||
private Long projectType;
|
private Long projectType;
|
||||||
|
|
||||||
|
private String projectTypeName;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 项目状态
|
* 项目状态
|
||||||
*/
|
*/
|
||||||
@ -109,12 +112,19 @@ public class XzdProjectVo implements Serializable {
|
|||||||
@ExcelProperty(value = "项目备案经理")
|
@ExcelProperty(value = "项目备案经理")
|
||||||
private Long filingManager;
|
private Long filingManager;
|
||||||
|
|
||||||
|
private String filingManagerName;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 项目执行经理
|
* 项目执行经理
|
||||||
*/
|
*/
|
||||||
@ExcelProperty(value = "项目执行经理")
|
@ExcelProperty(value = "项目执行经理")
|
||||||
private Long managerExecution;
|
private Long managerExecution;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 项目执行经理名称
|
||||||
|
*/
|
||||||
|
private String managerExecutionName;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 项目责任人
|
* 项目责任人
|
||||||
*/
|
*/
|
||||||
@ -221,25 +231,25 @@ public class XzdProjectVo implements Serializable {
|
|||||||
* 目标中标金额
|
* 目标中标金额
|
||||||
*/
|
*/
|
||||||
@ExcelProperty(value = "目标中标金额")
|
@ExcelProperty(value = "目标中标金额")
|
||||||
private Long targetWinningBidAmount;
|
private BigDecimal targetWinningBidAmount;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 目标合同金额
|
* 目标合同金额
|
||||||
*/
|
*/
|
||||||
@ExcelProperty(value = "目标合同金额")
|
@ExcelProperty(value = "目标合同金额")
|
||||||
private Long targetContractAmount;
|
private BigDecimal targetContractAmount;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 目标产值金额
|
* 目标产值金额
|
||||||
*/
|
*/
|
||||||
@ExcelProperty(value = "目标产值金额")
|
@ExcelProperty(value = "目标产值金额")
|
||||||
private Long targetOutputValueAmount;
|
private BigDecimal targetOutputValueAmount;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 目标收款金额
|
* 目标收款金额
|
||||||
*/
|
*/
|
||||||
@ExcelProperty(value = "目标收款金额")
|
@ExcelProperty(value = "目标收款金额")
|
||||||
private Long targetCollectionAmount;
|
private BigDecimal targetCollectionAmount;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 文件ID
|
* 文件ID
|
||||||
@ -294,4 +304,39 @@ public class XzdProjectVo implements Serializable {
|
|||||||
*/
|
*/
|
||||||
List<XzdProjectParticipatingUnitsVo> cjdw;
|
List<XzdProjectParticipatingUnitsVo> cjdw;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 项目地址
|
||||||
|
*/
|
||||||
|
private String xmdz;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 国家
|
||||||
|
*/
|
||||||
|
private String gj;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 省
|
||||||
|
*/
|
||||||
|
private String sheng;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 市
|
||||||
|
*/
|
||||||
|
private String cs;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 录入人
|
||||||
|
*/
|
||||||
|
private String lrr;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 录入时间
|
||||||
|
*/
|
||||||
|
private Date createTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 高度
|
||||||
|
*/
|
||||||
|
private String gd;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,8 +1,12 @@
|
|||||||
package org.dromara.xzd.mapper;
|
package org.dromara.xzd.mapper;
|
||||||
|
|
||||||
import org.dromara.xzd.domain.XzdProject;
|
import org.dromara.xzd.domain.XzdProject;
|
||||||
|
import org.dromara.xzd.domain.bo.XzdProjectBo;
|
||||||
import org.dromara.xzd.domain.vo.XzdProjectVo;
|
import org.dromara.xzd.domain.vo.XzdProjectVo;
|
||||||
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
|
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
|
||||||
|
import org.springframework.data.repository.query.Param;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 项目信息Mapper接口
|
* 项目信息Mapper接口
|
||||||
@ -12,4 +16,6 @@ import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
|
|||||||
*/
|
*/
|
||||||
public interface XzdProjectMapper extends BaseMapperPlus<XzdProject, XzdProjectVo> {
|
public interface XzdProjectMapper extends BaseMapperPlus<XzdProject, XzdProjectVo> {
|
||||||
|
|
||||||
|
List<XzdProjectVo> search(@Param("bo") XzdProjectBo bo);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -9,20 +9,20 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import org.dromara.system.domain.vo.SysOssVo;
|
||||||
import org.dromara.system.service.impl.SysOssServiceImpl;
|
import org.dromara.system.service.impl.SysOssServiceImpl;
|
||||||
import org.dromara.xzd.domain.*;
|
import org.dromara.xzd.domain.*;
|
||||||
import org.dromara.xzd.domain.bo.*;
|
import org.dromara.xzd.domain.bo.*;
|
||||||
import org.dromara.xzd.domain.vo.XzdProjectAccountingInfoVo;
|
import org.dromara.xzd.domain.vo.*;
|
||||||
|
import org.springframework.beans.BeanUtils;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.dromara.xzd.domain.vo.XzdProjectVo;
|
|
||||||
import org.dromara.xzd.mapper.XzdProjectMapper;
|
import org.dromara.xzd.mapper.XzdProjectMapper;
|
||||||
import org.dromara.xzd.service.IXzdProjectService;
|
import org.dromara.xzd.service.IXzdProjectService;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.*;
|
||||||
import java.util.Map;
|
import java.util.stream.Collectors;
|
||||||
import java.util.Collection;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 项目信息Service业务层处理
|
* 项目信息Service业务层处理
|
||||||
@ -53,6 +53,8 @@ public class XzdProjectServiceImpl extends ServiceImpl<XzdProjectMapper, XzdProj
|
|||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private SysOssServiceImpl sysOssService;
|
private SysOssServiceImpl sysOssService;
|
||||||
|
@Autowired
|
||||||
|
private XzdProjectTypeServiceImpl xzdProjectTypeService;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询项目信息
|
* 查询项目信息
|
||||||
@ -76,9 +78,22 @@ public class XzdProjectServiceImpl extends ServiceImpl<XzdProjectMapper, XzdProj
|
|||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public TableDataInfo<XzdProjectVo> queryPageList(XzdProjectBo bo, PageQuery pageQuery) {
|
public TableDataInfo<XzdProjectVo> queryPageList(XzdProjectBo bo, PageQuery pageQuery) {
|
||||||
LambdaQueryWrapper<XzdProject> lqw = buildQueryWrapper(bo);
|
// LambdaQueryWrapper<XzdProject> lqw = buildQueryWrapper(bo);
|
||||||
Page<XzdProjectVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
|
// Page<XzdProjectVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
|
||||||
return TableDataInfo.build(result);
|
if(pageQuery.getPageNum() != null && pageQuery.getPageSize() != null) {
|
||||||
|
bo.setPageNum(pageQuery.getPageNum());
|
||||||
|
bo.setPageSize(pageQuery.getPageSize());
|
||||||
|
}else {
|
||||||
|
bo.setPageNum(1);
|
||||||
|
bo.setPageSize(10);
|
||||||
|
}
|
||||||
|
|
||||||
|
int i = (bo.getPageNum() - 1) * bo.getPageSize();
|
||||||
|
bo.setOffset(i);
|
||||||
|
|
||||||
|
List<XzdProjectVo> search = baseMapper.search(bo);
|
||||||
|
|
||||||
|
return TableDataInfo.build(search);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -212,11 +227,168 @@ public class XzdProjectServiceImpl extends ServiceImpl<XzdProjectMapper, XzdProj
|
|||||||
* @param bo 项目信息
|
* @param bo 项目信息
|
||||||
* @return 是否修改成功
|
* @return 是否修改成功
|
||||||
*/
|
*/
|
||||||
|
@Transactional
|
||||||
@Override
|
@Override
|
||||||
public Boolean updateByBo(XzdProjectBo bo) {
|
public Boolean updateByBo(XzdProjectBo bo) {
|
||||||
|
|
||||||
|
XzdProjectVo oldValue = baseMapper.selectVoById(bo.getId());
|
||||||
|
|
||||||
XzdProject update = MapstructUtils.convert(bo, XzdProject.class);
|
XzdProject update = MapstructUtils.convert(bo, XzdProject.class);
|
||||||
validEntityBeforeSave(update);
|
validEntityBeforeSave(update);
|
||||||
return baseMapper.updateById(update) > 0;
|
boolean b = baseMapper.updateById(update) > 0;
|
||||||
|
if (!b){
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
//项目概况处理
|
||||||
|
if (bo.getXmgk() != null){
|
||||||
|
xzdProjectProfileService.updateByBo(bo.getXmgk());
|
||||||
|
}
|
||||||
|
|
||||||
|
//项目人员处理
|
||||||
|
//项目人员处理 - 更精确的更新方式
|
||||||
|
if (bo.getXmry() != null && !bo.getXmry().isEmpty()){
|
||||||
|
// 获取原有记录
|
||||||
|
LambdaQueryWrapper<XzdProjectPersonnel> queryWrapper = new LambdaQueryWrapper<>();
|
||||||
|
queryWrapper.eq(XzdProjectPersonnel::getXzdProjectId, bo.getId());
|
||||||
|
List<XzdProjectPersonnel> existingPersonnel = xzdProjectPersonnelService.list(queryWrapper);
|
||||||
|
|
||||||
|
// 提取现有ID集合
|
||||||
|
Set<Long> existingIds = existingPersonnel.stream()
|
||||||
|
.map(XzdProjectPersonnel::getId)
|
||||||
|
.collect(Collectors.toSet());
|
||||||
|
|
||||||
|
// 处理新的或更新的记录
|
||||||
|
Set<Long> processedIds = new HashSet<>();
|
||||||
|
for (XzdProjectPersonnelBo personnelBo : bo.getXmry()) {
|
||||||
|
personnelBo.setXzdProjectId(update.getId());
|
||||||
|
if (personnelBo.getId() != null && existingIds.contains(personnelBo.getId())) {
|
||||||
|
// 更新已有记录
|
||||||
|
xzdProjectPersonnelService.updateByBo(personnelBo);
|
||||||
|
processedIds.add(personnelBo.getId());
|
||||||
|
} else {
|
||||||
|
// 新增记录
|
||||||
|
personnelBo.setId(null); // 确保是新增而不是更新
|
||||||
|
xzdProjectPersonnelService.insertByBo(personnelBo);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 删除未被处理的旧记录
|
||||||
|
existingIds.removeAll(processedIds);
|
||||||
|
if (!existingIds.isEmpty()) {
|
||||||
|
xzdProjectPersonnelService.removeBatchByIds(existingIds);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// if (bo.getXmry() != null && !bo.getXmry().isEmpty()){
|
||||||
|
// //删除后再新增
|
||||||
|
// xzdProjectPersonnelService.removeBatchByIds(oldValue.getXmry());
|
||||||
|
// for (XzdProjectPersonnelBo personnelBo : bo.getXmry()) {
|
||||||
|
// personnelBo.setXzdProjectId(update.getId());
|
||||||
|
// xzdProjectPersonnelService.insertByBo(personnelBo);
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
|
||||||
|
//税务信息处理
|
||||||
|
if (bo.getSwxx() != null){
|
||||||
|
xzdProjectTaxInfoService.updateByBo(bo.getSwxx());
|
||||||
|
}
|
||||||
|
|
||||||
|
//核算信息
|
||||||
|
if (bo.getHsxx() != null){
|
||||||
|
xzdProjectAccountingInfoService.updateByBo(bo.getHsxx());
|
||||||
|
}
|
||||||
|
|
||||||
|
// //仓库信息
|
||||||
|
// if (bo.getXmck() != null && !bo.getXmck().isEmpty()){
|
||||||
|
// xzdProjectWarehousesService.removeBatchByIds(oldValue.getXmck());
|
||||||
|
// for (XzdProjectWarehousesBo warehousesBo : bo.getXmck()) {
|
||||||
|
// warehousesBo.setXzdProjectId(update.getId());
|
||||||
|
// xzdProjectWarehousesService.insertByBo(warehousesBo);
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// //内部账户信息
|
||||||
|
// if (bo.getNbzj() != null && !bo.getNbzj().isEmpty()){
|
||||||
|
// xzdProjectInternalAccountsService.removeBatchByIds(oldValue.getNbzj());
|
||||||
|
// for (XzdProjectInternalAccountsBo internalAccountsBo : bo.getNbzj()) {
|
||||||
|
// internalAccountsBo.setXzdProjectId(update.getId());
|
||||||
|
// xzdProjectInternalAccountsService.insertByBo(internalAccountsBo);
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// //参与单位信息
|
||||||
|
// if (bo.getCjdw() != null && !bo.getCjdw().isEmpty()){
|
||||||
|
// xzdProjectParticipatingUnitsService.removeBatchByIds(oldValue.getCjdw());
|
||||||
|
// for (XzdProjectParticipatingUnitsBo participatingUnitsBo : bo.getCjdw()) {
|
||||||
|
// participatingUnitsBo.setXzdProjectId(update.getId());
|
||||||
|
// xzdProjectParticipatingUnitsService.insertByBo(participatingUnitsBo);
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
|
||||||
|
//仓库信息
|
||||||
|
if (bo.getXmck() != null && !bo.getXmck().isEmpty()){
|
||||||
|
// 获取原有记录的ID列表
|
||||||
|
List<Long> oldWarehouseIds = oldValue.getXmck().stream()
|
||||||
|
.map(XzdProjectWarehousesVo::getId)
|
||||||
|
.filter(Objects::nonNull)
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
|
||||||
|
// 删除原有记录
|
||||||
|
if (!oldWarehouseIds.isEmpty()) {
|
||||||
|
xzdProjectWarehousesService.removeBatchByIds(oldWarehouseIds);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 插入新记录
|
||||||
|
for (XzdProjectWarehousesBo warehousesBo : bo.getXmck()) {
|
||||||
|
warehousesBo.setId(null); // 清除ID避免主键冲突
|
||||||
|
warehousesBo.setXzdProjectId(update.getId());
|
||||||
|
xzdProjectWarehousesService.insertByBo(warehousesBo);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//内部账户信息
|
||||||
|
if (bo.getNbzj() != null && !bo.getNbzj().isEmpty()){
|
||||||
|
// 获取原有记录的ID列表
|
||||||
|
List<Long> oldAccountIds = oldValue.getNbzj().stream()
|
||||||
|
.map(XzdProjectInternalAccountsVo::getId)
|
||||||
|
.filter(Objects::nonNull)
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
|
||||||
|
// 删除原有记录
|
||||||
|
if (!oldAccountIds.isEmpty()) {
|
||||||
|
xzdProjectInternalAccountsService.removeBatchByIds(oldAccountIds);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 插入新记录
|
||||||
|
for (XzdProjectInternalAccountsBo internalAccountsBo : bo.getNbzj()) {
|
||||||
|
internalAccountsBo.setId(null); // 清除ID避免主键冲突
|
||||||
|
internalAccountsBo.setXzdProjectId(update.getId());
|
||||||
|
xzdProjectInternalAccountsService.insertByBo(internalAccountsBo);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//参与单位信息
|
||||||
|
if (bo.getCjdw() != null && !bo.getCjdw().isEmpty()){
|
||||||
|
// 获取原有记录的ID列表
|
||||||
|
List<Long> oldUnitIds = oldValue.getCjdw().stream()
|
||||||
|
.map(XzdProjectParticipatingUnitsVo::getId)
|
||||||
|
.filter(Objects::nonNull)
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
|
||||||
|
// 删除原有记录
|
||||||
|
if (!oldUnitIds.isEmpty()) {
|
||||||
|
xzdProjectParticipatingUnitsService.removeBatchByIds(oldUnitIds);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 插入新记录
|
||||||
|
for (XzdProjectParticipatingUnitsBo participatingUnitsBo : bo.getCjdw()) {
|
||||||
|
participatingUnitsBo.setId(null); // 清除ID避免主键冲突
|
||||||
|
participatingUnitsBo.setXzdProjectId(update.getId());
|
||||||
|
xzdProjectParticipatingUnitsService.insertByBo(participatingUnitsBo);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -238,6 +410,51 @@ public class XzdProjectServiceImpl extends ServiceImpl<XzdProjectMapper, XzdProj
|
|||||||
if(isValid){
|
if(isValid){
|
||||||
//TODO 做一些业务上的校验,判断是否需要校验
|
//TODO 做一些业务上的校验,判断是否需要校验
|
||||||
}
|
}
|
||||||
|
|
||||||
|
for (Long id : ids) {
|
||||||
|
//项目概况
|
||||||
|
LambdaQueryWrapper<XzdProjectProfile> profileLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||||
|
profileLambdaQueryWrapper.eq(XzdProjectProfile::getXzdProjectId, id);
|
||||||
|
xzdProjectProfileService.remove(profileLambdaQueryWrapper);
|
||||||
|
|
||||||
|
//项目人员
|
||||||
|
LambdaQueryWrapper<XzdProjectPersonnel> personnelLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||||
|
personnelLambdaQueryWrapper.eq(XzdProjectPersonnel::getXzdProjectId, id);
|
||||||
|
List<XzdProjectPersonnel> list = xzdProjectPersonnelService.list(personnelLambdaQueryWrapper);
|
||||||
|
for (XzdProjectPersonnel xzdProjectPersonnel : list) {
|
||||||
|
if (xzdProjectPersonnel.getFileId() != null){
|
||||||
|
sysOssService.deleteWithValidByIds(List.of(Long.valueOf(xzdProjectPersonnel.getFileId())), false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
xzdProjectPersonnelService.remove(personnelLambdaQueryWrapper);
|
||||||
|
|
||||||
|
//税务信息
|
||||||
|
LambdaQueryWrapper<XzdProjectTaxInfo> taxInfoLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||||
|
taxInfoLambdaQueryWrapper.eq(XzdProjectTaxInfo::getXzdProjectId, id);
|
||||||
|
xzdProjectTaxInfoService.remove(taxInfoLambdaQueryWrapper);
|
||||||
|
|
||||||
|
//核算信息
|
||||||
|
LambdaQueryWrapper<XzdProjectAccountingInfo> accountingInfoLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||||
|
accountingInfoLambdaQueryWrapper.eq(XzdProjectAccountingInfo::getXzdProjectId, id);
|
||||||
|
xzdProjectAccountingInfoService.remove(accountingInfoLambdaQueryWrapper);
|
||||||
|
|
||||||
|
//仓库信息
|
||||||
|
LambdaQueryWrapper<XzdProjectWarehouses> warehousesLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||||
|
warehousesLambdaQueryWrapper.eq(XzdProjectWarehouses::getXzdProjectId, id);
|
||||||
|
xzdProjectWarehousesService.remove(warehousesLambdaQueryWrapper);
|
||||||
|
|
||||||
|
//内部账户信息
|
||||||
|
LambdaQueryWrapper<XzdProjectInternalAccounts> internalAccountsLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||||
|
internalAccountsLambdaQueryWrapper.eq(XzdProjectInternalAccounts::getXzdProjectId, id);
|
||||||
|
xzdProjectInternalAccountsService.remove(internalAccountsLambdaQueryWrapper);
|
||||||
|
|
||||||
|
//参与单位信息
|
||||||
|
LambdaQueryWrapper<XzdProjectParticipatingUnits> participatingUnitsLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||||
|
participatingUnitsLambdaQueryWrapper.eq(XzdProjectParticipatingUnits::getXzdProjectId, id);
|
||||||
|
xzdProjectParticipatingUnitsService.remove(participatingUnitsLambdaQueryWrapper);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
return baseMapper.deleteByIds(ids) > 0;
|
return baseMapper.deleteByIds(ids) > 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -278,6 +495,13 @@ public class XzdProjectServiceImpl extends ServiceImpl<XzdProjectMapper, XzdProj
|
|||||||
participatingUnitsLambdaQueryWrapper.eq(XzdProjectParticipatingUnits::getXzdProjectId, entity.getId());
|
participatingUnitsLambdaQueryWrapper.eq(XzdProjectParticipatingUnits::getXzdProjectId, entity.getId());
|
||||||
entity.setCjdw(xzdProjectParticipatingUnitsService.getBaseMapper().selectVoList(participatingUnitsLambdaQueryWrapper));
|
entity.setCjdw(xzdProjectParticipatingUnitsService.getBaseMapper().selectVoList(participatingUnitsLambdaQueryWrapper));
|
||||||
|
|
||||||
|
//项目类型
|
||||||
|
if (entity.getProjectType() != null){
|
||||||
|
XzdProjectTypeVo xzdProjectTypeVo = xzdProjectTypeService.queryById(entity.getProjectType());
|
||||||
|
if (xzdProjectTypeVo != null){
|
||||||
|
entity.setProjectTypeName(xzdProjectTypeVo.getTypeName());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -4,36 +4,86 @@
|
|||||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||||
<mapper namespace="org.dromara.xzd.mapper.XzdProjectMapper">
|
<mapper namespace="org.dromara.xzd.mapper.XzdProjectMapper">
|
||||||
|
|
||||||
<select id="search" resultType="org.dromara.xzd.domain.vo.XzdProjectInfoVo">
|
<select id="search" resultType="org.dromara.xzd.domain.vo.XzdProjectVo">
|
||||||
SELECT
|
SELECT
|
||||||
project.project_number as xmbh,
|
project.id,
|
||||||
project.project_name as xmmc,
|
project.project_attribute as projectAttribute,
|
||||||
project.file_id as fj,
|
project.project_number as projectNumber,
|
||||||
project.audit_status as shbz,
|
project.project_name as projectName,
|
||||||
project.project_abbreviation as xmjc,
|
project.file_id as fileId,
|
||||||
project.project_status as xmzt,
|
project.audit_status as auditStatus,
|
||||||
project.project_type as xmlx,
|
project.project_abbreviation as projectAbbreviation,
|
||||||
profile.contract_amount as htje,
|
project.project_status as projectStatus,
|
||||||
project.planned_start_date as jhkgrq,
|
type.type_name as projectTypeName,
|
||||||
project.planned_completion_date as jhjgrq,
|
profile.contract_amount as targetContractAmount,
|
||||||
project.actual_start_date as sjkgrq,
|
project.planned_start_date as plannedStartDate,
|
||||||
project.actual_completion_date as sjjgrq,
|
project.planned_completion_date as plannedCompletionDate,
|
||||||
user.nick_name as xmzxjl,
|
project.actual_start_date as actualStartDate,
|
||||||
user2.nick_name as xmbajl,
|
project.actual_completion_date as actualCompletionDate,
|
||||||
|
user.nick_name as managerExecutionName,
|
||||||
|
user2.nick_name as filingManagerName,
|
||||||
profile.project_address as xmdz,
|
profile.project_address as xmdz,
|
||||||
project.management_organization as glzz,
|
project.management_organization as managementOrganization,
|
||||||
project.construction_unit as jsdw,
|
project.construction_unit as constructionUnit,
|
||||||
profile.country as gj,
|
profile.country as gj,
|
||||||
profile.province as sheng,
|
profile.province as sheng,
|
||||||
profile.city as cs,
|
profile.city as cs,
|
||||||
project
|
user3.nick_name as lrr,
|
||||||
|
project.create_time as createTime,
|
||||||
|
profile.height as gd,
|
||||||
|
project.contracting_method as contractingMethod,
|
||||||
|
project.manager_execution_phone as managerExecutionPhone,
|
||||||
|
project.gov_filing_project_name as govFilingProjectName,
|
||||||
|
project.business_model as businessModel
|
||||||
|
|
||||||
FROM xzd_project as project
|
FROM xzd_project as project
|
||||||
|
|
||||||
LEFT JOIN xzd_project_profile as profile ON project.id = profile.xzd_project_id
|
LEFT JOIN xzd_project_profile as profile ON project.id = profile.xzd_project_id
|
||||||
LEFT JOIN sys_user as user ON project.manager_execution = user.user_id
|
LEFT JOIN sys_user as user ON project.manager_execution = user.user_id
|
||||||
LEFT JOIN sys_user as user2 ON project.filing_manager = user2.user_id
|
LEFT JOIN sys_user as user2 ON project.filing_manager = user2.user_id
|
||||||
# LEFT JOIN sys_user as user3 ON project.project_manager = user3.user_id
|
LEFT JOIN sys_user as user3 ON project.create_by = user3.user_id
|
||||||
|
LEFT JOIN xzd_project_type as type ON project.project_type = type.id
|
||||||
|
|
||||||
|
<where>
|
||||||
|
|
||||||
|
<if test='projectNumber != null and projectNumber != ""'>
|
||||||
|
AND project.project_number LIKE CONCAT('%',#{projectNumber},'%')
|
||||||
|
</if>
|
||||||
|
|
||||||
|
<if test='projectName != null and projectName != ""'>
|
||||||
|
AND project.project_name LIKE CONCAT('%',#{projectName},'%')
|
||||||
|
</if>
|
||||||
|
|
||||||
|
<if test='managementOrganization != null and managementOrganization != ""'>
|
||||||
|
AND project.management_organization = #{managementOrganization}
|
||||||
|
</if>
|
||||||
|
|
||||||
|
<if test='constructionUnit != null and constructionUnit != ""'>
|
||||||
|
AND project.construction_unit = #{constructionUnit}
|
||||||
|
</if>
|
||||||
|
|
||||||
|
<if test='gj != null and gj != ""'>
|
||||||
|
AND profile.country = #{gj}
|
||||||
|
</if>
|
||||||
|
|
||||||
|
<if test='sheng != null and sheng != ""'>
|
||||||
|
AND profile.province = #{sheng}
|
||||||
|
</if>
|
||||||
|
|
||||||
|
<if test='qx != null and qx != ""'>
|
||||||
|
AND profile.district = #{qx}
|
||||||
|
</if>
|
||||||
|
|
||||||
|
<if test='xmbajl != null and xmbajl != ""'>
|
||||||
|
AND user2.nick_name = #{xmbajl}
|
||||||
|
</if>
|
||||||
|
|
||||||
|
</where>
|
||||||
|
|
||||||
|
<if test='pageNum != null and pageSize != null'>
|
||||||
|
LIMIT #{pageSize} OFFSET #{offset}
|
||||||
|
</if>
|
||||||
|
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|||||||
Reference in New Issue
Block a user