main
zhaokai 2026-03-19 15:32:45 +08:00
parent 1df0fbdfb0
commit e5173a33f0
34 changed files with 1217 additions and 181 deletions

View File

@ -2,10 +2,10 @@ nacos:
url: 192.168.20.100:30290
namespace: jjb-dragon
application:
name: jjb-saas-zcloud-key_project
name: jjb-saas-zcloud-key-project
version:
gateway: keyProject
cn-name: 重点工程
gateway: keyProjectInfo
cn-name: 重点作业
spring:
application:
name: ${application.name}${application.version}

View File

@ -8,9 +8,12 @@ import com.alibaba.cola.dto.SingleResponse;
import com.jjb.saas.framework.auth.model.SSOUser;
import com.jjb.saas.framework.auth.utils.AuthContext;
import com.zcloud.key.project.api.KeyProjectCameraServiceI;
import com.zcloud.key.project.dto.CameraListCmd;
import com.zcloud.key.project.dto.KeyProjectCameraAddCmd;
import com.zcloud.key.project.dto.KeyProjectCameraPageQry;
import com.zcloud.key.project.dto.KeyProjectCameraUpdateCmd;
import com.zcloud.key.project.dto.clientobject.CameraInfoCO;
import com.zcloud.key.project.dto.clientobject.KeyProjectCO;
import com.zcloud.key.project.dto.clientobject.KeyProjectCameraCO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
@ -33,50 +36,48 @@ import java.util.ArrayList;
public class KeyProjectCameraController {
private final KeyProjectCameraServiceI keyProjectCameraService;
@ApiOperation("新增")
/* @ApiOperation("新增摄像头")
@PostMapping("/save")
public SingleResponse<KeyProjectCameraCO> add(@Validated @RequestBody KeyProjectCameraAddCmd cmd) {
SSOUser ssoUser = AuthContext.getCurrentUser();
return keyProjectCameraService.add(cmd);
}
}*/
@ApiOperation("分页")
@ApiOperation("重点作业下摄像头分页")
@PostMapping("/list")
public PageResponse<KeyProjectCameraCO> page(@RequestBody KeyProjectCameraPageQry qry) {
return keyProjectCameraService.listPage(qry);
}
@ApiOperation("所有数据")
@ApiOperation("重点作业下摄像头所有数据")
@GetMapping("/listAll")
public MultiResponse<KeyProjectCameraCO> listAll() {
return MultiResponse.of(new ArrayList<KeyProjectCameraCO>());
public MultiResponse<KeyProjectCameraCO> listAll(@RequestBody KeyProjectCameraPageQry qry) {
return MultiResponse.of(keyProjectCameraService.listAll(qry));
}
@ApiOperation("详情")
/* @ApiOperation("详情")
@GetMapping("/{id}")
public SingleResponse<KeyProjectCameraCO> getInfoById(@PathVariable("id") Long id) {
return SingleResponse.of(new KeyProjectCameraCO());
}
}*/
@ApiOperation("删除")
@DeleteMapping("/{id}")
@PostMapping("/{id}")
public Response remove(@PathVariable("id") Long id) {
keyProjectCameraService.remove(id);
return SingleResponse.buildSuccess();
}
@ApiOperation("删除多个")
@DeleteMapping("/ids")
@PostMapping("/ids")
public Response removeBatch(@RequestParam Long[] ids) {
keyProjectCameraService.removeBatch(ids);
return SingleResponse.buildSuccess();
}
@ApiOperation("修改")
@PutMapping("/edit")
public SingleResponse edit(@Validated @RequestBody KeyProjectCameraUpdateCmd keyProjectCameraUpdateCmd) {
keyProjectCameraService.edit(keyProjectCameraUpdateCmd);
return SingleResponse.buildSuccess();
@ApiOperation("摄像头系统-获取所有的摄像头数据")
@PostMapping("/listCameraAll")
public PageResponse<CameraInfoCO> listCameraAll(@RequestBody CameraListCmd cameraListCmd) {
return keyProjectCameraService.listCameraAll(cameraListCmd);
}
}

View File

@ -5,13 +5,10 @@ import com.alibaba.cola.dto.MultiResponse;
import com.alibaba.cola.dto.PageResponse;
import com.alibaba.cola.dto.Response;
import com.alibaba.cola.dto.SingleResponse;
import com.jjb.saas.framework.auth.model.SSOUser;
import com.jjb.saas.framework.auth.utils.AuthContext;
import com.zcloud.key.project.api.KeyProjectServiceI;
import com.zcloud.key.project.dto.KeyProjectAddCmd;
import com.zcloud.key.project.dto.KeyProjectPageQry;
import com.zcloud.key.project.dto.KeyProjectUpdateCmd;
import com.zcloud.key.project.dto.clientobject.KeyProjectCO;
import com.zcloud.key.project.domain.enums.KeyProjectApplyStatusEnum;
import com.zcloud.key.project.dto.*;
import com.zcloud.key.project.dto.clientobject.*;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor;
@ -27,56 +24,102 @@ import java.util.ArrayList;
* @Date 2026-03-16 10:00:38
*/
@Api(tags = "重点作业表")
@RequestMapping("/${application.gateway}/keyProject")
@RequestMapping("/${application.gateway}/info")
@RestController
@AllArgsConstructor
public class KeyProjectController {
private final KeyProjectServiceI keyProjectService;
@ApiOperation("新增")
@ApiOperation("重点作业新增")
@PostMapping("/save")
public SingleResponse<KeyProjectCO> add(@Validated @RequestBody KeyProjectAddCmd cmd) {
SSOUser ssoUser = AuthContext.getCurrentUser();
public SingleResponse<KeyProjectCO> add(@Validated @RequestBody KeyProjectAddCmd cmd) {
cmd.setApplyStatus(KeyProjectApplyStatusEnum.NOT_STARTED.getCode());
return keyProjectService.add(cmd);
}
@ApiOperation("重点作业暂存")
@PostMapping("/saveStorage")
public SingleResponse<KeyProjectCO> saveStorage(@RequestBody KeyProjectAddCmd cmd) {
cmd.setApplyStatus(KeyProjectApplyStatusEnum.TEMPORARY_SAVE.getCode());
return keyProjectService.add(cmd);
}
@ApiOperation("分页")
@ApiOperation("重点作业管理分页")
@PostMapping("/list")
public PageResponse<KeyProjectCO> page(@RequestBody KeyProjectPageQry qry) {
return keyProjectService.listPage(qry);
}
@ApiOperation("所有数据")
@ApiOperation("重点作业确认分页-监管-分公司")
@PostMapping("/pageConfirm")
public PageResponse<KeyProjectCO> pageConfirm(@RequestBody KeyProjectPageQry qry) {
return keyProjectService.pageConfirm(qry);
}
/*@ApiOperation("所有数据")
@GetMapping("/listAll")
public MultiResponse<KeyProjectCO> listAll() {
return MultiResponse.of(new ArrayList<KeyProjectCO>());
}
}*/
@ApiOperation("详情")
@ApiOperation("重点作业详情")
@GetMapping("/{id}")
public SingleResponse<KeyProjectCO> getInfoById(@PathVariable("id") Long id) {
return SingleResponse.of(new KeyProjectCO());
return SingleResponse.of(keyProjectService.getInfoById(id));
}
@ApiOperation("删除")
@DeleteMapping("/{id}")
@PostMapping("/{id}")
public Response remove(@PathVariable("id") Long id) {
keyProjectService.remove(id);
return SingleResponse.buildSuccess();
}
@ApiOperation("删除多个")
/* @ApiOperation("删除多个")
@DeleteMapping("/ids")
public Response removeBatch(@RequestParam Long[] ids) {
keyProjectService.removeBatch(ids);
return SingleResponse.buildSuccess();
}
}*/
@ApiOperation("修改")
@PutMapping("/edit")
@PostMapping("/edit")
public SingleResponse edit(@Validated @RequestBody KeyProjectUpdateCmd keyProjectUpdateCmd) {
keyProjectService.edit(keyProjectUpdateCmd);
return SingleResponse.buildSuccess();
}
@ApiOperation("重点作业修改暂存")
@PostMapping("/editStorage")
public SingleResponse<KeyProjectCO> editStorage(@RequestBody KeyProjectUpdateCmd keyProjectUpdateCmd) {
keyProjectService.edit(keyProjectUpdateCmd);
return SingleResponse.buildSuccess();
}
@ApiOperation("修改状态")
@PostMapping("/editStatus")
public SingleResponse editStatus(@Validated @RequestBody KeyProjectUpdateStatusCmd keyProjectUpdateStatusCmd) {
keyProjectService.editStatus(keyProjectUpdateStatusCmd);
return SingleResponse.buildSuccess();
}
@ApiOperation("股份端-企业重点作业情况统计")
@PostMapping("/corpStatistics")
public PageResponse<CorpStatisticsCO> corpStatistics(@RequestBody CorpStatisticsPageQry qry) {
return keyProjectService.corpStatistics(qry);
}
@ApiOperation("分公司-重点作业情况统计")
@PostMapping("/keyProjectStatistics")
public PageResponse<KeyProjectStatisticsCO> keyProjectStatistics(@RequestBody KeyProjectStatisticsPageQry qry) {
return keyProjectService.keyProjectStatistics(qry);
}
@ApiOperation("相关方-重点作业情况统计")
@PostMapping("/xgfCorpStatistics")
public PageResponse<XgfCorpStatisticsCO> xgfCorpStatistics(@RequestBody XgfCorpStatisticsPageQry qry) {
return keyProjectService.xgfCorpStatistics(qry);
}
}

View File

@ -1,14 +1,23 @@
package com.zcloud.key.project.command;
import com.alibaba.cola.exception.BizException;
import com.zcloud.gbscommon.utils.Tools;
import com.zcloud.key.project.command.convertor.KeyProjectCameraCoConvertor;
import com.zcloud.key.project.domain.enums.KeyProjectApplyStatusEnum;
import com.zcloud.key.project.domain.gateway.KeyProjectCameraGateway;
import com.zcloud.key.project.domain.gateway.KeyProjectGateway;
import com.zcloud.key.project.domain.model.KeyProjectE;
import com.zcloud.key.project.dto.KeyProjectAddCmd;
import com.zcloud.key.project.dto.KeyProjectCameraAddCmd;
import com.zcloud.key.project.persistence.dataobject.KeyProjectCameraDO;
import com.zcloud.key.project.persistence.repository.KeyProjectCameraRepository;
import lombok.AllArgsConstructor;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
/**
* web-app
@ -20,6 +29,9 @@ import org.springframework.transaction.annotation.Transactional;
@AllArgsConstructor
public class KeyProjectAddExe {
private final KeyProjectGateway keyProjectGateway;
private final KeyProjectCameraRepository keyProjectCameraRepository;
private final KeyProjectCameraCoConvertor keyProjectCameraCoConvertor;
@Transactional(rollbackFor = Exception.class)
public boolean execute(KeyProjectAddCmd cmd) {
@ -34,6 +46,16 @@ public class KeyProjectAddExe {
if (!res) {
throw new BizException("保存失败");
}
if(cmd.getKeyProjectCameraAddCmdList()!=null) {
List<KeyProjectCameraAddCmd> keyProjectCameraAddCmdList = cmd.getKeyProjectCameraAddCmdList();
List<KeyProjectCameraDO> keyProjectCameraDOList = keyProjectCameraCoConvertor.converCmdsToDOs(keyProjectCameraAddCmdList);
keyProjectCameraDOList.forEach(keyProjectCameraAddCmd -> {
keyProjectCameraAddCmd.setKeyProjectId(keyProjectE.getKeyProjectId());
keyProjectCameraAddCmd.setKeyProjectCameraId(Tools.get32UUID());
});
keyProjectCameraRepository.saveBatch(keyProjectCameraDOList);
}
return true;
}
}

View File

@ -1,7 +1,10 @@
package com.zcloud.key.project.command;
import com.alibaba.cola.exception.BizException;
import com.zcloud.key.project.domain.enums.KeyProjectApplyStatusEnum;
import com.zcloud.key.project.domain.gateway.KeyProjectGateway;
import com.zcloud.key.project.persistence.dataobject.KeyProjectDO;
import com.zcloud.key.project.persistence.repository.KeyProjectRepository;
import lombok.AllArgsConstructor;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
@ -17,9 +20,17 @@ import org.springframework.transaction.annotation.Transactional;
@AllArgsConstructor
public class KeyProjectRemoveExe {
private final KeyProjectGateway keyProjectGateway;
private final KeyProjectRepository keyProjectRepository;
@Transactional(rollbackFor = Exception.class)
public boolean execute(Long id) {
KeyProjectDO byId = keyProjectRepository.getById(id);
if (byId == null) {
throw new BizException("数据不存在");
}
if(!KeyProjectApplyStatusEnum.NOT_STARTED.getCode().equals(byId.getApplyStatus()) || !KeyProjectApplyStatusEnum.TEMPORARY_SAVE.getCode().equals(byId.getApplyStatus())){
throw new BizException("该状态项目不允许删除");
}
boolean res = keyProjectGateway.deletedKeyProjectById(id);
if (!res) {
throw new BizException("删除失败");

View File

@ -1,14 +1,27 @@
package com.zcloud.key.project.command;
import com.alibaba.cola.exception.BizException;
import com.zcloud.gbscommon.utils.Tools;
import com.zcloud.key.project.command.convertor.KeyProjectCameraCoConvertor;
import com.zcloud.key.project.domain.enums.KeyProjectApplyStatusEnum;
import com.zcloud.key.project.domain.gateway.KeyProjectGateway;
import com.zcloud.key.project.domain.model.KeyProjectE;
import com.zcloud.key.project.dto.KeyProjectCameraAddCmd;
import com.zcloud.key.project.dto.KeyProjectUpdateCmd;
import com.zcloud.key.project.dto.KeyProjectUpdateStatusCmd;
import com.zcloud.key.project.persistence.dataobject.KeyProjectCameraDO;
import com.zcloud.key.project.persistence.dataobject.KeyProjectDO;
import com.zcloud.key.project.persistence.repository.KeyProjectCameraRepository;
import com.zcloud.key.project.persistence.repository.KeyProjectRepository;
import lombok.AllArgsConstructor;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
import java.time.LocalDateTime;
import java.util.Arrays;
import java.util.List;
/**
* web-app
@ -20,15 +33,74 @@ import org.springframework.transaction.annotation.Transactional;
@AllArgsConstructor
public class KeyProjectUpdateExe {
private final KeyProjectGateway keyProjectGateway;
private final KeyProjectRepository keyProjectRepository;
private final KeyProjectCameraCoConvertor keyProjectCameraCoConvertor;
private final KeyProjectCameraRepository keyProjectCameraRepository;
@Transactional(rollbackFor = Exception.class)
public void execute(KeyProjectUpdateCmd keyProjectUpdateCmd) {
KeyProjectDO byId = keyProjectRepository.getById(keyProjectUpdateCmd.getId());
if (byId == null) {
throw new BizException("数据不存在");
}
if (!Arrays.asList(
KeyProjectApplyStatusEnum.NOT_STARTED.getCode(),
KeyProjectApplyStatusEnum.TEMPORARY_SAVE.getCode()
).contains(byId.getApplyStatus())) {
throw new BizException("该状态项目不允许修改");
}
KeyProjectE keyProjectE = new KeyProjectE();
BeanUtils.copyProperties(keyProjectUpdateCmd, keyProjectE);
boolean res = keyProjectGateway.update(keyProjectE);
if (!res) {
throw new BizException("修改失败");
}
keyProjectCameraRepository.deleteByKeyProjectId(keyProjectE.getKeyProjectId());
if(keyProjectUpdateCmd.getKeyProjectCameraAddCmdList()!=null){
List<KeyProjectCameraAddCmd> keyProjectCameraAddCmdList = keyProjectUpdateCmd.getKeyProjectCameraAddCmdList();
List<KeyProjectCameraDO> keyProjectCameraDOList =keyProjectCameraCoConvertor.converCmdsToDOs(keyProjectCameraAddCmdList);
keyProjectCameraDOList.forEach(keyProjectCameraAddCmd -> {
keyProjectCameraAddCmd.setKeyProjectId(keyProjectE.getKeyProjectId());
keyProjectCameraAddCmd.setKeyProjectCameraId(Tools.get32UUID());
});
keyProjectCameraRepository.saveBatch(keyProjectCameraDOList);
}
}
public void editStatus(KeyProjectUpdateStatusCmd keyProjectUpdateStatusCmd) {
KeyProjectDO byId = keyProjectRepository.getById(keyProjectUpdateStatusCmd.getId());
if (byId == null) {
throw new BizException("数据不存在");
}
KeyProjectE keyProjectE = new KeyProjectE();
BeanUtils.copyProperties(keyProjectUpdateStatusCmd, keyProjectE);
if(KeyProjectApplyStatusEnum.START_APPLY.getCode().equals(keyProjectUpdateStatusCmd.getApplyStatus())){
keyProjectE.setApplyDateTime(LocalDateTime.now());
}
if(KeyProjectApplyStatusEnum.IN_PROGRESS.getCode().equals(keyProjectUpdateStatusCmd.getApplyStatus())){
keyProjectE.setApplyConfirmDateTime(LocalDateTime.now());
}
if(KeyProjectApplyStatusEnum.FINISH_APPLY.getCode().equals(keyProjectUpdateStatusCmd.getApplyStatus())){
keyProjectE.setCompletedDateTime(LocalDateTime.now());
}
if(KeyProjectApplyStatusEnum.FINISHED.getCode().equals(keyProjectUpdateStatusCmd.getApplyStatus())){
keyProjectE.setCompletedConfirmDateTime(LocalDateTime.now());
}
boolean res = keyProjectGateway.update(keyProjectE);
if (!res) {
throw new BizException("修改失败");
}
if(keyProjectUpdateStatusCmd.getKeyProjectCameraAddCmdList()!=null){
keyProjectCameraRepository.deleteByKeyProjectId(byId.getKeyProjectId());
List<KeyProjectCameraAddCmd> keyProjectCameraAddCmdList = keyProjectUpdateStatusCmd.getKeyProjectCameraAddCmdList();
List<KeyProjectCameraDO> keyProjectCameraDOList =keyProjectCameraCoConvertor.converCmdsToDOs(keyProjectCameraAddCmdList);
keyProjectCameraDOList.forEach(keyProjectCameraAddCmd -> {
keyProjectCameraAddCmd.setKeyProjectId(byId.getKeyProjectId());
keyProjectCameraAddCmd.setKeyProjectCameraId(Tools.get32UUID());
});
keyProjectCameraRepository.saveBatch(keyProjectCameraDOList);
}
}
}

View File

@ -1,6 +1,9 @@
package com.zcloud.key.project.command.convertor;
import com.zcloud.key.project.dto.KeyProjectCameraAddCmd;
import com.zcloud.key.project.dto.clientobject.CameraInfoCO;
import com.zcloud.key.project.dto.clientobject.KeyProjectCameraCO;
import com.zcloud.key.project.persistence.dataobject.CameraInfoDO;
import com.zcloud.key.project.persistence.dataobject.KeyProjectCameraDO;
import org.mapstruct.Mapper;
@ -20,5 +23,9 @@ public interface KeyProjectCameraCoConvertor {
* @return
*/
List<KeyProjectCameraCO> converDOsToCOs(List<KeyProjectCameraDO> keyProjectCameraDOs);
List<KeyProjectCameraDO> converCmdsToDOs(List<KeyProjectCameraAddCmd> keyProjectCameraAddCmdList);
List<CameraInfoCO> converCameraDOsToCOs(List<CameraInfoDO> data);
}

View File

@ -1,10 +1,22 @@
package com.zcloud.key.project.command.convertor;
import com.zcloud.key.project.dto.clientobject.CorpStatisticsCO;
import com.zcloud.key.project.dto.clientobject.KeyProjectCO;
import com.zcloud.key.project.dto.clientobject.KeyProjectStatisticsCO;
import com.zcloud.key.project.dto.clientobject.XgfCorpStatisticsCO;
import com.zcloud.key.project.persistence.dataobject.CorpStatisticsDO;
import com.zcloud.key.project.persistence.dataobject.KeyProjectDO;
import com.zcloud.key.project.persistence.dataobject.KeyProjectStatisticsDO;
import com.zcloud.key.project.persistence.dataobject.XgfCorpStatisticsDO;
import org.apache.commons.lang.StringUtils;
import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
import org.mapstruct.Named;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.stream.Collectors;
/**
@ -20,5 +32,40 @@ public interface KeyProjectCoConvertor {
* @return
*/
List<KeyProjectCO> converDOsToCOs(List<KeyProjectDO> keyProjectDOs);
KeyProjectCO converDOToCO(KeyProjectDO keyProjectDO);
@Mapping(source = "fixedCameraIdList", target = "fixedCameraIdList", qualifiedByName = "stringToList")
@Mapping(source = "mobileCameraIdList", target = "mobileCameraIdList", qualifiedByName = "stringToList")
CorpStatisticsCO toCorpStatisticsCO(CorpStatisticsDO data);
List<CorpStatisticsCO> converStatisticsDOsToCOs(List<CorpStatisticsDO> data);
@Mapping(source = "fixedCameraIdList", target = "fixedCameraIdList", qualifiedByName = "stringToList")
@Mapping(source = "mobileCameraIdList", target = "mobileCameraIdList", qualifiedByName = "stringToList")
KeyProjectStatisticsCO toProjectCO(KeyProjectStatisticsDO data);
List<KeyProjectStatisticsCO> converProjectStatisticsDOsToCOs(List<KeyProjectStatisticsDO> data);
@Mapping(source = "fixedCameraIdList", target = "fixedCameraIdList", qualifiedByName = "stringToList")
@Mapping(source = "mobileCameraIdList", target = "mobileCameraIdList", qualifiedByName = "stringToList")
XgfCorpStatisticsCO toXgfProjectCO(XgfCorpStatisticsDO data);
List<XgfCorpStatisticsCO> converXgfCorpStatisticsDOsToCOs(List<XgfCorpStatisticsDO> data);
@Named("stringToList")
default List<String> stringToList(String str) {
if (StringUtils.isEmpty(str)) {
return Collections.emptyList();
}
return Arrays.stream(str.split(","))
.map(String::trim)
.filter(s -> !s.isEmpty())
.collect(Collectors.toList());
}
}

View File

@ -1,10 +1,16 @@
package com.zcloud.key.project.command.query;
import com.alibaba.cola.dto.PageResponse;
import com.jjb.saas.framework.auth.utils.AuthContext;
import com.zcloud.gbscommon.utils.PageQueryHelper;
import com.zcloud.key.project.command.convertor.KeyProjectCameraCoConvertor;
import com.zcloud.key.project.domain.enums.KeyProjectCameraTypeEnum;
import com.zcloud.key.project.dto.CameraListCmd;
import com.zcloud.key.project.dto.KeyProjectCameraPageQry;
import com.zcloud.key.project.dto.clientobject.CameraInfoCO;
import com.zcloud.key.project.dto.clientobject.KeyProjectCO;
import com.zcloud.key.project.dto.clientobject.KeyProjectCameraCO;
import com.zcloud.key.project.persistence.dataobject.CameraInfoDO;
import com.zcloud.key.project.persistence.dataobject.KeyProjectCameraDO;
import com.zcloud.key.project.persistence.repository.KeyProjectCameraRepository;
import lombok.AllArgsConstructor;
@ -38,5 +44,28 @@ public class KeyProjectCameraQueryExe {
List<KeyProjectCameraCO> examCenterCOS = keyProjectCameraCoConvertor.converDOsToCOs(pageResponse.getData());
return PageResponse.of(examCenterCOS, pageResponse.getTotalCount(), pageResponse.getPageSize(), pageResponse.getPageIndex());
}
public List<KeyProjectCameraCO> listAll(KeyProjectCameraPageQry qry) {
List<KeyProjectCameraDO> keyProjectCameraDOList =keyProjectCameraRepository.getCameraListByProjectId(qry.getKeyProjectId());
return keyProjectCameraCoConvertor.converDOsToCOs(keyProjectCameraDOList);
}
public PageResponse<CameraInfoCO> listCameraAll(CameraListCmd cameraListCmd) {
Map<String, Object> params = PageQueryHelper.toHashMap(cameraListCmd);
params.put("corpinfoId", AuthContext.getTenantId());
PageResponse<CameraInfoDO> pageResponse = new PageResponse<>();
if(KeyProjectCameraTypeEnum.FIXED_CAMERA.getCode().equals(cameraListCmd.getCameraType())){
pageResponse = keyProjectCameraRepository.listFixedCameraAll(params);
}
if(KeyProjectCameraTypeEnum.MOBILE_CAMERA.getCode().equals(cameraListCmd.getCameraType())){
pageResponse = keyProjectCameraRepository.listMobileCameraAll(params);
}
List<CameraInfoCO> examCenterCOS = keyProjectCameraCoConvertor.converCameraDOsToCOs(pageResponse.getData());
return PageResponse.of(examCenterCOS, pageResponse.getTotalCount(), pageResponse.getPageSize(), pageResponse.getPageIndex());
}
}

