diff --git a/mt/src/main/java/com/ccsens/mt/service/CompeteTaskService.java b/mt/src/main/java/com/ccsens/mt/service/CompeteTaskService.java index 54f4f335..5c7e7f98 100644 --- a/mt/src/main/java/com/ccsens/mt/service/CompeteTaskService.java +++ b/mt/src/main/java/com/ccsens/mt/service/CompeteTaskService.java @@ -35,7 +35,7 @@ import java.util.concurrent.atomic.AtomicInteger; @Slf4j @Service @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class) -public class CompeteTaskService implements ICompeteTaskService{ +public class CompeteTaskService implements ICompeteTaskService { @Resource private CompeteProjectConfigDao projectConfigDao; @Resource @@ -62,7 +62,7 @@ public class CompeteTaskService implements ICompeteTaskService{ public List queryCompeteConfig(CompeteDto.CompeteTime param) { CompeteTime competeTime = competeTimeDao.selectByPrimaryKey(param.getCompeteTimeId()); List competeProjectConfigList = new ArrayList<>(); - if(ObjectUtil.isNotNull(competeTime)) { + if (ObjectUtil.isNotNull(competeTime)) { competeProjectConfigList = projectConfigDao.queryProjectConfig(competeTime.getType()); } return competeProjectConfigList; @@ -72,77 +72,78 @@ public class CompeteTaskService implements ICompeteTaskService{ * 修改项目的日程配置 */ @Override - public List updateCompeteProjectConfig(ProvinceCompeteDto.UpdateCompeteProjectConfig param,String token) { + public List updateCompeteProjectConfig(ProvinceCompeteDto.UpdateCompeteProjectConfig param, String token) { //获取比赛类型 AtomicInteger type = new AtomicInteger(); - if(CollectionUtil.isEmpty(param.getUpdateCompeteTaskList())) { + if (CollectionUtil.isEmpty(param.getUpdateCompeteTaskList())) { return new ArrayList<>(); } - param.getUpdateCompeteTaskList().forEach(projectConfig -> { - //判断时间和时长是否正确 - if(ObjectUtil.isNull(projectConfig.getStartTime()) || projectConfig.getStartTime() == 0 - || ObjectUtil.isNull(projectConfig.getEndTime()) || projectConfig.getEndTime() == 0 || - ObjectUtil.isNull(projectConfig.getDuration()) || projectConfig.getDuration() == 0){ - return; - } - //获取项目 - CompeteProject project = competeProjectDao.selectByPrimaryKey(projectConfig.getProjectId()); - if(ObjectUtil.isNotNull(project)){ - type.set(project.getType()); - } - CompeteProjectConfig competeProjectConfig; - CompeteProjectConfigExample projectConfigExample = new CompeteProjectConfigExample(); - projectConfigExample.createCriteria().andProjectIdEqualTo(projectConfig.getProjectId()); - List projectConfigList = projectConfigDao.selectByExample(projectConfigExample); - log.info("查找项目配置信息:{}",projectConfigList); - if(CollectionUtil.isNotEmpty(projectConfigList)){ - //有则修改 - competeProjectConfig = projectConfigList.get(0); - competeProjectConfig.setProjectDuration(projectConfig.getDuration()); - competeProjectConfig.setSiteNum(projectConfig.getSiteNum()); - competeProjectConfig.setStartTime(projectConfig.getStartTime() == null ? 0 : projectConfig.getStartTime()); - competeProjectConfig.setEndTime(projectConfig.getEndTime() == null ? 0 : projectConfig.getEndTime()); - projectConfigDao.updateByPrimaryKeySelective(competeProjectConfig); - log.info("修改比赛日程配置:{}",competeProjectConfig); - }else { - //没有则添加 - competeProjectConfig = new CompeteProjectConfig(); - competeProjectConfig.setId(snowflake.nextId()); - competeProjectConfig.setProjectId(projectConfig.getProjectId()); - competeProjectConfig.setProjectDuration(projectConfig.getDuration()); - competeProjectConfig.setSiteNum(projectConfig.getSiteNum()); - competeProjectConfig.setStartTime(projectConfig.getStartTime() == null ? 0 : projectConfig.getStartTime()); - competeProjectConfig.setEndTime(projectConfig.getEndTime() == null ? 0 : projectConfig.getEndTime()); - projectConfigDao.insertSelective(competeProjectConfig); - log.info("添加比赛日程配置:{}",competeProjectConfig); - } - //生成出场顺序表,存入数据库。在tall内添加对应的任务 - setStartOrder(competeProjectConfig,param.getProjectId(),param.getTallRoleId(),token); - }); + param.getUpdateCompeteTaskList().forEach(projectConfig -> { + //判断时间和时长是否正确 + if (ObjectUtil.isNull(projectConfig.getStartTime()) || projectConfig.getStartTime() == 0 + || ObjectUtil.isNull(projectConfig.getEndTime()) || projectConfig.getEndTime() == 0 || + ObjectUtil.isNull(projectConfig.getDuration()) || projectConfig.getDuration() == 0) { + return; + } + //获取项目 + CompeteProject project = competeProjectDao.selectByPrimaryKey(projectConfig.getProjectId()); + if (ObjectUtil.isNotNull(project)) { + type.set(project.getType()); + } + CompeteProjectConfig competeProjectConfig; + CompeteProjectConfigExample projectConfigExample = new CompeteProjectConfigExample(); + projectConfigExample.createCriteria().andProjectIdEqualTo(projectConfig.getProjectId()); + List projectConfigList = projectConfigDao.selectByExample(projectConfigExample); + log.info("查找项目配置信息:{}", projectConfigList); + if (CollectionUtil.isNotEmpty(projectConfigList)) { + //有则修改 + competeProjectConfig = projectConfigList.get(0); + competeProjectConfig.setProjectDuration(projectConfig.getDuration()); + competeProjectConfig.setSiteNum(projectConfig.getSiteNum()); + competeProjectConfig.setStartTime(projectConfig.getStartTime() == null ? 0 : projectConfig.getStartTime()); + competeProjectConfig.setEndTime(projectConfig.getEndTime() == null ? 0 : projectConfig.getEndTime()); + projectConfigDao.updateByPrimaryKeySelective(competeProjectConfig); + log.info("修改比赛日程配置:{}", competeProjectConfig); + } else { + //没有则添加 + competeProjectConfig = new CompeteProjectConfig(); + competeProjectConfig.setId(snowflake.nextId()); + competeProjectConfig.setProjectId(projectConfig.getProjectId()); + competeProjectConfig.setProjectDuration(projectConfig.getDuration()); + competeProjectConfig.setSiteNum(projectConfig.getSiteNum()); + competeProjectConfig.setStartTime(projectConfig.getStartTime() == null ? 0 : projectConfig.getStartTime()); + competeProjectConfig.setEndTime(projectConfig.getEndTime() == null ? 0 : projectConfig.getEndTime()); + projectConfigDao.insertSelective(competeProjectConfig); + log.info("添加比赛日程配置:{}", competeProjectConfig); + } + //生成出场顺序表,存入数据库。在tall内添加对应的任务 + setStartOrder(competeProjectConfig, param.getProjectId(), param.getTallRoleId(), token); + }); return projectConfigDao.queryProjectConfig(type.get()); } + /** * 修改配置时生成出场顺序 */ - public void setStartOrder(CompeteProjectConfig projectConfig, Long tallProjectId,Long tallRoleId,String token) { + public void setStartOrder(CompeteProjectConfig projectConfig, Long tallProjectId, Long tallRoleId, String token) { if (ObjectUtil.isNotNull(projectConfig)) { //查找项目 CompeteProject project = competeProjectDao.selectByPrimaryKey(projectConfig.getProjectId()); if (ObjectUtil.isNotNull(project)) { //查询项目下的参赛人数或队伍 - List playerIdOrTeamIdList = competeProjectDao.queryJoinNum(project.getTeam(),project.getId()); - log.info("本项目参加的人数:{}",playerIdOrTeamIdList); + List playerIdOrTeamIdList = competeProjectDao.queryJoinNum(project.getTeam(), project.getId()); + log.info("本项目参加的人数:{}", playerIdOrTeamIdList); if (CollectionUtil.isNotEmpty(playerIdOrTeamIdList)) { //计算场次 int order = (int) Math.ceil(playerIdOrTeamIdList.size() / projectConfig.getSiteNum()); //计算每个场次时间 long projectStartTime = projectConfig.getStartTime(); long orderTime = 0; - if(order != 0) { + if (order != 0) { orderTime = (long) Math.floor((projectConfig.getEndTime() - projectStartTime) / order); - }else { - log.info("场次为0的比赛:{}------{}",project,projectConfig); + } else { + log.info("场次为0的比赛:{}------{}", project, projectConfig); } //场次 int competeOrder = 1; @@ -152,12 +153,12 @@ public class CompeteTaskService implements ICompeteTaskService{ CompeteStartOrderExample startOrderExample = new CompeteStartOrderExample(); startOrderExample.createCriteria().andPlayerIdEqualTo(playerIdOrTeamId).andProjectIdEqualTo(project.getId()); List startOrderList = startOrderMapper.selectByExample(startOrderExample); - log.info("当前选手或团队参加的场次信息:{}",startOrderList); - if(CollectionUtil.isNotEmpty(startOrderList)){ + log.info("当前选手或团队参加的场次信息:{}", startOrderList); + if (CollectionUtil.isNotEmpty(startOrderList)) { CompeteStartOrder competeStartOrder = startOrderList.get(0); competeStartOrder.setSite((byte) site); competeStartOrder.setCompeteOrder((byte) competeOrder); - if(orderTime > 0 && (competeStartOrder.getStartTime() == projectStartTime || competeStartOrder.getEndTime() == projectStartTime + orderTime)){ + if (orderTime > 0 && (competeStartOrder.getStartTime() == projectStartTime || competeStartOrder.getEndTime() == projectStartTime + orderTime)) { competeStartOrder.setStartTime(projectStartTime); competeStartOrder.setEndTime(projectStartTime + orderTime); // 修改tall的任务 @@ -166,30 +167,30 @@ public class CompeteTaskService implements ICompeteTaskService{ updateTaskInfo.setBeginTime(competeStartOrder.getStartTime()); updateTaskInfo.setEndTime(competeStartOrder.getEndTime()); updateTaskInfo.setToken(token); - log.info("修改tall的任务信息:{}",updateTaskInfo); + log.info("修改tall的任务信息:{}", updateTaskInfo); JsonResponse normalTaskJsonResponse = tallFeignClient.updataTask(updateTaskInfo); - log.info("修改tall的任务信息后返回:{}",normalTaskJsonResponse); + log.info("修改tall的任务信息后返回:{}", normalTaskJsonResponse); //失败return - if (ObjectUtil.isNull(normalTaskJsonResponse) || normalTaskJsonResponse.getCode() != 200){ + if (ObjectUtil.isNull(normalTaskJsonResponse) || normalTaskJsonResponse.getCode() != 200) { return; } } - log.info("修改场次信息:{}",competeStartOrder); + log.info("修改场次信息:{}", competeStartOrder); startOrderMapper.updateByPrimaryKeySelective(competeStartOrder); - }else{ + } else { //添加tall的任务 Long taskId = null; TallTaskDto.AddTask addTask = new TallTaskDto.AddTask(); addTask.setProjectId(tallProjectId); - addTask.setTaskName(project.getName() + competeOrder +"-" + site); + addTask.setTaskName(project.getName() + competeOrder + "-" + site); addTask.setBeginTime(projectStartTime); addTask.setEndTime(projectStartTime + orderTime); addTask.setExecutorId(tallRoleId); addTask.setToken(token); - log.info("在tall内添加任务:{}",addTask); + log.info("在tall内添加任务:{}", addTask); JsonResponse normalTaskJsonResponse = tallFeignClient.saveTask(addTask); //异常return - log.info("添加任务后返回:{}",normalTaskJsonResponse); + log.info("添加任务后返回:{}", normalTaskJsonResponse); if (ObjectUtil.isNull(normalTaskJsonResponse) || normalTaskJsonResponse.getCode() != 200) { return; } @@ -203,16 +204,16 @@ public class CompeteTaskService implements ICompeteTaskService{ competeStartOrder.setProjectId(project.getId()); competeStartOrder.setPlayerId(playerIdOrTeamId); competeStartOrder.setSite((byte) site); - competeStartOrder.setTeam((byte) 0); + competeStartOrder.setTeam(project.getTeam()); competeStartOrder.setCompeteOrder((byte) competeOrder); - competeStartOrder.setTaskId(taskId); +// competeStartOrder.setTaskId(taskId); competeStartOrder.setStartTime(projectStartTime); competeStartOrder.setEndTime(projectStartTime + orderTime); - log.info("添加场次信息:{}",competeStartOrder); + log.info("添加场次信息:{}", competeStartOrder); startOrderMapper.insertSelective(competeStartOrder); } site++; - if(site > projectConfig.getSiteNum()){ + if (site > projectConfig.getSiteNum()) { site = 1; competeOrder++; projectStartTime += orderTime; @@ -320,7 +321,7 @@ public class CompeteTaskService implements ICompeteTaskService{ // //计算场次 // int order = (int) Math.ceil(teamList.size() / projectConfig.getSiteNum()); // //计算每个场次时间 -// long projectStartTime = projectConfig.getStartTime() + Constant.UPLOAD_VIDEO_TIME; +// long projectStartTime = projectConfig.getStartTime(); // long orderTime = 0; // if(order != 0) { // orderTime = (long) Math.floor((projectConfig.getEndTime() - projectStartTime) / order); @@ -410,7 +411,7 @@ public class CompeteTaskService implements ICompeteTaskService{ */ @Override public List queryStartOrderByCompany(ProvinceCompeteDto.QueryStartOrderByCompany param) { - return projectConfigDao.queryStartOrderByCompany(param.getCompanyId(),param.getProjectId(),param.getCompeteTimeId()); + return projectConfigDao.queryStartOrderByCompany(param.getCompanyId(), param.getProjectId(), param.getCompeteTimeId()); } /** @@ -418,38 +419,38 @@ public class CompeteTaskService implements ICompeteTaskService{ */ @Override public List queryJudgment(ProvinceCompeteDto.QueryJudgment param) { - List queryJudgmentList = competeJudgmentDao.queryJudgment(param.getCompeteTimeId(),param.getProjectId()); - if(CollectionUtil.isNotEmpty(queryJudgmentList)){ + List queryJudgmentList = competeJudgmentDao.queryJudgment(param.getCompeteTimeId(), param.getProjectId()); + if (CollectionUtil.isNotEmpty(queryJudgmentList)) { queryJudgmentList.forEach(projectJudgment -> { //裁判数量 int count = projectJudgment.getProjectType() == 0 ? 3 : 7; - for (int i = 0; i < projectJudgment.getSiteNums(); i++) { - if(i < projectJudgment.getSiteList().size()){ - ProvinceCompeteVo.ProjectSite siteJudgment = projectJudgment.getSiteList().get(i); - if (CollectionUtil.isEmpty(siteJudgment.getJudgmentList())) { - siteJudgment.setJudgmentList(new ArrayList<>()); - } - int a = siteJudgment.getJudgmentList().size(); - for (int j = 0; j < count - a; j++) { + for (int i = 0; i < projectJudgment.getSiteNums(); i++) { + if (i < projectJudgment.getSiteList().size()) { + ProvinceCompeteVo.ProjectSite siteJudgment = projectJudgment.getSiteList().get(i); + if (CollectionUtil.isEmpty(siteJudgment.getJudgmentList())) { + siteJudgment.setJudgmentList(new ArrayList<>()); + } + int a = siteJudgment.getJudgmentList().size(); + for (int j = 0; j < count - a; j++) { + ProvinceCompeteVo.SiteJudgment siteJudgment1 = new ProvinceCompeteVo.SiteJudgment(); + siteJudgment1.setJudgmentNum(a + j); + siteJudgment.getJudgmentList().add(siteJudgment1); + } + } else { + int a = projectJudgment.getSiteList().size(); + for (int j = 0; j < count - a; j++) { + ProvinceCompeteVo.ProjectSite siteJudgment = new ProvinceCompeteVo.ProjectSite(); + siteJudgment.setSiteNum(a + j + 1); + projectJudgment.getSiteList().add(siteJudgment); + int b = siteJudgment.getJudgmentList().size(); + for (int x = 0; x < count - b; x++) { ProvinceCompeteVo.SiteJudgment siteJudgment1 = new ProvinceCompeteVo.SiteJudgment(); - siteJudgment1.setJudgmentNum(a + j); + siteJudgment1.setJudgmentNum(b + x); siteJudgment.getJudgmentList().add(siteJudgment1); } - }else { - int a = projectJudgment.getSiteList().size(); - for (int j = 0; j < count - a; j++) { - ProvinceCompeteVo.ProjectSite siteJudgment = new ProvinceCompeteVo.ProjectSite(); - siteJudgment.setSiteNum(a + j + 1); - projectJudgment.getSiteList().add(siteJudgment); - int b = siteJudgment.getJudgmentList().size(); - for (int x = 0; x < count - b; x++) { - ProvinceCompeteVo.SiteJudgment siteJudgment1 = new ProvinceCompeteVo.SiteJudgment(); - siteJudgment1.setJudgmentNum(b + x); - siteJudgment.getJudgmentList().add(siteJudgment1); - } - } } } + } }); } return queryJudgmentList; @@ -459,17 +460,17 @@ public class CompeteTaskService implements ICompeteTaskService{ * 分配裁判 */ @Override - public List allocationJudgment(ProvinceCompeteDto.AllocationJudgmentAndTall param,String token) { + public List allocationJudgment(ProvinceCompeteDto.AllocationJudgmentAndTall param, String token) { //查找项目 - if(CollectionUtil.isNotEmpty(param.getAllocationJudgmentList())){ - for(ProvinceCompeteDto.AllocationJudgment allocationJudgment : param.getAllocationJudgmentList()) { + if (CollectionUtil.isNotEmpty(param.getAllocationJudgmentList())) { + for (ProvinceCompeteDto.AllocationJudgment allocationJudgment : param.getAllocationJudgmentList()) { CompeteProject project = competeProjectDao.selectByPrimaryKey(allocationJudgment.getProjectId()); if (ObjectUtil.isNotNull(project)) { if (CollectionUtil.isNotEmpty(allocationJudgment.getSiteJudgmentList())) { allocationJudgment.getSiteJudgmentList().forEach(siteJudgment -> { if (ObjectUtil.isNotNull(siteJudgment)) { siteJudgment.getJudgmentInfoList().forEach(judgmentInfo -> { - saveJudgmentAndTask(param.getCompeteTimeId(),param.getTallProjectId(), project, siteJudgment, judgmentInfo,token); + saveJudgmentAndTask(param.getCompeteTimeId(), param.getTallProjectId(), project, siteJudgment, judgmentInfo, token); }); } }); @@ -477,14 +478,14 @@ public class CompeteTaskService implements ICompeteTaskService{ } } } - return competeJudgmentDao.queryJudgment(param.getCompeteTimeId(),null); + return competeJudgmentDao.queryJudgment(param.getCompeteTimeId(), null); } /** * 添加裁判信息和tall内的角色成员任务 */ - private void saveJudgmentAndTask(Long competeTimeId,Long tallProjectId,CompeteProject project - , ProvinceCompeteDto.SiteJudgment siteJudgment, ProvinceCompeteDto.JudgmentInfo judgmentInfo,String token) { + private void saveJudgmentAndTask(Long competeTimeId, Long tallProjectId, CompeteProject project + , ProvinceCompeteDto.SiteJudgment siteJudgment, ProvinceCompeteDto.JudgmentInfo judgmentInfo, String token) { // TODO 查找该手机号在此项目之前的裁判信息,修改,同时修改tall内的成员角色信息 //添加裁判信息 //查找该项目下的该场地的裁判信息 @@ -493,7 +494,7 @@ public class CompeteTaskService implements ICompeteTaskService{ competeJudgmentExample.createCriteria().andProjectIdEqualTo(project.getId()).andCompeteTimeIdEqualTo(competeTimeId) .andSiteEqualTo(siteJudgment.getSite()).andChiefJudgmentEqualTo((byte) judgmentInfo.getJudgmentNum()); List competeJudgmentList = competeJudgmentDao.selectByExample(competeJudgmentExample); - if(CollectionUtil.isNotEmpty(competeJudgmentList)){ + if (CollectionUtil.isNotEmpty(competeJudgmentList)) { competeJudgment = competeJudgmentList.get(0); competeJudgment.setName(judgmentInfo.getJudgmentName()); competeJudgment.setPhone(judgmentInfo.getJudgmentPhone()); @@ -506,7 +507,7 @@ public class CompeteTaskService implements ICompeteTaskService{ //修改角色 //修改成员 //修改任务 - }else { + } else { competeJudgment = new CompeteJudgment(); competeJudgment.setId(snowflake.nextId()); competeJudgment.setName(judgmentInfo.getJudgmentName()); @@ -553,7 +554,7 @@ public class CompeteTaskService implements ICompeteTaskService{ Long memberId = null; if (ObjectUtil.isNotNull(memberJsonResponse)) { //code等于21代表成员已存在 - if(memberJsonResponse.getCode() == 21){ + if (memberJsonResponse.getCode() == 21) { //查询该手机号在项目内的成员的id MemberRoleDto.GetMemberByPhone getMemberByPhone = new MemberRoleDto.GetMemberByPhone(); getMemberByPhone.setProjectId(tallProjectId); @@ -567,7 +568,7 @@ public class CompeteTaskService implements ICompeteTaskService{ } } //将该成员添加至角色下 - if(ObjectUtil.isNotNull(roleId) && ObjectUtil.isNotNull(memberId)){ + if (ObjectUtil.isNotNull(roleId) && ObjectUtil.isNotNull(memberId)) { MemberRoleDto.SaveMemberInRole saveMemberInRole = new MemberRoleDto.SaveMemberInRole(); saveMemberInRole.setRoleId(roleId); saveMemberInRole.setMemberId(memberId); @@ -624,8 +625,8 @@ public class CompeteTaskService implements ICompeteTaskService{ public ProvinceCompeteVo.QueryProjectByTall queryProjectByTall(ProvinceCompeteDto.ProjectByTall param) { //查询比赛项目信息 ProvinceCompeteVo.QueryProjectByTall queryProjectByTall = projectConfigDao.queryProjectByTaskDetailId(param.getTaskDetailId()); - log.info("根据taskDetailId查询到的场次和项目信息:{}",queryProjectByTall); - if(ObjectUtil.isNull(queryProjectByTall)){ + log.info("根据taskDetailId查询到的场次和项目信息:{}", queryProjectByTall); + if (ObjectUtil.isNull(queryProjectByTall)) { queryProjectByTall = new ProvinceCompeteVo.QueryProjectByTall(); } //查询裁判信息 @@ -633,9 +634,9 @@ public class CompeteTaskService implements ICompeteTaskService{ CompeteJudgmentExample judgmentExample = new CompeteJudgmentExample(); judgmentExample.createCriteria().andRoleIdEqualTo(param.getRoleId()); List judgmentList = competeJudgmentDao.selectByExample(judgmentExample); - if(CollectionUtil.isNotEmpty(judgmentList)){ + if (CollectionUtil.isNotEmpty(judgmentList)) { judgment = judgmentList.get(0); - log.info("根据roleId查询到的裁判信息:{}",judgment); + log.info("根据roleId查询到的裁判信息:{}", judgment); queryProjectByTall.setJudgmentId(judgment.getId()); queryProjectByTall.setJudgmentNum(judgment.getChiefJudgment()); } diff --git a/mt/src/main/resources/application.yml b/mt/src/main/resources/application.yml index 4ecd13fd..f59084b0 100644 --- a/mt/src/main/resources/application.yml +++ b/mt/src/main/resources/application.yml @@ -1,5 +1,5 @@ spring: profiles: - active: dev - include: common, util-dev + active: test + include: common, util-test diff --git a/mt/src/main/resources/mapper_dao/CompeteProjectDao.xml b/mt/src/main/resources/mapper_dao/CompeteProjectDao.xml index 18958c46..a742f0fe 100644 --- a/mt/src/main/resources/mapper_dao/CompeteProjectDao.xml +++ b/mt/src/main/resources/mapper_dao/CompeteProjectDao.xml @@ -71,7 +71,7 @@ LEFT JOIN t_compete_group g on p.compete_group_id = g.id LEFT JOIN t_compete_company c on p.company_id = c.id WHERE - pp.project_id = 2011 + pp.project_id = #{projectId} and pp.rec_status = 0 and p.rec_status = 0 and g.rec_status = 0 @@ -86,7 +86,7 @@ LEFT JOIN t_compete_group g on t.group_remark = g.group_remark and t.gender_group = g.sex LEFT JOIN t_compete_company c on t.company_id = c.id WHERE - t.project_id = 2022 + t.project_id = #{projectId} and t.rec_status = 0 and g.rec_status = 0 and c.rec_status = 0