diff --git a/urbanops-framework/urbanops-common/src/main/java/com/zteits/urbanops/framework/common/pojo/PageParam.java b/urbanops-framework/urbanops-common/src/main/java/com/zteits/urbanops/framework/common/pojo/PageParam.java index 2c997b1..3b26f21 100644 --- a/urbanops-framework/urbanops-common/src/main/java/com/zteits/urbanops/framework/common/pojo/PageParam.java +++ b/urbanops-framework/urbanops-common/src/main/java/com/zteits/urbanops/framework/common/pojo/PageParam.java @@ -6,6 +6,8 @@ import lombok.Data; import jakarta.validation.constraints.Min; import jakarta.validation.constraints.Max; import jakarta.validation.constraints.NotNull; +import org.springframework.util.StringUtils; + import java.io.Serializable; @Schema(description="分页参数") @@ -33,4 +35,25 @@ public class PageParam implements Serializable { @Max(value = 100, message = "每页条数最大值为 100") private Integer pageSize = PAGE_SIZE; + /** + * 排序字段 + */ + private String sortField = "id"; + /** + * 排序方向:asc(升序)/ desc(降序) + */ + private String sortOrder = "desc"; + /** + * isAsc=true(升序) + */ + private Boolean isAsc = true; + /*执行该排序逻辑*/ + private Boolean sortCondition = true; + + + public void setSortOrder(String sortOrder) { + this.sortOrder = StringUtils.hasText(sortOrder) ? sortOrder.trim() : "desc"; + this.isAsc = "asc".equalsIgnoreCase(this.sortOrder); + } + } diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/departmentcost/vo/DepartmentCostPageReqVO.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/departmentcost/vo/DepartmentCostPageReqVO.java index 5698e34..bda6b29 100644 --- a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/departmentcost/vo/DepartmentCostPageReqVO.java +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/departmentcost/vo/DepartmentCostPageReqVO.java @@ -1,5 +1,7 @@ package com.zteits.urbanops.module.garden.controller.admin.departmentcost.vo; +import com.baomidou.mybatisplus.core.toolkit.support.SFunction; +import com.zteits.urbanops.module.garden.dal.dataobject.departmentcost.DepartmentCostDO; import lombok.*; import java.util.*; import io.swagger.v3.oas.annotations.media.Schema; @@ -45,4 +47,13 @@ public class DepartmentCostPageReqVO extends PageParam { @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) private LocalDateTime[] createTime; -} \ No newline at end of file + //对应前端排序字段 + public static final Map> SORT_FIELD_MAP = Map.of( + "id", DepartmentCostDO::getId, + "salaryMonth", DepartmentCostDO::getSalaryMonth, + "personCount", DepartmentCostDO::getPersonCount, + "deptTotalCost", DepartmentCostDO::getDeptTotalCost, + "createTime", DepartmentCostDO::getCreateTime + ); + +} diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/rentalmechanicalcost/vo/RentalMechanicalCostPageReqVO.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/rentalmechanicalcost/vo/RentalMechanicalCostPageReqVO.java index 35b8608..be60971 100644 --- a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/rentalmechanicalcost/vo/RentalMechanicalCostPageReqVO.java +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/rentalmechanicalcost/vo/RentalMechanicalCostPageReqVO.java @@ -1,26 +1,22 @@ package com.zteits.urbanops.module.garden.controller.admin.rentalmechanicalcost.vo; -import cn.idev.excel.annotation.ExcelProperty; -import com.fasterxml.jackson.annotation.JsonFormat; +import com.baomidou.mybatisplus.core.toolkit.support.SFunction; import com.zteits.urbanops.framework.common.pojo.PageParam; -import com.zteits.urbanops.module.garden.controller.admin.costfee.vo.TeamBizdomainRelVo; +import com.zteits.urbanops.module.garden.dal.dataobject.rentalmechanicalcost.RentalMechanicalCostDO; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import org.springframework.format.annotation.DateTimeFormat; import java.math.BigDecimal; import java.time.LocalDate; -import java.time.LocalDateTime; import java.util.Date; -import java.util.List; - -import static com.zteits.urbanops.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY; -import static com.zteits.urbanops.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; +import java.util.Map; @Schema(description = "管理后台 - 租赁机械费用录入分页 Request VO") @Data public class RentalMechanicalCostPageReqVO extends PageParam { + private String id; @Schema(description = "机械名称", example = "张三") private String mechName; @@ -34,4 +30,17 @@ public class RentalMechanicalCostPageReqVO extends PageParam { @Schema(description = "使用时长(天)") private Integer useDuration; + @Schema(description = "结束日期") + private LocalDate endUseTime; + + @Schema(description = "数量") + private Integer quantity; + + public static final Map> SORT_FIELD_MAP = Map.of( + "id", RentalMechanicalCostDO::getId, + "quantity", RentalMechanicalCostDO::getQuantity, + "useDuration", RentalMechanicalCostDO::getUseDuration, + "startUseTime", RentalMechanicalCostDO::getStartUseTime, + "endUseTime", RentalMechanicalCostDO::getEndUseTime + ); } diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/rentalmechanicalcost/vo/RentalMechanicalCostSaveReqVO.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/rentalmechanicalcost/vo/RentalMechanicalCostSaveReqVO.java index fdc0e34..a66d210 100644 --- a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/rentalmechanicalcost/vo/RentalMechanicalCostSaveReqVO.java +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/rentalmechanicalcost/vo/RentalMechanicalCostSaveReqVO.java @@ -58,11 +58,11 @@ public class RentalMechanicalCostSaveReqVO { private Date endUseTime; @Schema(description = "归属公司", requiredMode = Schema.RequiredMode.REQUIRED, example = "李四") - @NotEmpty(message = "归属公司不能为空") + //@NotEmpty(message = "归属公司不能为空") private String companyName; @Schema(description = "归属公司ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "25530") - @NotEmpty(message = "归属公司ID不能为空") + //@NotEmpty(message = "归属公司ID不能为空") private String companyId; @Schema(description = "部门id", example = "25446") diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/wasterecord/vo/WasteRecordPageReqVO.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/wasterecord/vo/WasteRecordPageReqVO.java index e9db82d..5c6e414 100644 --- a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/wasterecord/vo/WasteRecordPageReqVO.java +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/wasterecord/vo/WasteRecordPageReqVO.java @@ -2,7 +2,9 @@ package com.zteits.urbanops.module.garden.controller.admin.wasterecord.vo; import cn.hutool.core.annotation.Alias; import cn.idev.excel.annotation.ExcelProperty; +import com.baomidou.mybatisplus.core.toolkit.support.SFunction; import com.zteits.urbanops.framework.common.pojo.PageParam; +import com.zteits.urbanops.module.garden.dal.dataobject.wasterecord.WasteRecordDO; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import org.springframework.format.annotation.DateTimeFormat; @@ -11,6 +13,7 @@ import java.math.BigDecimal; import java.time.LocalDate; import java.time.LocalDateTime; import java.util.List; +import java.util.Map; import static com.zteits.urbanops.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; @@ -61,4 +64,11 @@ public class WasteRecordPageReqVO extends PageParam { @Alias("deptId") private List teamIdList; + public static final Map> SORT_FIELD_MAP = Map.of( + "id", WasteRecordDO::getId, + "vehicleLoad", WasteRecordDO::getWasteType, + "transportTimes", WasteRecordDO::getTransportTimes, + "totalCost", WasteRecordDO::getTotalCost, + "createTime", WasteRecordDO::getCreateTime + ); } diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/waterfee/vo/WaterFeePageReqVO.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/waterfee/vo/WaterFeePageReqVO.java index b409144..41039eb 100644 --- a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/waterfee/vo/WaterFeePageReqVO.java +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/admin/waterfee/vo/WaterFeePageReqVO.java @@ -1,12 +1,15 @@ package com.zteits.urbanops.module.garden.controller.admin.waterfee.vo; -import lombok.*; -import java.util.*; -import io.swagger.v3.oas.annotations.media.Schema; +import com.baomidou.mybatisplus.core.toolkit.support.SFunction; import com.zteits.urbanops.framework.common.pojo.PageParam; -import java.math.BigDecimal; +import com.zteits.urbanops.module.garden.dal.dataobject.waterfee.WaterFeeDO; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; import org.springframework.format.annotation.DateTimeFormat; + +import java.math.BigDecimal; import java.time.LocalDateTime; +import java.util.Map; import static com.zteits.urbanops.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; @@ -45,4 +48,10 @@ public class WaterFeePageReqVO extends PageParam { @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) private LocalDateTime[] createTime; -} \ No newline at end of file + public static final Map> SORT_FIELD_MAP = Map.of( + "id", WaterFeeDO::getId, + "totalFee", WaterFeeDO::getTotalFee, + "waterUsage", WaterFeeDO::getWaterUsage, + "createTime", WaterFeeDO::getCreateTime + ); +} diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/dataobject/mechanicalcost/MechanicalCostDO.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/dataobject/mechanicalcost/MechanicalCostDO.java index 5908e27..4974de3 100644 --- a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/dataobject/mechanicalcost/MechanicalCostDO.java +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/dataobject/mechanicalcost/MechanicalCostDO.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.annotation.KeySequence; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.core.toolkit.support.SFunction; import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler; import com.zteits.urbanops.framework.mybatis.core.dataobject.BaseDO; import lombok.*; @@ -11,6 +12,7 @@ import lombok.*; import java.math.BigDecimal; import java.time.LocalDate; import java.util.List; +import java.util.Map; /** * 自有机械费用录入 DO @@ -98,5 +100,16 @@ public class MechanicalCostDO extends BaseDO { */ private String remark; + static final Map> SORT_FIELD_MAP = Map.of( + "id", MechanicalCostDO::getId, + "unitPrice", MechanicalCostDO::getUnitPrice, + "quantity", MechanicalCostDO::getQuantity, + "licensePlate", MechanicalCostDO::getLicensePlate, + "vehicleCategory", MechanicalCostDO::getVehicleCategory, + "vehicleType", MechanicalCostDO::getVehicleType, + "startUseTime", MechanicalCostDO::getStartUseTime, + "endUseTime", MechanicalCostDO::getEndUseTime, + "serviceLife", MechanicalCostDO::getServiceLife + ); } diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/mysql/departmentcost/DepartmentCostMapper.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/mysql/departmentcost/DepartmentCostMapper.java index 8f5c1cc..f439c04 100644 --- a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/mysql/departmentcost/DepartmentCostMapper.java +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/mysql/departmentcost/DepartmentCostMapper.java @@ -1,13 +1,13 @@ package com.zteits.urbanops.module.garden.dal.mysql.departmentcost; -import java.util.*; - import com.zteits.urbanops.framework.common.pojo.PageResult; -import com.zteits.urbanops.framework.mybatis.core.query.LambdaQueryWrapperX; import com.zteits.urbanops.framework.mybatis.core.mapper.BaseMapperX; +import com.zteits.urbanops.framework.mybatis.core.query.LambdaQueryWrapperX; +import com.zteits.urbanops.module.garden.controller.admin.departmentcost.vo.DepartmentCostPageReqVO; import com.zteits.urbanops.module.garden.dal.dataobject.departmentcost.DepartmentCostDO; import org.apache.ibatis.annotations.Mapper; -import com.zteits.urbanops.module.garden.controller.admin.departmentcost.vo.*; + +import java.util.List; /** * 部门费用录入 Mapper @@ -29,7 +29,10 @@ public interface DepartmentCostMapper extends BaseMapperX { .eqIfPresent(DepartmentCostDO::getDeptId, reqVO.getDeptId()) .eqIfPresent(DepartmentCostDO::getRemark, reqVO.getRemark()) .betweenIfPresent(DepartmentCostDO::getCreateTime, reqVO.getCreateTime()) - .orderByDesc(DepartmentCostDO::getId)); + .orderBy(reqVO.getSortCondition(), reqVO.getIsAsc(), + DepartmentCostPageReqVO.SORT_FIELD_MAP.get(reqVO.getSortField()) + ) + ); } /** * 批量查询重复数据 diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/mysql/rentalmechanicalcost/RentalMechanicalCostMapper.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/mysql/rentalmechanicalcost/RentalMechanicalCostMapper.java index 69860a7..5838f35 100644 --- a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/mysql/rentalmechanicalcost/RentalMechanicalCostMapper.java +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/mysql/rentalmechanicalcost/RentalMechanicalCostMapper.java @@ -1,13 +1,12 @@ package com.zteits.urbanops.module.garden.dal.mysql.rentalmechanicalcost; -import java.util.*; - import com.zteits.urbanops.framework.common.pojo.PageResult; -import com.zteits.urbanops.framework.mybatis.core.query.LambdaQueryWrapperX; import com.zteits.urbanops.framework.mybatis.core.mapper.BaseMapperX; +import com.zteits.urbanops.framework.mybatis.core.query.LambdaQueryWrapperX; +import com.zteits.urbanops.module.garden.controller.admin.departmentcost.vo.DepartmentCostPageReqVO; +import com.zteits.urbanops.module.garden.controller.admin.rentalmechanicalcost.vo.RentalMechanicalCostPageReqVO; import com.zteits.urbanops.module.garden.dal.dataobject.rentalmechanicalcost.RentalMechanicalCostDO; import org.apache.ibatis.annotations.Mapper; -import com.zteits.urbanops.module.garden.controller.admin.rentalmechanicalcost.vo.*; /** * 租赁机械费用录入 Mapper @@ -36,7 +35,10 @@ public interface RentalMechanicalCostMapper extends BaseMapperX { .eqIfPresent(WasteRecordDO::getDeptId, reqVO.getDeptId()) .eqIfPresent(WasteRecordDO::getRemark, reqVO.getRemark()) .betweenIfPresent(WasteRecordDO::getCreateTime, reqVO.getCreateTime()) - .orderByDesc(WasteRecordDO::getId)); + //.orderByDesc(WasteRecordDO::getId)); + .orderBy(reqVO.getSortCondition(), reqVO.getIsAsc(), + WasteRecordPageReqVO.SORT_FIELD_MAP.get(reqVO.getSortField()) + ) + ); } } diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/mysql/waterfee/WaterFeeMapper.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/mysql/waterfee/WaterFeeMapper.java index 7a6e382..ea93d3e 100644 --- a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/mysql/waterfee/WaterFeeMapper.java +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/dal/mysql/waterfee/WaterFeeMapper.java @@ -1,13 +1,13 @@ package com.zteits.urbanops.module.garden.dal.mysql.waterfee; -import java.util.*; - import com.zteits.urbanops.framework.common.pojo.PageResult; -import com.zteits.urbanops.framework.mybatis.core.query.LambdaQueryWrapperX; import com.zteits.urbanops.framework.mybatis.core.mapper.BaseMapperX; +import com.zteits.urbanops.framework.mybatis.core.query.LambdaQueryWrapperX; +import com.zteits.urbanops.module.garden.controller.admin.waterfee.vo.WaterFeePageReqVO; import com.zteits.urbanops.module.garden.dal.dataobject.waterfee.WaterFeeDO; import org.apache.ibatis.annotations.Mapper; -import com.zteits.urbanops.module.garden.controller.admin.waterfee.vo.*; + +import java.util.List; /** * 水费录入信息 Mapper @@ -29,7 +29,11 @@ public interface WaterFeeMapper extends BaseMapperX { .eqIfPresent(WaterFeeDO::getDeptId, reqVO.getDeptId()) .eqIfPresent(WaterFeeDO::getCompanyId, reqVO.getCompanyId()) .betweenIfPresent(WaterFeeDO::getCreateTime, reqVO.getCreateTime()) - .orderByDesc(WaterFeeDO::getId)); + //.orderByDesc(WaterFeeDO::getId)); + .orderBy(reqVO.getSortCondition(), reqVO.getIsAsc(), + WaterFeePageReqVO.SORT_FIELD_MAP.get(reqVO.getSortField()) + ) + ); } diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/materialinventory/MaterialInventoryServiceImpl.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/materialinventory/MaterialInventoryServiceImpl.java index af278ac..685b34e 100644 --- a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/materialinventory/MaterialInventoryServiceImpl.java +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/materialinventory/MaterialInventoryServiceImpl.java @@ -142,7 +142,7 @@ public class MaterialInventoryServiceImpl implements MaterialInventoryService { if (outNum == null) { throw exception0(BAD_REQUEST.getCode(),"更新库存失败:outNum为空!"); } - materialInventory.setOutTotalNum(materialInventory.getInventoryTotalNum() + outNum); + materialInventory.setOutTotalNum(materialInventory.getOutTotalNum() + outNum); materialInventory.setCurrentNum(materialInventory.getCurrentNum() - outNum); return materialInventoryMapper.updateById(materialInventory); } diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/materialinventoryout/MaterialInventoryOutServiceImpl.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/materialinventoryout/MaterialInventoryOutServiceImpl.java index b3c7754..575ab3c 100644 --- a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/materialinventoryout/MaterialInventoryOutServiceImpl.java +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/materialinventoryout/MaterialInventoryOutServiceImpl.java @@ -119,7 +119,7 @@ public class MaterialInventoryOutServiceImpl implements MaterialInventoryOutServ //入库记录减扣 inventory.setCurrentNum(inventory.getCurrentNum() + materialInventoryOut.getOutInventoryNum()); - inventory.setInventoryTotalNum(inventory.getInventoryTotalNum() + materialInventoryOut.getOutInventoryNum()); + //inventory.setInventoryTotalNum(inventory.getInventoryTotalNum() + materialInventoryOut.getOutInventoryNum()); inventory.setOutTotalNum(inventory.getOutTotalNum() - materialInventoryOut.getOutInventoryNum()); materialInventoryService.updateTdMaterialInventory(inventory); diff --git a/urbanops-module-workorder/pom.xml b/urbanops-module-workorder/pom.xml index b8e6f0d..b481e7c 100644 --- a/urbanops-module-workorder/pom.xml +++ b/urbanops-module-workorder/pom.xml @@ -126,6 +126,12 @@ urbanops-module-system ${revision} + + com.zteits.boot + urbanops-module-bpm + ${revision} + + diff --git a/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/api/constant/BpmCommonConstant.java b/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/api/constant/BpmCommonConstant.java new file mode 100644 index 0000000..ead6f8a --- /dev/null +++ b/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/api/constant/BpmCommonConstant.java @@ -0,0 +1,35 @@ +package com.zteits.urbanops.module.workorder.api.constant; + +/** + * @author yanhuiqing + * @version 1.0 + * @description: 流程业务定义key + * @date 2025/12/3 10:35 + */ +public class BpmCommonConstant { + /** + * 园林巡检工单 流程业务key + */ + public static final String BPM_GARDEN_INSPECT_WO = "garden_inspect_wo"; + /** + * 物业巡检工单 流程业务key + */ + public static final String BPM_PROPERTY_INSPECT_WO = "property_inspect_wo"; + /** + * 市政巡检工单 流程业务key + */ + public static final String BPM_MUNICIPAL_INSPECT_WO = "municipal_inspect_wo"; + /** + * 园林问题单图片类型 + */ + public static final String GARDEN_INSPECT_WO_ATTACH1 = "01"; + /** + * 园林街道图片类型 + */ + public static final String GARDEN_INSPECT_WO_ATTACH2 = "02"; + /** + * 园林远景图片类型 + */ + public static final String GARDEN_INSPECT_WO_ATTACH3 = "03"; + +} diff --git a/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/controller/admin/garden/BpmGardenInspectController.java b/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/controller/admin/garden/BpmGardenInspectController.java new file mode 100644 index 0000000..82e0240 --- /dev/null +++ b/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/controller/admin/garden/BpmGardenInspectController.java @@ -0,0 +1,64 @@ +package com.zteits.urbanops.module.workorder.controller.admin.garden; + +import com.zteits.urbanops.framework.common.pojo.CommonResult; +import com.zteits.urbanops.framework.common.pojo.PageResult; +import com.zteits.urbanops.framework.common.util.object.BeanUtils; +import com.zteits.urbanops.module.bpm.controller.admin.oa.vo.BpmOALeaveCreateReqVO; +import com.zteits.urbanops.module.bpm.controller.admin.oa.vo.BpmOALeavePageReqVO; +import com.zteits.urbanops.module.bpm.controller.admin.oa.vo.BpmOALeaveRespVO; +import com.zteits.urbanops.module.bpm.dal.dataobject.oa.BpmOALeaveDO; +import com.zteits.urbanops.module.workorder.controller.admin.garden.vo.BpmGardenWorkOrderCreateReqVo; +import com.zteits.urbanops.module.workorder.controller.admin.garden.vo.BpmGardenWorkOrderPageReqVO; +import com.zteits.urbanops.module.workorder.controller.admin.garden.vo.BpmGardenWorkOrderRespVO; +import com.zteits.urbanops.module.workorder.dal.dataobject.garden.BpmGardenWorkOrderDO; +import com.zteits.urbanops.module.workorder.service.garden.BpmGardenService; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.annotation.Resource; +import jakarta.validation.Valid; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import static com.zteits.urbanops.framework.common.pojo.CommonResult.success; +import static com.zteits.urbanops.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId; + +/** + * @author yanhuiqing + * @version 1.0 + * @description: 园林巡检工单 + * @date 2025/12/3 11:03 + */ +@Tag(name = "管理后台 - 园林巡检工单") +@RestController +@RequestMapping("/bpm/garden/inspection") +@Validated +public class BpmGardenInspectController { + @Resource + private BpmGardenService gardenService; + + @PostMapping("/create") + @PreAuthorize("@ss.hasPermission('bpm:garden-inspection:create')") + @Operation(summary = "创建请求申请") + public CommonResult createGardenInspection(@Valid @RequestBody BpmGardenWorkOrderCreateReqVo createReqVO) { + return success(gardenService.createWorkOrder(getLoginUserId(), createReqVO)); + } + + @GetMapping("/get") + @PreAuthorize("@ss.hasPermission('bpm:garden-inspection:query')") + @Operation(summary = "获得园林工单申请") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + public CommonResult getGardenInspection(@RequestParam("id") Long id) { + BpmGardenWorkOrderDO gardenInspection = gardenService.getWorkOrder(id); + return success(BeanUtils.toBean(gardenInspection, BpmGardenWorkOrderRespVO.class)); + } + + @GetMapping("/page") + @PreAuthorize("@ss.hasPermission('bpm:garden-inspection:query')") + @Operation(summary = "获得园林巡检工单申请分页") + public CommonResult> getGardenInspectionPage(@Valid BpmGardenWorkOrderPageReqVO pageVO) { + PageResult pageResult = gardenService.getGardenInspectionPage(getLoginUserId(), pageVO); + return success(BeanUtils.toBean(pageResult, BpmGardenWorkOrderRespVO.class)); + } +} diff --git a/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/controller/admin/garden/vo/BpmGardenWorkOrderCreateReqVo.java b/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/controller/admin/garden/vo/BpmGardenWorkOrderCreateReqVo.java new file mode 100644 index 0000000..7ef247d --- /dev/null +++ b/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/controller/admin/garden/vo/BpmGardenWorkOrderCreateReqVo.java @@ -0,0 +1,80 @@ +package com.zteits.urbanops.module.workorder.controller.admin.garden.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotEmpty; +import jakarta.validation.constraints.NotNull; +import lombok.Data; +import org.hibernate.validator.constraints.Length; + +import java.math.BigDecimal; +import java.util.List; +import java.util.Map; + +/** + * @author yanhuiqing + * @version 1.0 + * @description: 园林工单请求创建 Request VO + * @date 2025/12/1 11:17 + */ +@Schema(description = "园林工单请求创建 Request VO") +@Data +public class BpmGardenWorkOrderCreateReqVo { + + @Schema(description = "业务线:yl 园林,wy 物业,sz 市政 ", requiredMode = Schema.RequiredMode.REQUIRED) + @NotEmpty(message = "业务线:yl 园林,wy 物业,sz 市政 不能为空") + private String busiLine; + + @Schema(description = "道路ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "21128") + @NotNull(message = "道路ID不能为空") + private Long roadId; + + @Schema(description = "上传图片", example = "9184") + private List imgs; + @Schema(description = "街道照片", example = "9184") + private List streetImgList; + @Schema(description = "远景照片", example = "9184") + private List longRangeImgList; + + @Schema(description = "工单描述", requiredMode = Schema.RequiredMode.REQUIRED, example = "你说的对") + @NotEmpty(message = "工单描述不能为空") + @Length(max = 500) + private String remark; + + @Schema(description = "经纬度类型: 1:国标; 2:百度;3:高德;4:腾讯", example = "2") + private Integer latLonType; + + @Schema(description = "经度", requiredMode = Schema.RequiredMode.REQUIRED) + @NotNull(message = "经度不能为空") + private BigDecimal lat; + + @Schema(description = "维度", requiredMode = Schema.RequiredMode.REQUIRED) + @NotNull(message = "维度不能为空") + private BigDecimal lon; + + @Schema(description = "经纬度地址", requiredMode = Schema.RequiredMode.REQUIRED) + @NotEmpty(message = "经纬度地址不能为空") + private String lonLatAddress; + + @Schema(description = "紧急程度:1:特急;2:紧急;3:一般", requiredMode = Schema.RequiredMode.REQUIRED, example = "2") + @NotNull(message = "紧急程度:1:特急;2:紧急;3:一般不能为空") + private Integer pressingType; + + @Schema(description = "来源ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") + @NotNull(message = "来源ID不能为空") + private Integer sourceId; + + @Schema(description = "来源名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "园林") + @NotEmpty(message = "来源名称不能为空") + private String sourceName; + + @Schema(description = "三方工单ID") + private String thirdWorkNo; + + @Schema(description = "发起人自选审批人 Map", example = "{taskKey1: [1, 2]}") + private Map> startUserSelectAssignees; + + @Schema(description = "是否需要养护人员修复,'0' 是,'1' 否") + private String isYesOrNo; + + +} diff --git a/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/controller/admin/garden/vo/BpmGardenWorkOrderPageReqVO.java b/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/controller/admin/garden/vo/BpmGardenWorkOrderPageReqVO.java new file mode 100644 index 0000000..459683a --- /dev/null +++ b/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/controller/admin/garden/vo/BpmGardenWorkOrderPageReqVO.java @@ -0,0 +1,16 @@ +package com.zteits.urbanops.module.workorder.controller.admin.garden.vo; + +import com.zteits.urbanops.framework.common.pojo.PageParam; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +/** + * @author yanhuiqing + * @version 1.0 + * @description: 园林工单申请分页 Request VO + * @date 2025/12/3 11:32 + */ +@Schema(description = "管理后台 - 园林工单申请分页 Request VO") +@Data +public class BpmGardenWorkOrderPageReqVO extends PageParam { +} diff --git a/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/controller/admin/garden/vo/BpmGardenWorkOrderRespVO.java b/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/controller/admin/garden/vo/BpmGardenWorkOrderRespVO.java new file mode 100644 index 0000000..30bbe4e --- /dev/null +++ b/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/controller/admin/garden/vo/BpmGardenWorkOrderRespVO.java @@ -0,0 +1,15 @@ +package com.zteits.urbanops.module.workorder.controller.admin.garden.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +/** + * @author yanhuiqing + * @version 1.0 + * @description: 园林工单流程 Response VO + * @date 2025/12/3 11:31 + */ +@Schema(description = "管理后台 - 园林工单流程 Response VO") +@Data +public class BpmGardenWorkOrderRespVO { +} diff --git a/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/dal/dataobject/garden/BpmGardenWorkOrderDO.java b/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/dal/dataobject/garden/BpmGardenWorkOrderDO.java new file mode 100644 index 0000000..8f52d51 --- /dev/null +++ b/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/dal/dataobject/garden/BpmGardenWorkOrderDO.java @@ -0,0 +1,12 @@ +package com.zteits.urbanops.module.workorder.dal.dataobject.garden; + +import com.zteits.urbanops.module.workorder.dal.dataobject.maininfo.MainInfoDO; + +/** + * @author yanhuiqing + * @version 1.0 + * @description: TODO + * @date 2025/12/1 11:34 + */ +public class BpmGardenWorkOrderDO extends MainInfoDO { +} diff --git a/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/dal/mysql/maininfo/MainInfoMapper.java b/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/dal/mysql/maininfo/MainInfoMapper.java index 70d1a17..aac2cf7 100644 --- a/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/dal/mysql/maininfo/MainInfoMapper.java +++ b/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/dal/mysql/maininfo/MainInfoMapper.java @@ -49,4 +49,36 @@ public interface MainInfoMapper extends BaseMapperX { .orderByDesc(MainInfoDO::getId)); } + default PageResult selectPage(Long loginUserId,MainInfoPageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .eqIfPresent(MainInfoDO::getBusiLine, reqVO.getBusiLine()) + .eqIfPresent(MainInfoDO::getOrderNo, reqVO.getOrderNo()) + .likeIfPresent(MainInfoDO::getOrderName, reqVO.getOrderName()) + .eqIfPresent(MainInfoDO::getSourceId, reqVO.getSourceId()) + .likeIfPresent(MainInfoDO::getSourceName, reqVO.getSourceName()) + .eqIfPresent(MainInfoDO::getRoadId, reqVO.getRoadId()) + .likeIfPresent(MainInfoDO::getRoadName, reqVO.getRoadName()) + .eqIfPresent(MainInfoDO::getStreetId, reqVO.getStreetId()) + .likeIfPresent(MainInfoDO::getStreetName, reqVO.getStreetName()) + .eqIfPresent(MainInfoDO::getCuringLevelId, reqVO.getCuringLevelId()) + .likeIfPresent(MainInfoDO::getCuringLevelName, reqVO.getCuringLevelName()) + .betweenIfPresent(MainInfoDO::getCommitDate, reqVO.getCommitDate()) + .eqIfPresent(MainInfoDO::getPressingType, reqVO.getPressingType()) + .eqIfPresent(MainInfoDO::getUserId, loginUserId) + .likeIfPresent(MainInfoDO::getUserName, reqVO.getUserName()) + .eqIfPresent(MainInfoDO::getCompanyId, reqVO.getCompanyId()) + .eqIfPresent(MainInfoDO::getLatLonType, reqVO.getLatLonType()) + .eqIfPresent(MainInfoDO::getLat, reqVO.getLat()) + .eqIfPresent(MainInfoDO::getLon, reqVO.getLon()) + .eqIfPresent(MainInfoDO::getLonLatAddress, reqVO.getLonLatAddress()) + .eqIfPresent(MainInfoDO::getThirdWorkNo, reqVO.getThirdWorkNo()) + .eqIfPresent(MainInfoDO::getThirdPushState, reqVO.getThirdPushState()) + .eqIfPresent(MainInfoDO::getBuzStatus, reqVO.getBuzStatus()) + .eqIfPresent(MainInfoDO::getStatus, reqVO.getStatus()) + .eqIfPresent(MainInfoDO::getProcessInstanceId, reqVO.getProcessInstanceId()) + .eqIfPresent(MainInfoDO::getRemark, reqVO.getRemark()) + .betweenIfPresent(MainInfoDO::getCreateTime, reqVO.getCreateTime()) + .orderByDesc(MainInfoDO::getId)); + } + } \ No newline at end of file diff --git a/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/enums/ErrorCodeConstants.java b/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/enums/ErrorCodeConstants.java index 9ebffe2..1fc204b 100644 --- a/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/enums/ErrorCodeConstants.java +++ b/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/enums/ErrorCodeConstants.java @@ -11,9 +11,9 @@ import com.zteits.urbanops.framework.common.exception.ErrorCode; public interface ErrorCodeConstants { // ========== server 工单 1-100-001-000 ========== - ErrorCode MAIN_INFO_NOT_EXISTS = new ErrorCode(1-100-001-000, "工单信息不存在"); + ErrorCode MAIN_INFO_NOT_EXISTS = new ErrorCode(1-900-001-000, "工单信息不存在"); - ErrorCode ATTACHMENT_NOT_EXISTS = new ErrorCode(1-100-002-000, "工单附件信息不存在"); + ErrorCode ATTACHMENT_NOT_EXISTS = new ErrorCode(1-900-001-001, "工单附件信息不存在"); - ErrorCode MATERIAL_DETAIL_NOT_EXISTS = new ErrorCode(1-100-003-000, "工单耗材明细不存在"); + ErrorCode MATERIAL_DETAIL_NOT_EXISTS = new ErrorCode(1-900-001-002, "工单耗材明细不存在"); } diff --git a/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/service/garden/BpmGardenService.java b/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/service/garden/BpmGardenService.java new file mode 100644 index 0000000..ac24566 --- /dev/null +++ b/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/service/garden/BpmGardenService.java @@ -0,0 +1,46 @@ +package com.zteits.urbanops.module.workorder.service.garden; + +import com.zteits.urbanops.framework.common.pojo.PageResult; +import com.zteits.urbanops.module.workorder.controller.admin.garden.vo.BpmGardenWorkOrderCreateReqVo; +import com.zteits.urbanops.module.workorder.controller.admin.garden.vo.BpmGardenWorkOrderPageReqVO; +import com.zteits.urbanops.module.workorder.dal.dataobject.garden.BpmGardenWorkOrderDO; +import jakarta.validation.Valid; +/** + * @author yanhuiqing + * @version 1.0 + * @description: 园林工作流 + * @date 2025/12/1 11:13 + */ +public interface BpmGardenService { + /** + * 园林工单申请 Service 接口 + * @param userId + * @param createRequestVo + * @return + */ + Long createWorkOrder(Long userId,@Valid BpmGardenWorkOrderCreateReqVo createRequestVo); + + /** + * 更新工单申请的状态 + * + * @param id 编号 + * @param status 结果 + */ + void updateWorkOrderStatus(Long id, Integer status); + + /** + * 获得工单详情 + * + * @param id 编号 + * @return 工单详情 + */ + BpmGardenWorkOrderDO getWorkOrder(Long id); + + /** + * 获得工单分页数据 + * @param loginUserId + * @param pageVO + * @return + */ + PageResult getGardenInspectionPage(Long loginUserId, BpmGardenWorkOrderPageReqVO pageVO); +} diff --git a/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/service/garden/BpmGardenServiceImpl.java b/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/service/garden/BpmGardenServiceImpl.java new file mode 100644 index 0000000..4f6fb7d --- /dev/null +++ b/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/service/garden/BpmGardenServiceImpl.java @@ -0,0 +1,163 @@ +package com.zteits.urbanops.module.workorder.service.garden; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.zteits.urbanops.framework.common.pojo.PageResult; +import com.zteits.urbanops.framework.common.util.object.BeanUtils; +import com.zteits.urbanops.framework.common.util.object.ObjectUtils; +import com.zteits.urbanops.module.bpm.api.task.BpmProcessInstanceApi; +import com.zteits.urbanops.module.bpm.api.task.dto.BpmProcessInstanceCreateReqDTO; +import com.zteits.urbanops.module.bpm.enums.task.BpmTaskStatusEnum; +import com.zteits.urbanops.module.workorder.api.constant.BpmCommonConstant; +import com.zteits.urbanops.module.workorder.controller.admin.garden.vo.BpmGardenWorkOrderCreateReqVo; +import com.zteits.urbanops.module.workorder.controller.admin.garden.vo.BpmGardenWorkOrderPageReqVO; +import com.zteits.urbanops.module.workorder.controller.admin.maininfo.vo.MainInfoPageReqVO; +import com.zteits.urbanops.module.workorder.dal.dataobject.attachment.AttachmentDO; +import com.zteits.urbanops.module.workorder.dal.dataobject.garden.BpmGardenWorkOrderDO; +import com.zteits.urbanops.module.workorder.dal.dataobject.maininfo.MainInfoDO; +import com.zteits.urbanops.module.workorder.dal.mysql.attachment.AttachmentMapper; +import com.zteits.urbanops.module.workorder.dal.mysql.maininfo.MainInfoMapper; +import jakarta.annotation.Resource; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.validation.annotation.Validated; + +import java.time.LocalDateTime; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.zteits.urbanops.framework.common.exception.util.ServiceExceptionUtil.exception; +import static com.zteits.urbanops.module.workorder.enums.ErrorCodeConstants.MAIN_INFO_NOT_EXISTS; + +/** + * @author yanhuiqing + * @version 1.0 + * @description: 园林工作流实现类 + * @date 2025/12/1 11:38 + */ +@Service +@Validated +public class BpmGardenServiceImpl implements BpmGardenService{ + + @Resource + private AttachmentMapper attachmentMapper; + @Resource + private MainInfoMapper workOrderMapper; + @Resource + private BpmProcessInstanceApi processInstanceApi; + @Override + @Transactional(rollbackFor = Exception.class) + public Long createWorkOrder(Long userId, BpmGardenWorkOrderCreateReqVo createRequestVo) { + List imgList = createRequestVo.getImgs(); + List streetImgList = createRequestVo.getStreetImgList(); + List longRangeImgList = createRequestVo.getLongRangeImgList(); + String isYesOrNo = createRequestVo.getIsYesOrNo(); + // 插入 工单 + MainInfoDO workOrder = BeanUtils.toBean(createRequestVo, MainInfoDO.class) + .setStatus(BpmTaskStatusEnum.RUNNING.getStatus()); + //TODO 设置其它值 需从道路表获取 + workOrder.setStreetId("test"); + workOrder.setBuzStatus("t1");//需给出映射关系 + workOrder.setCommitDate(LocalDateTime.now()); + workOrderMapper.insert(workOrder); + + //附件插入 + attachmentApend(imgList,streetImgList,longRangeImgList,workOrder); + // 发起 BPM 流程 + Map processInstanceVariables = new HashMap<>(); + processInstanceVariables.put("isYesOrNo", isYesOrNo); + String processInstanceId = processInstanceApi.createProcessInstance(userId, + new BpmProcessInstanceCreateReqDTO().setProcessDefinitionKey(BpmCommonConstant.BPM_GARDEN_INSPECT_WO) + .setVariables(processInstanceVariables).setBusinessKey(String.valueOf(workOrder.getId())) + .setStartUserSelectAssignees(createRequestVo.getStartUserSelectAssignees())); + + // 将工作流的编号,更新到 工单中 + workOrderMapper.updateById(new MainInfoDO().setId(workOrder.getId()).setProcessInstanceId(processInstanceId)); + return workOrder.getId(); + } + + /** + * 附件插入 + * @param imgList 问题照片 P1 + * @param streetImgList 街道照片 P2 + * @param longRangeImgList 远景照片 P3 + * @param workOrder + */ + private void attachmentApend(List imgList, List streetImgList, List longRangeImgList, MainInfoDO workOrder) { + //问题图片 + if(ObjectUtils.isNotAllEmpty(imgList)){ + AttachmentDO saveDO = new AttachmentDO(); + saveDO.setBusiLine(workOrder.getBusiLine()); + saveDO.setBusiType(BpmCommonConstant.GARDEN_INSPECT_WO_ATTACH1); + saveDO.setOrderNo(workOrder.getOrderNo()); + String filePaths = String.join(",",imgList); + saveDO.setFileNames(filePaths); + LambdaQueryWrapper deleteWrapper = new LambdaQueryWrapper() + .eq(AttachmentDO::getBusiLine, workOrder.getBusiLine()) + .eq(AttachmentDO::getBusiType, BpmCommonConstant.GARDEN_INSPECT_WO_ATTACH1) + .eq(AttachmentDO::getOrderNo, workOrder.getOrderNo()); + attachmentMapper.delete(deleteWrapper); + attachmentMapper.insert(saveDO); + } + //街道图片 + if(ObjectUtils.isNotAllEmpty(streetImgList)){ + AttachmentDO saveDO = new AttachmentDO(); + saveDO.setBusiLine(workOrder.getBusiLine()); + saveDO.setBusiType(BpmCommonConstant.GARDEN_INSPECT_WO_ATTACH2); + saveDO.setOrderNo(workOrder.getOrderNo()); + String filePaths = String.join(",",streetImgList); + saveDO.setFileNames(filePaths); + LambdaQueryWrapper deleteWrapper = new LambdaQueryWrapper() + .eq(AttachmentDO::getBusiLine, workOrder.getBusiLine()) + .eq(AttachmentDO::getBusiType, BpmCommonConstant.GARDEN_INSPECT_WO_ATTACH2) + .eq(AttachmentDO::getOrderNo, workOrder.getOrderNo()); + attachmentMapper.delete(deleteWrapper); + attachmentMapper.insert(saveDO); + } + //远景图片 + if(ObjectUtils.isNotAllEmpty(longRangeImgList)){ + AttachmentDO saveDO = new AttachmentDO(); + saveDO.setBusiLine(workOrder.getBusiLine()); + saveDO.setBusiType(BpmCommonConstant.GARDEN_INSPECT_WO_ATTACH3); + saveDO.setOrderNo(workOrder.getOrderNo()); + String filePaths = String.join(",",longRangeImgList); + saveDO.setFileNames(filePaths); + LambdaQueryWrapper deleteWrapper = new LambdaQueryWrapper() + .eq(AttachmentDO::getBusiLine, workOrder.getBusiLine()) + .eq(AttachmentDO::getBusiType, BpmCommonConstant.GARDEN_INSPECT_WO_ATTACH3) + .eq(AttachmentDO::getOrderNo, workOrder.getOrderNo()); + attachmentMapper.delete(deleteWrapper); + attachmentMapper.insert(saveDO); + } + + + } + + + @Override + public void updateWorkOrderStatus(Long id, Integer status) { + validateExists(id); + workOrderMapper.updateById(new MainInfoDO().setId(id).setStatus(status)); + } + private void validateExists(Long id) { + if (workOrderMapper.selectById(id) == null) { + throw exception(MAIN_INFO_NOT_EXISTS); + } + } + + @Override + public BpmGardenWorkOrderDO getWorkOrder(Long id) { + MainInfoDO workOrder = workOrderMapper.selectById(id); + BpmGardenWorkOrderDO targetVo = BeanUtils.toBean(workOrder, BpmGardenWorkOrderDO.class); + //TODO 定义页面展示字段在此扩展 + return targetVo; + } + + @Override + public PageResult getGardenInspectionPage(Long loginUserId, BpmGardenWorkOrderPageReqVO pageVO) { + MainInfoPageReqVO mainInfoPageReqVo = BeanUtils.toBean(pageVO,MainInfoPageReqVO.class); + PageResult pageList = workOrderMapper.selectPage(loginUserId, mainInfoPageReqVo); + PageResult targetList = BeanUtils.toBean(pageList,BpmGardenWorkOrderDO.class); + return targetList; + } +} diff --git a/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/service/garden/listener/BomGardenWorkOrderStatusListener.java b/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/service/garden/listener/BomGardenWorkOrderStatusListener.java new file mode 100644 index 0000000..75d3a54 --- /dev/null +++ b/urbanops-module-workorder/src/main/java/com/zteits/urbanops/module/workorder/service/garden/listener/BomGardenWorkOrderStatusListener.java @@ -0,0 +1,29 @@ +package com.zteits.urbanops.module.workorder.service.garden.listener; + +import com.zteits.urbanops.module.bpm.api.event.BpmProcessInstanceStatusEvent; +import com.zteits.urbanops.module.bpm.api.event.BpmProcessInstanceStatusEventListener; +import com.zteits.urbanops.module.workorder.service.garden.BpmGardenService; +import jakarta.annotation.Resource; +import org.springframework.stereotype.Component; + +/** + * @author yanhuiqing + * @version 1.0 + * @description: 工作流状态监听类 + * @date 2025/12/1 11:45 + */ +@Component +public class BomGardenWorkOrderStatusListener extends BpmProcessInstanceStatusEventListener { + @Resource + private BpmGardenService gardenService; + @Override + protected String getProcessDefinitionKey() { + + return null; + } + + @Override + protected void onEvent(BpmProcessInstanceStatusEvent event) { + gardenService.updateWorkOrderStatus(Long.parseLong(event.getBusinessKey()), event.getStatus()); + } +}