From c156032a297fdfb013bc63c4282339df723e61a3 Mon Sep 17 00:00:00 2001 From: wangfs <15029758498@163.com> Date: Sat, 13 Dec 2025 12:23:30 +0800 Subject: [PATCH] app巡查计划明细提交 --- urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/app/inspectionplan/AppInspectionPlanCommitController.java | 16 +++++++++++----- urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/app/inspectionplan/vo/AppInspectionPlanCommitSaveReqVO.java | 46 ++++++++++++++++++++++++++++++++++++++++++++++ urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/inspectionplan/InspectionPlanCommitService.java | 11 +++++++++++ urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/inspectionplan/InspectionPlanCommitServiceImpl.java | 104 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------- 4 files changed, 164 insertions(+), 13 deletions(-) create mode 100644 urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/app/inspectionplan/vo/AppInspectionPlanCommitSaveReqVO.java diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/app/inspectionplan/AppInspectionPlanCommitController.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/app/inspectionplan/AppInspectionPlanCommitController.java index 11dfd27..f527ede 100644 --- a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/app/inspectionplan/AppInspectionPlanCommitController.java +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/app/inspectionplan/AppInspectionPlanCommitController.java @@ -3,17 +3,16 @@ package com.zteits.urbanops.module.garden.controller.app.inspectionplan; import com.zteits.urbanops.framework.common.pojo.CommonResult; import com.zteits.urbanops.module.garden.controller.app.inspectionplan.vo.AppInspectionPlanCommitRespVO; +import com.zteits.urbanops.module.garden.controller.app.inspectionplan.vo.AppInspectionPlanCommitSaveReqVO; import com.zteits.urbanops.module.garden.service.inspectionplan.InspectionPlanCommitService; 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 jakarta.validation.constraints.NotBlank; import org.springframework.validation.annotation.Validated; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; import java.util.List; @@ -28,10 +27,17 @@ public class AppInspectionPlanCommitController { @Resource private InspectionPlanCommitService inspectionPlanCommitService; + @PostMapping("/create") + @Operation(summary = "创建巡检计划提交明细") + // @PreAuthorize("@ss.hasPermission('app:garden:inspection-plan-commit:create')") + public CommonResult createInspectionPlanCommit(@Valid @RequestBody AppInspectionPlanCommitSaveReqVO createReqVO) { + return success(inspectionPlanCommitService.appCreateInspectionPlanCommit(createReqVO)); + } + @GetMapping("/get/by/plan_no") @Operation(summary = "获得巡检计划提交明细") @Parameter(name = "plan_no", description = "计划编号", required = true, example = "1024") - //@PreAuthorize("@ss.hasPermission('garden:inspection-plan-commit:query')") + //@PreAuthorize("@ss.hasPermission('app:garden:inspection-plan-commit:query')") public CommonResult> appInspectionPlanCommitListByPlanNo(@RequestParam("plan_no") @NotBlank String planNo) { List list = inspectionPlanCommitService.appInspectionPlanCommitListByPlanNo(planNo); return success(list); diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/app/inspectionplan/vo/AppInspectionPlanCommitSaveReqVO.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/app/inspectionplan/vo/AppInspectionPlanCommitSaveReqVO.java new file mode 100644 index 0000000..783bc98 --- /dev/null +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/controller/app/inspectionplan/vo/AppInspectionPlanCommitSaveReqVO.java @@ -0,0 +1,46 @@ +package com.zteits.urbanops.module.garden.controller.app.inspectionplan.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotEmpty; +import jakarta.validation.constraints.NotNull; +import lombok.Data; + +import java.time.LocalDate; +import java.util.List; + +@Schema(description = "APP管理 - 巡检计划提交明细新增/修改 Request VO") +@Data +public class AppInspectionPlanCommitSaveReqVO { + + @Schema(description = "批次号", requiredMode = Schema.RequiredMode.REQUIRED) + @NotEmpty(message = "批次号不能为空") + private String batchNo; + + @Schema(description = "计划编码", requiredMode = Schema.RequiredMode.REQUIRED) + @NotEmpty(message = "计划编码不能为空") + private String planNo; + + @Schema(description = "图片地址host", requiredMode = Schema.RequiredMode.REQUIRED) + @NotEmpty(message = "图片地址host不能为空") + private String imgHost; + + @Schema(description = "巡检照片", requiredMode = Schema.RequiredMode.REQUIRED) + @NotEmpty(message = "巡检照片不能为空") + private List imgList; + + @Schema(description = "巡检结果: 1:正常;2:异常", requiredMode = Schema.RequiredMode.REQUIRED) + @NotNull(message = "巡检结果: 1:正常;2:异常不能为空") + private Integer inspectionState; + + @Schema(description = "转交状态: 1:未转交;2:已转交", requiredMode = Schema.RequiredMode.REQUIRED) + @NotNull(message = "转交状态: 1:未转交;2:已转交不能为空") + private Integer transState; + + @Schema(description = "转交问题单编码", requiredMode = Schema.RequiredMode.REQUIRED) + private String transWorkNo; + + @Schema(description = "备注", requiredMode = Schema.RequiredMode.REQUIRED, example = "你猜") + @NotEmpty(message = "备注不能为空") + private String remark; + +} \ No newline at end of file diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/inspectionplan/InspectionPlanCommitService.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/inspectionplan/InspectionPlanCommitService.java index 07c9c15..b352f37 100644 --- a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/inspectionplan/InspectionPlanCommitService.java +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/inspectionplan/InspectionPlanCommitService.java @@ -3,6 +3,7 @@ package com.zteits.urbanops.module.garden.service.inspectionplan; import java.util.*; import com.zteits.urbanops.module.garden.controller.app.inspectionplan.vo.AppInspectionPlanCommitRespVO; +import com.zteits.urbanops.module.garden.controller.app.inspectionplan.vo.AppInspectionPlanCommitSaveReqVO; import jakarta.validation.*; import com.zteits.urbanops.module.garden.controller.admin.inspectionplan.vo.*; import com.zteits.urbanops.module.garden.dal.dataobject.inspectionplan.InspectionPlanCommitDO; @@ -24,6 +25,16 @@ public interface InspectionPlanCommitService { Long createInspectionPlanCommit(@Valid InspectionPlanCommitSaveReqVO createReqVO); /** + * App-创建巡检计划提交明细 + * + * @param createReqVO 创建信息 + * @return 编号 + */ + Long appCreateInspectionPlanCommit(@Valid AppInspectionPlanCommitSaveReqVO createReqVO); + + + + /** * 更新巡检计划提交明细 * * @param updateReqVO 更新信息 diff --git a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/inspectionplan/InspectionPlanCommitServiceImpl.java b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/inspectionplan/InspectionPlanCommitServiceImpl.java index 447c4ee..13fc5bc 100644 --- a/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/inspectionplan/InspectionPlanCommitServiceImpl.java +++ b/urbanops-module-garden/src/main/java/com/zteits/urbanops/module/garden/service/inspectionplan/InspectionPlanCommitServiceImpl.java @@ -1,28 +1,40 @@ package com.zteits.urbanops.module.garden.service.inspectionplan; +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.google.common.collect.Lists; +import com.zteits.urbanops.framework.common.pojo.PageResult; +import com.zteits.urbanops.framework.common.util.object.BeanUtils; import com.zteits.urbanops.framework.common.util.string.StrUtils; import com.zteits.urbanops.framework.mybatis.core.util.MyBatisUtils; import com.zteits.urbanops.framework.security.core.util.SecurityFrameworkUtils; +import com.zteits.urbanops.module.garden.controller.admin.inspectionplan.vo.InspectionPlanCommitPageReqVO; +import com.zteits.urbanops.module.garden.controller.admin.inspectionplan.vo.InspectionPlanCommitRespVO; +import com.zteits.urbanops.module.garden.controller.admin.inspectionplan.vo.InspectionPlanCommitSaveReqVO; import com.zteits.urbanops.module.garden.controller.app.inspectionplan.vo.AppInspectionPlanCommitRespVO; +import com.zteits.urbanops.module.garden.controller.app.inspectionplan.vo.AppInspectionPlanCommitSaveReqVO; +import com.zteits.urbanops.module.garden.dal.dataobject.inspectionplan.InspectionPlanCommitDO; +import com.zteits.urbanops.module.garden.dal.dataobject.inspectionplan.InspectionPlanDO; +import com.zteits.urbanops.module.garden.dal.dataobject.inspectionplan.InspectionPlanDetailDO; +import com.zteits.urbanops.module.garden.dal.mysql.inspectionplan.InspectionPlanCommitMapper; +import com.zteits.urbanops.module.garden.dal.mysql.inspectionplan.InspectionPlanDetailMapper; +import com.zteits.urbanops.module.garden.dal.mysql.inspectionplan.InspectionPlanMapper; import com.zteits.urbanops.module.system.api.dept.DeptApi; import com.zteits.urbanops.module.system.api.dept.dto.DeptRespDTO; +import com.zteits.urbanops.module.system.api.permission.RoleApi; +import com.zteits.urbanops.module.system.dal.dataobject.permission.RoleDO; +import jakarta.annotation.Resource; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Service; -import jakarta.annotation.Resource; +import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; import org.springframework.validation.annotation.Validated; +import java.time.LocalDateTime; import java.util.*; import java.util.stream.Collectors; -import com.zteits.urbanops.module.garden.controller.admin.inspectionplan.vo.*; -import com.zteits.urbanops.module.garden.dal.dataobject.inspectionplan.InspectionPlanCommitDO; -import com.zteits.urbanops.framework.common.pojo.PageResult; -import com.zteits.urbanops.framework.common.util.object.BeanUtils; - -import com.zteits.urbanops.module.garden.dal.mysql.inspectionplan.InspectionPlanCommitMapper; - /** * 巡检计划提交明细 Service 实现类 @@ -37,8 +49,17 @@ public class InspectionPlanCommitServiceImpl implements InspectionPlanCommitServ private InspectionPlanCommitMapper inspectionPlanCommitMapper; @Resource + private InspectionPlanMapper inspectionPlanMapper; + + @Resource + private InspectionPlanDetailMapper inspectionPlanDetailMapper; + + @Resource private DeptApi deptApi; + @Resource + private RoleApi roleApi; + @Override public Long createInspectionPlanCommit(InspectionPlanCommitSaveReqVO createReqVO) { // 插入 @@ -49,6 +70,73 @@ public class InspectionPlanCommitServiceImpl implements InspectionPlanCommitServ return inspectionPlanCommit.getId(); } + @Transactional(rollbackFor = Exception.class) + @Override + public Long appCreateInspectionPlanCommit(AppInspectionPlanCommitSaveReqVO createReqVO) { + Long userId = SecurityFrameworkUtils.getLoginUserId(); + /*1.查询计划信息*/ + InspectionPlanDO inspectionPlanDO = inspectionPlanMapper.selectOne(InspectionPlanDO::getBatchNo, createReqVO.getBatchNo()); + InspectionPlanCommitDO inspectionPlanCommit = getInspectionPlanCommitDO(createReqVO, inspectionPlanDO); + /*2.查询角色*/ + List roleList = roleApi.getRoleList(Lists.newArrayList(userId)); + if (!CollectionUtils.isEmpty(roleList)) { + inspectionPlanCommit.setRoleId(roleList.get(0).getId()); + inspectionPlanCommit.setRoleName(roleList.get(0).getName()); + }else{ + inspectionPlanCommit.setRoleId(0L); + inspectionPlanCommit.setRoleName("未知角色"); + } + + /*3.插入明细*/ + inspectionPlanCommitMapper.insert(inspectionPlanCommit); + /*4.更新状态*/ + InspectionPlanDetailDO inspectionPlanDetailDO = inspectionPlanDetailMapper.selectOne(InspectionPlanDetailDO::getPlanNo, createReqVO.getPlanNo()); + Integer detailFinishNum = inspectionPlanDetailDO.getPlanFinishNum() + 1; + int detailFinishState = 1; + if(detailFinishNum.equals(inspectionPlanDetailDO.getPlanNum())){ + detailFinishState = 2; + } + LambdaUpdateWrapper detailUpdateSql = new LambdaUpdateWrapper() + .set(InspectionPlanDetailDO::getPlanFinishNum, detailFinishNum) + .set(InspectionPlanDetailDO::getFinishState, detailFinishState) + .set(InspectionPlanDetailDO::getUpdateTime, LocalDateTime.now()) + .eq(InspectionPlanDetailDO::getPlanNo, createReqVO.getPlanNo()); + inspectionPlanDetailMapper.update(detailUpdateSql); + + Integer planFinishNum = inspectionPlanDO.getPlanFinishNum() + 1; + int planFinishState = 1; + if(planFinishNum.equals(inspectionPlanDO.getPlanNum())){ + planFinishState = 2; + } + LambdaUpdateWrapper updateSql = new LambdaUpdateWrapper() + .set(InspectionPlanDO::getPlanFinishNum, planFinishNum) + .set(InspectionPlanDO::getFinishState, planFinishState) + .set(InspectionPlanDO::getUpdateTime, LocalDateTime.now()) + .eq(InspectionPlanDO::getBatchNo, createReqVO.getBatchNo()); + inspectionPlanMapper.update(updateSql); + + return 1L; + } + + private static InspectionPlanCommitDO getInspectionPlanCommitDO(AppInspectionPlanCommitSaveReqVO createReqVO, InspectionPlanDO inspectionPlanDO) { + LocalDateTime now = LocalDateTime.now(); + Long userId = SecurityFrameworkUtils.getLoginUserId(); + String userName = SecurityFrameworkUtils.getLoginUserNickname(); + InspectionPlanCommitDO inspectionPlanCommit = InspectionPlanCommitDO.builder() + .batchNo(inspectionPlanDO.getBatchNo()) + .planNo(createReqVO.getPlanNo()).busiLine(inspectionPlanDO.getBusiLine()) + .companyId(inspectionPlanDO.getCompanyId()).deptId(inspectionPlanDO.getDeptId()) + .roadId(inspectionPlanDO.getRoadId()).img(JSONObject.toJSONString(createReqVO.getImgList())) + .inspectionState(createReqVO.getInspectionState()).transState(createReqVO.getTransState()) + .transWorkNo(createReqVO.getTransWorkNo()) + .userId(userId).userName(userName) + .finishTime(now).creatorName(userName).updaterName(userName) + .remark(createReqVO.getRemark()).imgHost(createReqVO.getImgHost()).build(); + inspectionPlanCommit.setCreator(userId+""); + inspectionPlanCommit.setUpdater(userId+""); + return inspectionPlanCommit; + } + @Override public void updateInspectionPlanCommit(InspectionPlanCommitSaveReqVO updateReqVO) { // 校验存在 -- libgit2 0.21.4