View File

@ -1,17 +1,30 @@
package com.zcloud.key.project.command.query;
import cn.hutool.core.collection.CollUtil;
import com.alibaba.cola.dto.PageResponse;
import com.jjb.saas.framework.auth.utils.AuthContext;
import com.zcloud.gbscommon.utils.PageQueryHelper;
import com.zcloud.key.project.command.convertor.KeyProjectCameraCoConvertor;
import com.zcloud.key.project.command.convertor.KeyProjectCoConvertor;
import com.zcloud.key.project.domain.enums.KeyProjectCameraTypeEnum;
import com.zcloud.key.project.dto.CorpStatisticsPageQry;
import com.zcloud.key.project.dto.KeyProjectPageQry;
import com.zcloud.key.project.dto.XgfCorpStatisticsPageQry;
import com.zcloud.key.project.dto.clientobject.CorpStatisticsCO;
import com.zcloud.key.project.dto.clientobject.KeyProjectCO;
import com.zcloud.key.project.persistence.dataobject.KeyProjectDO;
import com.zcloud.key.project.dto.clientobject.KeyProjectStatisticsCO;
import com.zcloud.key.project.dto.KeyProjectStatisticsPageQry;
import com.zcloud.key.project.dto.clientobject.XgfCorpStatisticsCO;
import com.zcloud.key.project.persistence.dataobject.*;
import com.zcloud.key.project.persistence.repository.CorpInfoRepository;
import com.zcloud.key.project.persistence.repository.KeyProjectCameraRepository;
import com.zcloud.key.project.persistence.repository.KeyProjectRepository;
import lombok.AllArgsConstructor;
import org.springframework.stereotype.Component;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
@ -25,6 +38,9 @@ import java.util.Map;
public class KeyProjectQueryExe {
private final KeyProjectRepository keyProjectRepository;
private final KeyProjectCoConvertor keyProjectCoConvertor;
private final KeyProjectCameraRepository keyProjectCameraRepository;
private final KeyProjectCameraCoConvertor keyProjectCameraCoConvertor;
private final CorpInfoRepository corpInfoRepository;
/**
*
@ -36,7 +52,138 @@ public class KeyProjectQueryExe {
Map<String, Object> params = PageQueryHelper.toHashMap(keyProjectPageQry);
PageResponse<KeyProjectDO> pageResponse = keyProjectRepository.listPage(params);
List<KeyProjectCO> examCenterCOS = keyProjectCoConvertor.converDOsToCOs(pageResponse.getData());
if(CollUtil.isEmpty(examCenterCOS)){
return PageResponse.of(examCenterCOS, pageResponse.getTotalCount(), pageResponse.getPageSize(), pageResponse.getPageIndex());
}
//获取所有keyProjectId
List<String> keyProjectIdList = examCenterCOS.stream().map(KeyProjectCO::getKeyProjectId).collect(Collectors.toList());
List<KeyProjectCameraDO> keyProjectCameraDOList =keyProjectCameraRepository.getCameraList(keyProjectIdList);
//按照keyProjectId进行分组
Map<String, List<KeyProjectCameraDO>> keyProjectIdCameraMap = keyProjectCameraDOList.stream().collect(Collectors.groupingBy(KeyProjectCameraDO::getKeyProjectId));
examCenterCOS.forEach(examCenterCO -> {
List<KeyProjectCameraDO> keyProjectCameraDOList1 = keyProjectIdCameraMap.get(examCenterCO.getKeyProjectId());
if(CollUtil.isNotEmpty(keyProjectCameraDOList1)){
//keyProjectCameraDOList1 区分固定摄像头和移动摄像头id
examCenterCO.setFixedCameraidList(keyProjectCameraDOList1.stream().filter(keyProjectCameraDO -> KeyProjectCameraTypeEnum.FIXED_CAMERA.getCode().equals(keyProjectCameraDO.getCameraType())).map(KeyProjectCameraDO::getCameraId).collect(Collectors.toList()));
examCenterCO.setMobileCameraIdList(keyProjectCameraDOList1.stream().filter(keyProjectCameraDO -> KeyProjectCameraTypeEnum.MOBILE_CAMERA.getCode().equals(keyProjectCameraDO.getCameraType())).map(KeyProjectCameraDO::getCameraId).collect(Collectors.toList()));
}
});
return PageResponse.of(examCenterCOS, pageResponse.getTotalCount(), pageResponse.getPageSize(), pageResponse.getPageIndex());
}
public PageResponse<KeyProjectCO> pageConfirm(KeyProjectPageQry keyProjectPageQry) {
//如果是相关方
Boolean checkCorp = corpInfoRepository.checkCorp();
if(corpInfoRepository.isXgf()){
//
if(checkCorp){
keyProjectPageQry.setXgfCorpinfoId(AuthContext.getTenantId());
}else{
keyProjectPageQry.setXgfMasterUserId(AuthContext.getUserId());
}
}else{
if(checkCorp){
keyProjectPageQry.setJurisdictionCorpinfoId(AuthContext.getTenantId());
}else{
keyProjectPageQry.setJurisdictionUserId(AuthContext.getUserId());
}
}
Map<String, Object> params = PageQueryHelper.toHashMap(keyProjectPageQry);
PageResponse<KeyProjectDO> pageResponse = keyProjectRepository.pageConfirm(params);
List<KeyProjectCO> examCenterCOS = keyProjectCoConvertor.converDOsToCOs(pageResponse.getData());
if(CollUtil.isEmpty(examCenterCOS)){
return PageResponse.of(examCenterCOS, pageResponse.getTotalCount(), pageResponse.getPageSize(), pageResponse.getPageIndex());
}
//获取所有keyProjectId
List<String> keyProjectIdList = examCenterCOS.stream().map(KeyProjectCO::getKeyProjectId).collect(Collectors.toList());
List<KeyProjectCameraDO> keyProjectCameraDOList =keyProjectCameraRepository.getCameraList(keyProjectIdList);
//按照keyProjectId进行分组
Map<String, List<KeyProjectCameraDO>> keyProjectIdCameraMap = keyProjectCameraDOList.stream().collect(Collectors.groupingBy(KeyProjectCameraDO::getKeyProjectId));
examCenterCOS.forEach(examCenterCO -> {
List<KeyProjectCameraDO> keyProjectCameraDOList1 = keyProjectIdCameraMap.get(examCenterCO.getKeyProjectId());
if(CollUtil.isNotEmpty(keyProjectCameraDOList1)){
//keyProjectCameraDOList1 区分固定摄像头和移动摄像头id
examCenterCO.setFixedCameraidList(keyProjectCameraDOList1.stream().filter(keyProjectCameraDO -> KeyProjectCameraTypeEnum.FIXED_CAMERA.getCode().equals(keyProjectCameraDO.getCameraType())).map(KeyProjectCameraDO::getCameraId).collect(Collectors.toList()));
examCenterCO.setMobileCameraIdList(keyProjectCameraDOList1.stream().filter(keyProjectCameraDO -> KeyProjectCameraTypeEnum.MOBILE_CAMERA.getCode().equals(keyProjectCameraDO.getCameraType())).map(KeyProjectCameraDO::getCameraId).collect(Collectors.toList()));
}
});
return PageResponse.of(examCenterCOS, pageResponse.getTotalCount(), pageResponse.getPageSize(), pageResponse.getPageIndex());
}
public KeyProjectCO getInfoById(Long id) {
KeyProjectDO keyProjectDO = keyProjectRepository.getInfoById(id);
if(keyProjectDO== null){
return null;
}
KeyProjectCO keyProjectCO = keyProjectCoConvertor.converDOToCO(keyProjectDO);
//查询摄像头
List<KeyProjectCameraDO> keyProjectCameraDOList =keyProjectCameraRepository.getCameraListByProjectId(keyProjectDO.getKeyProjectId());
keyProjectCO.setKeyProjectCameraList(keyProjectCameraCoConvertor.converDOsToCOs(keyProjectCameraDOList));
return keyProjectCO;
}
public PageResponse<CorpStatisticsCO> corpStatistics(CorpStatisticsPageQry qry) {
Map<String, Object> params = PageQueryHelper.toHashMap(qry);
PageResponse<CorpStatisticsDO> pageResponse = keyProjectRepository.corpStatistics(params);
List<CorpStatisticsCO> examCenterCOS = keyProjectCoConvertor.converStatisticsDOsToCOs(pageResponse.getData());
if(CollUtil.isEmpty(examCenterCOS)){
return PageResponse.of(examCenterCOS, pageResponse.getTotalCount(), pageResponse.getPageSize(), pageResponse.getPageIndex());
}
//TODO 补充检查次数,隐患数,在线数,摄像头数
return PageResponse.of(examCenterCOS, pageResponse.getTotalCount(), pageResponse.getPageSize(), pageResponse.getPageIndex());
}
public PageResponse<KeyProjectStatisticsCO> keyProjectStatistics(KeyProjectStatisticsPageQry qry) {
Map<String, Object> params = PageQueryHelper.toHashMap(qry);
params.put("jurisdictionCorpinfoId",AuthContext.getTenantId());
PageResponse<KeyProjectStatisticsDO> pageResponse = keyProjectRepository.keyProjectStatistics(params);
List<KeyProjectStatisticsCO> examCenterCOS = keyProjectCoConvertor.converProjectStatisticsDOsToCOs(pageResponse.getData());
if(CollUtil.isEmpty(examCenterCOS)){
return PageResponse.of(examCenterCOS, pageResponse.getTotalCount(), pageResponse.getPageSize(), pageResponse.getPageIndex());
}
//TODO 补充检查次数,隐患数,在线数,摄像头数
return PageResponse.of(examCenterCOS, pageResponse.getTotalCount(), pageResponse.getPageSize(), pageResponse.getPageIndex());
}
public PageResponse<XgfCorpStatisticsCO> xgfCorpStatistics(XgfCorpStatisticsPageQry qry) {
if(CollUtil.isEmpty(qry.getJurisdictionCorpinfoIdList())){
return PageResponse.of(null,0,0, 0);
}
Map<String, Object> params = PageQueryHelper.toHashMap(qry);
params.put("xgfCorpinfoId",AuthContext.getTenantId());
PageResponse<XgfCorpStatisticsDO> pageResponse = keyProjectRepository.xgfCorpStatistics(params);
List<XgfCorpStatisticsCO> examCenterCOS = keyProjectCoConvertor.converXgfCorpStatisticsDOsToCOs(pageResponse.getData());
if(CollUtil.isEmpty(examCenterCOS)){
return PageResponse.of(examCenterCOS, pageResponse.getTotalCount(), pageResponse.getPageSize(), pageResponse.getPageIndex());
}
//TODO 补充检查次数,隐患数,在线数,摄像头数
return PageResponse.of(examCenterCOS, pageResponse.getTotalCount(), pageResponse.getPageSize(), pageResponse.getPageIndex());
}
}

View File

@ -7,13 +7,20 @@ import com.zcloud.key.project.command.KeyProjectCameraAddExe;
import com.zcloud.key.project.command.KeyProjectCameraRemoveExe;
import com.zcloud.key.project.command.KeyProjectCameraUpdateExe;
import com.zcloud.key.project.command.query.KeyProjectCameraQueryExe;
import com.zcloud.key.project.dto.CameraListCmd;
import com.zcloud.key.project.dto.KeyProjectCameraAddCmd;
import com.zcloud.key.project.dto.KeyProjectCameraPageQry;
import com.zcloud.key.project.dto.KeyProjectCameraUpdateCmd;
import com.zcloud.key.project.dto.clientobject.CameraInfoCO;
import com.zcloud.key.project.dto.clientobject.KeyProjectCO;
import com.zcloud.key.project.dto.clientobject.KeyProjectCameraCO;
import lombok.AllArgsConstructor;
import org.springframework.stereotype.Service;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
/**
* web-app
*
@ -55,5 +62,15 @@ public class KeyProjectCameraServiceImpl implements KeyProjectCameraServiceI {
public void removeBatch(Long[] ids) {
keyProjectCameraRemoveExe.execute(ids);
}
@Override
public List<KeyProjectCameraCO> listAll(KeyProjectCameraPageQry qry) {
return keyProjectCameraQueryExe.listAll(qry);
}
@Override
public PageResponse<CameraInfoCO> listCameraAll(CameraListCmd cameraListCmd) {
return keyProjectCameraQueryExe.listCameraAll(cameraListCmd);
}
}

View File

@ -7,10 +7,12 @@ import com.zcloud.key.project.command.KeyProjectAddExe;
import com.zcloud.key.project.command.KeyProjectRemoveExe;
import com.zcloud.key.project.command.KeyProjectUpdateExe;
import com.zcloud.key.project.command.query.KeyProjectQueryExe;
import com.zcloud.key.project.dto.KeyProjectAddCmd;
import com.zcloud.key.project.dto.KeyProjectPageQry;
import com.zcloud.key.project.dto.KeyProjectUpdateCmd;
import com.zcloud.key.project.dto.*;
import com.zcloud.key.project.dto.clientobject.CorpStatisticsCO;
import com.zcloud.key.project.dto.clientobject.KeyProjectCO;
import com.zcloud.key.project.dto.clientobject.KeyProjectStatisticsCO;
import com.zcloud.key.project.dto.KeyProjectStatisticsPageQry;
import com.zcloud.key.project.dto.clientobject.XgfCorpStatisticsCO;
import lombok.AllArgsConstructor;
import org.springframework.stereotype.Service;
@ -34,6 +36,11 @@ public class KeyProjectServiceImpl implements KeyProjectServiceI {
return keyProjectQueryExe.execute(qry);
}
@Override
public PageResponse<KeyProjectCO> pageConfirm(KeyProjectPageQry qry) {
return keyProjectQueryExe.pageConfirm(qry);
}
@Override
public SingleResponse add(KeyProjectAddCmd cmd) {
@ -55,5 +62,30 @@ public class KeyProjectServiceImpl implements KeyProjectServiceI {
public void removeBatch(Long[] ids) {
keyProjectRemoveExe.execute(ids);
}
@Override
public KeyProjectCO getInfoById(Long id) {
return keyProjectQueryExe.getInfoById(id);
}
@Override
public void editStatus(KeyProjectUpdateStatusCmd keyProjectUpdateStatusCmd) {
keyProjectUpdateExe.editStatus(keyProjectUpdateStatusCmd);
}
@Override
public PageResponse<CorpStatisticsCO> corpStatistics(CorpStatisticsPageQry qry) {
return keyProjectQueryExe.corpStatistics(qry);
}
@Override
public PageResponse<KeyProjectStatisticsCO> keyProjectStatistics(KeyProjectStatisticsPageQry qry) {
return keyProjectQueryExe.keyProjectStatistics(qry);
}
@Override
public PageResponse<XgfCorpStatisticsCO> xgfCorpStatistics(XgfCorpStatisticsPageQry qry) {
return keyProjectQueryExe.xgfCorpStatistics(qry);
}
}

View File

@ -2,11 +2,17 @@ package com.zcloud.key.project.api;
import com.alibaba.cola.dto.PageResponse;
import com.alibaba.cola.dto.SingleResponse;
import com.zcloud.key.project.dto.CameraListCmd;
import com.zcloud.key.project.dto.KeyProjectCameraAddCmd;
import com.zcloud.key.project.dto.KeyProjectCameraPageQry;
import com.zcloud.key.project.dto.KeyProjectCameraUpdateCmd;
import com.zcloud.key.project.dto.clientobject.CameraInfoCO;
import com.zcloud.key.project.dto.clientobject.KeyProjectCO;
import com.zcloud.key.project.dto.clientobject.KeyProjectCameraCO;
import java.util.Collection;
import java.util.List;
/**
* web-client
*
@ -23,5 +29,9 @@ public interface KeyProjectCameraServiceI {
void remove(Long id);
void removeBatch(Long[] ids);
List<KeyProjectCameraCO> listAll(KeyProjectCameraPageQry qry);
PageResponse<CameraInfoCO> listCameraAll(CameraListCmd cameraListCmd);
}

View File

@ -2,10 +2,12 @@ package com.zcloud.key.project.api;
import com.alibaba.cola.dto.PageResponse;
import com.alibaba.cola.dto.SingleResponse;
import com.zcloud.key.project.dto.KeyProjectAddCmd;
import com.zcloud.key.project.dto.KeyProjectPageQry;
import com.zcloud.key.project.dto.KeyProjectUpdateCmd;
import com.zcloud.key.project.dto.*;
import com.zcloud.key.project.dto.clientobject.CorpStatisticsCO;
import com.zcloud.key.project.dto.clientobject.KeyProjectCO;
import com.zcloud.key.project.dto.clientobject.KeyProjectStatisticsCO;
import com.zcloud.key.project.dto.KeyProjectStatisticsPageQry;
import com.zcloud.key.project.dto.clientobject.XgfCorpStatisticsCO;
/**
* web-client
@ -23,5 +25,18 @@ public interface KeyProjectServiceI {
void remove(Long id);
void removeBatch(Long[] ids);
KeyProjectCO getInfoById(Long id);
void editStatus(KeyProjectUpdateStatusCmd keyProjectUpdateStatusCmd);
PageResponse<KeyProjectCO> pageConfirm(KeyProjectPageQry qry);
PageResponse<CorpStatisticsCO> corpStatistics(CorpStatisticsPageQry qry);
PageResponse<KeyProjectStatisticsCO> keyProjectStatistics(KeyProjectStatisticsPageQry qry);
PageResponse<XgfCorpStatisticsCO> xgfCorpStatistics(XgfCorpStatisticsPageQry qry);
}

View File

@ -1,15 +1,17 @@
package com.zcloud.key.project.dto;
import com.alibaba.cola.dto.Command;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.List;
/**
* web-client
@ -17,14 +19,10 @@ import java.time.LocalDateTime;
* @Author zhaokai
* @Date 2026-03-16 10:00:37
*/
@EqualsAndHashCode(callSuper = true)
@Data
@NoArgsConstructor
@AllArgsConstructor
public class KeyProjectAddCmd extends Command {
@ApiModelProperty(value = "企业id", name = "corpinfoId", required = true)
@NotNull(message = "企业id不能为空")
private Long corpinfoId;
public class KeyProjectAddCmd implements Serializable {
@ApiModelProperty(value = "辖区单位企业id", name = "jurisdictionCorpinfoId", required = true)
@NotNull(message = "辖区单位企业id不能为空")
@ -59,12 +57,14 @@ public class KeyProjectAddCmd extends Command {
private String projectTypeName;
@ApiModelProperty(value = "计划工期开始时间", name = "planWorkStartDate", required = true)
@NotEmpty(message = "计划工期开始时间不能为空")
private LocalDateTime planWorkStartDate;
@NotNull(message = "计划工期开始时间不能为空")
@JsonFormat(pattern = "yyyy-MM-dd")
private LocalDate planWorkStartDate;
@ApiModelProperty(value = "计划工期结束时间", name = "planWorkEndDate", required = true)
@NotEmpty(message = "计划工期结束时间不能为空")
private LocalDateTime planWorkEndDate;
@NotNull(message = "计划工期结束时间不能为空")
@JsonFormat(pattern = "yyyy-MM-dd")
private LocalDate planWorkEndDate;
@ApiModelProperty(value = "相关方企业id", name = "xgfCorpinfoId", required = true)
@NotNull(message = "相关方企业id不能为空")
@ -94,16 +94,8 @@ public class KeyProjectAddCmd extends Command {
@NotEmpty(message = "监理单位负责人手机号不能为空")
private String supervisionUnitUserPhone;
@ApiModelProperty(value = "申请时间", name = "applyDateTime", required = true)
@NotEmpty(message = "申请时间不能为空")
private LocalDateTime applyDateTime;
@ApiModelProperty(value = "确认时间", name = "confirmDateTime", required = true)
@NotEmpty(message = "确认时间不能为空")
private LocalDateTime confirmDateTime;
@ApiModelProperty(value = "状态,1:未开工,2:开工申请中,3:已超期,4:进行中,5:完工申请中,6:已完工", name = "applyStatus", required = true)
@NotNull(message = "状态,1:未开工,2:开工申请中,3:已超期,4:进行中,5:完工申请中,6:已完工不能为空")
@ApiModelProperty(value = "状态,0:暂存。1:未开工,2:开工申请中,3:已超期,4:进行中,5:完工申请中,6:已完工", name = "applyStatus")
private Integer applyStatus;
@ApiModelProperty(value = "经度", name = "longitude", required = true)
@ -114,5 +106,8 @@ public class KeyProjectAddCmd extends Command {
@NotEmpty(message = "纬度不能为空")
private String latitude;
@ApiModelProperty(value = "重点作业摄像头信息", name = "keyProjectCameraAddCmdList")
private List<KeyProjectCameraAddCmd> keyProjectCameraAddCmdList;
}

View File

@ -9,6 +9,7 @@ import lombok.NoArgsConstructor;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
/**
* web-client
@ -16,13 +17,11 @@ import javax.validation.constraints.NotNull;
* @Author zhaokai
* @Date 2026-03-16 10:00:55
*/
@EqualsAndHashCode(callSuper = true)
@Data
@NoArgsConstructor
@AllArgsConstructor
public class KeyProjectCameraAddCmd extends Command {
@ApiModelProperty(value = "重点作业id", name = "keyProjectId", required = true)
@NotEmpty(message = "重点作业id不能为空")
public class KeyProjectCameraAddCmd implements Serializable {
@ApiModelProperty(value = "重点作业id", name = "keyProjectId")
private String keyProjectId;
@ApiModelProperty(value = "摄像头id", name = "cameraId", required = true)

View File

@ -1,8 +1,11 @@
package com.zcloud.key.project.dto;
import com.alibaba.cola.dto.PageQuery;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotEmpty;
/**
* web-client
@ -23,6 +26,9 @@ public class KeyProjectCameraPageQry extends PageQuery {
* - `le`:
* - `ne`: SQL!=
*/
private String likeKeyProjectCameraId;
@ApiModelProperty(value = "重点作业id", name = "keyProjectId")
@NotEmpty(message = "重点作业不能为空")
private String keyProjectId;
}

View File

@ -1,8 +1,15 @@
package com.zcloud.key.project.dto;
import com.alibaba.cola.dto.PageQuery;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotEmpty;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.List;
/**
* web-client
@ -23,6 +30,49 @@ public class KeyProjectPageQry extends PageQuery {
* - `le`:
* - `ne`: SQL!=
*/
private String likeKeyProjectId;
@ApiModelProperty(value = "重点作业名称")
private String projectName;
@ApiModelProperty(value = "相关方单位id")
private Long xgfCorpinfoId;
@ApiModelProperty(value = "相关方单位名称")
private Long xgfCorpinfoName;
@ApiModelProperty(value = "主管部门id")
private Long masterDepartmentId;
@ApiModelProperty(value = "状态,0:暂存。1:未开工,2:开工申请中,3:已超期,4:进行中,5:完工申请中,6:已完工")
private Integer applyStatus;
@ApiModelProperty(value = "状态,0:暂存。1:未开工,2:开工申请中,3:已超期,4:进行中,5:完工申请中,6:已完工")
private List<Integer> applyStatusList;
@ApiModelProperty(value = "计划工期开始时间", name = "planWorkStartDate", required = true)
@NotEmpty(message = "计划工期开始时间不能为空")
@JsonFormat(pattern = "yyyy-MM-dd")
private LocalDate planWorkStartDate;
//计划工期结束时间
@ApiModelProperty(value = "计划工期结束时间")
@JsonFormat(pattern = "yyyy-MM-dd")
private LocalDate planWorkEndDate;
@ApiModelProperty(value = "创建单位id")
private Integer corpinfoId;
@ApiModelProperty(value = "创建单位名称")
private String corpinfName;
@ApiModelProperty(value = "project_type")
private Long projectType;
//辖区单位企业id
@ApiModelProperty(value = "辖区单位企业id")
private Long jurisdictionCorpinfoId;
//辖区项目负责人id
@ApiModelProperty(value = "辖区项目负责人id")
private Long jurisdictionUserId;
//相关方单位负责人id
@ApiModelProperty(value = "相关方单位负责人id")
private Long xgfMasterUserId;
}

View File

@ -1,15 +1,17 @@
package com.zcloud.key.project.dto;
import com.alibaba.cola.dto.Command;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.List;
/**
* web-client
@ -17,85 +19,96 @@ import java.time.LocalDateTime;
* @Author zhaokai
* @Date 2026-03-16 10:00:38
*/
@EqualsAndHashCode(callSuper = true)
@Data
@NoArgsConstructor
@AllArgsConstructor
public class KeyProjectUpdateCmd extends Command {
public class KeyProjectUpdateCmd implements Serializable {
@ApiModelProperty(value = "主键", name = "id", required = true)
@NotNull(message = "主键不能为空")
private Long id;
@ApiModelProperty(value = "业务主键id", name = "keyProjectId", required = true)
@NotEmpty(message = "业务主键id不能为空")
private String keyProjectId;
@ApiModelProperty(value = "企业id", name = "corpinfoId", required = true)
@NotNull(message = "企业id不能为空")
private Long corpinfoId;
@ApiModelProperty(value = "辖区单位企业id", name = "jurisdictionCorpinfoId", required = true)
@NotNull(message = "辖区单位企业id不能为空")
private Long jurisdictionCorpinfoId;
@ApiModelProperty(value = "辖区单位部门id", name = "jurisdictionDepartmentId", required = true)
@NotNull(message = "辖区单位部门id不能为空")
private Long jurisdictionDepartmentId;
@ApiModelProperty(value = "辖区项目负责人id", name = "jurisdictionUserId", required = true)
@NotNull(message = "辖区项目负责人id不能为空")
private Long jurisdictionUserId;
@ApiModelProperty(value = "主管部门id", name = "masterDepartmentId", required = true)
@NotNull(message = "主管部门id不能为空")
private Long masterDepartmentId;
@ApiModelProperty(value = "是否已有项目内作业,1:是,0:否", name = "projectWorkFlag", required = true)
@NotNull(message = "是否已有项目内作业,1:是,0:否不能为空")
private Integer projectWorkFlag;
@ApiModelProperty(value = "重点作业名称", name = "projectName", required = true)
@NotEmpty(message = "重点作业名称不能为空")
private String projectName;
@ApiModelProperty(value = "涉及重点作业属性类型", name = "projectType", required = true)
@NotEmpty(message = "涉及重点作业属性类型不能为空")
private String projectType;
@ApiModelProperty(value = "涉及重点作业属性类型名称", name = "projectTypeName", required = true)
@NotEmpty(message = "涉及重点作业属性类型名称不能为空")
private String projectTypeName;
@ApiModelProperty(value = "计划工期开始时间", name = "planWorkStartDate", required = true)
@NotEmpty(message = "计划工期开始时间不能为空")
private LocalDateTime planWorkStartDate;
@NotNull(message = "计划工期开始时间不能为空")
@JsonFormat(pattern = "yyyy-MM-dd")
private LocalDate planWorkStartDate;
@ApiModelProperty(value = "计划工期结束时间", name = "planWorkEndDate", required = true)
@NotEmpty(message = "计划工期结束时间不能为空")
private LocalDateTime planWorkEndDate;
@NotNull(message = "计划工期结束时间不能为空")
@JsonFormat(pattern = "yyyy-MM-dd")
private LocalDate planWorkEndDate;
@ApiModelProperty(value = "相关方企业id", name = "xgfCorpinfoId", required = true)
@NotNull(message = "相关方企业id不能为空")
private Long xgfCorpinfoId;
@ApiModelProperty(value = "相关方单位负责人id", name = "xgfMasterUserId", required = true)
@NotNull(message = "相关方单位负责人id不能为空")
private Long xgfMasterUserId;
@ApiModelProperty(value = "相关方单位负责人手机号", name = "xgfMasterPhone", required = true)
@NotEmpty(message = "相关方单位负责人手机号不能为空")
private String xgfMasterPhone;
@ApiModelProperty(value = "是否设置监理单位,1:是,0:否", name = "supervisionUnitFlag", required = true)
@NotNull(message = "是否设置监理单位,1:是,0:否不能为空")
private Integer supervisionUnitFlag;
@ApiModelProperty(value = "监理单位名称", name = "supervisionUnitCorpName", required = true)
@NotEmpty(message = "监理单位名称不能为空")
private String supervisionUnitCorpName;
@ApiModelProperty(value = "监理单位负责人名称", name = "supervisionUnitUserName", required = true)
@NotEmpty(message = "监理单位负责人名称不能为空")
private String supervisionUnitUserName;
@ApiModelProperty(value = "监理单位负责人手机号", name = "supervisionUnitUserPhone", required = true)
@NotEmpty(message = "监理单位负责人手机号不能为空")
private String supervisionUnitUserPhone;
@ApiModelProperty(value = "申请时间", name = "applyDateTime", required = true)
@NotEmpty(message = "申请时间不能为空")
private LocalDateTime applyDateTime;
@ApiModelProperty(value = "确认时间", name = "confirmDateTime", required = true)
@NotEmpty(message = "确认时间不能为空")
private LocalDateTime confirmDateTime;
@ApiModelProperty(value = "状态,1:未开工,2:开工申请中,3:已超期,4:进行中,5:完工申请中,6:已完工", name = "applyStatus", required = true)
@NotNull(message = "状态,1:未开工,2:开工申请中,3:已超期,4:进行中,5:完工申请中,6:已完工不能为空")
@ApiModelProperty(value = "状态,0:暂存。1:未开工,2:开工申请中,3:已超期,4:进行中,5:完工申请中,6:已完工", name = "applyStatus")
private Integer applyStatus;
@ApiModelProperty(value = "经度", name = "longitude", required = true)
@NotEmpty(message = "经度不能为空")
private String longitude;
@ApiModelProperty(value = "纬度", name = "latitude", required = true)
@NotEmpty(message = "纬度不能为空")
private String latitude;
@ApiModelProperty(value = "重点作业摄像头信息", name = "keyProjectCameraAddCmdList")
private List<KeyProjectCameraAddCmd> keyProjectCameraAddCmdList;
}

View File

@ -1,10 +1,14 @@
package com.zcloud.key.project.dto.clientobject;
import com.alibaba.cola.dto.ClientObject;
import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.List;
/**
@ -50,10 +54,12 @@ public class KeyProjectCO extends ClientObject {
private String projectTypeName;
//计划工期开始时间
@ApiModelProperty(value = "计划工期开始时间")
private LocalDateTime planWorkStartDate;
@JsonFormat(pattern = "yyyy-MM-dd")
private LocalDate planWorkStartDate;
//计划工期结束时间
@ApiModelProperty(value = "计划工期结束时间")
private LocalDateTime planWorkEndDate;
@JsonFormat(pattern = "yyyy-MM-dd")
private LocalDate planWorkEndDate;
//相关方企业id
@ApiModelProperty(value = "相关方企业id")
private Long xgfCorpinfoId;
@ -77,12 +83,24 @@ public class KeyProjectCO extends ClientObject {
private String supervisionUnitUserPhone;
//申请时间
@ApiModelProperty(value = "申请时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime applyDateTime;
//确认时间
@ApiModelProperty(value = "确认时间")
private LocalDateTime confirmDateTime;
//状态,1:未开工,2:开工申请中,3:已超期,4:进行中,5:完工申请中,6:已完工
@ApiModelProperty(value = "状态,1:未开工,2:开工申请中,3:已超期,4:进行中,5:完工申请中,6:已完工")
//申请确认时间
@ApiModelProperty(value = "申请确认时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime applyConfirmDateTime;
//完工时间
@ApiModelProperty(value = "完工时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime completedDateTime;
//完工确认时间
@ApiModelProperty(value = "完工确认时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime completedConfirmDateTime;
//状态,0:暂存。1:未开工,2:开工申请中,3:已超期,4:进行中,5:完工申请中,6:已完工
@ApiModelProperty(value = "状态,0:暂存。1:未开工,2:开工申请中,3:已超期,4:进行中,5:完工申请中,6:已完工")
private Integer applyStatus;
//经度
@ApiModelProperty(value = "经度")
@ -90,41 +108,52 @@ public class KeyProjectCO extends ClientObject {
//纬度
@ApiModelProperty(value = "纬度")
private String latitude;
//乐观锁
@ApiModelProperty(value = "乐观锁")
private Integer version;
//创建人
@ApiModelProperty(value = "创建人")
private Long createId;
//创建人姓名
@ApiModelProperty(value = "创建人姓名")
private String createName;
@ApiModelProperty(value = "辖区单位企业名称")
@TableField(exist = false)
private String jurisdictionCorpinfoName;
@ApiModelProperty(value = "辖区单位部门名称")
@TableField(exist = false)
private String jurisdictionDepartmentName;
@ApiModelProperty(value = "辖区项目负责人名称")
@TableField(exist = false)
private String jurisdictionUserName;
@ApiModelProperty(value = "主管部门名称")
@TableField(exist = false)
private String masterDepartmentName;
@ApiModelProperty(value = "相关方企业名称")
@TableField(exist = false)
private String xgfCorpinfoName;
@ApiModelProperty(value = "相关方单位负责人名称")
@TableField(exist = false)
private String xgfUserName;
@ApiModelProperty(value = "摄像头信息列表")
private List<KeyProjectCameraCO> keyProjectCameraList;
//创建时间
@ApiModelProperty(value = "创建时间")
private LocalDateTime createTime;
//更新人
@ApiModelProperty(value = "更新人")
private Long updateId;
//修改人名称
@ApiModelProperty(value = "修改人名称")
private String updateName;
//更新时间
@ApiModelProperty(value = "更新时间")
private LocalDateTime updateTime;
//描述
@ApiModelProperty(value = "描述")
private String remarks;
//是否删除
@ApiModelProperty(value = "是否删除")
private String deleteEnum;
//租户id
@ApiModelProperty(value = "租户id")
private Long tenantId;
//机构id
@ApiModelProperty(value = "机构id")
private Long orgId;
//环境
@ApiModelProperty(value = "环境")
private String env;
@ApiModelProperty(value = "固定摄像头idList")
private List<String> fixedCameraidList;
@ApiModelProperty(value = "移动摄像头idList")
private List<String> mobileCameraIdList;
}

View File

@ -1,9 +1,11 @@
package com.zcloud.key.project.dto.clientobject;
import com.alibaba.cola.dto.ClientObject;
import com.baomidou.mybatisplus.annotation.TableField;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.time.LocalDateTime;
@ -14,7 +16,7 @@ import java.time.LocalDateTime;
* @Date 2026-03-16 10:00:55
*/
@Data
public class KeyProjectCameraCO extends ClientObject {
public class KeyProjectCameraCO implements Serializable {
//主键
@ApiModelProperty(value = "主键")
private Long id;
@ -30,41 +32,8 @@ public class KeyProjectCameraCO extends ClientObject {
//摄像头类型,1:固定摄像头,2:移动摄像头
@ApiModelProperty(value = "摄像头类型,1:固定摄像头,2:移动摄像头")
private Integer cameraType;
//乐观锁
@ApiModelProperty(value = "乐观锁")
private Integer version;
//创建人
@ApiModelProperty(value = "创建人")
private Long createId;
//创建人姓名
@ApiModelProperty(value = "创建人姓名")
private String createName;
//创建时间
@ApiModelProperty(value = "创建时间")
private LocalDateTime createTime;
//更新人
@ApiModelProperty(value = "更新人")
private Long updateId;
//修改人名称
@ApiModelProperty(value = "修改人名称")
private String updateName;
//更新时间
@ApiModelProperty(value = "更新时间")
private LocalDateTime updateTime;
//描述
@ApiModelProperty(value = "描述")
private String remarks;
//是否删除
@ApiModelProperty(value = "是否删除")
private String deleteEnum;
//租户id
@ApiModelProperty(value = "租户id")
private Long tenantId;
//机构id
@ApiModelProperty(value = "机构id")
private Long orgId;
//环境
@ApiModelProperty(value = "环境")
private String env;
@ApiModelProperty(value = "摄像头名称")
private String cameraName;
}

View File

@ -1,8 +1,10 @@
package com.zcloud.key.project.domain.model;
import com.jjb.saas.framework.domain.model.BaseE;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.time.LocalDate;
import java.time.LocalDateTime;
/**
@ -36,9 +38,9 @@ public class KeyProjectE extends BaseE {
//涉及重点作业属性类型名称
private String projectTypeName;
//计划工期开始时间
private LocalDateTime planWorkStartDate;
private LocalDate planWorkStartDate;
//计划工期结束时间
private LocalDateTime planWorkEndDate;
private LocalDate planWorkEndDate;
//相关方企业id
private Long xgfCorpinfoId;
//相关方单位负责人id
@ -56,8 +58,12 @@ public class KeyProjectE extends BaseE {
//申请时间
private LocalDateTime applyDateTime;
//确认时间
private LocalDateTime confirmDateTime;
//状态,1:未开工,2:开工申请中,3:已超期,4:进行中,5:完工申请中,6:已完工
private LocalDateTime applyConfirmDateTime;
//申请时间
private LocalDateTime completedDateTime;
//确认时间
private LocalDateTime completedConfirmDateTime;
//状态,0:暂存。1:未开工,2:开工申请中,3:已超期,4:进行中,5:完工申请中,6:已完工
private Integer applyStatus;
//经度
private String longitude;

View File

@ -1,10 +1,12 @@
package com.zcloud.key.project.gatewayimpl;
import com.zcloud.gbscommon.utils.Tools;
import com.zcloud.key.project.domain.gateway.KeyProjectCameraGateway;
import com.zcloud.key.project.domain.model.KeyProjectCameraE;
import com.zcloud.key.project.persistence.dataobject.KeyProjectCameraDO;
import com.zcloud.key.project.persistence.repository.KeyProjectCameraRepository;
import lombok.AllArgsConstructor;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
@ -23,6 +25,9 @@ public class KeyProjectCameraGatewayImpl implements KeyProjectCameraGateway {
@Override
public Boolean add(KeyProjectCameraE keyProjectCameraE) {
if(StringUtils.isEmpty(keyProjectCameraE.getKeyProjectCameraId())){
keyProjectCameraE.setKeyProjectCameraId(Tools.get32UUID());
}
KeyProjectCameraDO d = new KeyProjectCameraDO();
BeanUtils.copyProperties(keyProjectCameraE, d);
keyProjectCameraRepository.save(d);

View File

@ -1,10 +1,13 @@
package com.zcloud.key.project.gatewayimpl;
import com.jjb.saas.framework.auth.utils.AuthContext;
import com.zcloud.gbscommon.utils.Tools;
import com.zcloud.key.project.domain.gateway.KeyProjectGateway;
import com.zcloud.key.project.domain.model.KeyProjectE;
import com.zcloud.key.project.persistence.dataobject.KeyProjectDO;
import com.zcloud.key.project.persistence.repository.KeyProjectRepository;
import lombok.AllArgsConstructor;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
@ -23,6 +26,12 @@ public class KeyProjectGatewayImpl implements KeyProjectGateway {
@Override
public Boolean add(KeyProjectE keyProjectE) {
if(StringUtils.isEmpty(keyProjectE.getKeyProjectId())){
keyProjectE.setKeyProjectId(Tools.get32UUID());
}
if(keyProjectE.getCorpinfoId()==null){
keyProjectE.setCorpinfoId(AuthContext.getTenantId());
}
KeyProjectDO d = new KeyProjectDO();
BeanUtils.copyProperties(keyProjectE, d);
keyProjectRepository.save(d);

View File

@ -1,5 +1,6 @@
package com.zcloud.key.project.persistence.dataobject;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.jjb.saas.framework.repository.basedo.BaseDO;
import io.swagger.annotations.ApiModelProperty;
@ -31,6 +32,10 @@ public class KeyProjectCameraDO extends BaseDO {
@ApiModelProperty(value = "摄像头类型,1:固定摄像头,2:移动摄像头")
private Integer cameraType;
@ApiModelProperty(value = "摄像头名称")
@TableField(exist = false)
private String cameraName;
public KeyProjectCameraDO(String keyProjectCameraId) {
this.keyProjectCameraId = keyProjectCameraId;
}

View File

@ -1,5 +1,6 @@
package com.zcloud.key.project.persistence.dataobject;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.jjb.saas.framework.repository.basedo.BaseDO;
import io.swagger.annotations.ApiModelProperty;
@ -7,7 +8,9 @@ import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.List;
/**
* web-infrastructure
@ -52,10 +55,10 @@ public class KeyProjectDO extends BaseDO {
private String projectTypeName;
//计划工期开始时间
@ApiModelProperty(value = "计划工期开始时间")
private LocalDateTime planWorkStartDate;
private LocalDate planWorkStartDate;
//计划工期结束时间
@ApiModelProperty(value = "计划工期结束时间")
private LocalDateTime planWorkEndDate;
private LocalDate planWorkEndDate;
//相关方企业id
@ApiModelProperty(value = "相关方企业id")
private Long xgfCorpinfoId;
@ -81,10 +84,16 @@ public class KeyProjectDO extends BaseDO {
@ApiModelProperty(value = "申请时间")
private LocalDateTime applyDateTime;
//确认时间
@ApiModelProperty(value = "确认时间")
private LocalDateTime confirmDateTime;
//状态,1:未开工,2:开工申请中,3:已超期,4:进行中,5:完工申请中,6:已完工
@ApiModelProperty(value = "状态,1:未开工,2:开工申请中,3:已超期,4:进行中,5:完工申请中,6:已完工")
@ApiModelProperty(value = "申请确认时间")
private LocalDateTime applyConfirmDateTime;
//申请时间
@ApiModelProperty(value = "完工时间")
private LocalDateTime completedDateTime;
//确认时间
@ApiModelProperty(value = "完工确认时间")
private LocalDateTime completedConfirmDateTime;
//状态,0:暂存。1:未开工,2:开工申请中,3:已超期,4:进行中,5:完工申请中,6:已完工
@ApiModelProperty(value = "状态,0:暂存。1:未开工,2:开工申请中,3:已超期,4:进行中,5:完工申请中,6:已完工")
private Integer applyStatus;
//经度
@ApiModelProperty(value = "经度")
@ -93,6 +102,33 @@ public class KeyProjectDO extends BaseDO {
@ApiModelProperty(value = "纬度")
private String latitude;
@ApiModelProperty(value = "辖区单位企业名称")
@TableField(exist = false)
private String jurisdictionCorpinfoName;
@ApiModelProperty(value = "辖区单位部门名称")
@TableField(exist = false)
private String jurisdictionDepartmentName;
@ApiModelProperty(value = "辖区项目负责人名称")
@TableField(exist = false)
private String jurisdictionUserName;
@ApiModelProperty(value = "主管部门名称")
@TableField(exist = false)
private String masterDepartmentName;
@ApiModelProperty(value = "相关方企业名称")
@TableField(exist = false)
private String xgfCorpinfoName;
@ApiModelProperty(value = "相关方单位负责人名称")
@TableField(exist = false)
private String xgfUserName;
public KeyProjectDO(String keyProjectId) {
this.keyProjectId = keyProjectId;
}

View File

@ -1,9 +1,14 @@
package com.zcloud.key.project.persistence.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.zcloud.key.project.persistence.dataobject.CameraInfoDO;
import com.zcloud.key.project.persistence.dataobject.KeyProjectCameraDO;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
import java.util.Map;
/**
* web-infrastructure
*
@ -13,5 +18,14 @@ import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface KeyProjectCameraMapper extends BaseMapper<KeyProjectCameraDO> {
List<KeyProjectCameraDO> getCameraListByProjectId(String keyProjectId);
void deleteByKeyProjectId(String keyProjectId);
IPage<KeyProjectCameraDO> listPage(IPage<KeyProjectCameraDO> iPage, Map<String, Object> params);
IPage<CameraInfoDO> listFixedCameraAll(IPage<CameraInfoDO> iPage, Map<String, Object> params);
IPage<CameraInfoDO> listMobileCameraAll(IPage<CameraInfoDO> iPage, Map<String, Object> params);
}

View File

@ -1,9 +1,17 @@
package com.zcloud.key.project.persistence.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.jjb.saas.framework.datascope.annotation.DataScope;
import com.jjb.saas.framework.datascope.annotation.DataScopes;
import com.zcloud.key.project.persistence.dataobject.CorpStatisticsDO;
import com.zcloud.key.project.persistence.dataobject.KeyProjectDO;
import com.zcloud.key.project.persistence.dataobject.KeyProjectStatisticsDO;
import com.zcloud.key.project.persistence.dataobject.XgfCorpStatisticsDO;
import org.apache.ibatis.annotations.Mapper;
import java.util.Map;
/**
* web-infrastructure
*
@ -11,7 +19,22 @@ import org.apache.ibatis.annotations.Mapper;
* @Date 2026-03-16 10:00:38
*/
@Mapper
@DataScopes({
@DataScope(method = "listPage", menuPerms = ""),
@DataScope(method = "pageConfirm", menuPerms = ""),
})
public interface KeyProjectMapper extends BaseMapper<KeyProjectDO> {
IPage<KeyProjectDO> listPage(IPage<KeyProjectDO> iPage, Map<String, Object> params, String menuPerms);
KeyProjectDO getInfoById(Long id);
IPage<KeyProjectDO> pageConfirm(IPage<KeyProjectDO> iPage, Map<String, Object> params, String menuPerms);
IPage<CorpStatisticsDO> corpStatistics(IPage<CorpStatisticsDO> iPage, Map<String, Object> params);
IPage<KeyProjectStatisticsDO> keyProjectStatistics(IPage<KeyProjectStatisticsDO> iPage, Map<String, Object> params);
IPage<XgfCorpStatisticsDO> xgfCorpStatistics(IPage<XgfCorpStatisticsDO> iPage, Map<String, Object> params);
}

View File

@ -2,8 +2,10 @@ package com.zcloud.key.project.persistence.repository;
import com.alibaba.cola.dto.PageResponse;
import com.jjb.saas.framework.repository.repo.BaseRepository;
import com.zcloud.key.project.persistence.dataobject.CameraInfoDO;
import com.zcloud.key.project.persistence.dataobject.KeyProjectCameraDO;
import java.util.List;
import java.util.Map;
/**
@ -14,5 +16,15 @@ import java.util.Map;
*/
public interface KeyProjectCameraRepository extends BaseRepository<KeyProjectCameraDO> {
PageResponse<KeyProjectCameraDO> listPage(Map<String, Object> params);
List<KeyProjectCameraDO> getCameraList(List<String> keyProjectIdList);
List<KeyProjectCameraDO> getCameraListByProjectId(String keyProjectId);
void deleteByKeyProjectId(String keyProjectId);
PageResponse<CameraInfoDO> listFixedCameraAll(Map<String, Object> params);
PageResponse<CameraInfoDO> listMobileCameraAll(Map<String, Object> params);
}

View File

@ -2,7 +2,10 @@ package com.zcloud.key.project.persistence.repository;
import com.alibaba.cola.dto.PageResponse;
import com.jjb.saas.framework.repository.repo.BaseRepository;
import com.zcloud.key.project.persistence.dataobject.CorpStatisticsDO;
import com.zcloud.key.project.persistence.dataobject.KeyProjectDO;
import com.zcloud.key.project.persistence.dataobject.KeyProjectStatisticsDO;
import com.zcloud.key.project.persistence.dataobject.XgfCorpStatisticsDO;
import java.util.Map;
@ -14,5 +17,15 @@ import java.util.Map;
*/
public interface KeyProjectRepository extends BaseRepository<KeyProjectDO> {
PageResponse<KeyProjectDO> listPage(Map<String, Object> params);
KeyProjectDO getInfoById(Long id);
PageResponse<KeyProjectDO> pageConfirm(Map<String, Object> params);
PageResponse<CorpStatisticsDO> corpStatistics(Map<String, Object> params);
PageResponse<KeyProjectStatisticsDO> keyProjectStatistics(Map<String, Object> params);
PageResponse<XgfCorpStatisticsDO> xgfCorpStatistics(Map<String, Object> params);
}

View File

@ -7,12 +7,15 @@ import com.jjb.saas.framework.repository.common.PageHelper;
import com.jjb.saas.framework.repository.repo.impl.BaseRepositoryImpl;
import com.zcloud.gbscommon.utils.PageQueryHelper;
import com.zcloud.gbscommon.utils.Query;
import com.zcloud.key.project.persistence.dataobject.CameraInfoDO;
import com.zcloud.key.project.persistence.dataobject.KeyProjectCameraDO;
import com.zcloud.key.project.persistence.mapper.KeyProjectCameraMapper;
import com.zcloud.key.project.persistence.repository.KeyProjectCameraRepository;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import java.util.Collections;
import java.util.List;
import java.util.Map;
/**
@ -29,10 +32,38 @@ public class KeyProjectCameraRepositoryImpl extends BaseRepositoryImpl<KeyProjec
@Override
public PageResponse<KeyProjectCameraDO> listPage(Map<String, Object> params) {
IPage<KeyProjectCameraDO> iPage = new Query<KeyProjectCameraDO>().getPage(params);
IPage<KeyProjectCameraDO> result = keyProjectCameraMapper.listPage(iPage, params);
return PageHelper.pageToResponse(result, result.getRecords());
}
@Override
public List<KeyProjectCameraDO> getCameraList(List<String> keyProjectIdList) {
QueryWrapper<KeyProjectCameraDO> queryWrapper = new QueryWrapper<>();
queryWrapper = PageQueryHelper.createPageQueryWrapper(queryWrapper, params);
queryWrapper.orderByDesc("create_time");
IPage<KeyProjectCameraDO> result = keyProjectCameraMapper.selectPage(iPage, queryWrapper);
queryWrapper.in("key_project_id", keyProjectIdList);
return keyProjectCameraMapper.selectList(queryWrapper);
}
@Override
public List<KeyProjectCameraDO> getCameraListByProjectId(String keyProjectId) {
return keyProjectCameraMapper.getCameraListByProjectId(keyProjectId);
}
@Override
public void deleteByKeyProjectId(String keyProjectId) {
keyProjectCameraMapper.deleteByKeyProjectId(keyProjectId);
}
@Override
public PageResponse<CameraInfoDO> listFixedCameraAll(Map<String, Object> params) {
IPage<CameraInfoDO> iPage = new Query<CameraInfoDO>().getPage(params);
IPage<CameraInfoDO> result = keyProjectCameraMapper.listFixedCameraAll(iPage, params);
return PageHelper.pageToResponse(result, result.getRecords());
}
@Override
public PageResponse<CameraInfoDO> listMobileCameraAll(Map<String, Object> params) {
IPage<CameraInfoDO> iPage = new Query<CameraInfoDO>().getPage(params);
IPage<CameraInfoDO> result = keyProjectCameraMapper.listMobileCameraAll(iPage, params);
return PageHelper.pageToResponse(result, result.getRecords());
}
}

View File

@ -7,7 +7,11 @@ import com.jjb.saas.framework.repository.common.PageHelper;
import com.jjb.saas.framework.repository.repo.impl.BaseRepositoryImpl;
import com.zcloud.gbscommon.utils.PageQueryHelper;
import com.zcloud.gbscommon.utils.Query;
import com.zcloud.key.project.domain.enums.MenuEnum;
import com.zcloud.key.project.persistence.dataobject.CorpStatisticsDO;
import com.zcloud.key.project.persistence.dataobject.KeyProjectDO;
import com.zcloud.key.project.persistence.dataobject.KeyProjectStatisticsDO;
import com.zcloud.key.project.persistence.dataobject.XgfCorpStatisticsDO;
import com.zcloud.key.project.persistence.mapper.KeyProjectMapper;
import com.zcloud.key.project.persistence.repository.KeyProjectRepository;
import lombok.RequiredArgsConstructor;
@ -29,10 +33,48 @@ public class KeyProjectRepositoryImpl extends BaseRepositoryImpl<KeyProjectMappe
@Override
public PageResponse<KeyProjectDO> listPage(Map<String, Object> params) {
IPage<KeyProjectDO> iPage = new Query<KeyProjectDO>().getPage(params);
QueryWrapper<KeyProjectDO> queryWrapper = new QueryWrapper<>();
queryWrapper = PageQueryHelper.createPageQueryWrapper(queryWrapper, params);
queryWrapper.orderByDesc("create_time");
IPage<KeyProjectDO> result = keyProjectMapper.selectPage(iPage, queryWrapper);
String menuPerms = "";
// if (!org.springframework.util.ObjectUtils.isEmpty(params.get("menuPath"))){
// menuPerms = MenuEnum.getMenuKeyByPath(params.get("menuPath").toString());
// }
IPage<KeyProjectDO> result = keyProjectMapper.listPage(iPage, params,menuPerms);
return PageHelper.pageToResponse(result, result.getRecords());
}
@Override
public PageResponse<KeyProjectDO> pageConfirm(Map<String, Object> params) {
IPage<KeyProjectDO> iPage = new Query<KeyProjectDO>().getPage(params);
String menuPerms = "";
// if (!org.springframework.util.ObjectUtils.isEmpty(params.get("menuPath"))){
// menuPerms = MenuEnum.getMenuKeyByPath(params.get("menuPath").toString());
// }
IPage<KeyProjectDO> result = keyProjectMapper.pageConfirm(iPage, params,menuPerms);
return PageHelper.pageToResponse(result, result.getRecords());
}
@Override
public KeyProjectDO getInfoById(Long id) {
return keyProjectMapper.getInfoById(id);
}
@Override
public PageResponse<CorpStatisticsDO> corpStatistics(Map<String, Object> params) {
IPage<CorpStatisticsDO> iPage = new Query<CorpStatisticsDO>().getPage(params);
IPage<CorpStatisticsDO> result = keyProjectMapper.corpStatistics(iPage, params);
return PageHelper.pageToResponse(result, result.getRecords());
}
@Override
public PageResponse<KeyProjectStatisticsDO> keyProjectStatistics(Map<String, Object> params) {
IPage<KeyProjectStatisticsDO> iPage = new Query<KeyProjectStatisticsDO>().getPage(params);
IPage<KeyProjectStatisticsDO> result = keyProjectMapper.keyProjectStatistics(iPage, params);
return PageHelper.pageToResponse(result, result.getRecords());
}
@Override
public PageResponse<XgfCorpStatisticsDO> xgfCorpStatistics(Map<String, Object> params) {
IPage<XgfCorpStatisticsDO> iPage = new Query<XgfCorpStatisticsDO>().getPage(params);
IPage<XgfCorpStatisticsDO> result = keyProjectMapper.xgfCorpStatistics(iPage, params);
return PageHelper.pageToResponse(result, result.getRecords());
}
}

View File

@ -3,5 +3,75 @@
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.zcloud.key.project.persistence.mapper.KeyProjectCameraMapper">
<select id="getCameraListByProjectId" resultType="com.zcloud.key.project.persistence.dataobject.KeyProjectCameraDO">
SELECT
lpc.*,
CASE
WHEN lpc.camera_type = 1 THEN fc.video_name
WHEN lpc.camera_type = 2 THEN mc.video_name
END AS cameraName
FROM key_project_camera lpc
LEFT JOIN fixed_camera fc ON lpc.camera_id = fc.fixed_camera_id AND lpc.camera_type = 1
LEFT JOIN mobile_camera mc ON lpc.camera_id = mc.mobile_camera_id AND lpc.camera_type = 2
WHERE lpc.key_project_id = #{keyProjectId} and lpc.delete_enum='false'
</select>
<update id="deleteByKeyProjectId">
UPDATE key_project_camera
SET delete_enum = 'TRUE'
WHERE key_project_id = #{keyProjectId}
</update>
<select id="listPage" resultType="com.zcloud.key.project.persistence.dataobject.KeyProjectCameraDO">
SELECT
lpc.*,
CASE
WHEN lpc.camera_type = 1 THEN fc.video_name
WHEN lpc.camera_type = 2 THEN mc.video_name
END AS cameraName
FROM key_project_camera lpc
LEFT JOIN fixed_camera fc ON lpc.camera_id = fc.fixed_camera_id AND lpc.camera_type = 1
LEFT JOIN mobile_camera mc ON lpc.camera_id = mc.mobile_camera_id AND lpc.camera_type = 2
WHERE lpc.key_project_id = #{params.keyProjectId} and lpc.delete_enum='false'
</select>
<select id="listFixedCameraAll" resultType="com.zcloud.key.project.persistence.dataobject.CameraInfoDO">
SELECT mc.fixed_camera_id as cameraId, mc.video_name as cameraName, 1 as cameraType
FROM fixed_camera mc
WHERE mc.delete_enum = 'FALSE'
<if test="params.corpinfoId != null">
and mc.corpinfo_id = #{params.corpinfoId}
</if>
AND NOT EXISTS (SELECT 1
FROM key_project_camera kpc
INNER JOIN key_project kp ON kpc.key_project_id = kp.key_project_id
WHERE kpc.camera_id = mc.fixed_camera_id
AND kp.delete_enum = 'FALSE'
AND kpc.delete_enum = 'FALSE'
AND kp.apply_status != 6
)
</select>
<select id="listMobileCameraAll" resultType="com.zcloud.key.project.persistence.dataobject.CameraInfoDO">
SELECT mc.mobile_camera_id as cameraId, mc.video_name as cameraName, 2 as cameraType
FROM mobile_camera mc
WHERE mc.delete_enum = 'FALSE'
<if test="params.corpinfoId != null">
and mc.corpinfo_id = #{params.corpinfoId}
</if>
AND NOT EXISTS (SELECT 1
FROM key_project_camera kpc
INNER JOIN key_project kp ON kpc.key_project_id = kp.key_project_id
WHERE kpc.camera_id = mc.mobile_camera_id
AND kp.delete_enum = 'FALSE'
AND kpc.delete_enum = 'FALSE'
AND kp.apply_status != 6
)
</select>
</mapper>

View File

@ -3,5 +3,261 @@
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.zcloud.key.project.persistence.mapper.KeyProjectMapper">
<select id="listPage" resultType="com.zcloud.key.project.persistence.dataobject.KeyProjectDO">
SELECT kp.*,
fpd.name AS masterDepartmentName,
ci.name AS jurisdictionDepartmentName,
jurcorp.corp_name as jurisdictionCorpinfoName,
juruser.name as jurisdictionUserName,
xgfci.corp_name AS xgfCorpinfoName,
xgfuser.name as xgfUserName
FROM key_project kp
LEFT JOIN department fpd ON kp.master_department_id = fpd.id
LEFT JOIN department ci ON kp.jurisdiction_department_id = ci.id
left join corp_info jurcorp on jurcorp.id = kp.jurisdiction_corpinfo_id
left join user juruser on juruser.id = kp.jurisdiction_user_id
LEFT JOIN corp_info xgfci ON kp.xgf_corpinfo_id = xgfci.id
left join user xgfuser ON kp.xgf_master_user_id = xgfuser.id
LEFT JOIN corp_info cp ON kp.corpinfo_id = cp.id
<where>
<!-- projectName 模糊查询判空 -->
<if test="params.projectName != null and params.projectName != ''">
AND kp.project_name LIKE CONCAT('%', #{params.projectName}, '%')
</if>
<if test="params.jurisdictionCorpinfoId != null">
AND kp.jurisdiction_corpinfo_id = #{params.jurisdictionCorpinfoId}
</if>
<if test="params.jurisdictionUserId != null">
AND kp.jurisdiction_user_id = #{params.jurisdictionUserId}
</if>
<!-- xgfCorpinfoId 判空 -->
<if test="params.xgfCorpinfoId != null">
AND kp.xgf_corpinfo_id = #{params.xgfCorpinfoId}
</if>
<if test="params.xgfCorpinfoName != null and params.xgfCorpinfoName != ''">
AND xgfci.corp_name LIKE CONCAT('%', #{params.xgfCorpinfoName}, '%')
</if>
<if test="params.corpinfName != null and params.corpinfName != ''">
AND cp.corp_name LIKE CONCAT('%', #{params.corpinfName}, '%')
</if>
<if test="params.xgfMasterUserId != null">
AND kp.xgf_master_user_id = #{params.xgfMasterUserId}
</if>
<!-- masterDepartmentId 判空 -->
<if test="params.masterDepartmentId != null">
AND kp.master_department_id = #{params.masterDepartmentId}
</if>
<!-- applyStatus 判空 -->
<if test="params.applyStatus != null and params.applyStatus != ''">
AND kp.apply_status = #{params.applyStatus}
</if>
<!-- applyStatusList 集合判空 -->
<if test="params.applyStatusList != null and params.applyStatusList.size() > 0">
AND kp.apply_status IN
<foreach collection="params.applyStatusList" item="status" open="(" separator="," close=")">
#{status}
</foreach>
</if>
<!-- planWorkStartDate 判空 -->
<if test="params.planWorkStartDate != null">
AND kp.plan_work_start_date <![CDATA[ <= ]]> #{params.planWorkStartDate}
</if>
<!-- planWorkEndDate 判空 -->
<if test="params.planWorkEndDate != null">
AND kp.plan_work_end_date <![CDATA[ >= ]]> #{params.planWorkEndDate}
</if>
<!-- corpinfoId 判空 -->
<if test="params.corpinfoId != null">
AND kp.corpinfo_id = #{params.corpinfoId}
</if>
<!-- projectType 判空 -->
<if test="params.projectType != null and params.projectType != ''">
AND kp.project_type = #{params.projectType}
</if>
</where>
GROUP BY kp.key_project_id
ORDER BY kp.apply_status asc, kp.create_time DESC
</select>
<select id="pageConfirm" resultType="com.zcloud.key.project.persistence.dataobject.KeyProjectDO">
SELECT kp.*,
fpd.name AS masterDepartmentName,
ci.name AS jurisdictionDepartmentName,
jurcorp.corp_name as jurisdictionCorpinfoName,
juruser.name as jurisdictionUserName,
xgfci.corp_name AS xgfCorpinfoName,
xgfuser.name as xgfUserName
FROM key_project kp
LEFT JOIN department fpd ON kp.master_department_id = fpd.id
LEFT JOIN department ci ON kp.jurisdiction_department_id = ci.id
left join corp_info jurcorp on jurcorp.id = kp.jurisdiction_corpinfo_id
left join user juruser on juruser.id = kp.jurisdiction_user_id
LEFT JOIN corp_info xgfci ON kp.xgf_corpinfo_id = xgfci.id
left join user xgfuser ON kp.xgf_master_user_id = xgfuser.id
LEFT JOIN corp_info cp ON kp.corpinfo_id = cp.id
<where>
<!-- projectName 模糊查询判空 -->
<if test="params.projectName != null and params.projectName != ''">
AND kp.project_name LIKE CONCAT('%', #{params.projectName}, '%')
</if>
<if test="params.jurisdictionCorpinfoId != null">
AND kp.jurisdiction_corpinfo_id = #{params.jurisdictionCorpinfoId}
</if>
<if test="params.jurisdictionUserId != null">
AND kp.jurisdiction_user_id = #{params.jurisdictionUserId}
</if>
<!-- xgfCorpinfoId 判空 -->
<if test="params.xgfCorpinfoId != null">
AND kp.xgf_corpinfo_id = #{params.xgfCorpinfoId}
</if>
<if test="params.xgfCorpinfoName != null and params.xgfCorpinfoName != ''">
AND xgfci.corp_name LIKE CONCAT('%', #{params.xgfCorpinfoName}, '%')
</if>
<if test="params.corpinfName != null and params.corpinfName != ''">
AND cp.corp_name LIKE CONCAT('%', #{params.corpinfName}, '%')
</if>
<if test="params.xgfMasterUserId != null">
AND kp.xgf_master_user_id = #{params.xgfMasterUserId}
</if>
<!-- masterDepartmentId 判空 -->
<if test="params.masterDepartmentId != null">
AND kp.master_department_id = #{params.masterDepartmentId}
</if>
<!-- applyStatus 判空 -->
<if test="params.applyStatus != null and params.applyStatus != ''">
AND kp.apply_status = #{params.applyStatus}
</if>
<!-- applyStatusList 集合判空 -->
<if test="params.applyStatusList != null and params.applyStatusList.size() > 0">
AND kp.apply_status IN
<foreach collection="params.applyStatusList" item="status" open="(" separator="," close=")">
#{status}
</foreach>
</if>
<!-- planWorkStartDate 判空 -->
<if test="params.planWorkStartDate != null">
AND kp.plan_work_start_date <![CDATA[ <= ]]> #{params.planWorkStartDate}
</if>
<!-- planWorkEndDate 判空 -->
<if test="params.planWorkEndDate != null">
AND kp.plan_work_end_date <![CDATA[ >= ]]> #{params.planWorkEndDate}
</if>
<!-- corpinfoId 判空 -->
<if test="params.corpinfoId != null">
AND kp.corpinfo_id = #{params.corpinfoId}
</if>
<!-- projectType 判空 -->
<if test="params.projectType != null and params.projectType != ''">
AND kp.project_type = #{params.projectType}
</if>
</where>
GROUP BY kp.key_project_id
ORDER BY kp.update_time asc
</select>
<select id="getInfoById" resultType="com.zcloud.key.project.persistence.dataobject.KeyProjectDO">
SELECT kp.*,
fpd.name AS masterDepartmentName,
ci.name AS jurisdictionDepartmentName,
jurcorp.corp_name as jurisdictionCorpinfoName,
juruser.name as jurisdictionUserName,
xgfci.corp_name AS xgfCorpinfoName,
xgfuser.name as xgfUserName
FROM key_project kp
LEFT JOIN department fpd ON kp.master_department_id = fpd.id
LEFT JOIN department ci ON kp.jurisdiction_department_id = ci.id
left join corp_info jurcorp on jurcorp.id = kp.jurisdiction_corpinfo_id
left join user juruser on juruser.id = kp.jurisdiction_user_id
LEFT JOIN corp_info xgfci ON kp.xgf_corpinfo_id = xgfci.id
left join user xgfuser ON kp.xgf_master_user_id = xgfuser.id
where kp.id = #{id} and kp.delete_enum = 'FALSE'
</select>
<select id="corpStatistics" resultType="com.zcloud.key.project.persistence.dataobject.CorpStatisticsDO">
SELECT cp.id AS corpinfoId,
cp.corp_name AS corpinfoName,
COUNT(distinct kp.id) AS totalProjectCount,
COUNT(DISTINCT CASE WHEN kp.apply_status = 4 THEN kp.id END) AS startCount,
COUNT(DISTINCT CASE WHEN kp.apply_status = 6 THEN kp.id END) AS completeCount,
COUNT(DISTINCT CASE WHEN kpc.camera_type = 1 THEN kpc.camera_id END) AS fixedCameraCount,
COUNT(DISTINCT CASE WHEN kpc.camera_type = 2 THEN kpc.camera_id END) AS mobileCameraCount,
GROUP_CONCAT(DISTINCT CASE WHEN kpc.camera_type = 1 THEN kpc.camera_id END) AS fixedCameraIdList,
GROUP_CONCAT(DISTINCT CASE WHEN kpc.camera_type = 2 THEN kpc.camera_id END) AS mobileCameraIdList
FROM corp_info cp
LEFT JOIN key_project kp
ON cp.id = kp.jurisdiction_corpinfo_id AND kp.delete_enum = 'FALSE'
left join key_project_camera kpc on kp.key_project_id = kpc.key_project_id AND kpc.delete_enum = 'FALSE'
WHERE cp.delete_enum = 'FALSE'
AND cp.use_flag = 1
AND cp.type IN (0, 1, 2, 6)
<if test="params.corpinfoName != null and params.corpinfoName != ''">
AND cp.corp_name like concat('%',#{params.corpinfoName},'%')
</if>
GROUP BY cp.id
order by cp.corp_order ASC,cp.create_time desc
</select>
<select id="keyProjectStatistics" resultType="com.zcloud.key.project.persistence.dataobject.KeyProjectStatisticsDO">
select kp.id,
kp.key_project_id as keyProjectId,
kp.project_name as projectName,
COUNT(DISTINCT CASE WHEN kpc.camera_type = 1 THEN kpc.camera_id END) AS fixedCameraCount,
COUNT(DISTINCT CASE WHEN kpc.camera_type = 2 THEN kpc.camera_id END) AS mobileCameraCount,
GROUP_CONCAT(DISTINCT CASE WHEN kpc.camera_type = 1 THEN kpc.camera_id END) AS fixedCameraIdList,
GROUP_CONCAT(DISTINCT CASE WHEN kpc.camera_type = 2 THEN kpc.camera_id END) AS mobileCameraIdList
from key_project kp
left join key_project_camera kpc on kp.key_project_id = kpc.key_project_id AND kpc.delete_enum = 'FALSE'
where kp.delete_enum = 'FALSE'
and jurisdiction_corpinfo_id = #{params.jurisdictionCorpinfoId}
<if test="params.projectName != null and params.projectName != ''">
AND cp.project_name like concat('%',#{params.projectName},'%')
</if>
GROUP BY kp.id
ORDER BY kp.apply_status asc, kp.create_time DESC
</select>
<select id="xgfCorpStatistics" resultType="com.zcloud.key.project.persistence.dataobject.XgfCorpStatisticsDO">
select kp.id,
kp.jurisdiction_corpinfo_id as jurisdictionCorpinfoId,
COUNT(distinct kp.id) AS totalProjectCount,
COUNT(DISTINCT CASE WHEN kp.apply_status = 4 THEN kp.id END) AS startCount,
COUNT(DISTINCT CASE WHEN kp.apply_status = 6 THEN kp.id END) AS completeCount,
COUNT(DISTINCT CASE WHEN kpc.camera_type = 1 THEN kpc.camera_id END) AS fixedCameraCount,
COUNT(DISTINCT CASE WHEN kpc.camera_type = 2 THEN kpc.camera_id END) AS mobileCameraCount,
GROUP_CONCAT(DISTINCT CASE WHEN kpc.camera_type = 1 THEN kpc.camera_id END) AS fixedCameraIdList,
GROUP_CONCAT(DISTINCT CASE WHEN kpc.camera_type = 2 THEN kpc.camera_id END) AS mobileCameraIdList
from key_project kp
left join key_project_camera kpc on kp.key_project_id = kpc.key_project_id AND kpc.delete_enum = 'FALSE'
left join corp_info cp on kp.jurisdiction_corpinfo_id = cp.id
where kp.delete_enum = 'FALSE'
<if test="params.jurisdictionCorpinfoIdList != null and params.jurisdictionCorpinfoIdList.size() > 0">
and jurisdiction_corpinfo_id in
<foreach collection="params.jurisdictionCorpinfoIdList" item="corpinfoId" open="(" separator="," close=")">
#{corpinfoId}
</foreach>
</if>
and kp.xgf_corpinfo_id = #{params.xgfCorpinfoId}
GROUP BY kp.id
order by cp.corp_order ASC,cp.create_time desc
</select>
</mapper>