diff --git a/shuili-admin/pom.xml b/shuili-admin/pom.xml index abbeff2e..ab0b20a8 100644 --- a/shuili-admin/pom.xml +++ b/shuili-admin/pom.xml @@ -54,6 +54,12 @@ shuili-system ${project.version} + + + com.slsoft + shuili-generator + ${project.version} + io.springfox diff --git a/shuili-system/src/main/java/com/kms/common/utils/UserUtils.java b/shuili-system/src/main/java/com/kms/common/utils/UserUtils.java index a933ba3b..f957e8cc 100644 --- a/shuili-system/src/main/java/com/kms/common/utils/UserUtils.java +++ b/shuili-system/src/main/java/com/kms/common/utils/UserUtils.java @@ -3,6 +3,7 @@ package com.kms.common.utils; import cn.dev33.satoken.stp.StpUtil; import com.kms.framework.web.service.SysPermissionService; import com.kms.system.domain.SysXzqh; +import com.kms.system.mapper.SysDeptMapper; import com.kms.system.service.SysDeptService; import com.kms.system.service.SysUserService; import com.kms.system.service.SysXzqhService; @@ -10,11 +11,14 @@ import com.shuili.common.core.domain.entity.SysDept; import com.shuili.common.core.domain.entity.SysUser; import com.shuili.common.utils.SpringUtils; import com.shuili.common.utils.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; import java.util.Set; public class UserUtils { + + private static SysUserService userService = null; private static SysPermissionService sysPermissionService = null; @@ -74,8 +78,9 @@ public class UserUtils { try { String loginId = StpUtil.getLoginId("-1"); if (StringUtils.isNotEmpty(loginId)) { - return getUserService().getWithRedis(loginId); -// return getUserService().selectUserById(loginId); + SysUser user = getUserService().getWithRedis(loginId); +// return getUserService().getWithRedis(loginId); + return getUserService().selectUserById(loginId); } } catch (Exception ignored) { } diff --git a/shuili-system/src/main/java/com/kms/yg/df/controller/BsSgcDfAqrwController.java b/shuili-system/src/main/java/com/kms/yg/df/controller/BsSgcDfAqrwController.java index 7edc063b..da4918ae 100644 --- a/shuili-system/src/main/java/com/kms/yg/df/controller/BsSgcDfAqrwController.java +++ b/shuili-system/src/main/java/com/kms/yg/df/controller/BsSgcDfAqrwController.java @@ -1,5 +1,6 @@ package com.kms.yg.df.controller; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.kms.common.utils.BaseEntityUtils; @@ -8,7 +9,9 @@ import com.kms.system.domain.SysXzqh; import com.kms.system.service.SysDeptService; import com.kms.system.service.SysXzqhService; import com.kms.yg.df.domain.BsSgcDfAqrw; +import com.kms.yg.df.domain.BsSgcDfDfrw; import com.kms.yg.df.service.BsSgcDfAqrwService; +import com.kms.yg.df.service.BsSgcDfDfrwService; import com.kms.yg.sz.domain.dto.AqrwDto; import com.shuili.common.annotation.Log; import com.shuili.common.core.controller.BaseController; @@ -47,6 +50,10 @@ public class BsSgcDfAqrwController extends BaseController @Autowired private SysDeptService sysDeptService; + @Autowired + private BsSgcDfDfrwService bsSgcDfDfrwService; + + @GetMapping("/getLevel/{taskId}") public AjaxResult getLevel(@PathVariable String taskId) { @@ -83,10 +90,10 @@ public class BsSgcDfAqrwController extends BaseController QueryWrapper sysXzqhQueryWrapper = new QueryWrapper<>(); sysXzqhQueryWrapper.eq("XZQHDM", infoAdcd); SysXzqh xzqh = sysXzqhService.getOne(sysXzqhQueryWrapper); - if (xzqh.getLayer()==1) { + if (xzqh.getLayer()==5) { infoAdcd = xzqh.getXzqhdm().substring(0, 2); - } else if (xzqh.getLayer()==2) { + } else if (xzqh.getLayer()==4) { infoAdcd = xzqh.getXzqhdm().substring(0, 4); }else { @@ -104,10 +111,10 @@ public class BsSgcDfAqrwController extends BaseController String xzqhId = sysDept.getXzqhId(); SysXzqh xzqh = sysXzqhService.getById(xzqhId); String substring = ""; - if (xzqh.getLayer()==1) { + if (xzqh.getLayer()==5) { substring = xzqh.getXzqhdm().substring(0, 2); - } else if (xzqh.getLayer()==2) { + } else if (xzqh.getLayer()==4) { substring = xzqh.getXzqhdm().substring(0, 4); }else { @@ -121,10 +128,10 @@ public class BsSgcDfAqrwController extends BaseController sysXzqhQueryWrapper.eq("XZQHDM", adcd); SysXzqh xzqh = sysXzqhService.getOne(sysXzqhQueryWrapper); - if (xzqh.getLayer()==1) { + if (xzqh.getLayer()==5) { adcd = xzqh.getXzqhdm().substring(0, 2); - } else if (xzqh.getLayer()==2) { + } else if (xzqh.getLayer()==4) { adcd = xzqh.getXzqhdm().substring(0, 4); }else { @@ -190,6 +197,11 @@ public class BsSgcDfAqrwController extends BaseController @DeleteMapping("/{ids}") public AjaxResult remove(@PathVariable String[] ids) { + for (String id:ids){ + LambdaQueryWrapperlw=new LambdaQueryWrapper<>(); + lw.eq(BsSgcDfDfrw::getTaskId,id); + bsSgcDfDfrwService.remove(lw); + } return toAjax(bsSgcSzAqrwService.removeByIds(Arrays.asList(ids))); } } diff --git a/shuili-system/src/main/java/com/kms/yg/df/controller/BsSgcDfManateamController.java b/shuili-system/src/main/java/com/kms/yg/df/controller/BsSgcDfManateamController.java new file mode 100644 index 00000000..78c7731b --- /dev/null +++ b/shuili-system/src/main/java/com/kms/yg/df/controller/BsSgcDfManateamController.java @@ -0,0 +1,115 @@ +package com.kms.yg.df.controller; + +import java.util.Arrays; +import java.util.List; + +import com.shuili.common.core.controller.BaseController; +import com.shuili.common.core.domain.SearchParam; +import com.shuili.common.utils.poi.ExcelUtil; +import com.kms.common.utils.BaseEntityUtils; + + +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.shuili.common.mybaitsplus.BeanToWrapper; + +import com.shuili.common.annotation.Log; +import com.shuili.common.core.domain.AjaxResult; +import com.shuili.common.enums.BusinessType; +import com.kms.yg.df.domain.BsSgcDfManateam; +import com.kms.yg.df.service.BsSgcDfManateamService; + + +/** + * 管理团队管理Controller + * + * @author kms + * @date 2025-03-11 + */ +@RestController +@RequestMapping("/manateam/manateam") +@Api(tags = "管理团队管理") +public class BsSgcDfManateamController extends BaseController +{ + @Autowired + private BsSgcDfManateamService bsSgcDfManateamService; + + + /** + * 查询管理团队管理列表 + */ + @PostMapping("/list") + @ApiOperation("管理团队管理列表") + public IPage list(@RequestBody SearchParam sp) + { + return bsSgcDfManateamService.selectPage(sp); + } + + /** + * 导出管理团队管理列表 + */ + @Log(title = "管理团队管理导出", businessType = BusinessType.EXPORT) + @PostMapping("/export") + @ApiOperation("管理团队管理导出") + public AjaxResult export(@RequestBody BsSgcDfManateam bsSgcDfManateam) + { + List list = bsSgcDfManateamService.listByIds(bsSgcDfManateam.getIds()); + ExcelUtil util = new ExcelUtil<>(BsSgcDfManateam.class); + return util.exportExcel(list, "manateam"); + } + + /** + * 获取管理团队管理详细信息 + */ + @ApiOperation(" 管理团队管理详情") + @GetMapping(value = "/{id}") + public AjaxResult getInfo(@PathVariable("id") String id) + { + return AjaxResult.success(bsSgcDfManateamService.getById(id)); + } + + /** + * 新增管理团队管理 + */ + @Log(title = "管理团队管理新增", businessType = BusinessType.INSERT) + @PostMapping + @ApiOperation("管理团队管理新增") + public AjaxResult add(@RequestBody BsSgcDfManateam bsSgcDfManateam) + { + BaseEntityUtils.preInsert(bsSgcDfManateam); + return toAjax(bsSgcDfManateamService.save(bsSgcDfManateam)); + } + + /** + * 修改管理团队管理 + */ + @ApiOperation("管理团队管理修改") + @Log(title = "管理团队管理修改", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@RequestBody BsSgcDfManateam bsSgcDfManateam) + { + return toAjax(bsSgcDfManateamService.updateById(bsSgcDfManateam)); + } + + /** + * 删除管理团队管理 + */ + @ApiOperation("管理团队管理删除") + @Log(title = "管理团队管理删除", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public AjaxResult remove(@PathVariable String[] ids) + { + return toAjax(bsSgcDfManateamService.removeByIds(Arrays.asList(ids))); + } +} diff --git a/shuili-system/src/main/java/com/kms/yg/df/controller/BsSgcDfSafeJbxxController.java b/shuili-system/src/main/java/com/kms/yg/df/controller/BsSgcDfSafeJbxxController.java index 66e74e11..1c5adbb9 100644 --- a/shuili-system/src/main/java/com/kms/yg/df/controller/BsSgcDfSafeJbxxController.java +++ b/shuili-system/src/main/java/com/kms/yg/df/controller/BsSgcDfSafeJbxxController.java @@ -5,9 +5,11 @@ import java.util.*; import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.kms.common.utils.UserUtils; +import com.kms.framework.web.service.SysPermissionService; import com.kms.system.domain.SysXzqh; import com.kms.system.service.SysDeptService; import com.kms.system.service.SysXzqhService; @@ -69,6 +71,10 @@ public class BsSgcDfSafeJbxxController extends BaseController { @Autowired private SysDeptService sysDeptService; + @Autowired + private SysPermissionService permissionService; + + @GetMapping("/getPie") public List> getPie() { @@ -116,15 +122,29 @@ public class BsSgcDfSafeJbxxController extends BaseController { public IPage list(@RequestBody SearchParam sp) { BsSgcDfSafeJbxx data = sp.getData(); SysUser sysUser = UserUtils.getUser(); - String[] roleIds = sysUser.getRoleIds(); + logger.error("user is ",sysUser); + Set roles = permissionService.getRolePermission(sysUser); SysDept dept = sysUser.getDept(); - String xzqhId = dept.getXzqhId(); - if(StringUtils.isNotEmpty(sp.getData().getAdcd())){ - xzqhId=sp.getData().getAdcd(); + String xzqhId=null; + String name =null; + if (dept != null) { + xzqhId = dept.getXzqhId(); + if (ObjectUtils.isNotEmpty(sp.getData()) && StringUtils.isNotEmpty(sp.getData().getAdcd())) { + xzqhId = sp.getData().getAdcd(); + } + name = dept.getName(); + } else { + logger.error("Dept is null for user: {}", sysUser.getUserName()); + // 设置默认值或抛出异常 + if (ObjectUtils.isNotEmpty(sp.getData()) && StringUtils.isNotEmpty(sp.getData().getAdcd())) { + xzqhId = sp.getData().getAdcd(); + }else { + xzqhId = "440000000000"; + } + name=""; } - String name = dept.getName(); boolean isGLDW=false; - for (String roleId:roleIds){ + for (String roleId:roles){ if (roleId.equals("YW00352")){ isGLDW=true; break; diff --git a/shuili-system/src/main/java/com/kms/yg/df/domain/BsSgcDfBzbp.java b/shuili-system/src/main/java/com/kms/yg/df/domain/BsSgcDfBzbp.java index 56176e04..e112965c 100644 --- a/shuili-system/src/main/java/com/kms/yg/df/domain/BsSgcDfBzbp.java +++ b/shuili-system/src/main/java/com/kms/yg/df/domain/BsSgcDfBzbp.java @@ -99,6 +99,15 @@ public class BsSgcDfBzbp extends BaseEntity @TableField(exist = false) private String number; + @TableField(exist = false) + private String oneType; + @TableField(exist = false) + private String twoType; + @TableField(exist = false) + private String threeType; + @TableField(exist = false) + private String fourType; + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss:SSS",timezone="GMT+8") private Date sortTime; diff --git a/shuili-system/src/main/java/com/kms/yg/df/domain/BsSgcDfManateam.java b/shuili-system/src/main/java/com/kms/yg/df/domain/BsSgcDfManateam.java new file mode 100644 index 00000000..57a0bdc5 --- /dev/null +++ b/shuili-system/src/main/java/com/kms/yg/df/domain/BsSgcDfManateam.java @@ -0,0 +1,77 @@ +package com.kms.yg.df.domain; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import com.shuili.common.annotation.Excel; +import com.shuili.common.core.domain.BaseEntity; +import com.baomidou.mybatisplus.annotation.TableName; + + + +/** + * 管理团队管理对象 bs_sgc_df_manateam + * + * @author kms + * @date 2025-03-11 + */ +@TableName("bs_sgc_df_manateam") +@Data +@ApiModel("管理团队管理") +public class BsSgcDfManateam extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** 堤防名称 */ + @Excel(name = "堤防名称") + @ApiModelProperty("堤防名称") + private String dikeName; + + /** 人员类型 */ + @Excel(name = "人员类型") + @ApiModelProperty("人员类型") + private String personType; + + /** 堤防代码 */ + @Excel(name = "堤防代码") + @ApiModelProperty("堤防代码") + private String dikeCode; + + /** 账户或或手机号 */ + @Excel(name = "账户或或手机号") + @ApiModelProperty("账户或或手机号") + private String phone; + + /** 人员名称 */ + @Excel(name = "人员名称") + @ApiModelProperty("人员名称") + private String personName; + + /** 身份证号 */ + @Excel(name = "身份证号") + @ApiModelProperty("身份证号") + private String idNo; + + /** 职务 */ + @Excel(name = "职务") + @ApiModelProperty("职务") + private String post; + + /** 部门 */ + @Excel(name = "部门") + @ApiModelProperty("部门") + private String department; + + /** $column.columnComment */ + @ApiModelProperty("部门") + private String createUid; + + /** $column.columnComment */ + @ApiModelProperty("部门") + private String updateUid; + + /** $column.columnComment */ + @ApiModelProperty("部门") + private String owerDept; + +} diff --git a/shuili-system/src/main/java/com/kms/yg/df/mapper/BsSgcDfManateamMapper.java b/shuili-system/src/main/java/com/kms/yg/df/mapper/BsSgcDfManateamMapper.java new file mode 100644 index 00000000..d61859bc --- /dev/null +++ b/shuili-system/src/main/java/com/kms/yg/df/mapper/BsSgcDfManateamMapper.java @@ -0,0 +1,16 @@ +package com.kms.yg.df.mapper; + +import org.springframework.stereotype.Repository; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.kms.yg.df.domain.BsSgcDfManateam; + +/** + * 管理团队管理Mapper接口 + * + * @author kms + * @date 2025-03-11 + */ +@Repository +public interface BsSgcDfManateamMapper extends BaseMapper { + +} diff --git a/shuili-system/src/main/java/com/kms/yg/df/service/BsSgcDfManateamService.java b/shuili-system/src/main/java/com/kms/yg/df/service/BsSgcDfManateamService.java new file mode 100644 index 00000000..6d573174 --- /dev/null +++ b/shuili-system/src/main/java/com/kms/yg/df/service/BsSgcDfManateamService.java @@ -0,0 +1,16 @@ +package com.kms.yg.df.service; + +import com.shuili.common.core.service.BaseService; +import com.kms.yg.df.mapper.BsSgcDfManateamMapper; +import com.kms.yg.df.domain.BsSgcDfManateam; +import org.springframework.stereotype.Service; +/** + * 管理团队管理Service接口 + * + * @author kms + * @date 2025-03-11 + */ +@Service +public class BsSgcDfManateamService extends BaseService{ + +} diff --git a/shuili-system/src/main/java/com/kms/yg/sz/controller/BsSgcSzAqrwController.java b/shuili-system/src/main/java/com/kms/yg/sz/controller/BsSgcSzAqrwController.java index 11fa6416..268a949b 100644 --- a/shuili-system/src/main/java/com/kms/yg/sz/controller/BsSgcSzAqrwController.java +++ b/shuili-system/src/main/java/com/kms/yg/sz/controller/BsSgcSzAqrwController.java @@ -1,5 +1,6 @@ package com.kms.yg.sz.controller; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.kms.common.utils.BaseEntityUtils; @@ -8,8 +9,10 @@ import com.kms.system.domain.SysXzqh; import com.kms.system.service.SysDeptService; import com.kms.system.service.SysXzqhService; import com.kms.yg.sz.domain.BsSgcSzAqrw; +import com.kms.yg.sz.domain.BsSgcSzSzrw; import com.kms.yg.sz.domain.dto.AqrwDto; import com.kms.yg.sz.service.BsSgcSzAqrwService; +import com.kms.yg.sz.service.BsSgcSzSzrwService; import com.shuili.common.annotation.Log; import com.shuili.common.core.controller.BaseController; import com.shuili.common.core.domain.AjaxResult; @@ -47,6 +50,9 @@ public class BsSgcSzAqrwController extends BaseController @Autowired private SysDeptService sysDeptService; + @Autowired + private BsSgcSzSzrwService bsSgcSzSzrwService; + @GetMapping("/getLevel/{taskId}") public AjaxResult getLevel(@PathVariable String taskId) { @@ -190,6 +196,11 @@ public class BsSgcSzAqrwController extends BaseController @DeleteMapping("/{ids}") public AjaxResult remove(@PathVariable String[] ids) { + for (String id:ids){ + LambdaQueryWrapper lw=new LambdaQueryWrapper<>(); + lw.eq(BsSgcSzSzrw::getTaskId,id); + bsSgcSzSzrwService.remove(lw); + } return toAjax(bsSgcSzAqrwService.removeByIds(Arrays.asList(ids))); } } diff --git a/shuili-system/src/main/java/com/kms/yg/sz/controller/BsSgcSzSafeJbxxController.java b/shuili-system/src/main/java/com/kms/yg/sz/controller/BsSgcSzSafeJbxxController.java index e600ed2a..2ac858de 100644 --- a/shuili-system/src/main/java/com/kms/yg/sz/controller/BsSgcSzSafeJbxxController.java +++ b/shuili-system/src/main/java/com/kms/yg/sz/controller/BsSgcSzSafeJbxxController.java @@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.kms.common.utils.UserUtils; +import com.kms.framework.web.service.SysPermissionService; import com.kms.system.domain.SysXzqh; import com.kms.system.service.SysDeptService; import com.kms.system.service.SysXzqhService; @@ -65,6 +66,9 @@ public class BsSgcSzSafeJbxxController extends BaseController { @Autowired private SysDeptService sysDeptService; + @Autowired + private SysPermissionService permissionService; + @GetMapping("/getPie") @@ -116,15 +120,30 @@ public class BsSgcSzSafeJbxxController extends BaseController { public IPage list(@RequestBody SearchParam sp) { BsSgcSzSafeJbxx data = sp.getData(); SysUser sysUser = UserUtils.getUser(); - String[] roleIds = sysUser.getRoleIds(); + logger.error("user is",sysUser); + Set roles = permissionService.getRolePermission(sysUser); SysDept dept = sysUser.getDept(); - String xzqhId = dept.getXzqhId(); - if(ObjectUtils.isNotEmpty(sp.getData())&&StringUtils.isNotEmpty(sp.getData().getAdcd())){ - xzqhId=sp.getData().getAdcd(); + String xzqhId=null; + String name =null; + if (dept != null) { + xzqhId = dept.getXzqhId(); + if (ObjectUtils.isNotEmpty(sp.getData()) && StringUtils.isNotEmpty(sp.getData().getAdcd())) { + xzqhId = sp.getData().getAdcd(); + } + name = dept.getName(); + } else { + logger.error("Dept is null for user: {}", sysUser.getUserName()); + // 设置默认值或抛出异常 + if (ObjectUtils.isNotEmpty(sp.getData()) && StringUtils.isNotEmpty(sp.getData().getAdcd())) { + xzqhId = sp.getData().getAdcd(); + }else { + xzqhId = "440000000000"; + } + name=""; } - String name = dept.getName(); + boolean isGLDW=false; - for (String roleId:roleIds){ + for (String roleId:roles){ if (roleId.equals("YW00352")){ isGLDW=true; break; diff --git a/shuili-system/src/main/java/com/kms/yxgh/common/ApprovalTypeEnum.java b/shuili-system/src/main/java/com/kms/yxgh/common/ApprovalTypeEnum.java index 65e28ec5..450ffa38 100644 --- a/shuili-system/src/main/java/com/kms/yxgh/common/ApprovalTypeEnum.java +++ b/shuili-system/src/main/java/com/kms/yxgh/common/ApprovalTypeEnum.java @@ -11,8 +11,9 @@ public enum ApprovalTypeEnum { YH_RECORD("堤防维修养护记录", "yh_record", "dfYhRecordService"), YH_V2_RECORD("堤防维修养护记录v2", "yh_record_v2", "dfYhV2Service"), SZ_YH_PLAN("水闸维修养护计划", "sz_yh_plan", "szYhPlanService"), - SZ_YH_RECORD("水闸维修养护记录", "sz_yh_record", "szYhRecordService"); + SZ_YH_RECORD("水闸维修养护记录", "sz_yh_record", "szYhRecordService"), + SZ_V2_YH_RECORD("水闸维修养护记录", "sz_v2_yh_record", "szYhV2Service"),; private final String name; private final String value; diff --git a/shuili-system/src/main/java/com/kms/yxgh/common/enums/ProjectCharEnum.java b/shuili-system/src/main/java/com/kms/yxgh/common/enums/ProjectCharEnum.java index 607bd09e..85f5f99d 100644 --- a/shuili-system/src/main/java/com/kms/yxgh/common/enums/ProjectCharEnum.java +++ b/shuili-system/src/main/java/com/kms/yxgh/common/enums/ProjectCharEnum.java @@ -23,6 +23,21 @@ public enum ProjectCharEnum { C_1("工程分布", Collections.singletonList(StaticIndexEnum.DF_PROJECT_ADCD_SUM), "数量", Collections.emptyList()), C_2("巡查分析", Arrays.asList(StaticIndexEnum.DF_CHECKING_ADCD_SUM, StaticIndexEnum.DF_JD_ADCD_SUM), "数量", Collections.emptyList()), C_3("缺陷和养护对比", Arrays.asList(StaticIndexEnum.DF_QX_ADCD_SUM, StaticIndexEnum.DF_YH_ADCD_SUM), "数量", Collections.emptyList()), + + + + + C_SZ_14("巡查记录分析", Arrays.asList(StaticIndexEnum.SZ_JL_ONE_DATE_SUM, StaticIndexEnum.SZ_JL_TWO_DATE_SUM), "数量", Collections.emptyList()), + C_SZ_15("巡查缺陷分析", Arrays.asList(StaticIndexEnum.SZ_QX_ONE_DATE_SUM, StaticIndexEnum.SZ_QX_TWO_DATE_SUM), "数量", Collections.emptyList()), + C_SZ_16("缺陷问题等级分析", Arrays.asList(StaticIndexEnum.SZ_QX_DJ_LX_SUM, StaticIndexEnum.SZ_QX_DJ_JD_SUM, StaticIndexEnum.SZ_QX_DJ_ZD_SUM, StaticIndexEnum.SZ_QX_DJ_YB_SUM), "数量", Collections.emptyList()), + C_SZ_17("缺陷养护对比分析", Arrays.asList(StaticIndexEnum.SZ_BD_YH_SUM, StaticIndexEnum.SZ_BD_QX_SUM), "数量", Collections.emptyList()), + C_SZ_18("巡查项目总数", Collections.singletonList(StaticIndexEnum.SZ_XM_SUM), "数量", Collections.emptyList()), + + C_SZ_1("工程分布", Collections.singletonList(StaticIndexEnum.SZ_PROJECT_ADCD_SUM), "数量", Collections.emptyList()), + C_SZ_2("巡查分析", Arrays.asList(StaticIndexEnum.SZ_CHECKING_ADCD_SUM, StaticIndexEnum.SZ_JD_ADCD_SUM), "数量", Collections.emptyList()), + C_SZ_3("缺陷和养护对比", Arrays.asList(StaticIndexEnum.SZ_QX_ADCD_SUM, StaticIndexEnum.SZ_YH_ADCD_SUM), "数量", Collections.emptyList()), + + ; diff --git a/shuili-system/src/main/java/com/kms/yxgh/common/enums/StaticIndexEnum.java b/shuili-system/src/main/java/com/kms/yxgh/common/enums/StaticIndexEnum.java index b16918e9..040ffe7e 100644 --- a/shuili-system/src/main/java/com/kms/yxgh/common/enums/StaticIndexEnum.java +++ b/shuili-system/src/main/java/com/kms/yxgh/common/enums/StaticIndexEnum.java @@ -9,6 +9,10 @@ import com.kms.yxgh.df.mapper.DfCheckingProblemV2Mapper; import com.kms.yxgh.df.mapper.DfCheckingRecordV2Mapper; import com.kms.yxgh.df.mapper.DfCheckingV2Mapper; import com.kms.yxgh.df.mapper.DfYhV2Mapper; +import com.kms.yxgh.sz.mapper.SzCheckingProblemV2Mapper; +import com.kms.yxgh.sz.mapper.SzCheckingRecordV2Mapper; +import com.kms.yxgh.sz.mapper.SzCheckingV2Mapper; +import com.kms.yxgh.sz.mapper.SzYhV2Mapper; import com.shuili.common.utils.SpringUtils; import lombok.Getter; @@ -111,6 +115,113 @@ public enum StaticIndexEnum { return adcdGroup(list, sp); }, "个", "0"), + + + + + + + + + + + + + SZ_JL_ONE_DATE_SUM("机电巡查", sp -> { + SzCheckingRecordV2Mapper mapper = SpringUtils.getBean(SzCheckingRecordV2Mapper.class); + List list = mapper.countDateGroup(sp, PatrolMaintenanceCategory.JD_PATROL); + return dataGroup(list); + }, "个", "0"), + SZ_JL_TWO_DATE_SUM("工程巡查", sp -> { + SzCheckingRecordV2Mapper mapper = SpringUtils.getBean(SzCheckingRecordV2Mapper.class); + List list = mapper.countDateGroup(sp, PatrolMaintenanceCategory.PROJECT_PATROL); + return dataGroup(list); + }, "个", "0"), + + + SZ_QX_ONE_DATE_SUM("机电巡查", sp -> { + SzCheckingProblemV2Mapper mapper = SpringUtils.getBean(SzCheckingProblemV2Mapper.class); + List list = mapper.countDate(sp, PatrolMaintenanceCategory.JD_PATROL); + return dataGroup(list); + }, "个", "0"), + SZ_QX_TWO_DATE_SUM("工程巡查", sp -> { + SzCheckingProblemV2Mapper mapper = SpringUtils.getBean(SzCheckingProblemV2Mapper.class); + List list = mapper.countDate(sp, PatrolMaintenanceCategory.PROJECT_PATROL); + return dataGroup(list); + }, "个", "0"), + + + SZ_QX_DJ_LX_SUM("零星", sp -> { + SzCheckingProblemV2Mapper mapper = SpringUtils.getBean(SzCheckingProblemV2Mapper.class); + List list = mapper.countLevel(sp, PatrolMaintenanceCategory.DJ_LX); + return dataGroup(list); + }, "个", "0"), + SZ_QX_DJ_YB_SUM("一般", sp -> { + SzCheckingProblemV2Mapper mapper = SpringUtils.getBean(SzCheckingProblemV2Mapper.class); + List list = mapper.countLevel(sp, PatrolMaintenanceCategory.DJ_YB); + return dataGroup(list); + }, "个", "0"), + SZ_QX_DJ_JD_SUM("较大", sp -> { + SzCheckingProblemV2Mapper mapper = SpringUtils.getBean(SzCheckingProblemV2Mapper.class); + List list = mapper.countLevel(sp, PatrolMaintenanceCategory.DJ_JD); + return dataGroup(list); + }, "个", "0"), + SZ_QX_DJ_ZD_SUM("重大", sp -> { + SzCheckingProblemV2Mapper mapper = SpringUtils.getBean(SzCheckingProblemV2Mapper.class); + List list = mapper.countLevel(sp, PatrolMaintenanceCategory.DJ_ZD); + return dataGroup(list); + }, "个", "0"), + + + SZ_BD_YH_SUM("养护次数", sp -> { + SzYhV2Mapper mapper = SpringUtils.getBean(SzYhV2Mapper.class); + List list = mapper.countYhDto(sp); + return dataGroup(list); + }, "个", "0"), + + SZ_BD_QX_SUM("缺陷次数", sp -> { + SzCheckingProblemV2Mapper mapper = SpringUtils.getBean(SzCheckingProblemV2Mapper.class); + List list = mapper.countQx(sp); + return dataGroup(list); + }, "个", "0"), + + SZ_XM_SUM("巡查项目数", sp -> { + SzCheckingRecordV2Mapper mapper = SpringUtils.getBean(SzCheckingRecordV2Mapper.class); + int list = mapper.countXm(sp); + Map map = new HashMap<>(); + map.put("sum", String.valueOf(list)); + return map; + }, "个", "0"), + + + SZ_QX_ADCD_SUM("缺陷数量", sp -> { + SzCheckingProblemV2Mapper mapper = SpringUtils.getBean(SzCheckingProblemV2Mapper.class); + List list = mapper.count(sp); + return adcdGroup(list, sp); + }, "个", "0"), + SZ_YH_ADCD_SUM("养护次数", sp -> { + SzYhV2Mapper mapper = SpringUtils.getBean(SzYhV2Mapper.class); + List list = mapper.count(sp); + return adcdGroup(list, sp); + }, "个", "0"), + SZ_PROJECT_ADCD_SUM("工程数量", sp -> { + SzCheckingV2Mapper mapper = SpringUtils.getBean(SzCheckingV2Mapper.class); + List list = mapper.count(sp); + return adcdGroup(list, sp); + }, "个", "0"), + SZ_CHECKING_ADCD_SUM("工程巡查", sp -> { + SzCheckingRecordV2Mapper mapper = SpringUtils.getBean(SzCheckingRecordV2Mapper.class); + List list = mapper.count(sp, PatrolMaintenanceCategory.PROJECT_PATROL); + return adcdGroup(list, sp); + }, "个", "0"), + SZ_JD_ADCD_SUM("机电巡查", sp -> { + SzCheckingRecordV2Mapper mapper = SpringUtils.getBean(SzCheckingRecordV2Mapper.class); + List list = mapper.count(sp, PatrolMaintenanceCategory.JD_PATROL); + return adcdGroup(list, sp); + }, "个", "0"), + + + ; diff --git a/shuili-system/src/main/java/com/kms/yxgh/df/controller/DfCheckingController.java b/shuili-system/src/main/java/com/kms/yxgh/df/controller/DfCheckingController.java index 893aab24..b91b0abf 100644 --- a/shuili-system/src/main/java/com/kms/yxgh/df/controller/DfCheckingController.java +++ b/shuili-system/src/main/java/com/kms/yxgh/df/controller/DfCheckingController.java @@ -103,8 +103,8 @@ public class DfCheckingController { @ApiOperation("检查项树数组") @GetMapping("/tree") - public Response> checkingItemTree() { - return Response.ok(dfCheckingService.checkingItems()); + public Response> checkingItemTree(@RequestParam(value = "key", required = false) String key) { + return Response.ok(dfCheckingService.checkingItems(key)); } diff --git a/shuili-system/src/main/java/com/kms/yxgh/df/service/DfCheckingProblemV2Service.java b/shuili-system/src/main/java/com/kms/yxgh/df/service/DfCheckingProblemV2Service.java index 0dab4e98..9e8a574e 100644 --- a/shuili-system/src/main/java/com/kms/yxgh/df/service/DfCheckingProblemV2Service.java +++ b/shuili-system/src/main/java/com/kms/yxgh/df/service/DfCheckingProblemV2Service.java @@ -70,11 +70,11 @@ public class DfCheckingProblemV2Service extends BaseService queryWrapper.le(DfCheckingProblemV2::getProblemLevel, problemLevel)); + .ifPresent(problemLevel -> queryWrapper.eq(DfCheckingProblemV2::getProblemLevel, problemLevel)); Optional.ofNullable(data.getRecordId()) .filter(StringUtils::isBlank) - .ifPresent(recordId -> queryWrapper.eq(DfCheckingProblemV2::getProblemLevel, recordId)); + .ifPresent(recordId -> queryWrapper.eq(DfCheckingProblemV2::getRecordId, recordId)); } queryWrapper.ne(DfCheckingProblemV2::getStatus, DURING_INSPECTION.getValue()); diff --git a/shuili-system/src/main/java/com/kms/yxgh/df/service/DfCheckingService.java b/shuili-system/src/main/java/com/kms/yxgh/df/service/DfCheckingService.java index 2d718bc7..4abe0622 100644 --- a/shuili-system/src/main/java/com/kms/yxgh/df/service/DfCheckingService.java +++ b/shuili-system/src/main/java/com/kms/yxgh/df/service/DfCheckingService.java @@ -47,9 +47,11 @@ public class DfCheckingService extends BaseService public final static String PART_SEPARATOR = ":"; - public List checkingItems() { - String DICT_TYPE = "df_xs_c_classfy"; - return getByDictTypeStream(DICT_TYPE) + public List checkingItems(String key) { + if (StringUtils.isBlank(key)) { + key = "df_xs_c_classfy"; + } + return getByDictTypeStream(key) .map(this::getByDictTypeStream).sorted(Comparator.comparing(CommonCheckingTreeDto::getSort)).collect(Collectors.toList()); } diff --git a/shuili-system/src/main/java/com/kms/yxgh/df/service/DfYhV2Service.java b/shuili-system/src/main/java/com/kms/yxgh/df/service/DfYhV2Service.java index 46485c65..3d5bdab9 100644 --- a/shuili-system/src/main/java/com/kms/yxgh/df/service/DfYhV2Service.java +++ b/shuili-system/src/main/java/com/kms/yxgh/df/service/DfYhV2Service.java @@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; import com.baomidou.mybatisplus.core.toolkit.StringUtils; import com.baomidou.mybatisplus.core.toolkit.Wrappers; @@ -84,9 +85,9 @@ public class DfYhV2Service extends DefaultApprovalBusinessService queryWrapper.le(DfYhV2::getProblemLevel, problemLevel)); + if (StringUtils.isNotBlank(data.getProblemLevel())) { + queryWrapper.eq(DfYhV2::getProblemLevel, data.getProblemLevel()); + } Optional.ofNullable(data.getRecordId()) .filter(StringUtils::isBlank) @@ -197,10 +198,16 @@ public class DfYhV2Service extends DefaultApprovalBusinessService wp = Wrappers.lambdaUpdate() - .eq(DfCheckingRecord::getId, byId.getRecordId()) - .set(DfCheckingRecord::getStatus, status); - dfCheckingRecordV2Mapper.update(null,wp); + List list = list(new LambdaQueryWrapper().eq(DfYhV2::getRecordId, byId.getRecordId())); + if (CollectionUtils.isNotEmpty(list) && !list.isEmpty()) { + long count = list.stream().filter(e -> Objects.equals(DfYhV2StatusEnum.ACCEPTED.getValue(), e.getStatus())).count(); + if (count+1==list.size() || Objects.equals(1,list.size())) { + Wrapper wp = Wrappers.lambdaUpdate() + .eq(DfCheckingRecord::getId, byId.getRecordId()) + .set(DfCheckingRecord::getStatus, status); + dfCheckingRecordV2Mapper.update(null,wp); + } + } } @Override diff --git a/shuili-system/src/main/java/com/kms/yxgh/sz/controller/v2/SzCheckingProblemV2Controller.java b/shuili-system/src/main/java/com/kms/yxgh/sz/controller/v2/SzCheckingProblemV2Controller.java index 0641ddb0..12efc381 100644 --- a/shuili-system/src/main/java/com/kms/yxgh/sz/controller/v2/SzCheckingProblemV2Controller.java +++ b/shuili-system/src/main/java/com/kms/yxgh/sz/controller/v2/SzCheckingProblemV2Controller.java @@ -1,9 +1,8 @@ package com.kms.yxgh.sz.controller.v2; - import com.baomidou.mybatisplus.core.metadata.IPage; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.kms.yxgh.sz.dto.v2.SzProblemV2Dto; import com.kms.yxgh.sz.dto.v2.SzRecordSearchV2Dto; +import com.kms.yxgh.sz.service.SzCheckingProblemV2Service; import com.shuili.common.core.domain.SearchParam; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -19,6 +18,7 @@ import org.springframework.web.bind.annotation.RestController; @Api(tags = "水闸巡查缺陷v2") public class SzCheckingProblemV2Controller { + private final SzCheckingProblemV2Service szCheckingProblemV2Service; /** @@ -27,7 +27,7 @@ public class SzCheckingProblemV2Controller { @PostMapping("/list") @ApiOperation("水闸巡查缺陷列表v2") public IPage list(@RequestBody SearchParam sp) { - return new Page<>(); + return szCheckingProblemV2Service.list(sp); } } diff --git a/shuili-system/src/main/java/com/kms/yxgh/sz/controller/v2/SzCheckingRecordV2Controller.java b/shuili-system/src/main/java/com/kms/yxgh/sz/controller/v2/SzCheckingRecordV2Controller.java index 50bb6e52..e7c32fb0 100644 --- a/shuili-system/src/main/java/com/kms/yxgh/sz/controller/v2/SzCheckingRecordV2Controller.java +++ b/shuili-system/src/main/java/com/kms/yxgh/sz/controller/v2/SzCheckingRecordV2Controller.java @@ -4,8 +4,10 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.kms.yxgh.base.Response; import com.kms.yxgh.base.UpdateGroup; +import com.kms.yxgh.df.service.DfCheckingRecordV2Service; import com.kms.yxgh.sz.dto.v2.SzRecordDetailV2Dto; import com.kms.yxgh.sz.dto.v2.SzRecordSearchV2Dto; +import com.kms.yxgh.sz.service.SzCheckingRecordV2Service; import com.shuili.common.annotation.Log; import com.shuili.common.core.domain.SearchParam; import com.shuili.common.enums.BusinessType; @@ -22,6 +24,7 @@ import org.springframework.web.bind.annotation.*; @Api(tags = "水闸巡视检查记录v2") public class SzCheckingRecordV2Controller { + private final SzCheckingRecordV2Service szCheckingRecordV2Service; /** * 查询堤防巡视检查记录列表 @@ -29,13 +32,13 @@ public class SzCheckingRecordV2Controller { @PostMapping("/list") @ApiOperation("水闸巡视检查记录列表v2") public IPage list(@RequestBody SearchParam sp) { - return new Page<>(); + return szCheckingRecordV2Service.list(sp); } @ApiOperation("水闸巡视检查记录详情v2") @GetMapping(value = "/{id}") public Response getInfo(@PathVariable("id") String id) { - return Response.ok(); + return Response.ok(szCheckingRecordV2Service.getInfo(id)); } @ApiOperation("水闸巡视检查记录新增或修改v2") @@ -44,7 +47,8 @@ public class SzCheckingRecordV2Controller { public Response edit(@Validated(UpdateGroup.class) @RequestBody SzRecordDetailV2Dto szRecord, @PathVariable("commit") Boolean commit) { - return Response.ok(); + + return Response.ok(szCheckingRecordV2Service.edit(szRecord,commit)); } @ApiOperation("水闸巡视检查记录删除v2") diff --git a/shuili-system/src/main/java/com/kms/yxgh/sz/controller/v2/SzCheckingV2Controller.java b/shuili-system/src/main/java/com/kms/yxgh/sz/controller/v2/SzCheckingV2Controller.java index 8ed7028e..68222d83 100644 --- a/shuili-system/src/main/java/com/kms/yxgh/sz/controller/v2/SzCheckingV2Controller.java +++ b/shuili-system/src/main/java/com/kms/yxgh/sz/controller/v2/SzCheckingV2Controller.java @@ -4,6 +4,8 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.kms.yxgh.base.Response; import com.kms.yxgh.sz.dto.v2.SzV2CheckingDto; import com.kms.yxgh.sz.dto.v2.SzV2CheckingSearchDto; +import com.kms.yxgh.sz.service.SzCheckingLineService; +import com.kms.yxgh.sz.service.SzCheckingV2Service; import com.shuili.common.annotation.Log; import com.shuili.common.core.domain.SearchParam; import com.shuili.common.enums.BusinessType; @@ -23,38 +25,39 @@ import org.springframework.web.bind.annotation.*; @Api(tags = "水闸巡查项目v2") public class SzCheckingV2Controller { + private final SzCheckingV2Service szCheckingV2Service; @PostMapping("/list") @ApiOperation("水闸项目列表") public IPage list(@RequestBody SearchParam sp) { - return new Page<>(); + return szCheckingV2Service.list(sp); } @ApiOperation("水闸巡查项目详情") @GetMapping(value = "/{id}") public Response getInfo(@PathVariable("id") String id) { - return Response.ok(); + return Response.ok(szCheckingV2Service.getInfo(id)); } @Log(title = "水闸巡查项目新增", businessType = BusinessType.INSERT) @PostMapping("/add") @ApiOperation("水闸巡查项目新增") public Response add(@RequestBody SzV2CheckingDto szV2Ck) { - return Response.ok(); + return Response.ok(szCheckingV2Service.add(szV2Ck)); } @ApiOperation("水闸巡查项目修改") @Log(title = "水闸巡查项目修改", businessType = BusinessType.UPDATE) @PostMapping("/edit") public Response edit(@RequestBody SzV2CheckingDto szV2Ck) { - return Response.ok(); + return Response.ok(szCheckingV2Service.edit(szV2Ck)); } @ApiOperation("水闸巡查项目删除") @Log(title = "水闸巡查项目删除", businessType = BusinessType.DELETE) @DeleteMapping("/{ids}") public Response remove(@PathVariable("ids") String[] ids) { - return Response.ok(); + return Response.ok(szCheckingV2Service.myRemove(ids)); } } diff --git a/shuili-system/src/main/java/com/kms/yxgh/sz/controller/v2/SzYhV2Controller.java b/shuili-system/src/main/java/com/kms/yxgh/sz/controller/v2/SzYhV2Controller.java index 313773d1..b5bddfa2 100644 --- a/shuili-system/src/main/java/com/kms/yxgh/sz/controller/v2/SzYhV2Controller.java +++ b/shuili-system/src/main/java/com/kms/yxgh/sz/controller/v2/SzYhV2Controller.java @@ -1,14 +1,14 @@ package com.kms.yxgh.sz.controller.v2; import com.baomidou.mybatisplus.core.metadata.IPage; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.kms.yxgh.base.Response; import com.kms.yxgh.base.UpdateGroup; import com.kms.yxgh.common.ApprovalTypeEnum; import com.kms.yxgh.common.controller.ApprovalAbstractController; -import com.kms.yxgh.df.dto.v2.*; import com.kms.yxgh.sz.dto.v2.SzRecordSearchV2Dto; +import com.kms.yxgh.sz.dto.v2.SzYhApproveDto; import com.kms.yxgh.sz.dto.v2.SzYhDetailV2Dto; import com.kms.yxgh.sz.dto.v2.SzYhListV2Dto; +import com.kms.yxgh.sz.service.SzYhV2Service; import com.shuili.common.annotation.Log; import com.shuili.common.core.domain.SearchParam; import com.shuili.common.enums.BusinessType; @@ -17,25 +17,28 @@ import io.swagger.annotations.ApiOperation; import lombok.AllArgsConstructor; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; -import static com.kms.yxgh.common.ApprovalTypeEnum.YH_V2_RECORD; + +import static com.kms.yxgh.common.ApprovalTypeEnum.*; + @RestController @AllArgsConstructor @RequestMapping("/run/sz/v2/yh") @Api(tags = "水闸养护v2") -public class SzYhV2Controller extends ApprovalAbstractController { +public class SzYhV2Controller extends ApprovalAbstractController { + private final SzYhV2Service szYhV2Service; @PostMapping("/list") @ApiOperation("水闸养护列表v2") public IPage list(@RequestBody SearchParam sp) { - return new Page<>(); + return szYhV2Service.list(sp); } @ApiOperation("水闸养护详情v2") @GetMapping(value = "/{id}") public Response getInfo(@PathVariable("id") String id) { - return Response.ok(); + return Response.ok(szYhV2Service.getInfo(id)); } @ApiOperation("水闸养护新增或修改v2") @@ -44,18 +47,18 @@ public class SzYhV2Controller extends ApprovalAbstractController edit(@Validated(UpdateGroup.class) @RequestBody SzYhDetailV2Dto szYh, @PathVariable("commit") Boolean commit) { - return Response.ok(); + return Response.ok(szYhV2Service.edit(szYh,commit)); } @ApiOperation("水闸养护删除v2") @Log(title = "水闸养护删除v2", businessType = BusinessType.DELETE) @DeleteMapping("/{ids}") public Response myRemove(@PathVariable("ids") String[] ids) { - return Response.ok(); + return Response.ok(szYhV2Service.myRemove(ids)); } @Override public ApprovalTypeEnum getApprovalType() { - return YH_V2_RECORD; + return SZ_V2_YH_RECORD; } } diff --git a/shuili-system/src/main/java/com/kms/yxgh/sz/domain/SzCheckingProblemV2.java b/shuili-system/src/main/java/com/kms/yxgh/sz/domain/SzCheckingProblemV2.java new file mode 100644 index 00000000..5990980b --- /dev/null +++ b/shuili-system/src/main/java/com/kms/yxgh/sz/domain/SzCheckingProblemV2.java @@ -0,0 +1,143 @@ +package com.kms.yxgh.sz.domain; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.kms.yxgh.base.SyBaseEntity; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.Date; + +/** + * 缺陷记录 bs_sgc_sz_xcqx + * + * @author sy + * @date 2024-01-04 + */ +@TableName("bs_sgc_sz_xcqx") +@Data +@ApiModel("缺陷记录") +public class SzCheckingProblemV2 extends SyBaseEntity { + private static final long serialVersionUID = 1L; + + private String itemId; + + /** + * 问题位置 + */ + @ApiModelProperty("部位") + private String parts; + + + @ApiModelProperty("问题等级") + private String problemLevel; + + /** + * 项目id + */ + @ApiModelProperty("项目id") + private String checkingId; + + /** + * 记录id + */ + @ApiModelProperty("记录id") + private String recordId; + + + /** + * 巡查状态字典:patrol_maintenance_status + */ + @ApiModelProperty("巡查状态字典:patrol_maintenance_status") + private String status; + + + /** + * 巡查项目名称 + */ + @ApiModelProperty("巡查项目名称") + private String checkingName; + + + /** + * 巡查类型 字典:patrol_maintenance_type + */ + @ApiModelProperty("巡查类型 字典:patrol_maintenance_type") + private String type; + + /** + * 巡查类别字典:key_jf_patrol_category + */ + @ApiModelProperty("巡查类别字典:patrol_maintenance_category") + private String category; + + + /** + * 巡查责任人 + */ + @ApiModelProperty("巡查责任人") + private String dutyHolderName; + + /** + * 巡查责任人id + */ + @ApiModelProperty("巡查责任人id") + private String dutyHolderId; + + /** + * 堤防代码 + */ + @ApiModelProperty("堤防代码") + private String wagaCode; + + + /** + * 堤防代码名称 + */ + @ApiModelProperty("堤防代码名称") + private String wagaName; + + /** + * 巡查开始时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @ApiModelProperty("巡查开始时间") + private Date startDate; + + /** + * 巡查开始时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @ApiModelProperty("巡查结束时间") + private Date endDate; + + /** + * 问题位置 + */ + @ApiModelProperty("问题位置") + private String position; + + @ApiModelProperty("检查内容") + private String content; + /** + * 文档 + */ + @ApiModelProperty("文档") + private String doc; + + /** + * 创建人id + */ + @ApiModelProperty("创建人id") + private String createUid; + + + /** + * 附加配置 + */ + @ApiModelProperty("备注") + private String remark; + + +} diff --git a/shuili-system/src/main/java/com/kms/yxgh/sz/domain/SzCheckingRecord.java b/shuili-system/src/main/java/com/kms/yxgh/sz/domain/SzCheckingRecord.java new file mode 100644 index 00000000..5306051f --- /dev/null +++ b/shuili-system/src/main/java/com/kms/yxgh/sz/domain/SzCheckingRecord.java @@ -0,0 +1,121 @@ +package com.kms.yxgh.sz.domain; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.kms.yxgh.base.SyBaseEntity; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.Date; + +/** + * bs_sgc_df_xsxcjl + * + * @author sy + * @date 2024-01-04 + */ +@TableName("bs_sgc_sz_xsxcjl") +@Data +@ApiModel("水闸项目管理记录") +public class SzCheckingRecord extends SyBaseEntity { + private static final long serialVersionUID = 1L; + + /** + * 开始时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @ApiModelProperty("开始时间") + private Date startDate; + + /** + * 结束时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @ApiModelProperty("结束时间") + private Date endDate; + + /** + * 巡查范围 + */ + @ApiModelProperty("巡查范围") + private String scope; + + + /** + * 项目id + */ + @ApiModelProperty("项目id") + private String checkingId; + + /** + * 巡查状态字典:patrol_maintenance_status + */ + @ApiModelProperty("巡查状态字典:patrol_maintenance_status") + private String status; + + /** + * 巡查责任人 + */ + @ApiModelProperty("巡查责任人") + private String dutyHolderName; + + /** + * 巡查责任人id + */ + @ApiModelProperty("巡查责任人id") + private String dutyHolderId; + + /** + * 项目名称 + */ + @ApiModelProperty("项目名称") + private String checkingName; + + /** + * 巡查类型 字典:patrol_maintenance_type + */ + @ApiModelProperty("巡查类型 字典:patrol_maintenance_type") + private String type; + + /** + * 巡查类别字典:key_jf_patrol_category + */ + @ApiModelProperty("巡查类别字典:patrol_maintenance_category") + private String category; + + /** + * 堤防代码 + */ + @ApiModelProperty("水闸代码") + private String wagaCode; + + + /** + * 堤防代码名称 + */ + @ApiModelProperty("水闸代码名称") + private String wagaName; + + + /** + * 创建人id + */ + @ApiModelProperty("创建人id") + private String createUid; + + + /** + * 附加配置 + */ + @ApiModelProperty("备注") + private String remark; + + /** + * 创建人名称 + */ + @ApiModelProperty("创建人名称") + private String createName; + + +} diff --git a/shuili-system/src/main/java/com/kms/yxgh/sz/domain/SzCheckingV2ProjectItem.java b/shuili-system/src/main/java/com/kms/yxgh/sz/domain/SzCheckingV2ProjectItem.java new file mode 100644 index 00000000..6550882b --- /dev/null +++ b/shuili-system/src/main/java/com/kms/yxgh/sz/domain/SzCheckingV2ProjectItem.java @@ -0,0 +1,41 @@ +package com.kms.yxgh.sz.domain; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.kms.yxgh.base.SyBaseEntity; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + + +/** + * 水闸项目管理子项 + * + * @author sy + * @date 2024-01-04 + */ +@TableName("bs_sgc_sz_xcitem") +@Data +@ApiModel("水闸项目管理子项") +public class SzCheckingV2ProjectItem extends SyBaseEntity { + private static final long serialVersionUID = 1L; + + /** + * 项目id + */ + @ApiModelProperty("项目id") + private String checkingId; + + /** + * 检查部位 + */ + @ApiModelProperty("检查部位") + private String parts; + + /** + * 检查内容 + */ + @ApiModelProperty("检查内容") + private String content; + + +} diff --git a/shuili-system/src/main/java/com/kms/yxgh/sz/domain/SzCheckingV2ProjectManage.java b/shuili-system/src/main/java/com/kms/yxgh/sz/domain/SzCheckingV2ProjectManage.java new file mode 100644 index 00000000..f25d34d0 --- /dev/null +++ b/shuili-system/src/main/java/com/kms/yxgh/sz/domain/SzCheckingV2ProjectManage.java @@ -0,0 +1,68 @@ +package com.kms.yxgh.sz.domain; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.kms.yxgh.base.SyBaseEntity; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + + +/** + * bs_sgc_df_hdjh + * + * @author sy + * @date 2024-01-04 + */ +@TableName("bs_sgc_sz_xmgl") +@Data +@ApiModel("水闸项目管理") +public class SzCheckingV2ProjectManage extends SyBaseEntity { + private static final long serialVersionUID = 1L; + + /** + * 堤防代码 + */ + @ApiModelProperty("水闸代码") + private String wagaCode; + + + /** + * 堤防代码名称 + */ + @ApiModelProperty("水闸代码名称") + private String wagaName; + + /** + * 项目名称 + */ + @ApiModelProperty("项目名称") + private String name; + + + /** + * 巡查类型 字典:patrol_maintenance_type + */ + @ApiModelProperty("巡查类型 字典:patrol_maintenance_type") + private String type; + + + /** + * 巡查类别字典:key_jf_patrol_category + */ + @ApiModelProperty("巡查类别字典:patrol_maintenance_category") + private String category; + + /** + * 附加配置 + */ + @ApiModelProperty("备注") + private String remark; + + /** + * 创建人名称 + */ + @ApiModelProperty("创建人名称") + private String createName; + + +} diff --git a/shuili-system/src/main/java/com/kms/yxgh/sz/domain/SzYhV2.java b/shuili-system/src/main/java/com/kms/yxgh/sz/domain/SzYhV2.java new file mode 100644 index 00000000..3affe622 --- /dev/null +++ b/shuili-system/src/main/java/com/kms/yxgh/sz/domain/SzYhV2.java @@ -0,0 +1,136 @@ +package com.kms.yxgh.sz.domain; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.kms.yxgh.base.SyBaseEntity; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.Date; + + +/** + * 缺陷记录 bs_sgc_df_xcqx + * + * @author sy + * @date 2024-01-04 + */ +@TableName("bs_sgc_sz_xcyj") +@Data +@ApiModel("水闸巡视养护管理表") +public class SzYhV2 extends SyBaseEntity { + + /** + * 巡查项目id + */ + @ApiModelProperty("巡查项目id") + private String checkingId; + /** + * 缺陷id + */ + @ApiModelProperty("缺陷id") + private String problemId; + /** + * 文档 + */ + @ApiModelProperty("文档") + private String doc; + + + /** + * 维养责任人id + */ + @ApiModelProperty("维养责任人id") + private String dutyHolderId; + + /** + * 维养责任人名称 + */ + @ApiModelProperty("维养责任人名称") + private String dutyHolderName; + + + /** + * 问题等级 + */ + @ApiModelProperty("水闸问题等级") + private String problemLevel; + + + /** + * 记录id + */ + @ApiModelProperty("记录id") + private String recordId; + + /** + * 巡查状态字典:patrol_maintenance_status + */ + @ApiModelProperty("巡查状态字典:patrol_maintenance_status") + private String status; + + /** + * 名称 + */ + @ApiModelProperty("名称") + private String name; + + /** + * 巡查类型 字典:patrol_maintenance_type + */ + @ApiModelProperty("巡查类型 字典:patrol_maintenance_type") + private String type; + + /** + * 巡查类别字典:key_jf_patrol_category + */ + @ApiModelProperty("巡查类别字典:patrol_maintenance_category") + private String category; + + /** + * 堤防代码 + */ + @ApiModelProperty("堤防代码") + private String wagaCode; + + + /** + * 堤防代码名称 + */ + @ApiModelProperty("水闸代码名称") + private String wagaName; + + /** + * 维养开始时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @ApiModelProperty("维养开始时间") + private Date startDate; + + /** + * 维养结束时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @ApiModelProperty("维养结束时间") + private Date endDate; + + + /** + * 创建人id + */ + @ApiModelProperty("创建人id") + private String createUid; + + + /** + * 附加配置 + */ + @ApiModelProperty("备注") + private String remark; + + + private String content; + + +} diff --git a/shuili-system/src/main/java/com/kms/yxgh/sz/dto/v2/SzRecordDetailV2Dto.java b/shuili-system/src/main/java/com/kms/yxgh/sz/dto/v2/SzRecordDetailV2Dto.java index acb98da3..2d150527 100644 --- a/shuili-system/src/main/java/com/kms/yxgh/sz/dto/v2/SzRecordDetailV2Dto.java +++ b/shuili-system/src/main/java/com/kms/yxgh/sz/dto/v2/SzRecordDetailV2Dto.java @@ -4,7 +4,7 @@ import com.fasterxml.jackson.annotation.JsonFormat; import com.kms.yxgh.base.AddGroup; import com.kms.yxgh.base.UpdateGroup; import com.kms.yxgh.common.dto.DocV2Dto; -import com.kms.yxgh.sz.dto.SzCheckingDetailDto; +import com.kms.yxgh.sz.dto.v2.SzCheckingDetailDto; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; diff --git a/shuili-system/src/main/java/com/kms/yxgh/sz/dto/v2/SzV2CheckingDto.java b/shuili-system/src/main/java/com/kms/yxgh/sz/dto/v2/SzV2CheckingDto.java index 99a92336..b8a99ec0 100644 --- a/shuili-system/src/main/java/com/kms/yxgh/sz/dto/v2/SzV2CheckingDto.java +++ b/shuili-system/src/main/java/com/kms/yxgh/sz/dto/v2/SzV2CheckingDto.java @@ -1,6 +1,7 @@ package com.kms.yxgh.sz.dto.v2; import com.fasterxml.jackson.annotation.JsonFormat; +import com.kms.yxgh.df.dto.DfCheckingDetailDto; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -16,9 +17,9 @@ public class SzV2CheckingDto { @ApiModelProperty("水闸编码") private String wagaCode; @ApiModelProperty("水闸名称") - private String wageName; - @ApiModelProperty("类型") - private String wageType; + private String wagaName; + @ApiModelProperty("水闸类型") + private String wagaType; @NotNull @ApiModelProperty("主键") @@ -27,10 +28,10 @@ public class SzV2CheckingDto { @ApiModelProperty("名称") private String name; - @ApiModelProperty("类型") + @ApiModelProperty("巡查类型") private String type; - @ApiModelProperty("类别") + @ApiModelProperty("巡查类别") private String category; @ApiModelProperty("创建时间") diff --git a/shuili-system/src/main/java/com/kms/yxgh/sz/dto/v2/SzYhApproveDto.java b/shuili-system/src/main/java/com/kms/yxgh/sz/dto/v2/SzYhApproveDto.java new file mode 100644 index 00000000..8326d540 --- /dev/null +++ b/shuili-system/src/main/java/com/kms/yxgh/sz/dto/v2/SzYhApproveDto.java @@ -0,0 +1,25 @@ +package com.kms.yxgh.sz.dto.v2; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@ApiModel(value = "水闸养护验收列表信息v2") +@Data +public class SzYhApproveDto extends SzV2CheckingDto { + + @ApiModelProperty("巡查责任人") + private String dutyHolderId; + + @ApiModelProperty("巡查责任人名称") + private String dutyHolderName; + + @ApiModelProperty("问题级别") + private String problemLevel; + + @ApiModelProperty("记录id") + private String recordId; + @ApiModelProperty("问题id") + private String problemId; + @ApiModelProperty("状态") + private String status; +} diff --git a/shuili-system/src/main/java/com/kms/yxgh/sz/mapper/SzCheckingProblemV2Mapper.java b/shuili-system/src/main/java/com/kms/yxgh/sz/mapper/SzCheckingProblemV2Mapper.java new file mode 100644 index 00000000..a250d075 --- /dev/null +++ b/shuili-system/src/main/java/com/kms/yxgh/sz/mapper/SzCheckingProblemV2Mapper.java @@ -0,0 +1,80 @@ +package com.kms.yxgh.sz.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.kms.yxgh.common.dto.CountDateDto; +import com.kms.yxgh.common.dto.CountDto; +import com.kms.yxgh.common.dto.ObjectStatisticQueDto; +import com.kms.yxgh.common.enums.PatrolMaintenanceCategory; +import com.kms.yxgh.sz.domain.SzCheckingProblemV2; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; +import org.springframework.stereotype.Repository; + +import java.util.List; + +/** + * SzCheckingProblemV2Mapper + * + * @author sy + * @date 2024-01-04 + */ +@Repository +public interface SzCheckingProblemV2Mapper extends BaseMapper { + + @Select("") + List count(@Param("data") ObjectStatisticQueDto sp); + + + @Select("") + List countDate(@Param("data") ObjectStatisticQueDto sp, @Param("category") PatrolMaintenanceCategory category); + + + @Select("") + List countLevel(@Param("data") ObjectStatisticQueDto sp, @Param("category") PatrolMaintenanceCategory category); + + + @Select("") + List countQx(@Param("data") ObjectStatisticQueDto sp); + +} diff --git a/shuili-system/src/main/java/com/kms/yxgh/sz/mapper/SzCheckingRecordV2Mapper.java b/shuili-system/src/main/java/com/kms/yxgh/sz/mapper/SzCheckingRecordV2Mapper.java new file mode 100644 index 00000000..d95d16a6 --- /dev/null +++ b/shuili-system/src/main/java/com/kms/yxgh/sz/mapper/SzCheckingRecordV2Mapper.java @@ -0,0 +1,68 @@ +package com.kms.yxgh.sz.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.kms.yxgh.common.dto.CountDateDto; +import com.kms.yxgh.common.dto.CountDto; +import com.kms.yxgh.common.dto.ObjectStatisticQueDto; +import com.kms.yxgh.common.enums.PatrolMaintenanceCategory; +import com.kms.yxgh.df.domain.DfCheckingRecord; +import com.kms.yxgh.sz.domain.SzCheckingRecord; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; +import org.springframework.stereotype.Repository; + +import java.util.List; + +/** + * 害堤动物防治计划Mapper接口 + * + * @author sy + * @date 2024-01-04 + */ +@Repository +public interface SzCheckingRecordV2Mapper extends BaseMapper { + + @Select("") + List count(@Param("data") ObjectStatisticQueDto sp, @Param("category") PatrolMaintenanceCategory category); + + + @Select("") + List countDateGroup(@Param("data") ObjectStatisticQueDto sp, @Param("category") PatrolMaintenanceCategory category); + + @Select("" + ) + int countXm(@Param("data") ObjectStatisticQueDto sp); + +} diff --git a/shuili-system/src/main/java/com/kms/yxgh/sz/mapper/SzCheckingV2Mapper.java b/shuili-system/src/main/java/com/kms/yxgh/sz/mapper/SzCheckingV2Mapper.java new file mode 100644 index 00000000..8b7a9204 --- /dev/null +++ b/shuili-system/src/main/java/com/kms/yxgh/sz/mapper/SzCheckingV2Mapper.java @@ -0,0 +1,36 @@ +package com.kms.yxgh.sz.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.kms.yxgh.common.dto.CountDto; +import com.kms.yxgh.common.dto.ObjectStatisticQueDto; +import com.kms.yxgh.sz.domain.SzCheckingV2ProjectManage; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; +import org.springframework.stereotype.Repository; + +import java.util.List; + +/** + * SzCheckingV2Mapper + * + * @author sy + * @date 2024-01-04 + */ +@Repository +public interface SzCheckingV2Mapper extends BaseMapper { + + @Select("" + ) + List count(@Param("data") ObjectStatisticQueDto sp); + + +} diff --git a/shuili-system/src/main/java/com/kms/yxgh/sz/mapper/SzCheckingV2ProjectItemMapper.java b/shuili-system/src/main/java/com/kms/yxgh/sz/mapper/SzCheckingV2ProjectItemMapper.java new file mode 100644 index 00000000..29555e30 --- /dev/null +++ b/shuili-system/src/main/java/com/kms/yxgh/sz/mapper/SzCheckingV2ProjectItemMapper.java @@ -0,0 +1,18 @@ +package com.kms.yxgh.sz.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.kms.yxgh.df.domain.DfCheckingV2ProjectItem; +import com.kms.yxgh.sz.domain.SzCheckingV2ProjectItem; +import org.springframework.stereotype.Repository; + +/** + * SzCheckingV2ProjectItemMapper + * + * @author sy + * @date 2024-01-04 + */ +@Repository +public interface SzCheckingV2ProjectItemMapper extends BaseMapper { + + +} diff --git a/shuili-system/src/main/java/com/kms/yxgh/sz/mapper/SzYhV2Mapper.java b/shuili-system/src/main/java/com/kms/yxgh/sz/mapper/SzYhV2Mapper.java new file mode 100644 index 00000000..fb26bda9 --- /dev/null +++ b/shuili-system/src/main/java/com/kms/yxgh/sz/mapper/SzYhV2Mapper.java @@ -0,0 +1,53 @@ +package com.kms.yxgh.sz.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.kms.yxgh.common.dto.*; +import com.kms.yxgh.sz.domain.SzYhV2; +import com.kms.yxgh.sz.dto.v2.SzRecordSearchV2Dto; +import com.kms.yxgh.sz.dto.v2.SzYhApproveDto; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; +import org.springframework.stereotype.Repository; + +import java.util.List; + +/** + * DfYhV2Mapper + * + * @author sy + * @date 2024-01-04 + */ +@Repository +public interface SzYhV2Mapper extends BaseMapper { + + IPage> approvalSearchPage(Page page, @Param("dto") ApprovalSearchDto data); + + + @Select("") + List count(@Param("data") ObjectStatisticQueDto sp); + + + @Select("") + List countYhDto(@Param("data") ObjectStatisticQueDto sp); +} diff --git a/shuili-system/src/main/java/com/kms/yxgh/sz/service/SzCheckingProblemV2Service.java b/shuili-system/src/main/java/com/kms/yxgh/sz/service/SzCheckingProblemV2Service.java new file mode 100644 index 00000000..5e4a800e --- /dev/null +++ b/shuili-system/src/main/java/com/kms/yxgh/sz/service/SzCheckingProblemV2Service.java @@ -0,0 +1,111 @@ + +package com.kms.yxgh.sz.service; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; +import com.baomidou.mybatisplus.core.toolkit.StringUtils; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.kms.yxgh.df.domain.DfCheckingProblemV2; +import com.kms.yxgh.df.dto.v2.DfProblemV2Dto; +import com.kms.yxgh.df.dto.v2.DfRecordSearchV2Dto; +import com.kms.yxgh.sz.domain.SzCheckingProblemV2; +import com.kms.yxgh.sz.dto.v2.SzProblemV2Dto; +import com.kms.yxgh.sz.dto.v2.SzRecordSearchV2Dto; +import com.kms.yxgh.sz.mapper.SzCheckingProblemV2Mapper; +import com.shuili.common.core.domain.SearchParam; +import com.shuili.common.core.service.BaseService; +import com.shuili.common.utils.BeanUtils; +import lombok.AllArgsConstructor; +import org.springframework.stereotype.Service; + +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import java.util.stream.Collectors; + +import static com.kms.yxgh.common.enums.DfYhV2StatusEnum.DURING_INSPECTION; + +/** + * 项目管理记录 + * + * @author sy + * @date 2023-11-09 + */ +@Service +@AllArgsConstructor +public class SzCheckingProblemV2Service extends BaseService { + + + public IPage list(SearchParam sp) { + // 分页参数 + Page page = new Page<>(sp.getPageNum(), sp.getPageSize()); + SzRecordSearchV2Dto data = sp.getData(); + + // 构建查询条件 + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper(); + if (!ObjectUtils.isEmpty(data)) { + Optional.ofNullable(data.getCategory()) + .filter(StringUtils::isNotBlank) + .ifPresent(category -> queryWrapper.eq(SzCheckingProblemV2::getCategory, category)); + + Optional.ofNullable(data.getType()) + .filter(StringUtils::isNotBlank) + .ifPresent(type -> queryWrapper.eq(SzCheckingProblemV2::getType, type)); + + Optional.ofNullable(data.getName()) + .filter(StringUtils::isNotBlank) + .ifPresent(name -> queryWrapper.like(SzCheckingProblemV2::getCheckingName, name)); + + Optional.ofNullable(data.getDutyHolder()) + .filter(StringUtils::isNotBlank) + .ifPresent(dutyHolder -> queryWrapper.like(SzCheckingProblemV2::getDutyHolderName, dutyHolder)); + + Optional.ofNullable(data.getStatus()) + .filter(StringUtils::isNotBlank) + .ifPresent(status -> queryWrapper.like(SzCheckingProblemV2::getStatus, status)); + + if (!Objects.isNull(data.getStartDate())) { + queryWrapper.ge(SzCheckingProblemV2::getStartDate, data.getStartDate()); + } + + if (!Objects.isNull(data.getEndDate())) { + queryWrapper.le(SzCheckingProblemV2::getEndDate, data.getEndDate()); + } + Optional.ofNullable(data.getProblemLevel()) + .filter(StringUtils::isNotBlank) + .ifPresent(problemLevel -> queryWrapper.eq(SzCheckingProblemV2::getProblemLevel, problemLevel)); + + Optional.ofNullable(data.getRecordId()) + .filter(StringUtils::isBlank) + .ifPresent(recordId -> queryWrapper.eq(SzCheckingProblemV2::getProblemLevel, recordId)); + + } + queryWrapper.ne(SzCheckingProblemV2::getStatus, DURING_INSPECTION.getValue()); + + // 查询分页数据 + Page queryPage = page(page, queryWrapper); + if (queryPage == null) { + return new Page<>(); + } + + // 转换为 DTO 分页对象 + Page dtoPage = new Page<>(); + BeanUtils.copyProperties(queryPage, dtoPage); + + // 处理查询结果 + List vos = queryPage.getRecords().stream() + .map(record -> { + SzProblemV2Dto dto = new SzProblemV2Dto(); + BeanUtils.copyProperties(record, dto); + return dto; + }) + .collect(Collectors.toList()); + dtoPage.setRecords(vos); + return dtoPage; + } +} + + + + diff --git a/shuili-system/src/main/java/com/kms/yxgh/sz/service/SzCheckingRecordV2Service.java b/shuili-system/src/main/java/com/kms/yxgh/sz/service/SzCheckingRecordV2Service.java new file mode 100644 index 00000000..ea0df726 --- /dev/null +++ b/shuili-system/src/main/java/com/kms/yxgh/sz/service/SzCheckingRecordV2Service.java @@ -0,0 +1,257 @@ +package com.kms.yxgh.sz.service; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; +import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; +import com.baomidou.mybatisplus.core.toolkit.StringUtils; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.kms.yxgh.common.enums.DfYhV2StatusEnum; +import com.kms.yxgh.df.service.DfCheckingV2Service; +import com.kms.yxgh.sz.domain.SzCheckingProblemV2; +import com.kms.yxgh.sz.domain.SzCheckingRecord; +import com.kms.yxgh.sz.domain.SzCheckingV2ProjectItem; +import com.kms.yxgh.sz.domain.SzYhV2; +import com.kms.yxgh.sz.dto.v2.SzRecordDetailV2Dto; +import com.kms.yxgh.sz.dto.v2.SzRecordSearchV2Dto; +import com.kms.yxgh.sz.mapper.SzCheckingRecordV2Mapper; +import com.shuili.common.core.domain.SearchParam; +import com.shuili.common.core.service.BaseService; +import com.shuili.common.utils.BeanUtils; +import lombok.AllArgsConstructor; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import java.util.stream.Collectors; + +/** + * 水闸项目管理记录 + * + * @author sy + * @date 2023-11-09 + */ +@Service +@AllArgsConstructor +public class SzCheckingRecordV2Service extends BaseService { + + private final SzYhV2Service szYhV2Service; + + + private final SzCheckingV2ProjectItemV2Service szCheckingV2ProjectItemV2Service; + + private final SzCheckingProblemV2Service szCheckingProblemV2Service; + + public IPage list(SearchParam sp) { + // 分页参数 + Page page = new Page<>(sp.getPageNum(), sp.getPageSize()); + SzRecordSearchV2Dto data = sp.getData(); + + // 构建查询条件 + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + if (!ObjectUtils.isEmpty(data)) { + Optional.ofNullable(data.getCategory()) + .filter(StringUtils::isNotBlank) + .ifPresent(category -> queryWrapper.eq(SzCheckingRecord::getCategory, category)); + + Optional.ofNullable(data.getType()) + .filter(StringUtils::isNotBlank) + .ifPresent(type -> queryWrapper.eq(SzCheckingRecord::getType, type)); + + Optional.ofNullable(data.getName()) + .filter(StringUtils::isNotBlank) + .ifPresent(name -> queryWrapper.like(SzCheckingRecord::getCheckingName, name)); + + Optional.ofNullable(data.getDutyHolder()) + .filter(StringUtils::isNotBlank) + .ifPresent(dutyHolder -> queryWrapper.like(SzCheckingRecord::getDutyHolderName, dutyHolder)); + + Optional.ofNullable(data.getStatus()) + .filter(StringUtils::isNotBlank) + .ifPresent(status -> queryWrapper.like(SzCheckingRecord::getStatus, status)); + + + if (!Objects.isNull(data.getStartDate())) { + queryWrapper.ge(SzCheckingRecord::getStartDate, data.getStartDate()); + } + + if (!Objects.isNull(data.getEndDate())) { + queryWrapper.le(SzCheckingRecord::getEndDate, data.getEndDate()); + } + } + + // 查询分页数据 + Page queryPage = page(page, queryWrapper); + if (queryPage == null) { + return new Page<>(); + } + + // 转换为 DTO 分页对象 + Page dtoPage = new Page<>(); + BeanUtils.copyProperties(queryPage, dtoPage); + + // 处理查询结果 + List vos = queryPage.getRecords().stream() + .map(record -> { + SzRecordDetailV2Dto dto = new SzRecordDetailV2Dto(); + BeanUtils.copyProperties(record, dto); + return dto; + }) + .collect(Collectors.toList()); + dtoPage.setRecords(vos); + return dtoPage; + + } + + + public SzRecordDetailV2Dto getInfo(String id) { + SzRecordDetailV2Dto dto = new SzRecordDetailV2Dto(); + SzCheckingRecord szCheckingRecord = getById(id); + if (szCheckingRecord == null) { + return dto; + } + BeanUtils.copyProperties(szCheckingRecord, dto); + + + List items = szCheckingV2ProjectItemV2Service.list(new LambdaQueryWrapper() + .eq(SzCheckingV2ProjectItem::getCheckingId,szCheckingRecord.getCheckingId())); + + + + dto.setItems(items.stream() + .map(SzCheckingV2Service::convertToItemDto) + .collect(Collectors.toList())); + + + List recordsList = szCheckingProblemV2Service.list(new LambdaQueryWrapper() + .eq(SzCheckingProblemV2::getRecordId, szCheckingRecord.getId())); + List dtoList = new ArrayList<>(); + for (SzCheckingProblemV2 record : recordsList) { + SzRecordDetailV2Dto.SzRecordItemDetailV2Dto detailV2Dto = new SzRecordDetailV2Dto.SzRecordItemDetailV2Dto(); + if (null != record.getParts()) { + detailV2Dto.setParts(DfCheckingV2Service.getStringList(record.getParts().split(","))); + } + if (null != record.getDoc()) { + detailV2Dto.setProblemImages(DfCheckingV2Service.getStringList(record.getDoc().split(","))); + } + detailV2Dto.setItemId(record.getItemId()); + detailV2Dto.setId(record.getId()); + detailV2Dto.setPosition(record.getPosition()); + detailV2Dto.setContent(record.getContent()); + detailV2Dto.setProblemLevel(record.getProblemLevel()); + detailV2Dto.setStatus(record.getStatus()); + dtoList.add(detailV2Dto); + } + dto.setProblems(dtoList); + return dto; + } + + @Transactional(rollbackFor = Exception.class) + public SzRecordDetailV2Dto edit(SzRecordDetailV2Dto szRecord, Boolean commit) { + // 先删后加 + myRemovePraIds(szRecord); + if (commit) { + SzCheckingRecord szCheckingRecord = new SzCheckingRecord(); + BeanUtils.copyProperties(szRecord, szCheckingRecord); + // 提交为已巡检 + szCheckingRecord.setStatus(DfYhV2StatusEnum.INSPECTED.getValue()); + // 如果相关缺陷大于一条就是养护中 + if (!szRecord.getProblems().isEmpty()) { + szCheckingRecord.setStatus(DfYhV2StatusEnum.UNDER_MAINTENANCE.getValue()); + } else { + // 提交时缺陷无数据就是无缺陷 + szCheckingRecord.setStatus(DfYhV2StatusEnum.NO_DEFECTS.getValue()); + } + mySaveOrUpdate(szCheckingRecord); + szRecord.setStatus(szCheckingRecord.getStatus()); + szRecord.setRecordId(szCheckingRecord.getId()); + szCheckingProblemV2Service.saveOrUpdateBatch(convertToImages(szRecord)); + return szRecord; + } else { + SzCheckingRecord szCheckingRecord = new SzCheckingRecord(); + BeanUtils.copyProperties(szRecord, szCheckingRecord); + // 未提交维巡查中 + szCheckingRecord.setStatus(DfYhV2StatusEnum.DURING_INSPECTION.getValue()); + mySaveOrUpdate(szCheckingRecord); + szRecord.setStatus(DfYhV2StatusEnum.DURING_INSPECTION.getValue()); + szRecord.setRecordId(szCheckingRecord.getId()); + szCheckingProblemV2Service.saveOrUpdateBatch(convertToImages(szRecord)); + return szRecord; + } + } + + public void mySaveOrUpdate (SzCheckingRecord szCheckingRecord) { + Boolean flag = org.springframework.util.StringUtils.isEmpty(szCheckingRecord.getId()) ? Boolean.TRUE :Boolean.FALSE; + if (flag) { + save(szCheckingRecord); + }else { + updateById(szCheckingRecord); + } + } + + public void myRemovePraIds(SzRecordDetailV2Dto dfRecord) { + List ids = dfRecord.getProblems() + .stream() + .map(SzRecordDetailV2Dto.SzRecordItemDetailV2Dto::getId).collect(Collectors.toList()); + if (CollectionUtils.isNotEmpty(ids)) { + szCheckingProblemV2Service.remove(new LambdaQueryWrapper().in(SzCheckingProblemV2::getId, ids)); + szYhV2Service.remove(new LambdaQueryWrapper().in(SzYhV2::getProblemId, ids)); + } + } + + public static List convertToImages(SzRecordDetailV2Dto dfRecord) { + List szCheckingProblemV2s = new ArrayList<>(); + dfRecord.getProblems().forEach(e -> { + SzCheckingProblemV2 szCheckingProblemV2 = new SzCheckingProblemV2(); + BeanUtils.copyProperties(e, szCheckingProblemV2); + szCheckingProblemV2.setCheckingId(dfRecord.getCheckingId()); + szCheckingProblemV2.setRecordId(dfRecord.getRecordId()); + szCheckingProblemV2.setCheckingName(dfRecord.getCheckingName()); + szCheckingProblemV2.setWagaCode(dfRecord.getWagaCode()); + szCheckingProblemV2.setWagaName(dfRecord.getWagaName()); + szCheckingProblemV2.setDutyHolderName(dfRecord.getCreateName()); + szCheckingProblemV2.setDutyHolderId(dfRecord.getCreateUid()); + szCheckingProblemV2.setStartDate(dfRecord.getStartDate()); + szCheckingProblemV2.setEndDate(dfRecord.getEndDate()); + szCheckingProblemV2.setType(dfRecord.getType()); + szCheckingProblemV2.setCategory(dfRecord.getCategory()); + szCheckingProblemV2.setStatus(dfRecord.getStatus()); + szCheckingProblemV2.setItemId(e.getItemId()); + if (null != e.getParts()) { + szCheckingProblemV2.setParts(String.join(",", e.getParts())); + } + if (null != e.getProblemImages()) { + szCheckingProblemV2.setDoc(String.join(",", e.getProblemImages())); + } + szCheckingProblemV2s.add(szCheckingProblemV2); + }); + return szCheckingProblemV2s; + } + + @Transactional(rollbackFor = Exception.class) + public Boolean myRemove(String[] ids) { + if (null != ids && ids.length > 0) { + int count = szCheckingProblemV2Service.count(new LambdaQueryWrapper() + .in(SzCheckingProblemV2::getCheckingId + , SzCheckingV2Service.getIntList(ids)) + ); + if (count > 0) { + throw new RuntimeException("请先删除项目子项"); + } + szCheckingProblemV2Service.remove(new LambdaQueryWrapper() + .in(SzCheckingProblemV2::getCheckingId, SzCheckingV2Service.getIntList(ids))); + + return remove(new LambdaQueryWrapper() + .in(SzCheckingRecord::getId, SzCheckingV2Service.getIntList(ids))); + } + return Boolean.FALSE; + } + +} + + + + diff --git a/shuili-system/src/main/java/com/kms/yxgh/sz/service/SzCheckingV2ProjectItemV2Service.java b/shuili-system/src/main/java/com/kms/yxgh/sz/service/SzCheckingV2ProjectItemV2Service.java new file mode 100644 index 00000000..0a86b975 --- /dev/null +++ b/shuili-system/src/main/java/com/kms/yxgh/sz/service/SzCheckingV2ProjectItemV2Service.java @@ -0,0 +1,19 @@ +package com.kms.yxgh.sz.service; + +import com.kms.yxgh.sz.domain.SzCheckingV2ProjectItem; +import com.kms.yxgh.sz.mapper.SzCheckingV2ProjectItemMapper; +import com.shuili.common.core.service.BaseService; +import lombok.AllArgsConstructor; +import org.springframework.stereotype.Service; + +/** + * 项目管理项 + * + * @author sy + * @date 2023-11-09 + */ +@Service +@AllArgsConstructor +public class SzCheckingV2ProjectItemV2Service extends BaseService { + +} diff --git a/shuili-system/src/main/java/com/kms/yxgh/sz/service/SzCheckingV2Service.java b/shuili-system/src/main/java/com/kms/yxgh/sz/service/SzCheckingV2Service.java new file mode 100644 index 00000000..e62ca804 --- /dev/null +++ b/shuili-system/src/main/java/com/kms/yxgh/sz/service/SzCheckingV2Service.java @@ -0,0 +1,233 @@ +package com.kms.yxgh.sz.service; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; +import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; +import com.baomidou.mybatisplus.core.toolkit.StringUtils; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.kms.yxgh.df.service.DfCheckingV2Service; +import com.kms.yxgh.sz.domain.SzCheckingV2ProjectItem; +import com.kms.yxgh.sz.domain.SzCheckingV2ProjectManage; +import com.kms.yxgh.sz.dto.v2.SzCheckingDetailDto; +import com.kms.yxgh.sz.dto.v2.SzV2CheckingDto; +import com.kms.yxgh.sz.dto.v2.SzV2CheckingSearchDto; +import com.kms.yxgh.sz.mapper.SzCheckingV2Mapper; +import com.shuili.common.core.domain.SearchParam; +import com.shuili.common.core.service.BaseService; +import com.shuili.common.utils.BeanUtils; +import lombok.AllArgsConstructor; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import java.util.*; +import java.util.stream.Collectors; +/** + * 水闸项目管理 + * + * @author sy + * @date 2023-11-09 + */ +@Service +@AllArgsConstructor +public class SzCheckingV2Service extends BaseService { + + private final SzCheckingV2ProjectItemV2Service szCheckingV2ProjectItemV2Service; + + public IPage list(SearchParam sp) { + // 分页参数 + Page page = new Page<>(sp.getPageNum(), sp.getPageSize()); + SzV2CheckingSearchDto data = sp.getData(); + + // 构建查询条件 + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + if (!ObjectUtils.isEmpty(data)) { + Optional.ofNullable(data.getCategory()) + .filter(StringUtils::isNotBlank) + .ifPresent(category -> queryWrapper.eq(SzCheckingV2ProjectManage::getCategory, category)); + + Optional.ofNullable(data.getType()) + .filter(StringUtils::isNotBlank) + .ifPresent(type -> queryWrapper.eq(SzCheckingV2ProjectManage::getType, type)); + + Optional.ofNullable(data.getName()) + .filter(StringUtils::isNotBlank) + .ifPresent(name -> queryWrapper.like(SzCheckingV2ProjectManage::getName, name)); + } + + // 查询分页数据 + Page queryPage = page(page, queryWrapper); + if (queryPage == null) { + return new Page<>(); + } + + // 转换为 DTO 分页对象 + Page dtoPage = new Page<>(); + BeanUtils.copyProperties(queryPage, dtoPage); + + // 处理查询结果 + List vos = queryPage.getRecords().stream() + .map(record -> { + SzV2CheckingDto dto = new SzV2CheckingDto(); + BeanUtils.copyProperties(record, dto); + return dto; + }) + .collect(Collectors.toList()); + + // 获取关联的项目项 + List ids = vos.stream() + .map(SzV2CheckingDto::getId) + .collect(Collectors.toList()); + + if (CollectionUtils.isEmpty(ids)) { + return dtoPage; + } + + + List items = + szCheckingV2ProjectItemV2Service + .list(new LambdaQueryWrapper() + .in(SzCheckingV2ProjectItem::getCheckingId,ids)); + + + // 将项目项关联到 DTO + vos.forEach(dto -> { + List itemDtos = items.stream() + .filter(item -> Objects.equals(item.getCheckingId(), dto.getId())) + .map(SzCheckingV2Service::convertToItemDto) + .collect(Collectors.toList()); + dto.setItems(itemDtos); + }); + + dtoPage.setRecords(vos); + return dtoPage; + } + + + /** + * 将 DfCheckingV2ProjectItem 转换为 DfCheckingDetailDto.DfCheckingItemDto + * + * @param item 原始对象 + * @return 转换后的 DTO 对象 + */ + public static SzCheckingDetailDto.SzCheckingItemDto convertToItemDto(SzCheckingV2ProjectItem item) { + SzCheckingDetailDto.SzCheckingItemDto itemDto = new SzCheckingDetailDto.SzCheckingItemDto(); + itemDto.setId(item.getId()); + itemDto.setContent(item.getContent()); + + // 处理 parts 字段 + Optional.ofNullable(item.getParts()) + .filter(StringUtils::isNotBlank) + .ifPresent(parts -> itemDto.setParts(Arrays.asList(parts.split(",")))); + + return itemDto; + } + + public SzV2CheckingDto getInfo(String id) { + SzCheckingV2ProjectManage szCheckingV2ProjectManage = getById(id); + SzV2CheckingDto dto = new SzV2CheckingDto(); + if (!Objects.isNull(szCheckingV2ProjectManage)) { + BeanUtils.copyProperties(szCheckingV2ProjectManage, dto); + List items = szCheckingV2ProjectItemV2Service + .list(new LambdaQueryWrapper() + .eq(SzCheckingV2ProjectItem::getCheckingId,id)); + dto.setItems(items.stream() + .map(SzCheckingV2Service::convertToItemDto) + .collect(Collectors.toList())); + } + return dto; + } + + @Transactional(rollbackFor = Exception.class) + public SzV2CheckingDto add(SzV2CheckingDto dto) { + // 将 DTO 转换为实体对象 + SzCheckingV2ProjectManage szCheckingV2ProjectManage = new SzCheckingV2ProjectManage(); + BeanUtils.copyProperties(dto, szCheckingV2ProjectManage); + + // 保存实体对象 + if (!save(szCheckingV2ProjectManage)) { + throw new RuntimeException("保存失败"); + } + // 处理关联的 items + Optional.ofNullable(dto.getItems()) + .filter(items -> !items.isEmpty()) + .ifPresent(items -> { + List projectItems = items.parallelStream() // 使用并行流 + .map(item -> { + SzCheckingV2ProjectItem projectItem = new SzCheckingV2ProjectItem(); + projectItem.setCheckingId(szCheckingV2ProjectManage.getId()); + projectItem.setContent(item.getContent()); + projectItem.setParts(String.join(",", item.getParts())); + return projectItem; + }) + .collect(Collectors.toList()); + // 批量保存 items + szCheckingV2ProjectItemV2Service.saveBatch(projectItems); + }); + return dto; + } + + @Transactional(rollbackFor = Exception.class) + public SzV2CheckingDto edit(SzV2CheckingDto dfV2Ck) { + + + if (StringUtils.isBlank(dfV2Ck.getId())) { + return null; + } + + SzCheckingV2ProjectManage szCheckingV2ProjectManage = getById(dfV2Ck.getId()); + if (szCheckingV2ProjectManage == null) { + return null; + } + + BeanUtils.copyProperties(dfV2Ck, szCheckingV2ProjectManage); + + if (!updateById(szCheckingV2ProjectManage)) { + throw new RuntimeException("修改失败"); + } + + szCheckingV2ProjectItemV2Service + .remove(new LambdaQueryWrapper() + .eq(SzCheckingV2ProjectItem::getCheckingId, dfV2Ck.getId())); + + + List items = dfV2Ck.getItems().stream() + .map(item -> { + SzCheckingV2ProjectItem projectItem = new SzCheckingV2ProjectItem(); + projectItem.setId(item.getId()); + projectItem.setCheckingId(szCheckingV2ProjectManage.getId()); + projectItem.setContent(item.getContent()); + projectItem.setParts(String.join(",", item.getParts())); + return projectItem; + }) + .collect(Collectors.toList()); + + if (!szCheckingV2ProjectItemV2Service.saveOrUpdateBatch(items)) { + throw new RuntimeException("项目子项修改失败"); + } + + return dfV2Ck; + } + + @Transactional(rollbackFor = Exception.class) + public boolean myRemove(String[] ids) { + if (null != ids && ids.length > 0) { + szCheckingV2ProjectItemV2Service.remove(new LambdaQueryWrapper() + .in(SzCheckingV2ProjectItem::getCheckingId, getIntList(ids))); + + return remove(new LambdaQueryWrapper() + .in(SzCheckingV2ProjectManage::getId, getIntList(ids))); + } + return Boolean.FALSE; + } + + public static List getIntList(String[] ids) { + return DfCheckingV2Service.getIntList(ids); + } + + public static List getStringList(String[] ids) { + return DfCheckingV2Service.getStringList(ids); + } +} + + + + diff --git a/shuili-system/src/main/java/com/kms/yxgh/sz/service/SzYhV2Service.java b/shuili-system/src/main/java/com/kms/yxgh/sz/service/SzYhV2Service.java new file mode 100644 index 00000000..201666e7 --- /dev/null +++ b/shuili-system/src/main/java/com/kms/yxgh/sz/service/SzYhV2Service.java @@ -0,0 +1,227 @@ +package com.kms.yxgh.sz.service; +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; +import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; +import com.baomidou.mybatisplus.core.toolkit.StringUtils; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.kms.yxgh.common.ApprovalStatusEnum; +import com.kms.yxgh.common.ApprovalTypeEnum; +import com.kms.yxgh.common.dto.ApprovalDetailDto; +import com.kms.yxgh.common.dto.ApprovalSearchDto; +import com.kms.yxgh.common.dto.DocV2Dto; +import com.kms.yxgh.common.enums.DfYhV2StatusEnum; +import com.kms.yxgh.common.service.ApprovalService; +import com.kms.yxgh.common.service.DefaultApprovalBusinessService; +import com.kms.yxgh.df.domain.DfCheckingRecord; +import com.kms.yxgh.df.domain.DfYhV2; +import com.kms.yxgh.df.dto.v2.DfRecordSearchV2Dto; +import com.kms.yxgh.df.dto.v2.DfYhApproveDto; +import com.kms.yxgh.df.service.DfCheckingV2Service; +import com.kms.yxgh.sz.domain.SzCheckingRecord; +import com.kms.yxgh.sz.domain.SzYhV2; +import com.kms.yxgh.sz.dto.v2.SzRecordSearchV2Dto; +import com.kms.yxgh.sz.dto.v2.SzYhApproveDto; +import com.kms.yxgh.sz.dto.v2.SzYhDetailV2Dto; +import com.kms.yxgh.sz.dto.v2.SzYhListV2Dto; +import com.kms.yxgh.sz.mapper.SzCheckingRecordV2Mapper; +import com.kms.yxgh.sz.mapper.SzYhV2Mapper; +import com.shuili.common.core.domain.SearchParam; +import com.shuili.common.utils.BeanUtils; +import lombok.AllArgsConstructor; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import java.util.stream.Collectors; + +/** + * 项目管理记录 + * + * @author sy + * @date 2023-11-09 + */ +@Service +@AllArgsConstructor +public class SzYhV2Service extends DefaultApprovalBusinessService { + + private ApprovalService approvalService; + + private SzCheckingRecordV2Mapper szCheckingRecordV2Mapper; + + public IPage list(SearchParam sp) { + // 分页参数 + Page page = new Page<>(sp.getPageNum(), sp.getPageSize()); + SzRecordSearchV2Dto data = sp.getData(); + + // 构建查询条件 + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + if (!ObjectUtils.isEmpty(data)) { + Optional.ofNullable(data.getCategory()) + .filter(StringUtils::isNotBlank) + .ifPresent(category -> queryWrapper.eq(SzYhV2::getCategory, category)); + + Optional.ofNullable(data.getType()) + .filter(StringUtils::isNotBlank) + .ifPresent(type -> queryWrapper.eq(SzYhV2::getType, type)); + + Optional.ofNullable(data.getName()) + .filter(StringUtils::isNotBlank) + .ifPresent(name -> queryWrapper.like(SzYhV2::getName, name)); + + Optional.ofNullable(data.getDutyHolder()) + .filter(StringUtils::isNotBlank) + .ifPresent(dutyHolder -> queryWrapper.like(SzYhV2::getDutyHolderName, dutyHolder)); + + Optional.ofNullable(data.getStatus()) + .filter(StringUtils::isNotBlank) + .ifPresent(status -> queryWrapper.like(SzYhV2::getStatus, status)); + + if (!Objects.isNull(data.getStartDate())) { + queryWrapper.ge(SzYhV2::getStartDate, data.getStartDate()); + } + + if (!Objects.isNull(data.getEndDate())) { + queryWrapper.le(SzYhV2::getEndDate, data.getEndDate()); + } + + Optional.ofNullable(data.getProblemLevel()) + .filter(StringUtils::isNotBlank) + .ifPresent(problemLevel -> queryWrapper.eq(SzYhV2::getProblemLevel, problemLevel)); + + Optional.ofNullable(data.getRecordId()) + .filter(StringUtils::isBlank) + .ifPresent(recordId -> queryWrapper.eq(SzYhV2::getRecordId, recordId)); + + } + + // 查询分页数据 + Page queryPage = page(page, queryWrapper); + if (queryPage == null) { + return new Page<>(); + } + + // 转换为 DTO 分页对象 + Page dtoPage = new Page<>(); + BeanUtils.copyProperties(queryPage, dtoPage); + + // 处理查询结果 + List vos = queryPage.getRecords().stream() + .map(record -> { + SzYhListV2Dto dto = new SzYhListV2Dto(); + BeanUtils.copyProperties(record, dto); + dto.setApprovalId(approvalService.getTaskId(dto.getId(), ApprovalTypeEnum.YH_V2_RECORD)); + return dto; + }) + .collect(Collectors.toList()); + dtoPage.setRecords(vos); + return dtoPage; + } + + + public SzYhDetailV2Dto getInfo(String id) { + SzYhDetailV2Dto dto = new SzYhDetailV2Dto(); + SzYhV2 dfYhV2 = getById(id); + if (dfYhV2 != null) { + BeanUtils.copyProperties(dfYhV2, dto); + dto.setDoc(JSONObject.parseObject(dfYhV2.getDoc(), DocV2Dto.class)); + } + return dto; + } + + + public Boolean myRemove(String[] ids) { + if (null != ids && ids.length > 0) { + return remove(new LambdaQueryWrapper() + .in(SzYhV2::getId, DfCheckingV2Service.getIntList(ids))); + } + return Boolean.FALSE; + } + + public SzYhDetailV2Dto edit(SzYhDetailV2Dto szYh, Boolean commit) { + SzYhDetailV2Dto dto = new SzYhDetailV2Dto(); + SzYhV2 szYhV2 = new SzYhV2(); + if (commit) { + BeanUtils.copyProperties(szYh, szYhV2); + szYhV2.setDoc(getDocStrJson(szYh.getDoc())); + szYhV2.setStatus(DfYhV2StatusEnum.YES_UNDER.getValue()); + saveOrUpdate(szYhV2); + BeanUtils.copyProperties(szYhV2, dto); + approvalService.submit(szYhV2.getId(), ApprovalTypeEnum.SZ_V2_YH_RECORD); + return dto; + } else { + BeanUtils.copyProperties(szYh, szYhV2); + szYhV2.setDoc(getDocStrJson(szYh.getDoc())); + szYhV2.setStatus(DfYhV2StatusEnum.UNDER_MAINTENANCE.getValue()); + saveOrUpdate(szYhV2); + BeanUtils.copyProperties(szYhV2, dto); + return dto; + } + } + + private static String getDocStrJson(DocV2Dto dto) { + if (dto == null) { + return null; + } + return JSONObject.toJSONString(dto); + + } + + @Override + public IPage> approvalSearch(SearchParam> sp) { + if (sp.getData() == null) { + return new Page<>(); + } + return this.getBaseMapper().approvalSearchPage(new Page<>(sp.getPageNum(), sp.getPageSize()), sp.getData()); + } + + @Override + public void updateApprovalStatus(String formId, ApprovalStatusEnum status) { + String formStatus; + switch (status){ + case PASS: + formStatus = DfYhV2StatusEnum.ACCEPTED.getValue(); + // 验收同步修改掉记录列表的状态 + synRecordStatus(formId,formStatus); + break; + case REJECT: + formStatus = DfYhV2StatusEnum.UNDER_MAINTENANCE.getValue(); + break; + default: + formStatus = DfYhV2StatusEnum.YES_UNDER.getValue(); + } + Wrapper wp = Wrappers.lambdaUpdate() + .eq(SzYhV2::getId, formId) + .set(SzYhV2::getStatus, formStatus); + this.update(null, wp); + } + + + private void synRecordStatus(String formId, String status){ + SzYhV2 byId = getById(formId); + List list = list(new LambdaQueryWrapper().eq(SzYhV2::getRecordId, byId.getRecordId())); + if (CollectionUtils.isNotEmpty(list) && !list.isEmpty()) { + long count = list.stream().filter(e -> Objects.equals(DfYhV2StatusEnum.ACCEPTED.getValue(), e.getStatus())).count(); + if (count+1==list.size()|| Objects.equals(1,list.size())) { + Wrapper wp = Wrappers.lambdaUpdate() + .eq(SzCheckingRecord::getId, byId.getRecordId()) + .set(SzCheckingRecord::getStatus, status); + szCheckingRecordV2Mapper.update(null,wp); + } + } + } + + @Override + public String formStatus(String formId) { + return ApprovalStatusEnum.SUBMITTING.getValue(); + } +} + + + + diff --git a/shuili-system/src/main/resources/mapper/system/SysUserMapper.xml b/shuili-system/src/main/resources/mapper/system/SysUserMapper.xml index efe3a0d5..c296cf3c 100644 --- a/shuili-system/src/main/resources/mapper/system/SysUserMapper.xml +++ b/shuili-system/src/main/resources/mapper/system/SysUserMapper.xml @@ -50,6 +50,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + @@ -64,7 +65,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" select u.is_pc_user,u.invitee,u.is_first,u.id,u.password, u.dept_id, u.user_name, u.nick_name, u.email, u.avatar, u.phonenumber, u.password, u.sex, u.status, u.del_flag, u.login_ip, u.login_date, u.create_uid, u.create_time, u.remark, u.real_name,u.card_no,u.department,u.post,u.professional, - d.id, d.parent_id,d.tag as dtag, d.dept_name as ddept_name, d.order_num as dorder_num, d.leader as dleader, d.status as dept_status, d.pc_logo, d.pc_background, d.admin_logo, + d.id,d.xzqh_id,d.parent_id,d.tag as dtag, d.dept_name as ddept_name, d.order_num as dorder_num, d.leader as dleader, d.status as dept_status, d.pc_logo, d.pc_background, d.admin_logo, r.id, r.role_name, r.role_key, r.role_sort, r.data_scope, r.status as role_status from sys_user u left join sys_dept d on u.dept_id = d.id diff --git a/shuili-system/src/main/resources/mapper/yg/df/BsSgcDfBzbpMapper.xml b/shuili-system/src/main/resources/mapper/yg/df/BsSgcDfBzbpMapper.xml index 47f1347c..183d8d83 100644 --- a/shuili-system/src/main/resources/mapper/yg/df/BsSgcDfBzbpMapper.xml +++ b/shuili-system/src/main/resources/mapper/yg/df/BsSgcDfBzbpMapper.xml @@ -9,14 +9,22 @@ - + + + + + SELECT ts.id id, ts.form_id formId, ts.create_time submit_time, ts.approval_time approval_time, ts.status status, + ts.operator operator, ts.comment comment, ts.doc ts_doc, + jl.id , jl.name ,jl.waga_code , jl.waga_name , jl.type type, jl.category , + jl.problem_level , jl.duty_holder_id , jl.duty_holder_name, jl.problem_id , jl.record_id, jl.status yh_status + FROM bs_sgc_sp_task ts + LEFT JOIN bs_sgc_Sz_xcyj jl ON jl.id = ts.form_id + WHERE + ts.business_type = #{dto.businessType} + and ts.status in ('1','2') + + AND ts.status = #{dto.status} + + + AND jl.name LIKE CONCAT('%',#{dto.condition.name},'%') + + + AND jl.type = #{dto.condition.type} + + + AND jl.category = #{dto.condition.category} + + + AND jl.problem_level = #{dto.condition.problemLevel} + + + AND jl.status = #{dto.condition.status} + + + AND jl.start_date >= #{dto.condition.startDate} + + + AND jl.end_date <= #{dto.condition.endDate} + + + AND jl.duty_holder_id = #{dto.condition.dutyHolder} + + ORDER BY jl.update_time DESC + + + + \ No newline at end of file