skjcmanager/skjcmanager-service-api/skjcmanager-sm-api/src/main/java/cn/gistack/sm/sg/DO/SgGxDO.java
@@ -59,6 +59,12 @@ @TableField(exist = false) private List<SgDeviceDO> deviceDOS; /** * 创建人姓名 */ @TableField(exist = false) private String createUserName; public void setCreateUpdateTime(){ Date now = DateUtil.now(); skjcmanager/skjcmanager-service-api/skjcmanager-sm-api/src/main/java/cn/gistack/sm/sg/VO/SgProjectInfoVO.java
@@ -17,10 +17,11 @@ private String deviceName; private Long dId; private String gxStepName; private Integer STATUS; private Integer reportStatus; private String gxStepNum; private String deviceType; private String typeName; private Integer deviceStatus; private Integer projectStatus; private String progressName; } skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sg/controller/SgProgressReportController.java
@@ -103,4 +103,13 @@ return R.data(map); } /** * 审批状态统计 */ @GetMapping(value = "/check_step") public R checkStep(@RequestParam Long deviceId , @RequestParam Long stepId) { boolean flag = sgProgressReportService.checkStep(deviceId,stepId); return R.data(flag); } } skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sg/controller/SgProjectPersonConfigController.java
New file @@ -0,0 +1,66 @@ package cn.gistack.sm.sg.controller; import cn.gistack.sm.sg.DO.SgProjectInfoDO; import cn.gistack.sm.sg.DO.SgProjectPersonConfigDO; import cn.gistack.sm.sg.DTO.ProjectSearchDTO; import cn.gistack.sm.sg.service.SgProjectPersonConfigService; import org.checkerframework.checker.units.qual.A; import org.springblade.core.tool.api.R; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import java.util.List; /** * <p> * 施工项目人员配置表 前端控制器 * </p> * * @author shenyijian * @since 2024-06-15 11:45:35 */ @RestController @RequestMapping("/project_person") public class SgProjectPersonConfigController { @Autowired private SgProjectPersonConfigService projectPersonConfigService; /** * 查询项目下角色 * @param searchDTO * @return */ @GetMapping(value = "/get_role_list") public R getRoleList(ProjectSearchDTO searchDTO) { List<String> list= projectPersonConfigService.getRoleList(searchDTO); return R.data(list); } /** * 新增项目人员配置 */ @GetMapping(value = "/add") public R add( @RequestBody List<SgProjectPersonConfigDO> list) { projectPersonConfigService.add(list); return R.success("新增成功"); } /** * 删除 */ @GetMapping(value = "/delete") public R delete( String ids) { projectPersonConfigService.removeBatchByIds(List.of(ids.split(","))); return R.success("删除成功"); } /** * 删除 */ @GetMapping(value = "/list") public R delete( ProjectSearchDTO searchDTO) { projectPersonConfigService.getList(searchDTO); return R.success("删除成功"); } } skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sg/mapper/SgProjectInfoMapper.xml
@@ -23,7 +23,9 @@ d.id as dId, step.gx_step_name, step.gx_step_num, re.STATUS re.STATUS as reportStatus, d.STATUS as deviceStatus, pro.STATUS as projectStatus FROM ywxt.sg_project_info pro LEFT JOIN ywxt.sg_device d ON pro.id = d.program_id skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sg/mapper/SgProjectPersonConfigMapper.java
@@ -1,8 +1,11 @@ package cn.gistack.sm.sg.mapper; import cn.gistack.sm.sg.DO.SgProjectPersonConfigDO; import cn.gistack.sm.sg.DTO.ProjectSearchDTO; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Param; import java.util.List; /** * <p> @@ -15,4 +18,6 @@ public interface SgProjectPersonConfigMapper extends BaseMapper<SgProjectPersonConfigDO> { SgProjectPersonConfigDO selectByUserId(@Param("userId") Long reportUser); List<String> getRoleList(@Param("dto") ProjectSearchDTO searchDTO); } skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sg/mapper/SgProjectPersonConfigMapper.xml
@@ -5,4 +5,20 @@ <select id="selectByUserId" resultType="cn.gistack.sm.sg.DO.SgProjectPersonConfigDO"> select * from YWXT.SG_PROJECT_PERSON_CONFIG where USER_ID = #{userId} </select> <select id="getRoleList" resultType="java.lang.String"> SELECT <!-- pro.id, pro.project_name, sgc.gx_device_type as deviceType, d.id as deviceId, --> sgc.role_id as roleId FROM ywxt.sg_project_info pro LEFT JOIN ywxt.sg_device d ON pro.id = d.program_id LEFT JOIN ywxt.sg_gx_config sgc ON d.device_type = sgc.gx_device_type where 1=1 <if test="dto.projectId != null"> and pro.id = #{dto.projectId} </if> </select> </mapper> skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sg/service/SgProgressReportService.java
@@ -35,4 +35,6 @@ Map<String, Long> countList(ProjectSearchDTO searchDTO); Map<String, Long> statusCount(ProjectSearchDTO searchDTO); boolean checkStep(Long deviceId, Long stepId); } skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sg/service/SgProjectPersonConfigService.java
New file @@ -0,0 +1,24 @@ package cn.gistack.sm.sg.service; import cn.gistack.sm.sg.DO.SgProjectPersonConfigDO; import cn.gistack.sm.sg.DTO.ProjectSearchDTO; import com.baomidou.mybatisplus.extension.service.IService; import java.util.List; /** * <p> * 施工项目人员配置表 服务类 * </p> * * @author shenyijian * @since 2024-06-15 11:45:35 */ public interface SgProjectPersonConfigService extends IService<SgProjectPersonConfigDO> { List<String> getRoleList(ProjectSearchDTO searchDTO); void add(List<SgProjectPersonConfigDO> list); void getList(ProjectSearchDTO searchDTO); } skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sg/service/impl/SgGxServiceImpl.java
@@ -2,9 +2,11 @@ import cn.gistack.sm.sg.DO.SgGxDO; import cn.gistack.sm.sg.DO.SgGxStepDO; import cn.gistack.sm.sg.DO.SgReportUserDO; import cn.gistack.sm.sg.DTO.ProjectSearchDTO; import cn.gistack.sm.sg.VO.SgGxVO; import cn.gistack.sm.sg.mapper.SgGxMapper; import cn.gistack.sm.sg.mapper.SgProgressReportMapper; import cn.gistack.sm.sg.service.SgGxService; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; @@ -29,15 +31,25 @@ public class SgGxServiceImpl extends ServiceImpl<SgGxMapper, SgGxDO> implements SgGxService { @Autowired private SgGxMapper sgGxMapper; @Autowired private SgProgressReportMapper sgProgressReportMapper; @Override public IPage<SgGxVO> queryPageList(IPage<SgGxVO> page, ProjectSearchDTO searchDTO) { List<SgGxVO> list = sgGxMapper.queryPageList(page,searchDTO); if (CollectionUtils.isNotEmpty(list)){ List<Long> ids = list.stream().map(SgGxDO::getId).collect(Collectors.toList()); List<Long> userIds = list.stream().map(SgGxDO::getCreateUser).collect(Collectors.toList()); List<Map<String,Object>> users = sgProgressReportMapper.getUserByIds(userIds); List<SgGxStepDO> stepDOS = sgGxMapper.queryStepByIds(ids); if (CollectionUtils.isNotEmpty(stepDOS)){ Map<Long, List<SgGxStepDO>> map = stepDOS.stream().collect(Collectors.groupingBy(SgGxStepDO::getGxInfoId)); for (SgGxVO sgGxDO : list) { for (Map<String, Object> user : users) { if (user.get("ID").equals(sgGxDO.getCreateUser())){ sgGxDO.setCreateUserName(user.get("REAL_NAME").toString()); } } List<SgGxStepDO> sgGxStepDOS = map.get(sgGxDO.getId()); if (CollectionUtils.isNotEmpty(sgGxStepDOS)){ sgGxDO.setStepDOList(sgGxStepDOS); skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sg/service/impl/SgProgressReportServiceImpl.java
@@ -306,6 +306,29 @@ map.put("reject", (long) reject.size()); return map; } @Override public boolean checkStep(Long gxDeviceId, Long gxStepId) { List<SgGxStepDO> list = sgGxStepMapper.selectByGxInfoId(gxDeviceId); SgGxStepDO sgGxStepDO = sgGxStepMapper.selectById(gxStepId); QueryWrapper<SgProgressReportDO> wrapper = new QueryWrapper<>(); wrapper.eq("gx_step_id", gxStepId).eq("gx_device_id",gxDeviceId); List<SgProgressReportDO> sgProgressReportDOS = sgProgressReportMapper.selectList(wrapper); if ( sgProgressReportDOS!=null && sgProgressReportDOS.size()>0){ return false; } for (SgGxStepDO gxStepDO : list) { if (Integer.parseInt(sgGxStepDO.getGxStepNum()) - Integer.parseInt(gxStepDO.getGxStepNum()) == 1) { QueryWrapper<SgProgressReportDO> wrapper1 = new QueryWrapper<>(); wrapper1.eq("gx_step_id", gxStepDO.getId()); SgProgressReportDO one = sgProgressReportMapper.selectOne(wrapper1); if (one == null || one.getStatus() != 2) { return false; } } } return true; } } skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sg/service/impl/SgProjectInfoServiceImpl.java
@@ -55,7 +55,8 @@ if (CollectionUtils.isEmpty(value)){ continue; } SgProjectInfoDO sgProjectInfoDO = SgProjectInfoDO.builder().id(porId).projectName(value.get(0).getProjectName()).build(); SgProjectInfoVO sgProjectInfoVO = value.get(0); SgProjectInfoDO sgProjectInfoDO = SgProjectInfoDO.builder().id(porId).status(sgProjectInfoVO.getProjectStatus()).projectName(sgProjectInfoVO.getProjectName()).build(); List<SgTypeVO> sgGxDOS = new ArrayList<>(); //类型分组 Map<String, List<SgProjectInfoVO>> GxMap = value.stream().filter(s->s.getDeviceType()!=null).collect(Collectors.groupingBy(SgProjectInfoVO::getDeviceType)); @@ -75,7 +76,8 @@ SgDeviceDO sgDeviceDO = new SgDeviceDO(); sgDeviceDO.setId(dId); sgDeviceDO.setDeviceName(deList.get(0).getDeviceName()); sgDeviceDO.setStepDOList(deList.stream().map(s->SgGxStepDO.builder().gxStepName(s.getGxStepName()).approvalStatus(s.getSTATUS()).build()).collect(Collectors.toList())); sgDeviceDO.setStatus( deList.get(0).getDeviceStatus()); sgDeviceDO.setStepDOList(deList.stream().map(s->SgGxStepDO.builder().gxStepNum(s.getGxStepNum()).gxStepName(s.getGxStepName()).approvalStatus(s.getReportStatus()).build()).collect(Collectors.toList())); deviceDOS.add(sgDeviceDO); } typeVO.setDeviceDOS(deviceDOS); skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sg/service/impl/SgProjectPersonConfigServiceImpl.java
New file @@ -0,0 +1,42 @@ package cn.gistack.sm.sg.service.impl; import cn.gistack.sm.sg.DO.SgProjectPersonConfigDO; import cn.gistack.sm.sg.DTO.ProjectSearchDTO; import cn.gistack.sm.sg.mapper.SgProjectPersonConfigMapper; import cn.gistack.sm.sg.service.SgProjectPersonConfigService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.List; /** * <p> * 施工项目人员配置表 服务实现类 * </p> * * @author shenyijian * @since 2024-06-15 11:45:35 */ @Service public class SgProjectPersonConfigServiceImpl extends ServiceImpl<SgProjectPersonConfigMapper, SgProjectPersonConfigDO> implements SgProjectPersonConfigService { @Autowired private SgProjectPersonConfigMapper projectPersonConfigMapper; @Override public List<String> getRoleList(ProjectSearchDTO searchDTO) { List<String> list = projectPersonConfigMapper.getRoleList(searchDTO); return list; } @Override public void add(List<SgProjectPersonConfigDO> list) { for (SgProjectPersonConfigDO sgProjectPersonConfigDO : list) { projectPersonConfigMapper.insert(sgProjectPersonConfigDO); } } @Override public void getList(ProjectSearchDTO searchDTO) { } }