diff --git a/web-adapter/src/main/java/com/zcloud/primeport/web/EnclosedAreaController.java b/web-adapter/src/main/java/com/zcloud/primeport/web/EnclosedAreaController.java new file mode 100644 index 0000000..7affbcc --- /dev/null +++ b/web-adapter/src/main/java/com/zcloud/primeport/web/EnclosedAreaController.java @@ -0,0 +1,91 @@ +package com.zcloud.primeport.web; + + +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.primeport.api.EnclosedAreaServiceI; +import com.zcloud.primeport.dto.EnclosedAreaAddCmd; +import com.zcloud.primeport.dto.EnclosedAreaPageQry; +import com.zcloud.primeport.dto.EnclosedAreaUpdateCmd; +import com.zcloud.primeport.dto.clientobject.EnclosedAreaCO; +import com.zcloud.primeport.dto.clientobject.EnclosedAreaTreeCO; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.AllArgsConstructor; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import java.util.ArrayList; + +/** + * web-adapter + * + * @Author fangjiakai + * @Date 2025-12-12 16:49:31 + */ +@Api(tags = "封闭区域") +@RequestMapping("/${application.gateway}/enclosedArea") +@RestController +@AllArgsConstructor +public class EnclosedAreaController { + private final EnclosedAreaServiceI enclosedAreaService; + + @ApiOperation("新增") + @PostMapping("/save") + public SingleResponse add(@Validated @RequestBody EnclosedAreaAddCmd cmd) { + SSOUser ssoUser = AuthContext.getCurrentUser(); + cmd.setCorpinfoId(ssoUser.getTenantId()); + cmd.setCorpinfoName(ssoUser.getTenantName()); + return enclosedAreaService.add(cmd); + } + + @ApiOperation("分页") + @PostMapping("/list") + public PageResponse page(@RequestBody EnclosedAreaPageQry qry) { + return enclosedAreaService.listPage(qry); + } + + @ApiOperation("所有数据") + @GetMapping("/listAll") + public MultiResponse listAll() { + return MultiResponse.of(new ArrayList()); + } + + @ApiOperation("所有数据") + @GetMapping("/listAllTree") + public MultiResponse listAllTree() { + return MultiResponse.of(enclosedAreaService.listAllTree()); + } + + @ApiOperation("详情") + @GetMapping("/{id}") + public SingleResponse getInfoById(@PathVariable("id") Long id) { + return SingleResponse.of(enclosedAreaService.queryById(id)); + } + + @ApiOperation("删除") + @DeleteMapping("/{id}") + public Response remove(@PathVariable("id") Long id) { + enclosedAreaService.remove(id); + return SingleResponse.buildSuccess(); + } + + @ApiOperation("删除多个") + @DeleteMapping("/ids") + public Response removeBatch(@RequestParam Long[] ids) { + enclosedAreaService.removeBatch(ids); + return SingleResponse.buildSuccess(); + } + + @ApiOperation("修改") + @PutMapping("/edit") + public SingleResponse edit(@Validated @RequestBody EnclosedAreaUpdateCmd enclosedAreaUpdateCmd) { + enclosedAreaService.edit(enclosedAreaUpdateCmd); + return SingleResponse.buildSuccess(); + } +} + diff --git a/web-adapter/src/main/java/com/zcloud/primeport/web/MkmjAreaController.java b/web-adapter/src/main/java/com/zcloud/primeport/web/MkmjAreaController.java index 2e62607..95fb062 100644 --- a/web-adapter/src/main/java/com/zcloud/primeport/web/MkmjAreaController.java +++ b/web-adapter/src/main/java/com/zcloud/primeport/web/MkmjAreaController.java @@ -79,7 +79,6 @@ public class MkmjAreaController { mkmjAreaService.removeBatch(ids); return SingleResponse.buildSuccess(); } - @ApiOperation("修改") @PutMapping("/edit") public SingleResponse edit(@Validated @RequestBody MkmjAreaUpdateCmd mkmjAreaUpdateCmd) { diff --git a/web-app/src/main/java/com/zcloud/primeport/command/EnclosedAreaAddExe.java b/web-app/src/main/java/com/zcloud/primeport/command/EnclosedAreaAddExe.java new file mode 100644 index 0000000..969a3b4 --- /dev/null +++ b/web-app/src/main/java/com/zcloud/primeport/command/EnclosedAreaAddExe.java @@ -0,0 +1,40 @@ +package com.zcloud.primeport.command; + +import com.alibaba.cola.exception.BizException; +import com.zcloud.primeport.domain.gateway.EnclosedAreaGateway; +import com.zcloud.primeport.domain.model.EnclosedAreaE; +import com.zcloud.primeport.dto.EnclosedAreaAddCmd; +import lombok.AllArgsConstructor; +import org.springframework.beans.BeanUtils; +import org.springframework.stereotype.Component; +import org.springframework.transaction.annotation.Transactional; + + +/** + * web-app + * + * @Author fangjiakai + * @Date 2025-12-12 16:49:30 + */ +@Component +@AllArgsConstructor +public class EnclosedAreaAddExe { + private final EnclosedAreaGateway enclosedAreaGateway; + + @Transactional(rollbackFor = Exception.class) + public boolean execute(EnclosedAreaAddCmd cmd) { + EnclosedAreaE enclosedAreaE = new EnclosedAreaE(); + BeanUtils.copyProperties(cmd, enclosedAreaE); + boolean res = false; + try { + res = enclosedAreaGateway.add(enclosedAreaE); + } catch (Exception e) { + throw new RuntimeException(e); + } + if (!res) { + throw new BizException("保存失败"); + } + return true; + } +} + diff --git a/web-app/src/main/java/com/zcloud/primeport/command/EnclosedAreaRemoveExe.java b/web-app/src/main/java/com/zcloud/primeport/command/EnclosedAreaRemoveExe.java new file mode 100644 index 0000000..8372f7e --- /dev/null +++ b/web-app/src/main/java/com/zcloud/primeport/command/EnclosedAreaRemoveExe.java @@ -0,0 +1,39 @@ +package com.zcloud.primeport.command; + +import com.alibaba.cola.exception.BizException; +import com.zcloud.primeport.domain.gateway.EnclosedAreaGateway; +import lombok.AllArgsConstructor; +import org.springframework.stereotype.Component; +import org.springframework.transaction.annotation.Transactional; + + +/** + * web-app + * + * @Author fangjiakai + * @Date 2025-12-12 16:49:31 + */ +@Component +@AllArgsConstructor +public class EnclosedAreaRemoveExe { + private final EnclosedAreaGateway enclosedAreaGateway; + + @Transactional(rollbackFor = Exception.class) + public boolean execute(Long id) { + boolean res = enclosedAreaGateway.deletedEnclosedAreaById(id); + if (!res) { + throw new BizException("删除失败"); + } + return true; + } + + @Transactional(rollbackFor = Exception.class) + public boolean execute(Long[] ids) { + boolean res = enclosedAreaGateway.deletedEnclosedAreaByIds(ids); + if (!res) { + throw new BizException("删除失败"); + } + return true; + } +} + diff --git a/web-app/src/main/java/com/zcloud/primeport/command/EnclosedAreaUpdateExe.java b/web-app/src/main/java/com/zcloud/primeport/command/EnclosedAreaUpdateExe.java new file mode 100644 index 0000000..a1c1fb3 --- /dev/null +++ b/web-app/src/main/java/com/zcloud/primeport/command/EnclosedAreaUpdateExe.java @@ -0,0 +1,34 @@ +package com.zcloud.primeport.command; + +import com.alibaba.cola.exception.BizException; +import com.zcloud.primeport.domain.gateway.EnclosedAreaGateway; +import com.zcloud.primeport.domain.model.EnclosedAreaE; +import com.zcloud.primeport.dto.EnclosedAreaUpdateCmd; +import lombok.AllArgsConstructor; +import org.springframework.beans.BeanUtils; +import org.springframework.stereotype.Component; +import org.springframework.transaction.annotation.Transactional; + + +/** + * web-app + * + * @Author fangjiakai + * @Date 2025-12-12 16:49:32 + */ +@Component +@AllArgsConstructor +public class EnclosedAreaUpdateExe { + private final EnclosedAreaGateway enclosedAreaGateway; + + @Transactional(rollbackFor = Exception.class) + public void execute(EnclosedAreaUpdateCmd enclosedAreaUpdateCmd) { + EnclosedAreaE enclosedAreaE = new EnclosedAreaE(); + BeanUtils.copyProperties(enclosedAreaUpdateCmd, enclosedAreaE); + boolean res = enclosedAreaGateway.update(enclosedAreaE); + if (!res) { + throw new BizException("修改失败"); + } + } +} + diff --git a/web-app/src/main/java/com/zcloud/primeport/command/convertor/EnclosedAreaCoConvertor.java b/web-app/src/main/java/com/zcloud/primeport/command/convertor/EnclosedAreaCoConvertor.java new file mode 100644 index 0000000..ee9cf6b --- /dev/null +++ b/web-app/src/main/java/com/zcloud/primeport/command/convertor/EnclosedAreaCoConvertor.java @@ -0,0 +1,31 @@ +package com.zcloud.primeport.command.convertor; + +import com.zcloud.primeport.dto.clientobject.EnclosedAreaCO; +import com.zcloud.primeport.dto.clientobject.EnclosedAreaTreeCO; +import com.zcloud.primeport.persistence.dataobject.EnclosedAreaDO; +import org.mapstruct.Mapper; + +import java.util.List; + + +/** + * web-app + * + * @Author fangjiakai + * @Date 2025-12-12 16:49:31 + */ +@Mapper(componentModel = "spring") +public interface EnclosedAreaCoConvertor { + /** + * @param enclosedAreaDOs + * @return + */ + List converDOsToCOs(List enclosedAreaDOs); + + EnclosedAreaCO converDOToCO(EnclosedAreaDO enclosedAreaDO); + + List converDOToTreeCOs(List enclosedAreaDOs); + + EnclosedAreaTreeCO converDOToTreeCO(EnclosedAreaDO enclosedAreaDO); +} + diff --git a/web-app/src/main/java/com/zcloud/primeport/command/query/EnclosedAreaQueryExe.java b/web-app/src/main/java/com/zcloud/primeport/command/query/EnclosedAreaQueryExe.java new file mode 100644 index 0000000..d083c19 --- /dev/null +++ b/web-app/src/main/java/com/zcloud/primeport/command/query/EnclosedAreaQueryExe.java @@ -0,0 +1,85 @@ +package com.zcloud.primeport.command.query; + +import cn.hutool.core.util.ObjectUtil; +import com.alibaba.cola.dto.PageResponse; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.zcloud.gbscommon.utils.PageQueryHelper; +import com.zcloud.gbscommon.utils.Tools; +import com.zcloud.primeport.command.convertor.EnclosedAreaCoConvertor; +import com.zcloud.primeport.dto.EnclosedAreaPageQry; +import com.zcloud.primeport.dto.clientobject.EnclosedAreaCO; +import com.zcloud.primeport.dto.clientobject.EnclosedAreaTreeCO; +import com.zcloud.primeport.persistence.dataobject.EnclosedAreaDO; +import com.zcloud.primeport.persistence.dataobject.MkmjAreaDO; +import com.zcloud.primeport.persistence.repository.EnclosedAreaRepository; +import com.zcloud.primeport.persistence.repository.MkmjAreaRepository; +import lombok.AllArgsConstructor; +import org.springframework.stereotype.Component; + +import java.util.Arrays; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + + +/** + * web-app + * + * @Author fangjiakai + * @Date 2025-12-12 16:49:31 + */ +@Component +@AllArgsConstructor +public class EnclosedAreaQueryExe { + private final EnclosedAreaRepository enclosedAreaRepository; + private final EnclosedAreaCoConvertor enclosedAreaCoConvertor; + private final MkmjAreaRepository mkmjAreaRepository; + + /** + * 根据id查询 + * + * @param id + * @return + */ + public EnclosedAreaCO queryById(Long id) { + return enclosedAreaCoConvertor.converDOToCO(enclosedAreaRepository.getById(id)); + } + + /** + * 分页 + * + * @param enclosedAreaPageQry + * @return + */ + public PageResponse execute(EnclosedAreaPageQry enclosedAreaPageQry) { + Map params = PageQueryHelper.toHashMap(enclosedAreaPageQry); + PageResponse pageResponse = enclosedAreaRepository.listPage(params); + List enclosedAreaCOS = enclosedAreaCoConvertor.converDOsToCOs(pageResponse.getData()); + if(ObjectUtil.isNotEmpty(enclosedAreaCOS)){ + List ids = enclosedAreaCOS.stream().map(EnclosedAreaCO::getId).collect(Collectors.toList()); + List mkmjAreaDOs = mkmjAreaRepository.list(new LambdaQueryWrapper() + .eq(MkmjAreaDO::getDeleteEnum,"FALSE") + .or(w -> w.in(MkmjAreaDO::getInDirectionArea, ids) + .in(MkmjAreaDO::getOutDirectionArea, ids))); + List children = enclosedAreaRepository.list(new QueryWrapper().lambda() + .eq(EnclosedAreaDO::getDeleteEnum, "FALSE") + .in(EnclosedAreaDO::getParentId, ids)); + + enclosedAreaCOS.forEach(enclosedAreaCO -> { + enclosedAreaCO.setUseCount(mkmjAreaDOs.stream().filter(mkmjAreaDO -> mkmjAreaDO.getInDirectionArea().equals(enclosedAreaCO.getId()) || mkmjAreaDO.getOutDirectionArea().equals(enclosedAreaCO.getId())).count()); + enclosedAreaCO.setChildCount(children.stream().filter(child -> child.getParentId().equals(enclosedAreaCO.getId())).count()); + }); + } + return PageResponse.of(enclosedAreaCOS, pageResponse.getTotalCount(), pageResponse.getPageSize(), pageResponse.getPageIndex()); + } + + public List listAllTree() { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(EnclosedAreaDO::getDeleteEnum, "FALSE"); + List enclosedAreaDOs = enclosedAreaRepository.list(queryWrapper); + List enclosedAreaTreeCOS = enclosedAreaCoConvertor.converDOToTreeCOs(enclosedAreaDOs); + return Tools.buildEntityTree(enclosedAreaTreeCOS, "id", "parentId", "children"); + } +} + diff --git a/web-app/src/main/java/com/zcloud/primeport/service/EnclosedAreaServiceImpl.java b/web-app/src/main/java/com/zcloud/primeport/service/EnclosedAreaServiceImpl.java new file mode 100644 index 0000000..ae54155 --- /dev/null +++ b/web-app/src/main/java/com/zcloud/primeport/service/EnclosedAreaServiceImpl.java @@ -0,0 +1,72 @@ +package com.zcloud.primeport.service; + +import com.alibaba.cola.dto.PageResponse; +import com.alibaba.cola.dto.SingleResponse; +import com.zcloud.primeport.api.EnclosedAreaServiceI; +import com.zcloud.primeport.command.EnclosedAreaAddExe; +import com.zcloud.primeport.command.EnclosedAreaRemoveExe; +import com.zcloud.primeport.command.EnclosedAreaUpdateExe; +import com.zcloud.primeport.command.query.EnclosedAreaQueryExe; +import com.zcloud.primeport.dto.EnclosedAreaAddCmd; +import com.zcloud.primeport.dto.EnclosedAreaPageQry; +import com.zcloud.primeport.dto.EnclosedAreaUpdateCmd; +import com.zcloud.primeport.dto.clientobject.EnclosedAreaCO; +import com.zcloud.primeport.dto.clientobject.EnclosedAreaTreeCO; +import lombok.AllArgsConstructor; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * web-app + * + * @Author fangjiakai + * @Date 2025-12-12 16:49:32 + */ +@Service +@AllArgsConstructor +public class EnclosedAreaServiceImpl implements EnclosedAreaServiceI { + private final EnclosedAreaAddExe enclosedAreaAddExe; + private final EnclosedAreaUpdateExe enclosedAreaUpdateExe; + private final EnclosedAreaRemoveExe enclosedAreaRemoveExe; + private final EnclosedAreaQueryExe enclosedAreaQueryExe; + + @Override + public EnclosedAreaCO queryById(Long id) { + return enclosedAreaQueryExe.queryById(id); + } + + @Override + public PageResponse listPage(EnclosedAreaPageQry qry) { + + return enclosedAreaQueryExe.execute(qry); + } + + @Override + public SingleResponse add(EnclosedAreaAddCmd cmd) { + + enclosedAreaAddExe.execute(cmd); + return SingleResponse.buildSuccess(); + } + + @Override + public void edit(EnclosedAreaUpdateCmd enclosedAreaUpdateCmd) { + enclosedAreaUpdateExe.execute(enclosedAreaUpdateCmd); + } + + @Override + public void remove(Long id) { + enclosedAreaRemoveExe.execute(id); + } + + @Override + public void removeBatch(Long[] ids) { + enclosedAreaRemoveExe.execute(ids); + } + + @Override + public List listAllTree(){ + return enclosedAreaQueryExe.listAllTree(); + } +} + diff --git a/web-client/src/main/java/com/zcloud/primeport/api/EnclosedAreaServiceI.java b/web-client/src/main/java/com/zcloud/primeport/api/EnclosedAreaServiceI.java new file mode 100644 index 0000000..5c630e9 --- /dev/null +++ b/web-client/src/main/java/com/zcloud/primeport/api/EnclosedAreaServiceI.java @@ -0,0 +1,34 @@ +package com.zcloud.primeport.api; + +import com.alibaba.cola.dto.PageResponse; +import com.alibaba.cola.dto.SingleResponse; +import com.zcloud.primeport.dto.EnclosedAreaAddCmd; +import com.zcloud.primeport.dto.EnclosedAreaPageQry; +import com.zcloud.primeport.dto.EnclosedAreaUpdateCmd; +import com.zcloud.primeport.dto.clientobject.EnclosedAreaCO; +import com.zcloud.primeport.dto.clientobject.EnclosedAreaTreeCO; + +import java.util.List; + +/** + * web-client + * + * @Author fangjiakai + * @Date 2025-12-12 16:49:31 + */ +public interface EnclosedAreaServiceI { + EnclosedAreaCO queryById(Long id); + + PageResponse listPage(EnclosedAreaPageQry qry); + + SingleResponse add(EnclosedAreaAddCmd cmd); + + void edit(EnclosedAreaUpdateCmd cmd); + + void remove(Long id); + + void removeBatch(Long[] ids); + + List listAllTree(); +} + diff --git a/web-client/src/main/java/com/zcloud/primeport/dto/EnclosedAreaAddCmd.java b/web-client/src/main/java/com/zcloud/primeport/dto/EnclosedAreaAddCmd.java new file mode 100644 index 0000000..56a5b29 --- /dev/null +++ b/web-client/src/main/java/com/zcloud/primeport/dto/EnclosedAreaAddCmd.java @@ -0,0 +1,61 @@ +package com.zcloud.primeport.dto; + +import com.alibaba.cola.dto.Command; +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; + +/** + * web-client + * + * @Author fangjiakai + * @Date 2025-12-12 16:49:30 + */ +@EqualsAndHashCode(callSuper = true) +@Data +@NoArgsConstructor +@AllArgsConstructor +public class EnclosedAreaAddCmd extends Command { + @ApiModelProperty(value = "父级id", name = "parentId", required = true) + @NotNull(message = "父级id不能为空") + private Long parentId; + + @ApiModelProperty(value = "父级名称", name = "parentName", required = true) + @NotEmpty(message = "父级名称不能为空") + private String parentName; + + @ApiModelProperty(value = "封闭区域名称", name = "name", required = true) + @NotEmpty(message = "封闭区域名称不能为空") + private String name; + + @ApiModelProperty(value = "封闭区域类型", name = "type", required = true) + @NotEmpty(message = "封闭区域类型不能为空") + private String type; + + @ApiModelProperty(value = "封闭区域类型", name = "typeName", required = true) + @NotEmpty(message = "封闭区域类型不能为空") + private String typeName; + + @ApiModelProperty(value = "管辖单位", name = "corpinfoId", required = true) + @NotNull(message = "管辖单位不能为空") + private Long corpinfoId; + + @ApiModelProperty(value = "管辖单位", name = "corpinfoName", required = true) + @NotEmpty(message = "管辖单位不能为空") + private String corpinfoName; + + @ApiModelProperty(value = "经度", name = "longitude", required = true) + @NotEmpty(message = "经度不能为空") + private String longitude; + + @ApiModelProperty(value = "纬度", name = "latitude", required = true) + @NotEmpty(message = "纬度不能为空") + private String latitude; + +} + diff --git a/web-client/src/main/java/com/zcloud/primeport/dto/EnclosedAreaPageQry.java b/web-client/src/main/java/com/zcloud/primeport/dto/EnclosedAreaPageQry.java new file mode 100644 index 0000000..d1a0ff7 --- /dev/null +++ b/web-client/src/main/java/com/zcloud/primeport/dto/EnclosedAreaPageQry.java @@ -0,0 +1,31 @@ +package com.zcloud.primeport.dto; + +import com.alibaba.cola.dto.PageQuery; +import lombok.Data; + + +/** + * web-client + * + * @Author fangjiakai + * @Date 2025-12-12 16:49:31 + */ +@Data +public class EnclosedAreaPageQry extends PageQuery { + + /** + * 查询条件操作前缀,支持以下几种数据库查询操作: + * - `like`: 模糊匹配查询,对应SQL的LIKE操作符 + * - `eq`: 等值查询,对应SQL的=操作符 + * - `gt`: 大于比较查询 + * - `lt`: 小于比较查询 + * - `ge`: 大于等于比较查询 + * - `le`: 小于等于比较查询 + * - `ne`: 不等比较查询,对应SQL的!=操作符 + */ + private Long eqParentId; + private String likeName; + private String eqType; + private Long eqCorpinfoId; +} + diff --git a/web-client/src/main/java/com/zcloud/primeport/dto/EnclosedAreaUpdateCmd.java b/web-client/src/main/java/com/zcloud/primeport/dto/EnclosedAreaUpdateCmd.java new file mode 100644 index 0000000..d4c83ca --- /dev/null +++ b/web-client/src/main/java/com/zcloud/primeport/dto/EnclosedAreaUpdateCmd.java @@ -0,0 +1,55 @@ +package com.zcloud.primeport.dto; + +import com.alibaba.cola.dto.Command; +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; + +/** + * web-client + * + * @Author fangjiakai + * @Date 2025-12-12 16:49:32 + */ +@EqualsAndHashCode(callSuper = true) +@Data +@NoArgsConstructor +@AllArgsConstructor +public class EnclosedAreaUpdateCmd extends Command { + @ApiModelProperty(value = "主键", name = "id", required = true) + @NotNull(message = "主键不能为空") + private Long id; + @ApiModelProperty(value = "父级id", name = "parentId", required = true) + @NotNull(message = "父级id不能为空") + private Long parentId; + @ApiModelProperty(value = "父级名称", name = "parentName", required = true) + @NotEmpty(message = "父级名称不能为空") + private String parentName; + @ApiModelProperty(value = "封闭区域名称", name = "name", required = true) + @NotEmpty(message = "封闭区域名称不能为空") + private String name; + @ApiModelProperty(value = "封闭区域类型", name = "type", required = true) + @NotEmpty(message = "封闭区域类型不能为空") + private String type; + @ApiModelProperty(value = "封闭区域类型", name = "typeName", required = true) + @NotEmpty(message = "封闭区域类型不能为空") + private String typeName; + @ApiModelProperty(value = "管辖单位", name = "corpinfoId", required = true) + @NotNull(message = "管辖单位不能为空") + private Long corpinfoId; + @ApiModelProperty(value = "管辖单位", name = "corpinfoName", required = true) + @NotEmpty(message = "管辖单位不能为空") + private String corpinfoName; + @ApiModelProperty(value = "经度", name = "longitude", required = true) + @NotEmpty(message = "经度不能为空") + private String longitude; + @ApiModelProperty(value = "纬度", name = "latitude", required = true) + @NotEmpty(message = "纬度不能为空") + private String latitude; +} + diff --git a/web-client/src/main/java/com/zcloud/primeport/dto/clientobject/EnclosedAreaCO.java b/web-client/src/main/java/com/zcloud/primeport/dto/clientobject/EnclosedAreaCO.java new file mode 100644 index 0000000..e6fe769 --- /dev/null +++ b/web-client/src/main/java/com/zcloud/primeport/dto/clientobject/EnclosedAreaCO.java @@ -0,0 +1,90 @@ +package com.zcloud.primeport.dto.clientobject; + +import com.alibaba.cola.dto.ClientObject; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * web-client + * + * @Author fangjiakai + * @Date 2025-12-12 16:49:31 + */ +@Data +public class EnclosedAreaCO extends ClientObject { + //主键 + @ApiModelProperty(value = "主键") + private Long id; + //父级id + @ApiModelProperty(value = "父级id") + private Long parentId; + //父级名称 + @ApiModelProperty(value = "父级名称") + private String parentName; + //封闭区域名称 + @ApiModelProperty(value = "封闭区域名称") + private String name; + //封闭区域类型 + @ApiModelProperty(value = "封闭区域类型") + private String type; + //封闭区域类型 + @ApiModelProperty(value = "封闭区域类型") + private String typeName; + //管辖单位 + @ApiModelProperty(value = "管辖单位") + private Long corpinfoId; + //管辖单位 + @ApiModelProperty(value = "管辖单位") + private String corpinfoName; + //经度 + @ApiModelProperty(value = "经度") + private String longitude; + //纬度 + @ApiModelProperty(value = "纬度") + private String latitude; + // 子集数 + @ApiModelProperty(value = "子集数") + private Long childCount; + // 使用数 + @ApiModelProperty(value = "使用数") + private Long useCount; + + + + + //删除标识true false + @ApiModelProperty(value = "删除标识true false") + private String deleteEnum; + //备注 + @ApiModelProperty(value = "备注") + private String remarks; + //创建人姓名 + @ApiModelProperty(value = "创建人姓名") + private String createName; + //更新人姓名 + @ApiModelProperty(value = "更新人姓名") + private String updateName; + //租户id + @ApiModelProperty(value = "租户id") + private Long tenantId; + //单位id + @ApiModelProperty(value = "单位id") + private Long orgId; + //版本 + @ApiModelProperty(value = "版本") + private String version; + //创建时间 + @ApiModelProperty(value = "创建时间") + private String createTime; + //修改时间 + @ApiModelProperty(value = "修改时间") + private String updateTime; + //创建人id + @ApiModelProperty(value = "创建人id") + private Long createId; + //修改人id + @ApiModelProperty(value = "修改人id") + private Long updateId; + private String env; +} + diff --git a/web-client/src/main/java/com/zcloud/primeport/dto/clientobject/EnclosedAreaTreeCO.java b/web-client/src/main/java/com/zcloud/primeport/dto/clientobject/EnclosedAreaTreeCO.java new file mode 100644 index 0000000..286e591 --- /dev/null +++ b/web-client/src/main/java/com/zcloud/primeport/dto/clientobject/EnclosedAreaTreeCO.java @@ -0,0 +1,26 @@ +package com.zcloud.primeport.dto.clientobject; + +import com.alibaba.cola.dto.ClientObject; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +/** + * web-client + * + * @Author fangjiakai + * @Date 2025-12-12 16:49:31 + */ +@Data +public class EnclosedAreaTreeCO extends ClientObject { + //主键 + @ApiModelProperty(value = "主键") + private Long id; + //封闭区域名称 + @ApiModelProperty(value = "封闭区域名称") + private String name; + @ApiModelProperty(value = "子节点") + private List children; +} + diff --git a/web-client/src/main/java/com/zcloud/primeport/dto/clientobject/MkmjAreaCO.java b/web-client/src/main/java/com/zcloud/primeport/dto/clientobject/MkmjAreaCO.java index 9d4ec87..694e31a 100644 --- a/web-client/src/main/java/com/zcloud/primeport/dto/clientobject/MkmjAreaCO.java +++ b/web-client/src/main/java/com/zcloud/primeport/dto/clientobject/MkmjAreaCO.java @@ -40,6 +40,12 @@ public class MkmjAreaCO extends ClientObject { //区域状态 0-停用 1-正常 2-暂时关闭 @ApiModelProperty(value = "区域状态 0-停用 1-正常 2-暂时关闭") private Integer areaStatus; + //入方向区域 + @ApiModelProperty(value = "入方向区域") + private Long inDirectionArea; + //出方向区域 + @ApiModelProperty(value = "出方向区域") + private Long outDirectionArea; //企业id @ApiModelProperty(value = "企业id") private Long corpinfoId; diff --git a/web-domain/src/main/java/com/zcloud/primeport/domain/gateway/EnclosedAreaGateway.java b/web-domain/src/main/java/com/zcloud/primeport/domain/gateway/EnclosedAreaGateway.java new file mode 100644 index 0000000..bb67546 --- /dev/null +++ b/web-domain/src/main/java/com/zcloud/primeport/domain/gateway/EnclosedAreaGateway.java @@ -0,0 +1,30 @@ +package com.zcloud.primeport.domain.gateway; + +import com.zcloud.primeport.domain.model.EnclosedAreaE; + +/** + * web-domain + * + * @Author fangjiakai + * @Date 2025-12-12 16:49:31 + */ +public interface EnclosedAreaGateway { + + /** + * 新增 + */ + Boolean add(EnclosedAreaE enclosedAreaE); + + /** + * 修改 + */ + Boolean update(EnclosedAreaE enclosedAreaE); + + /** + * 删除 + */ + Boolean deletedEnclosedAreaById(Long id); + + Boolean deletedEnclosedAreaByIds(Long[] id); +} + diff --git a/web-domain/src/main/java/com/zcloud/primeport/domain/model/EnclosedAreaE.java b/web-domain/src/main/java/com/zcloud/primeport/domain/model/EnclosedAreaE.java new file mode 100644 index 0000000..2c8a290 --- /dev/null +++ b/web-domain/src/main/java/com/zcloud/primeport/domain/model/EnclosedAreaE.java @@ -0,0 +1,33 @@ +package com.zcloud.primeport.domain.model; + +import com.jjb.saas.framework.domain.model.BaseE; +import lombok.Data; + +/** + * web-domain + * + * @Author fangjiakai + * @Date 2025-12-12 16:49:31 + */ +@Data +public class EnclosedAreaE extends BaseE { + //父级id + private Long parentId; + //父级名称 + private String parentName; + //封闭区域名称 + private String name; + //封闭区域类型 + private String type; + //封闭区域类型 + private String typeName; + //管辖单位 + private Long corpinfoId; + //管辖单位 + private String corpinfoName; + //经度 + private String longitude; + //纬度 + private String latitude; +} + diff --git a/web-domain/src/main/java/com/zcloud/primeport/domain/model/MkmjAreaE.java b/web-domain/src/main/java/com/zcloud/primeport/domain/model/MkmjAreaE.java index 0e88757..e4abd1d 100644 --- a/web-domain/src/main/java/com/zcloud/primeport/domain/model/MkmjAreaE.java +++ b/web-domain/src/main/java/com/zcloud/primeport/domain/model/MkmjAreaE.java @@ -28,6 +28,10 @@ public class MkmjAreaE extends BaseE { private Integer areaType; //区域状态 0-停用 1-正常 2-暂时关闭 private Integer areaStatus; + //入方向区域 + private Long inDirectionArea; + //出方向区域 + private Long outDirectionArea; //经度 private String longitude; //纬度 diff --git a/web-infrastructure/src/main/java/com/zcloud/primeport/gatewayimpl/EnclosedAreaGatewayImpl.java b/web-infrastructure/src/main/java/com/zcloud/primeport/gatewayimpl/EnclosedAreaGatewayImpl.java new file mode 100644 index 0000000..0da2ec1 --- /dev/null +++ b/web-infrastructure/src/main/java/com/zcloud/primeport/gatewayimpl/EnclosedAreaGatewayImpl.java @@ -0,0 +1,51 @@ +package com.zcloud.primeport.gatewayimpl; + +import com.zcloud.gbscommon.utils.Tools; +import com.zcloud.primeport.domain.gateway.EnclosedAreaGateway; +import com.zcloud.primeport.domain.model.EnclosedAreaE; +import com.zcloud.primeport.persistence.dataobject.EnclosedAreaDO; +import com.zcloud.primeport.persistence.repository.EnclosedAreaRepository; +import lombok.AllArgsConstructor; +import org.springframework.beans.BeanUtils; +import org.springframework.stereotype.Service; + +import java.util.Collections; + +/** + * web-infrastructure + * + * @Author fangjiakai + * @Date 2025-12-12 16:49:31 + */ +@Service +@AllArgsConstructor +public class EnclosedAreaGatewayImpl implements EnclosedAreaGateway { + private final EnclosedAreaRepository enclosedAreaRepository; + + @Override + public Boolean add(EnclosedAreaE enclosedAreaE) { + EnclosedAreaDO d = new EnclosedAreaDO(); + BeanUtils.copyProperties(enclosedAreaE, d); + enclosedAreaRepository.save(d); + return true; + } + + @Override + public Boolean update(EnclosedAreaE enclosedAreaE) { + EnclosedAreaDO d = new EnclosedAreaDO(); + BeanUtils.copyProperties(enclosedAreaE, d); + enclosedAreaRepository.updateById(d); + return true; + } + + @Override + public Boolean deletedEnclosedAreaById(Long id) { + return enclosedAreaRepository.removeById(id); + } + + @Override + public Boolean deletedEnclosedAreaByIds(Long[] ids) { + return enclosedAreaRepository.removeByIds(Collections.singletonList(ids)); + } +} + diff --git a/web-infrastructure/src/main/java/com/zcloud/primeport/persistence/dataobject/EnclosedAreaDO.java b/web-infrastructure/src/main/java/com/zcloud/primeport/persistence/dataobject/EnclosedAreaDO.java new file mode 100644 index 0000000..cef3ad0 --- /dev/null +++ b/web-infrastructure/src/main/java/com/zcloud/primeport/persistence/dataobject/EnclosedAreaDO.java @@ -0,0 +1,50 @@ +package com.zcloud.primeport.persistence.dataobject; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.jjb.saas.framework.repository.basedo.BaseDO; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; + +/** + * web-infrastructure + * + * @Author fangjiakai + * @Date 2025-12-12 16:49:31 + */ +@Data +@TableName("enclosed_area") +@NoArgsConstructor +@EqualsAndHashCode(callSuper = true) +public class EnclosedAreaDO extends BaseDO { + //父级id + @ApiModelProperty(value = "父级id") + private Long parentId; + //父级名称 + @ApiModelProperty(value = "父级名称") + private String parentName; + //封闭区域名称 + @ApiModelProperty(value = "封闭区域名称") + private String name; + //封闭区域类型 + @ApiModelProperty(value = "封闭区域类型") + private String type; + //封闭区域类型 + @ApiModelProperty(value = "封闭区域类型") + private String typeName; + //管辖单位 + @ApiModelProperty(value = "管辖单位") + private Long corpinfoId; + //管辖单位 + @ApiModelProperty(value = "管辖单位") + private String corpinfoName; + //经度 + @ApiModelProperty(value = "经度") + private String longitude; + //纬度 + @ApiModelProperty(value = "纬度") + private String latitude; + +} + diff --git a/web-infrastructure/src/main/java/com/zcloud/primeport/persistence/dataobject/MkmjAreaDO.java b/web-infrastructure/src/main/java/com/zcloud/primeport/persistence/dataobject/MkmjAreaDO.java index d673bc6..42e1457 100644 --- a/web-infrastructure/src/main/java/com/zcloud/primeport/persistence/dataobject/MkmjAreaDO.java +++ b/web-infrastructure/src/main/java/com/zcloud/primeport/persistence/dataobject/MkmjAreaDO.java @@ -1,6 +1,7 @@ package com.zcloud.primeport.persistence.dataobject; import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.jjb.saas.framework.repository.basedo.BaseDO; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -22,7 +23,7 @@ public class MkmjAreaDO extends BaseDO { @ApiModelProperty(value = "业务主键id") private String areaId; //区域名称 - @ApiModelProperty(value = "区域名称") + @ApiModelProperty(value = "口门名称") private String areaName; //区域范围 @ApiModelProperty(value = "区域范围") @@ -42,6 +43,12 @@ public class MkmjAreaDO extends BaseDO { //区域状态 0-停用 1-正常 2-暂时关闭 @ApiModelProperty(value = "区域状态 0-停用 1-正常 2-暂时关闭") private Integer areaStatus; + //入方向区域 + @ApiModelProperty(value = "入方向区域") + private Long inDirectionArea; + //出方向区域 + @ApiModelProperty(value = "出方向区域") + private Long outDirectionArea; //企业id @ApiModelProperty(value = "企业id") private Long corpinfoId; diff --git a/web-infrastructure/src/main/java/com/zcloud/primeport/persistence/mapper/EnclosedAreaMapper.java b/web-infrastructure/src/main/java/com/zcloud/primeport/persistence/mapper/EnclosedAreaMapper.java new file mode 100644 index 0000000..2798581 --- /dev/null +++ b/web-infrastructure/src/main/java/com/zcloud/primeport/persistence/mapper/EnclosedAreaMapper.java @@ -0,0 +1,17 @@ +package com.zcloud.primeport.persistence.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.zcloud.primeport.persistence.dataobject.EnclosedAreaDO; +import org.apache.ibatis.annotations.Mapper; + +/** + * web-infrastructure + * + * @Author fangjiakai + * @Date 2025-12-12 16:49:31 + */ +@Mapper +public interface EnclosedAreaMapper extends BaseMapper { + +} + diff --git a/web-infrastructure/src/main/java/com/zcloud/primeport/persistence/repository/EnclosedAreaRepository.java b/web-infrastructure/src/main/java/com/zcloud/primeport/persistence/repository/EnclosedAreaRepository.java new file mode 100644 index 0000000..b6c3b08 --- /dev/null +++ b/web-infrastructure/src/main/java/com/zcloud/primeport/persistence/repository/EnclosedAreaRepository.java @@ -0,0 +1,18 @@ +package com.zcloud.primeport.persistence.repository; + +import com.alibaba.cola.dto.PageResponse; +import com.jjb.saas.framework.repository.repo.BaseRepository; +import com.zcloud.primeport.persistence.dataobject.EnclosedAreaDO; + +import java.util.Map; + +/** + * web-infrastructure + * + * @Author fangjiakai + * @Date 2025-12-12 16:49:31 + */ +public interface EnclosedAreaRepository extends BaseRepository { + PageResponse listPage(Map params); +} + diff --git a/web-infrastructure/src/main/java/com/zcloud/primeport/persistence/repository/impl/EnclosedAreaRepositoryImpl.java b/web-infrastructure/src/main/java/com/zcloud/primeport/persistence/repository/impl/EnclosedAreaRepositoryImpl.java new file mode 100644 index 0000000..86049c3 --- /dev/null +++ b/web-infrastructure/src/main/java/com/zcloud/primeport/persistence/repository/impl/EnclosedAreaRepositoryImpl.java @@ -0,0 +1,39 @@ +package com.zcloud.primeport.persistence.repository.impl; + +import com.alibaba.cola.dto.PageResponse; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +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.primeport.persistence.dataobject.EnclosedAreaDO; +import com.zcloud.primeport.persistence.mapper.EnclosedAreaMapper; +import com.zcloud.primeport.persistence.repository.EnclosedAreaRepository; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; + +import java.util.Map; + +/** + * web-infrastructure + * + * @Author fangjiakai + * @Date 2025-12-12 16:49:31 + */ +@Service +@RequiredArgsConstructor +public class EnclosedAreaRepositoryImpl extends BaseRepositoryImpl implements EnclosedAreaRepository { + private final EnclosedAreaMapper enclosedAreaMapper; + + @Override + public PageResponse listPage(Map params) { + IPage iPage = new Query().getPage(params); + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper = PageQueryHelper.createPageQueryWrapper(queryWrapper, params); + queryWrapper.orderByDesc("create_time"); + IPage result = enclosedAreaMapper.selectPage(iPage, queryWrapper); + return PageHelper.pageToResponse(result, result.getRecords()); + } +} + diff --git a/web-infrastructure/src/main/resources/mapper/EnclosedAreaMapper.xml b/web-infrastructure/src/main/resources/mapper/EnclosedAreaMapper.xml new file mode 100644 index 0000000..4db1ba1 --- /dev/null +++ b/web-infrastructure/src/main/resources/mapper/EnclosedAreaMapper.xml @@ -0,0 +1,8 @@ + + + + + + +