diff --git a/start/src/main/resources/nacos.yml b/start/src/main/resources/nacos.yml index 040aeb2..839f469 100644 --- a/start/src/main/resources/nacos.yml +++ b/start/src/main/resources/nacos.yml @@ -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} diff --git a/web-adapter/src/main/java/com/zcloud/key/project/web/KeyProjectCameraController.java b/web-adapter/src/main/java/com/zcloud/key/project/web/KeyProjectCameraController.java index 2fc677b..0f7a4f4 100644 --- a/web-adapter/src/main/java/com/zcloud/key/project/web/KeyProjectCameraController.java +++ b/web-adapter/src/main/java/com/zcloud/key/project/web/KeyProjectCameraController.java @@ -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 add(@Validated @RequestBody KeyProjectCameraAddCmd cmd) { - SSOUser ssoUser = AuthContext.getCurrentUser(); return keyProjectCameraService.add(cmd); - } + }*/ - @ApiOperation("分页") + @ApiOperation("重点作业下摄像头分页") @PostMapping("/list") public PageResponse page(@RequestBody KeyProjectCameraPageQry qry) { return keyProjectCameraService.listPage(qry); } - @ApiOperation("所有数据") + @ApiOperation("重点作业下摄像头所有数据") @GetMapping("/listAll") - public MultiResponse listAll() { - return MultiResponse.of(new ArrayList()); + public MultiResponse listAll(@RequestBody KeyProjectCameraPageQry qry) { + return MultiResponse.of(keyProjectCameraService.listAll(qry)); } - @ApiOperation("详情") + /* @ApiOperation("详情") @GetMapping("/{id}") public SingleResponse 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 listCameraAll(@RequestBody CameraListCmd cameraListCmd) { + return keyProjectCameraService.listCameraAll(cameraListCmd); } } diff --git a/web-adapter/src/main/java/com/zcloud/key/project/web/KeyProjectController.java b/web-adapter/src/main/java/com/zcloud/key/project/web/KeyProjectController.java index 69c1b47..0aaa738 100644 --- a/web-adapter/src/main/java/com/zcloud/key/project/web/KeyProjectController.java +++ b/web-adapter/src/main/java/com/zcloud/key/project/web/KeyProjectController.java @@ -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 add(@Validated @RequestBody KeyProjectAddCmd cmd) { - SSOUser ssoUser = AuthContext.getCurrentUser(); + public SingleResponse add(@Validated @RequestBody KeyProjectAddCmd cmd) { + cmd.setApplyStatus(KeyProjectApplyStatusEnum.NOT_STARTED.getCode()); + + return keyProjectService.add(cmd); + } + @ApiOperation("重点作业暂存") + @PostMapping("/saveStorage") + public SingleResponse saveStorage(@RequestBody KeyProjectAddCmd cmd) { + cmd.setApplyStatus(KeyProjectApplyStatusEnum.TEMPORARY_SAVE.getCode()); return keyProjectService.add(cmd); } - @ApiOperation("分页") + @ApiOperation("重点作业管理分页") @PostMapping("/list") public PageResponse page(@RequestBody KeyProjectPageQry qry) { return keyProjectService.listPage(qry); } - @ApiOperation("所有数据") + @ApiOperation("重点作业确认分页-监管-分公司") + @PostMapping("/pageConfirm") + public PageResponse pageConfirm(@RequestBody KeyProjectPageQry qry) { + return keyProjectService.pageConfirm(qry); + } + + /*@ApiOperation("所有数据") @GetMapping("/listAll") public MultiResponse listAll() { return MultiResponse.of(new ArrayList()); - } + }*/ - @ApiOperation("详情") + @ApiOperation("重点作业详情") @GetMapping("/{id}") public SingleResponse 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 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 corpStatistics(@RequestBody CorpStatisticsPageQry qry) { + return keyProjectService.corpStatistics(qry); + } + @ApiOperation("分公司-重点作业情况统计") + @PostMapping("/keyProjectStatistics") + public PageResponse keyProjectStatistics(@RequestBody KeyProjectStatisticsPageQry qry) { + return keyProjectService.keyProjectStatistics(qry); + } + + @ApiOperation("相关方-重点作业情况统计") + @PostMapping("/xgfCorpStatistics") + public PageResponse xgfCorpStatistics(@RequestBody XgfCorpStatisticsPageQry qry) { + return keyProjectService.xgfCorpStatistics(qry); + } + + + } diff --git a/web-app/src/main/java/com/zcloud/key/project/command/KeyProjectAddExe.java b/web-app/src/main/java/com/zcloud/key/project/command/KeyProjectAddExe.java index dd2d3f5..58fe62c 100644 --- a/web-app/src/main/java/com/zcloud/key/project/command/KeyProjectAddExe.java +++ b/web-app/src/main/java/com/zcloud/key/project/command/KeyProjectAddExe.java @@ -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 keyProjectCameraAddCmdList = cmd.getKeyProjectCameraAddCmdList(); + + List keyProjectCameraDOList = keyProjectCameraCoConvertor.converCmdsToDOs(keyProjectCameraAddCmdList); + keyProjectCameraDOList.forEach(keyProjectCameraAddCmd -> { + keyProjectCameraAddCmd.setKeyProjectId(keyProjectE.getKeyProjectId()); + keyProjectCameraAddCmd.setKeyProjectCameraId(Tools.get32UUID()); + }); + keyProjectCameraRepository.saveBatch(keyProjectCameraDOList); + } return true; } } diff --git a/web-app/src/main/java/com/zcloud/key/project/command/KeyProjectRemoveExe.java b/web-app/src/main/java/com/zcloud/key/project/command/KeyProjectRemoveExe.java index 853dda7..d38f1af 100644 --- a/web-app/src/main/java/com/zcloud/key/project/command/KeyProjectRemoveExe.java +++ b/web-app/src/main/java/com/zcloud/key/project/command/KeyProjectRemoveExe.java @@ -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("删除失败"); diff --git a/web-app/src/main/java/com/zcloud/key/project/command/KeyProjectUpdateExe.java b/web-app/src/main/java/com/zcloud/key/project/command/KeyProjectUpdateExe.java index bc7ac43..549b2ec 100644 --- a/web-app/src/main/java/com/zcloud/key/project/command/KeyProjectUpdateExe.java +++ b/web-app/src/main/java/com/zcloud/key/project/command/KeyProjectUpdateExe.java @@ -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 keyProjectCameraAddCmdList = keyProjectUpdateCmd.getKeyProjectCameraAddCmdList(); + List 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 keyProjectCameraAddCmdList = keyProjectUpdateStatusCmd.getKeyProjectCameraAddCmdList(); + List keyProjectCameraDOList =keyProjectCameraCoConvertor.converCmdsToDOs(keyProjectCameraAddCmdList); + keyProjectCameraDOList.forEach(keyProjectCameraAddCmd -> { + keyProjectCameraAddCmd.setKeyProjectId(byId.getKeyProjectId()); + keyProjectCameraAddCmd.setKeyProjectCameraId(Tools.get32UUID()); + }); + keyProjectCameraRepository.saveBatch(keyProjectCameraDOList); + + } } } diff --git a/web-app/src/main/java/com/zcloud/key/project/command/convertor/KeyProjectCameraCoConvertor.java b/web-app/src/main/java/com/zcloud/key/project/command/convertor/KeyProjectCameraCoConvertor.java index 4ab7d16..fa16d10 100644 --- a/web-app/src/main/java/com/zcloud/key/project/command/convertor/KeyProjectCameraCoConvertor.java +++ b/web-app/src/main/java/com/zcloud/key/project/command/convertor/KeyProjectCameraCoConvertor.java @@ -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 converDOsToCOs(List keyProjectCameraDOs); + + List converCmdsToDOs(List keyProjectCameraAddCmdList); + + List converCameraDOsToCOs(List data); } diff --git a/web-app/src/main/java/com/zcloud/key/project/command/convertor/KeyProjectCoConvertor.java b/web-app/src/main/java/com/zcloud/key/project/command/convertor/KeyProjectCoConvertor.java index 4598baf..491422d 100644 --- a/web-app/src/main/java/com/zcloud/key/project/command/convertor/KeyProjectCoConvertor.java +++ b/web-app/src/main/java/com/zcloud/key/project/command/convertor/KeyProjectCoConvertor.java @@ -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 converDOsToCOs(List keyProjectDOs); + + KeyProjectCO converDOToCO(KeyProjectDO keyProjectDO); + + + @Mapping(source = "fixedCameraIdList", target = "fixedCameraIdList", qualifiedByName = "stringToList") + @Mapping(source = "mobileCameraIdList", target = "mobileCameraIdList", qualifiedByName = "stringToList") + CorpStatisticsCO toCorpStatisticsCO(CorpStatisticsDO data); + + + List converStatisticsDOsToCOs(List data); + + + + @Mapping(source = "fixedCameraIdList", target = "fixedCameraIdList", qualifiedByName = "stringToList") + @Mapping(source = "mobileCameraIdList", target = "mobileCameraIdList", qualifiedByName = "stringToList") + KeyProjectStatisticsCO toProjectCO(KeyProjectStatisticsDO data); + + List converProjectStatisticsDOsToCOs(List data); + + @Mapping(source = "fixedCameraIdList", target = "fixedCameraIdList", qualifiedByName = "stringToList") + @Mapping(source = "mobileCameraIdList", target = "mobileCameraIdList", qualifiedByName = "stringToList") + XgfCorpStatisticsCO toXgfProjectCO(XgfCorpStatisticsDO data); + + List converXgfCorpStatisticsDOsToCOs(List data); + + @Named("stringToList") + default List 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()); + } } diff --git a/web-app/src/main/java/com/zcloud/key/project/command/query/KeyProjectCameraQueryExe.java b/web-app/src/main/java/com/zcloud/key/project/command/query/KeyProjectCameraQueryExe.java index a17dae1..974ff23 100644 --- a/web-app/src/main/java/com/zcloud/key/project/command/query/KeyProjectCameraQueryExe.java +++ b/web-app/src/main/java/com/zcloud/key/project/command/query/KeyProjectCameraQueryExe.java @@ -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 examCenterCOS = keyProjectCameraCoConvertor.converDOsToCOs(pageResponse.getData()); return PageResponse.of(examCenterCOS, pageResponse.getTotalCount(), pageResponse.getPageSize(), pageResponse.getPageIndex()); } + + public List listAll(KeyProjectCameraPageQry qry) { + List keyProjectCameraDOList =keyProjectCameraRepository.getCameraListByProjectId(qry.getKeyProjectId()); + return keyProjectCameraCoConvertor.converDOsToCOs(keyProjectCameraDOList); + } + + public PageResponse listCameraAll(CameraListCmd cameraListCmd) { + Map params = PageQueryHelper.toHashMap(cameraListCmd); + params.put("corpinfoId", AuthContext.getTenantId()); + PageResponse 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 examCenterCOS = keyProjectCameraCoConvertor.converCameraDOsToCOs(pageResponse.getData()); + + return PageResponse.of(examCenterCOS, pageResponse.getTotalCount(), pageResponse.getPageSize(), pageResponse.getPageIndex()); + + + + } } diff --git a/web-app/src/main/java/com/zcloud/key/project/command/query/KeyProjectQueryExe.java b/web-app/src/main/java/com/zcloud/key/project/command/query/KeyProjectQueryExe.java index c0524b1..3aa862c 100644 --- a/web-app/src/main/java/com/zcloud/key/project/command/query/KeyProjectQueryExe.java +++ b/web-app/src/main/java/com/zcloud/key/project/command/query/KeyProjectQueryExe.java @@ -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 params = PageQueryHelper.toHashMap(keyProjectPageQry); PageResponse pageResponse = keyProjectRepository.listPage(params); List examCenterCOS = keyProjectCoConvertor.converDOsToCOs(pageResponse.getData()); + if(CollUtil.isEmpty(examCenterCOS)){ + return PageResponse.of(examCenterCOS, pageResponse.getTotalCount(), pageResponse.getPageSize(), pageResponse.getPageIndex()); + } + //获取所有keyProjectId + List keyProjectIdList = examCenterCOS.stream().map(KeyProjectCO::getKeyProjectId).collect(Collectors.toList()); + + List keyProjectCameraDOList =keyProjectCameraRepository.getCameraList(keyProjectIdList); + //按照keyProjectId进行分组 + Map> keyProjectIdCameraMap = keyProjectCameraDOList.stream().collect(Collectors.groupingBy(KeyProjectCameraDO::getKeyProjectId)); + examCenterCOS.forEach(examCenterCO -> { + List 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 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 params = PageQueryHelper.toHashMap(keyProjectPageQry); + PageResponse pageResponse = keyProjectRepository.pageConfirm(params); + List examCenterCOS = keyProjectCoConvertor.converDOsToCOs(pageResponse.getData()); + if(CollUtil.isEmpty(examCenterCOS)){ + return PageResponse.of(examCenterCOS, pageResponse.getTotalCount(), pageResponse.getPageSize(), pageResponse.getPageIndex()); + } + //获取所有keyProjectId + List keyProjectIdList = examCenterCOS.stream().map(KeyProjectCO::getKeyProjectId).collect(Collectors.toList()); + + List keyProjectCameraDOList =keyProjectCameraRepository.getCameraList(keyProjectIdList); + //按照keyProjectId进行分组 + Map> keyProjectIdCameraMap = keyProjectCameraDOList.stream().collect(Collectors.groupingBy(KeyProjectCameraDO::getKeyProjectId)); + examCenterCOS.forEach(examCenterCO -> { + List 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 keyProjectCameraDOList =keyProjectCameraRepository.getCameraListByProjectId(keyProjectDO.getKeyProjectId()); + + keyProjectCO.setKeyProjectCameraList(keyProjectCameraCoConvertor.converDOsToCOs(keyProjectCameraDOList)); + return keyProjectCO; + } + + + public PageResponse corpStatistics(CorpStatisticsPageQry qry) { + Map params = PageQueryHelper.toHashMap(qry); + PageResponse pageResponse = keyProjectRepository.corpStatistics(params); + List 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 keyProjectStatistics(KeyProjectStatisticsPageQry qry) { + Map params = PageQueryHelper.toHashMap(qry); + params.put("jurisdictionCorpinfoId",AuthContext.getTenantId()); + PageResponse pageResponse = keyProjectRepository.keyProjectStatistics(params); + + List 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 xgfCorpStatistics(XgfCorpStatisticsPageQry qry) { + if(CollUtil.isEmpty(qry.getJurisdictionCorpinfoIdList())){ + return PageResponse.of(null,0,0, 0); + } + Map params = PageQueryHelper.toHashMap(qry); + + params.put("xgfCorpinfoId",AuthContext.getTenantId()); + PageResponse pageResponse = keyProjectRepository.xgfCorpStatistics(params); + + List 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()); + + } } diff --git a/web-app/src/main/java/com/zcloud/key/project/service/KeyProjectCameraServiceImpl.java b/web-app/src/main/java/com/zcloud/key/project/service/KeyProjectCameraServiceImpl.java index 785bc59..2c36661 100644 --- a/web-app/src/main/java/com/zcloud/key/project/service/KeyProjectCameraServiceImpl.java +++ b/web-app/src/main/java/com/zcloud/key/project/service/KeyProjectCameraServiceImpl.java @@ -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 listAll(KeyProjectCameraPageQry qry) { + return keyProjectCameraQueryExe.listAll(qry); + } + + @Override + public PageResponse listCameraAll(CameraListCmd cameraListCmd) { + return keyProjectCameraQueryExe.listCameraAll(cameraListCmd); + } } diff --git a/web-app/src/main/java/com/zcloud/key/project/service/KeyProjectServiceImpl.java b/web-app/src/main/java/com/zcloud/key/project/service/KeyProjectServiceImpl.java index 14d9961..a8c7200 100644 --- a/web-app/src/main/java/com/zcloud/key/project/service/KeyProjectServiceImpl.java +++ b/web-app/src/main/java/com/zcloud/key/project/service/KeyProjectServiceImpl.java @@ -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 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 corpStatistics(CorpStatisticsPageQry qry) { + return keyProjectQueryExe.corpStatistics(qry); + } + + @Override + public PageResponse keyProjectStatistics(KeyProjectStatisticsPageQry qry) { + return keyProjectQueryExe.keyProjectStatistics(qry); + } + + @Override + public PageResponse xgfCorpStatistics(XgfCorpStatisticsPageQry qry) { + return keyProjectQueryExe.xgfCorpStatistics(qry); + } } diff --git a/web-client/src/main/java/com/zcloud/key/project/api/KeyProjectCameraServiceI.java b/web-client/src/main/java/com/zcloud/key/project/api/KeyProjectCameraServiceI.java index 5ec60d4..b6e4860 100644 --- a/web-client/src/main/java/com/zcloud/key/project/api/KeyProjectCameraServiceI.java +++ b/web-client/src/main/java/com/zcloud/key/project/api/KeyProjectCameraServiceI.java @@ -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 listAll(KeyProjectCameraPageQry qry); + + PageResponse listCameraAll(CameraListCmd cameraListCmd); } diff --git a/web-client/src/main/java/com/zcloud/key/project/api/KeyProjectServiceI.java b/web-client/src/main/java/com/zcloud/key/project/api/KeyProjectServiceI.java index 9910584..3dc4706 100644 --- a/web-client/src/main/java/com/zcloud/key/project/api/KeyProjectServiceI.java +++ b/web-client/src/main/java/com/zcloud/key/project/api/KeyProjectServiceI.java @@ -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 pageConfirm(KeyProjectPageQry qry); + + PageResponse corpStatistics(CorpStatisticsPageQry qry); + + PageResponse keyProjectStatistics(KeyProjectStatisticsPageQry qry); + + PageResponse xgfCorpStatistics(XgfCorpStatisticsPageQry qry); } diff --git a/web-client/src/main/java/com/zcloud/key/project/dto/KeyProjectAddCmd.java b/web-client/src/main/java/com/zcloud/key/project/dto/KeyProjectAddCmd.java index 848251a..4092d48 100644 --- a/web-client/src/main/java/com/zcloud/key/project/dto/KeyProjectAddCmd.java +++ b/web-client/src/main/java/com/zcloud/key/project/dto/KeyProjectAddCmd.java @@ -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 keyProjectCameraAddCmdList; + } diff --git a/web-client/src/main/java/com/zcloud/key/project/dto/KeyProjectCameraAddCmd.java b/web-client/src/main/java/com/zcloud/key/project/dto/KeyProjectCameraAddCmd.java index 52e54ec..d8d28c0 100644 --- a/web-client/src/main/java/com/zcloud/key/project/dto/KeyProjectCameraAddCmd.java +++ b/web-client/src/main/java/com/zcloud/key/project/dto/KeyProjectCameraAddCmd.java @@ -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) diff --git a/web-client/src/main/java/com/zcloud/key/project/dto/KeyProjectCameraPageQry.java b/web-client/src/main/java/com/zcloud/key/project/dto/KeyProjectCameraPageQry.java index 59c8e44..e10c2f9 100644 --- a/web-client/src/main/java/com/zcloud/key/project/dto/KeyProjectCameraPageQry.java +++ b/web-client/src/main/java/com/zcloud/key/project/dto/KeyProjectCameraPageQry.java @@ -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; } diff --git a/web-client/src/main/java/com/zcloud/key/project/dto/KeyProjectPageQry.java b/web-client/src/main/java/com/zcloud/key/project/dto/KeyProjectPageQry.java index 0674c86..38d3413 100644 --- a/web-client/src/main/java/com/zcloud/key/project/dto/KeyProjectPageQry.java +++ b/web-client/src/main/java/com/zcloud/key/project/dto/KeyProjectPageQry.java @@ -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 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; } diff --git a/web-client/src/main/java/com/zcloud/key/project/dto/KeyProjectUpdateCmd.java b/web-client/src/main/java/com/zcloud/key/project/dto/KeyProjectUpdateCmd.java index 64e9a6c..7b16113 100644 --- a/web-client/src/main/java/com/zcloud/key/project/dto/KeyProjectUpdateCmd.java +++ b/web-client/src/main/java/com/zcloud/key/project/dto/KeyProjectUpdateCmd.java @@ -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 keyProjectCameraAddCmdList; } diff --git a/web-client/src/main/java/com/zcloud/key/project/dto/clientobject/KeyProjectCO.java b/web-client/src/main/java/com/zcloud/key/project/dto/clientobject/KeyProjectCO.java index f5c3c74..fdb7a44 100644 --- a/web-client/src/main/java/com/zcloud/key/project/dto/clientobject/KeyProjectCO.java +++ b/web-client/src/main/java/com/zcloud/key/project/dto/clientobject/KeyProjectCO.java @@ -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 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 fixedCameraidList; + + @ApiModelProperty(value = "移动摄像头idList") + private List mobileCameraIdList; } diff --git a/web-client/src/main/java/com/zcloud/key/project/dto/clientobject/KeyProjectCameraCO.java b/web-client/src/main/java/com/zcloud/key/project/dto/clientobject/KeyProjectCameraCO.java index 4e036ee..66afc16 100644 --- a/web-client/src/main/java/com/zcloud/key/project/dto/clientobject/KeyProjectCameraCO.java +++ b/web-client/src/main/java/com/zcloud/key/project/dto/clientobject/KeyProjectCameraCO.java @@ -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; } diff --git a/web-domain/src/main/java/com/zcloud/key/project/domain/model/KeyProjectE.java b/web-domain/src/main/java/com/zcloud/key/project/domain/model/KeyProjectE.java index 462aca2..dbb9ecd 100644 --- a/web-domain/src/main/java/com/zcloud/key/project/domain/model/KeyProjectE.java +++ b/web-domain/src/main/java/com/zcloud/key/project/domain/model/KeyProjectE.java @@ -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; diff --git a/web-infrastructure/src/main/java/com/zcloud/key/project/gatewayimpl/KeyProjectCameraGatewayImpl.java b/web-infrastructure/src/main/java/com/zcloud/key/project/gatewayimpl/KeyProjectCameraGatewayImpl.java index 324ecfd..360055b 100644 --- a/web-infrastructure/src/main/java/com/zcloud/key/project/gatewayimpl/KeyProjectCameraGatewayImpl.java +++ b/web-infrastructure/src/main/java/com/zcloud/key/project/gatewayimpl/KeyProjectCameraGatewayImpl.java @@ -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); diff --git a/web-infrastructure/src/main/java/com/zcloud/key/project/gatewayimpl/KeyProjectGatewayImpl.java b/web-infrastructure/src/main/java/com/zcloud/key/project/gatewayimpl/KeyProjectGatewayImpl.java index 590f57e..9c30620 100644 --- a/web-infrastructure/src/main/java/com/zcloud/key/project/gatewayimpl/KeyProjectGatewayImpl.java +++ b/web-infrastructure/src/main/java/com/zcloud/key/project/gatewayimpl/KeyProjectGatewayImpl.java @@ -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); diff --git a/web-infrastructure/src/main/java/com/zcloud/key/project/persistence/dataobject/KeyProjectCameraDO.java b/web-infrastructure/src/main/java/com/zcloud/key/project/persistence/dataobject/KeyProjectCameraDO.java index c8f9c23..07f4ba3 100644 --- a/web-infrastructure/src/main/java/com/zcloud/key/project/persistence/dataobject/KeyProjectCameraDO.java +++ b/web-infrastructure/src/main/java/com/zcloud/key/project/persistence/dataobject/KeyProjectCameraDO.java @@ -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; } diff --git a/web-infrastructure/src/main/java/com/zcloud/key/project/persistence/dataobject/KeyProjectDO.java b/web-infrastructure/src/main/java/com/zcloud/key/project/persistence/dataobject/KeyProjectDO.java index 1bc6e9c..26d0ee4 100644 --- a/web-infrastructure/src/main/java/com/zcloud/key/project/persistence/dataobject/KeyProjectDO.java +++ b/web-infrastructure/src/main/java/com/zcloud/key/project/persistence/dataobject/KeyProjectDO.java @@ -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; } diff --git a/web-infrastructure/src/main/java/com/zcloud/key/project/persistence/mapper/KeyProjectCameraMapper.java b/web-infrastructure/src/main/java/com/zcloud/key/project/persistence/mapper/KeyProjectCameraMapper.java index 4090bae..3a4a90d 100644 --- a/web-infrastructure/src/main/java/com/zcloud/key/project/persistence/mapper/KeyProjectCameraMapper.java +++ b/web-infrastructure/src/main/java/com/zcloud/key/project/persistence/mapper/KeyProjectCameraMapper.java @@ -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 { + List getCameraListByProjectId(String keyProjectId); + + void deleteByKeyProjectId(String keyProjectId); + + IPage listPage(IPage iPage, Map params); + + IPage listFixedCameraAll(IPage iPage, Map params); + + IPage listMobileCameraAll(IPage iPage, Map params); } diff --git a/web-infrastructure/src/main/java/com/zcloud/key/project/persistence/mapper/KeyProjectMapper.java b/web-infrastructure/src/main/java/com/zcloud/key/project/persistence/mapper/KeyProjectMapper.java index a6aa851..650c661 100644 --- a/web-infrastructure/src/main/java/com/zcloud/key/project/persistence/mapper/KeyProjectMapper.java +++ b/web-infrastructure/src/main/java/com/zcloud/key/project/persistence/mapper/KeyProjectMapper.java @@ -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 { + IPage listPage(IPage iPage, Map params, String menuPerms); + + KeyProjectDO getInfoById(Long id); + + IPage pageConfirm(IPage iPage, Map params, String menuPerms); + + IPage corpStatistics(IPage iPage, Map params); + + IPage keyProjectStatistics(IPage iPage, Map params); + + IPage xgfCorpStatistics(IPage iPage, Map params); } diff --git a/web-infrastructure/src/main/java/com/zcloud/key/project/persistence/repository/KeyProjectCameraRepository.java b/web-infrastructure/src/main/java/com/zcloud/key/project/persistence/repository/KeyProjectCameraRepository.java index 6799818..5b84627 100644 --- a/web-infrastructure/src/main/java/com/zcloud/key/project/persistence/repository/KeyProjectCameraRepository.java +++ b/web-infrastructure/src/main/java/com/zcloud/key/project/persistence/repository/KeyProjectCameraRepository.java @@ -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 { PageResponse listPage(Map params); + + List getCameraList(List keyProjectIdList); + + List getCameraListByProjectId(String keyProjectId); + + void deleteByKeyProjectId(String keyProjectId); + + PageResponse listFixedCameraAll(Map params); + + PageResponse listMobileCameraAll(Map params); } diff --git a/web-infrastructure/src/main/java/com/zcloud/key/project/persistence/repository/KeyProjectRepository.java b/web-infrastructure/src/main/java/com/zcloud/key/project/persistence/repository/KeyProjectRepository.java index 6638db7..c8a7385 100644 --- a/web-infrastructure/src/main/java/com/zcloud/key/project/persistence/repository/KeyProjectRepository.java +++ b/web-infrastructure/src/main/java/com/zcloud/key/project/persistence/repository/KeyProjectRepository.java @@ -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 { PageResponse listPage(Map params); + + KeyProjectDO getInfoById(Long id); + + PageResponse pageConfirm(Map params); + + PageResponse corpStatistics(Map params); + + PageResponse keyProjectStatistics(Map params); + + PageResponse xgfCorpStatistics(Map params); } diff --git a/web-infrastructure/src/main/java/com/zcloud/key/project/persistence/repository/impl/KeyProjectCameraRepositoryImpl.java b/web-infrastructure/src/main/java/com/zcloud/key/project/persistence/repository/impl/KeyProjectCameraRepositoryImpl.java index 02709ab..891b0a9 100644 --- a/web-infrastructure/src/main/java/com/zcloud/key/project/persistence/repository/impl/KeyProjectCameraRepositoryImpl.java +++ b/web-infrastructure/src/main/java/com/zcloud/key/project/persistence/repository/impl/KeyProjectCameraRepositoryImpl.java @@ -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 listPage(Map params) { IPage iPage = new Query().getPage(params); + IPage result = keyProjectCameraMapper.listPage(iPage, params); + return PageHelper.pageToResponse(result, result.getRecords()); + } + + @Override + public List getCameraList(List keyProjectIdList) { QueryWrapper queryWrapper = new QueryWrapper<>(); - queryWrapper = PageQueryHelper.createPageQueryWrapper(queryWrapper, params); - queryWrapper.orderByDesc("create_time"); - IPage result = keyProjectCameraMapper.selectPage(iPage, queryWrapper); + queryWrapper.in("key_project_id", keyProjectIdList); + return keyProjectCameraMapper.selectList(queryWrapper); + } + + @Override + public List getCameraListByProjectId(String keyProjectId) { + return keyProjectCameraMapper.getCameraListByProjectId(keyProjectId); + } + + @Override + public void deleteByKeyProjectId(String keyProjectId) { + keyProjectCameraMapper.deleteByKeyProjectId(keyProjectId); + } + + @Override + public PageResponse listFixedCameraAll(Map params) { + IPage iPage = new Query().getPage(params); + IPage result = keyProjectCameraMapper.listFixedCameraAll(iPage, params); + return PageHelper.pageToResponse(result, result.getRecords()); + } + + @Override + public PageResponse listMobileCameraAll(Map params) { + IPage iPage = new Query().getPage(params); + IPage result = keyProjectCameraMapper.listMobileCameraAll(iPage, params); return PageHelper.pageToResponse(result, result.getRecords()); } } diff --git a/web-infrastructure/src/main/java/com/zcloud/key/project/persistence/repository/impl/KeyProjectRepositoryImpl.java b/web-infrastructure/src/main/java/com/zcloud/key/project/persistence/repository/impl/KeyProjectRepositoryImpl.java index 176b23d..90c7ecf 100644 --- a/web-infrastructure/src/main/java/com/zcloud/key/project/persistence/repository/impl/KeyProjectRepositoryImpl.java +++ b/web-infrastructure/src/main/java/com/zcloud/key/project/persistence/repository/impl/KeyProjectRepositoryImpl.java @@ -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 listPage(Map params) { IPage iPage = new Query().getPage(params); - QueryWrapper queryWrapper = new QueryWrapper<>(); - queryWrapper = PageQueryHelper.createPageQueryWrapper(queryWrapper, params); - queryWrapper.orderByDesc("create_time"); - IPage result = keyProjectMapper.selectPage(iPage, queryWrapper); + String menuPerms = ""; +// if (!org.springframework.util.ObjectUtils.isEmpty(params.get("menuPath"))){ +// menuPerms = MenuEnum.getMenuKeyByPath(params.get("menuPath").toString()); +// } + IPage result = keyProjectMapper.listPage(iPage, params,menuPerms); + return PageHelper.pageToResponse(result, result.getRecords()); + } + + @Override + public PageResponse pageConfirm(Map params) { + IPage iPage = new Query().getPage(params); + String menuPerms = ""; +// if (!org.springframework.util.ObjectUtils.isEmpty(params.get("menuPath"))){ +// menuPerms = MenuEnum.getMenuKeyByPath(params.get("menuPath").toString()); +// } + IPage 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 corpStatistics(Map params) { + IPage iPage = new Query().getPage(params); + IPage result = keyProjectMapper.corpStatistics(iPage, params); + return PageHelper.pageToResponse(result, result.getRecords()); + } + + @Override + public PageResponse keyProjectStatistics(Map params) { + IPage iPage = new Query().getPage(params); + IPage result = keyProjectMapper.keyProjectStatistics(iPage, params); + return PageHelper.pageToResponse(result, result.getRecords()); + } + + @Override + public PageResponse xgfCorpStatistics(Map params) { + IPage iPage = new Query().getPage(params); + IPage result = keyProjectMapper.xgfCorpStatistics(iPage, params); return PageHelper.pageToResponse(result, result.getRecords()); } } diff --git a/web-infrastructure/src/main/resources/mapper/KeyProjectCameraMapper.xml b/web-infrastructure/src/main/resources/mapper/KeyProjectCameraMapper.xml index 608d1f5..9386a13 100644 --- a/web-infrastructure/src/main/resources/mapper/KeyProjectCameraMapper.xml +++ b/web-infrastructure/src/main/resources/mapper/KeyProjectCameraMapper.xml @@ -3,5 +3,75 @@ "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> + + + + + UPDATE key_project_camera + SET delete_enum = 'TRUE' + WHERE key_project_id = #{keyProjectId} + + + + + + + diff --git a/web-infrastructure/src/main/resources/mapper/KeyProjectMapper.xml b/web-infrastructure/src/main/resources/mapper/KeyProjectMapper.xml index 4a6a5c1..4e170e6 100644 --- a/web-infrastructure/src/main/resources/mapper/KeyProjectMapper.xml +++ b/web-infrastructure/src/main/resources/mapper/KeyProjectMapper.xml @@ -3,5 +3,261 @@ "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> + + + + + + + + + +