From 30481003d9c1b191765fe0f47ad0e1558bd64de8 Mon Sep 17 00:00:00 2001 From: zxl <763096477@qq.com> Date: 星期二, 01 四月 2025 17:21:45 +0800 Subject: [PATCH] 获取赋码规则新增文件 --- business/src/main/java/com/ycl/domain/form/ProjectCodingStatusForm.java | 50 ++++ business/src/main/java/com/ycl/domain/vo/ProjectCodingStatusVO.java | 48 ++++ common/src/main/java/com/ycl/common/enums/business/CodingRulerSymbolTypeEnum.java | 36 +++ business/src/main/java/com/ycl/mapper/ProjectCodingStatusMapper.java | 37 +++ business/src/main/java/com/ycl/service/ProjectCodingStatusService.java | 65 +++++ business/src/main/java/com/ycl/task/CodingTask.java | 226 ++++++++++++++++++ business/src/main/java/com/ycl/domain/entity/ProjectCodingStatus.java | 39 +++ business/src/main/java/com/ycl/domain/query/ProjectCodingStatusQuery.java | 22 + business/src/main/java/com/ycl/service/impl/ProjectCodingStatusServiceImpl.java | 120 ++++++++++ business/src/main/resources/mapper/ProjectCodingStatusMapper.xml | 46 +++ 10 files changed, 689 insertions(+), 0 deletions(-) diff --git a/business/src/main/java/com/ycl/domain/entity/ProjectCodingStatus.java b/business/src/main/java/com/ycl/domain/entity/ProjectCodingStatus.java new file mode 100644 index 0000000..108e252 --- /dev/null +++ b/business/src/main/java/com/ycl/domain/entity/ProjectCodingStatus.java @@ -0,0 +1,39 @@ +package com.ycl.domain.entity; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; + +import java.io.Serializable; + +import com.ycl.system.domain.base.AbsEntity; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * + * + * @author zxl + * @since 2025-04-01 + */ +@Data +@TableName("t_project_overtime_times") +public class ProjectCodingStatus extends AbsEntity { + + private static final long serialVersionUID = 1L; + + @TableField("task_overtime_num") + /** 瓒呮椂浠诲姟鏁�*/ + private Long taskOvertimeNum; + + @TableField("process_ins_id") + /** 娴佺▼瀹炰緥id*/ + private String processInsId; + + @TableField("project_id") + /** 椤圭洰id*/ + private String projectId; + + /** 椤圭洰绫诲瀷*/ + @TableField("project_type") + private String projectType; +} diff --git a/business/src/main/java/com/ycl/domain/form/ProjectCodingStatusForm.java b/business/src/main/java/com/ycl/domain/form/ProjectCodingStatusForm.java new file mode 100644 index 0000000..861bfd5 --- /dev/null +++ b/business/src/main/java/com/ycl/domain/form/ProjectCodingStatusForm.java @@ -0,0 +1,50 @@ +package com.ycl.domain.form; + +import com.ycl.common.group.Update; +import com.ycl.common.group.Add; +import com.ycl.system.domain.base.AbsForm; +import com.ycl.domain.entity.ProjectCodingStatus; +import org.springframework.beans.BeanUtils; +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; +import org.springframework.lang.NonNull; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import java.util.Date; + +/** + * 琛ㄥ崟 + * + * @author zxl + * @since 2025-04-01 + */ +@Data +@ApiModel(value = "ProjectCodingStatus琛ㄥ崟", description = "琛ㄥ崟") +public class ProjectCodingStatusForm extends AbsForm { + + @NotNull(message = "涓嶈兘涓虹┖", groups = {Add.class, Update.class}) + @ApiModelProperty("瓒呮椂浠诲姟鏁�") + private Integer taskOvertimeNum; + + @NotNull(message = "涓嶈兘涓虹┖", groups = {Add.class, Update.class}) + @ApiModelProperty("娴佺▼瀹炰緥id") + private String processInsId; + + @NotNull(message = "涓嶈兘涓虹┖", groups = {Add.class, Update.class}) + @ApiModelProperty("椤圭洰id") + private String projectId; + + @NotNull(message = "涓嶈兘涓虹┖", groups = {Add.class, Update.class}) + @ApiModelProperty("椤圭洰绫诲瀷") + private String projectType; + + public static ProjectCodingStatus getEntityByForm(@NonNull ProjectCodingStatusForm form, ProjectCodingStatus entity) { + if(entity == null) { + entity = new ProjectCodingStatus(); + } + BeanUtils.copyProperties(form, entity); + return entity; + } + +} diff --git a/business/src/main/java/com/ycl/domain/query/ProjectCodingStatusQuery.java b/business/src/main/java/com/ycl/domain/query/ProjectCodingStatusQuery.java new file mode 100644 index 0000000..6073200 --- /dev/null +++ b/business/src/main/java/com/ycl/domain/query/ProjectCodingStatusQuery.java @@ -0,0 +1,22 @@ +package com.ycl.domain.query; + +import com.ycl.system.domain.base.AbsQuery; +import java.util.List; +import org.springframework.lang.NonNull; +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * 鏌ヨ + * + * @author zxl + * @since 2025-04-01 + */ +@Data +@ApiModel(value = "ProjectCodingStatus鏌ヨ鍙傛暟", description = "鏌ヨ鍙傛暟") +public class ProjectCodingStatusQuery extends AbsQuery { +} + diff --git a/business/src/main/java/com/ycl/domain/vo/ProjectCodingStatusVO.java b/business/src/main/java/com/ycl/domain/vo/ProjectCodingStatusVO.java new file mode 100644 index 0000000..7c38d82 --- /dev/null +++ b/business/src/main/java/com/ycl/domain/vo/ProjectCodingStatusVO.java @@ -0,0 +1,48 @@ +package com.ycl.domain.vo; + +import com.ycl.system.domain.base.AbsVo; +import com.ycl.domain.entity.ProjectCodingStatus; +import java.util.List; +import org.springframework.lang.NonNull; +import org.springframework.beans.BeanUtils; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import java.util.Date; + +/** + * 灞曠ず + * + * @author zxl + * @since 2025-04-01 + */ +@Data +@ApiModel(value = "鍝嶅簲鏁版嵁", description = "鍝嶅簲鏁版嵁") +public class ProjectCodingStatusVO extends AbsVo { + + /** 浠诲姟瓒呮椂鏁�*/ + @ApiModelProperty("浠诲姟瓒呮椂鏁�") + private Integer taskOvertimeNum; + + /** 娴佺▼瀹炰緥id*/ + @ApiModelProperty("娴佺▼瀹炰緥id") + private String processInsId; + + /** 椤圭洰id*/ + @ApiModelProperty("椤圭洰id") + private String projectId; + + /** 椤圭洰绫诲瀷*/ + @ApiModelProperty("椤圭洰绫诲瀷") + private String projectType; + + + public static ProjectCodingStatusVO getVoByEntity(@NonNull ProjectCodingStatus entity, ProjectCodingStatusVO vo) { + if(vo == null) { + vo = new ProjectCodingStatusVO(); + } + BeanUtils.copyProperties(entity, vo); + return vo; + } + +} diff --git a/business/src/main/java/com/ycl/mapper/ProjectCodingStatusMapper.java b/business/src/main/java/com/ycl/mapper/ProjectCodingStatusMapper.java new file mode 100644 index 0000000..770a2c4 --- /dev/null +++ b/business/src/main/java/com/ycl/mapper/ProjectCodingStatusMapper.java @@ -0,0 +1,37 @@ +package com.ycl.mapper; + +import com.ycl.domain.entity.ProjectCodingStatus; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.ycl.domain.vo.ProjectCodingStatusVO; +import com.ycl.domain.form.ProjectCodingStatusForm; +import com.ycl.domain.query.ProjectCodingStatusQuery; +import java.util.List; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +/** + * Mapper 鎺ュ彛 + * + * @author zxl + * @since 2025-04-01 + */ +@Mapper +public interface ProjectCodingStatusMapper extends BaseMapper<ProjectCodingStatus> { + + /** + * id鏌ユ壘 + * @param id + * @return + */ + ProjectCodingStatusVO getById(Integer id); + + /** + * 鍒嗛〉 + */ + IPage getPage(IPage page, @Param("query") ProjectCodingStatusQuery query); + + void delAll(); + + +} diff --git a/business/src/main/java/com/ycl/service/ProjectCodingStatusService.java b/business/src/main/java/com/ycl/service/ProjectCodingStatusService.java new file mode 100644 index 0000000..8b5aaa2 --- /dev/null +++ b/business/src/main/java/com/ycl/service/ProjectCodingStatusService.java @@ -0,0 +1,65 @@ +package com.ycl.service; + +import com.ycl.domain.entity.ProjectCodingStatus; +import com.baomidou.mybatisplus.extension.service.IService; +import com.ycl.common.base.Result; +import com.ycl.domain.form.ProjectCodingStatusForm; +import com.ycl.domain.query.ProjectCodingStatusQuery; +import java.util.List; + +/** + * 鏈嶅姟绫� + * + * @author zxl + * @since 2025-04-01 + */ +public interface ProjectCodingStatusService extends IService<ProjectCodingStatus> { + + /** + * 娣诲姞 + * @param form + * @return + */ + Result add(ProjectCodingStatusForm form); + + /** + * 淇敼 + * @param form + * @return + */ + Result update(ProjectCodingStatusForm form); + + /** + * 鎵归噺鍒犻櫎 + * @param ids + * @return + */ + Result remove(List<String> ids); + + /** + * id鍒犻櫎 + * @param id + * @return + */ + Result removeById(String id); + + /** + * 鍒嗛〉鏌ヨ + * @param query + * @return + */ + Result page(ProjectCodingStatusQuery query); + + /** + * 鏍规嵁id鏌ユ壘 + * @param id + * @return + */ + Result detail(Integer id); + + /** + * 鍒楄〃 + * @return + */ + Result all(); +} diff --git a/business/src/main/java/com/ycl/service/impl/ProjectCodingStatusServiceImpl.java b/business/src/main/java/com/ycl/service/impl/ProjectCodingStatusServiceImpl.java new file mode 100644 index 0000000..eff9d93 --- /dev/null +++ b/business/src/main/java/com/ycl/service/impl/ProjectCodingStatusServiceImpl.java @@ -0,0 +1,120 @@ +package com.ycl.service.impl; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.ycl.domain.entity.ProjectCodingStatus; +import com.ycl.mapper.ProjectCodingStatusMapper; +import com.ycl.service.ProjectCodingStatusService; +import com.ycl.common.base.Result; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.ycl.domain.form.ProjectCodingStatusForm; +import com.ycl.domain.vo.ProjectCodingStatusVO; +import com.ycl.domain.query.ProjectCodingStatusQuery; +import org.springframework.stereotype.Service; +import lombok.RequiredArgsConstructor; +import com.ycl.framework.utils.PageUtil; +import org.springframework.beans.BeanUtils; +import org.springframework.util.Assert; + +import java.util.List; +import java.util.stream.Collectors; + +/** + * 鏈嶅姟瀹炵幇绫� + * + * @author zxl + * @since 2025-04-01 + */ +@Service +@RequiredArgsConstructor +public class ProjectCodingStatusServiceImpl extends ServiceImpl<ProjectCodingStatusMapper, ProjectCodingStatus> implements ProjectCodingStatusService { + + private final ProjectCodingStatusMapper projectCodingStatusMapper; + + /** + * 娣诲姞 + * @param form + * @return + */ + @Override + public Result add(ProjectCodingStatusForm form) { + ProjectCodingStatus entity = ProjectCodingStatusForm.getEntityByForm(form, null); + baseMapper.insert(entity); + return Result.ok("娣诲姞鎴愬姛"); + } + + /** + * 淇敼 + * @param form + * @return + */ + @Override + public Result update(ProjectCodingStatusForm form) { + ProjectCodingStatus entity = baseMapper.selectById(form.getId()); + + // 涓虹┖鎶汭llegalArgumentException锛屽仛鍏ㄥ眬寮傚父澶勭悊 + Assert.notNull(entity, "璁板綍涓嶅瓨鍦�"); + BeanUtils.copyProperties(form, entity); + baseMapper.updateById(entity); + return Result.ok("淇敼鎴愬姛"); + } + + /** + * 鎵归噺鍒犻櫎 + * @param ids + * @return + */ + @Override + public Result remove(List<String> ids) { + baseMapper.deleteBatchIds(ids); + return Result.ok("鍒犻櫎鎴愬姛"); + } + + /** + * id鍒犻櫎 + * @param id + * @return + */ + @Override + public Result removeById(String id) { + baseMapper.deleteById(id); + return Result.ok("鍒犻櫎鎴愬姛"); + } + + /** + * 鍒嗛〉鏌ヨ + * @param query + * @return + */ + @Override + public Result page(ProjectCodingStatusQuery query) { + IPage<ProjectCodingStatusVO> page = PageUtil.getPage(query, ProjectCodingStatusVO.class); + baseMapper.getPage(page, query); + return Result.ok().data(page.getRecords()).total(page.getTotal()); + } + + /** + * 鏍规嵁id鏌ユ壘 + * @param id + * @return + */ + @Override + public Result detail(Integer id) { + ProjectCodingStatusVO vo = baseMapper.getById(id); + + Assert.notNull(vo, "璁板綍涓嶅瓨鍦�"); + return Result.ok().data(vo); + } + + /** + * 鍒楄〃 + * @return + */ + @Override + public Result all() { + List<ProjectCodingStatus> entities = baseMapper.selectList(null); + List<ProjectCodingStatusVO> vos = entities.stream() + .map(entity -> ProjectCodingStatusVO.getVoByEntity(entity, null)) + .collect(Collectors.toList()); + return Result.ok().data(vos); + } +} diff --git a/business/src/main/java/com/ycl/task/CodingTask.java b/business/src/main/java/com/ycl/task/CodingTask.java new file mode 100644 index 0000000..69e97cc --- /dev/null +++ b/business/src/main/java/com/ycl/task/CodingTask.java @@ -0,0 +1,226 @@ +package com.ycl.task; + +import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper; +import com.baomidou.mybatisplus.extension.conditions.update.LambdaUpdateChainWrapper; +import com.ycl.common.enums.business.CodingRulerCodeTypeEnum; +import com.ycl.common.enums.business.CodingRulerIntervalTypeEnum; +import com.ycl.common.enums.business.CodingRulerSymbolTypeEnum; +import com.ycl.common.enums.business.ProjectProcessTypeEnum; +import com.ycl.domain.entity.*; +import com.ycl.domain.vo.CodingRulerVO; +import com.ycl.domain.vo.ProcessCodingVO; +import com.ycl.domain.vo.ProjectCodingStatusVO; +import com.ycl.domain.vo.ProjectProcessVO; +import com.ycl.factory.FlowServiceFactory; +import com.ycl.mapper.*; +import com.ycl.service.ProjectCodingStatusService; +import liquibase.pro.packaged.A; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; +import org.springframework.util.CollectionUtils; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.function.Function; +import java.util.stream.Collectors; + +@Slf4j +@Component("codingTask") +public class CodingTask extends FlowServiceFactory { + @Autowired + private ProjectCodingStatusMapper projectCodingStatusMapper; + + @Autowired + private ProjectCodingStatusService projectCodingStatusService; + + @Autowired + private ProjectProcessMapper projectProcessMapper; + @Autowired + private ProjectInfoMapper projectInfoMapper; + @Autowired + private CodingRulerMapper codingRulerMapper; + + @Autowired + private ProcessCodingMapper processCodingMapper; + + + public void codingTask(){ + log.info("寮�濮嬭绠楅」鐩苟涓旇祴鐮�"); + //鑾峰緱鍚敤鐨勮祴鐮佽鍒� + List<CodingRulerVO> codingRulerVOS = codingRulerMapper.getStartRuler(); + //娌″惎鐢ㄧ洿鎺ョ粨鏉� + if (CollectionUtils.isEmpty(codingRulerVOS)){ + log.info("鏈惎鐢ㄨ祴鐮佽鍒�"); + return; + } + CodingRulerVO yellowRuler = null; + CodingRulerVO redRuler = null; + for (CodingRulerVO codingRulerVO : codingRulerVOS){ + if (CodingRulerCodeTypeEnum.YELLOW.getValue().equals(codingRulerVO.getProjectCodeType())){ + yellowRuler = codingRulerVO; + }else if (CodingRulerCodeTypeEnum.RED.getValue().equals(codingRulerVO.getProjectCodeType())){ + redRuler = codingRulerVO; + } + } + + //鑾峰緱鎵�鏈� 瓒呮椂浠诲姟鏁颁笌娴佺▼瀹炰緥id + List<ProcessCodingVO> processCodingVOS = processCodingMapper.countProjectOverTimeNum(); + if (!CollectionUtils.isEmpty(processCodingVOS)){ + //灏嗘祦绋嬪疄渚媔d杞崲涓簂ist + List<String> processIds = processCodingVOS.stream().map(ProcessCodingVO::getProcessInsId).toList(); + //鑾峰緱鎵�鏈� 鏇村叿娴佺▼瀹氫箟id锛屾祦绋嬬浉鍏抽」鐩甶d锛� key涓烘祦绋媔d + Map<String, ProjectProcess> projectMap = new LambdaQueryChainWrapper<>(projectProcessMapper) + .in(ProjectProcess::getProcessInsId, processIds) + .eq(ProjectProcess::getProjectType, ProjectProcessTypeEnum.PROJECT) + .list() + .stream() + .collect(Collectors.toMap(ProjectProcess::getProcessInsId, Function.identity())); + + //淇敼涓洪粍鐮佺殑椤圭洰 id + List<String> yellowProjectCodingIds = new ArrayList<>(); + //淇敼涓虹孩鐮佺殑椤圭洰 id + List<String> redProjectCodingIds = new ArrayList<>(); + + + //鏂板鐨勮褰曢泦鍚� + List<ProjectCodingStatus> addList = new ArrayList<>(); + + for (ProcessCodingVO processCoding : processCodingVOS) { + //鍒ゆ柇 椤圭洰绫诲瀷涓� ProjectProcessTypeEnum.PROJECT 骞朵笖瓒呮椂浠诲姟鏁板ぇ浜�0 + if (processCoding.getTaskOvertimeNum() != 0 && projectMap.containsKey(processCoding.getProcessInsId())) { + ProjectCodingStatus projectCodingStatus = new ProjectCodingStatus(); + projectCodingStatus.setProjectType(ProjectProcessTypeEnum.PROJECT.getValue()); + projectCodingStatus.setProjectId(projectMap.get(processCoding.getProcessInsId()).getProjectId()); + projectCodingStatus.setProcessInsId(processCoding.getProcessInsId()); + projectCodingStatus.setTaskOvertimeNum(processCoding.getTaskOvertimeNum()); + //娣诲姞鍒版柊澧為泦鍚堝唴 + addList.add(projectCodingStatus); + //妫�楠岃祴鐮佽鍒� + checkCodingType(projectCodingStatus.getTaskOvertimeNum(), + projectCodingStatus.getProjectId(), + yellowProjectCodingIds,redProjectCodingIds, + yellowRuler,redRuler); + } + } + + if(!CollectionUtils.isEmpty(addList)){ + projectCodingStatusMapper.delAll(); + projectCodingStatusService.saveBatch(addList); + } + //淇敼椤圭洰璧嬬爜 + updateProjectCoding(redProjectCodingIds,"red"); + log.info("鎵撳嵃璧嬪�间负绾㈢爜鐨勯」鐩甶d"); + for (String s : redProjectCodingIds){ + System.out.println(s); + } + log.info("鎵撳嵃璧嬪�间负绾㈢爜鐨勯」鐩甶d瀹屾瘯"); + updateProjectCoding(yellowProjectCodingIds,"yellow"); + log.info("鎵撳嵃璧嬪�间负榛勭爜鐨勯」鐩甶d"); + for (String s : yellowProjectCodingIds){ + System.out.println(s); + } + log.info("鎵撳嵃璧嬪�间负榛勭爜鐨勯」鐩甶d瀹屾瘯"); + } + + log.info("缁撴潫璁$畻椤圭洰骞朵笖璧嬬爜"); + } + + /** + * 璧嬬爜 + * + * @param projectIds 娴佺▼瀹炰緥ID鍒楄〃 + * @param coding 璧嬬爜鍊� + */ + private void updateProjectCoding(List<String> projectIds, String coding) { + if (!CollectionUtils.isEmpty(projectIds)) { + //灏唅d 绫诲瀷杞崲涓篖ong + List<Long> longList = projectIds.stream() + .map(Long::parseLong) + .collect(Collectors.toList()); + new LambdaUpdateChainWrapper<>(projectInfoMapper) + .in(ProjectInfo::getId, longList) + .set(ProjectInfo::getCoding, coding) + .update(); + } + } + + + /** + * + * @param overTimeNum 瓒呮椂浠诲姟鏁� + * @param projectId 椤圭洰id + * @param yellowProjectCodingIds 淇敼椤圭洰璧嬬爜涓洪粍鐮佺殑id闆嗗悎 + * @param redProjectCodingIds 淇敼椤圭洰璧嬬爜涓虹孩鐮佺殑id闆嗗悎 + * @param yellowRuler 榛勭爜瑙勫垯 + * @param redRuler 绾㈢爜瑙勫垯 + */ + private void checkCodingType(Long overTimeNum,String projectId, + List<String> yellowProjectCodingIds, List<String> redProjectCodingIds, + CodingRulerVO yellowRuler,CodingRulerVO redRuler){ + //鍏堝垽鏂孩鐮侊紝瑙勫垯濡傛灉婊¤冻锛屽垯涓嶆墽琛岄粍鐮佽鍒� + if (judgeState(overTimeNum, projectId, redProjectCodingIds, redRuler)) return; + + //鍒ゆ柇鏄惁婊¤冻榛勭爜瑙勫垯 + judgeState(overTimeNum, projectId, yellowProjectCodingIds, yellowRuler); + + + } + + private boolean judgeState(Long overTimeNum, String projectId, List<String> projectCodingIds, CodingRulerVO ruler) { + if (ruler != null){ + if (CodingRulerIntervalTypeEnum.Interval.getValue().equals(ruler.getIntervalType())){ + //鍖洪棿鎯呭喌 + boolean result = false; + //鍒ゆ柇婊¤冻宸﹀尯闂� + if (ruler.getLeftSymbol().equals("0")){ + result = (overTimeNum > ruler.getLeftValue()); + }else if (ruler.getLeftSymbol().equals("1")){ + result = (overTimeNum >= ruler.getLeftValue()); + }else if (ruler.getLeftSymbol().equals("2")){ + result = (Objects.equals(overTimeNum, ruler.getLeftValue())); + } + //婊¤冻鍒欏垽鏂弧瓒冲彸鍖洪棿 + if (result){ + if (ruler.getRightSymbol().equals("2")){ + result = (Objects.equals(overTimeNum, ruler.getRightValue())); + }else if (ruler.getRightSymbol().equals("3")){ + result = (overTimeNum < ruler.getRightValue()); + }else if (ruler.getRightSymbol().equals("4")){ + result = (overTimeNum <= ruler.getRightValue()); + } + } + if (result){ + //绗﹀悎璇ヨ祴鐮佹潯浠� + projectCodingIds.add(projectId); + return true; + } + } + else{ + //鍗曞尯闂存儏鍐� + boolean result = false; + if (ruler.getLeftSymbol().equals("0")){ + result = (overTimeNum > ruler.getLeftValue()); + }else if (ruler.getLeftSymbol().equals("1")){ + result = (overTimeNum >= ruler.getLeftValue()); + }else if (ruler.getLeftSymbol().equals("2")){ + result = (Objects.equals(overTimeNum, ruler.getLeftValue())); + }else if (ruler.getLeftSymbol().equals("3")){ + result = (overTimeNum < ruler.getLeftValue()); + }else if (ruler.getLeftSymbol().equals("4")){ + result = (overTimeNum <= ruler.getLeftValue()); + } + if (result){ + //绗﹀悎璇ヨ祴鐮佹潯浠� + projectCodingIds.add(projectId); + return true; + } + + } + } + return false; + } + +} diff --git a/business/src/main/resources/mapper/ProjectCodingStatusMapper.xml b/business/src/main/resources/mapper/ProjectCodingStatusMapper.xml new file mode 100644 index 0000000..1958ff8 --- /dev/null +++ b/business/src/main/resources/mapper/ProjectCodingStatusMapper.xml @@ -0,0 +1,46 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> +<mapper namespace="com.ycl.mapper.ProjectCodingStatusMapper"> + + <!-- 閫氱敤鏌ヨ鏄犲皠缁撴灉 --> + <resultMap id="BaseResultMap" type="com.ycl.domain.vo.ProjectCodingStatusVO"> + <result column="task_overtime_num" property="taskOvertimeNum" /> + <result column="process_ins_id" property="processInsId" /> + <result column="project_id" property="projectId" /> + <result column="project_type" property="projectType" /> + </resultMap> + + + + + <delete id="delAll"> + DELETE FROM t_project_overtime_times + </delete> + + + <select id="getById" resultMap="BaseResultMap"> + SELECT + TPOT.task_overtime_num, + TPOT.process_ins_id, + TPOT.project_id, + TPOT.id + FROM + t_project_overtime_times TPOT + WHERE + TPOT.id = #{id} AND TPOT.deleted = 0 + </select> + + + <select id="getPage" resultMap="BaseResultMap"> + SELECT + TPOT.task_overtime_num, + TPOT.process_ins_id, + TPOT.project_id, + TPOT.id + FROM + t_project_overtime_times TPOT + WHERE + TPOT.deleted = 0 + </select> + +</mapper> diff --git a/common/src/main/java/com/ycl/common/enums/business/CodingRulerSymbolTypeEnum.java b/common/src/main/java/com/ycl/common/enums/business/CodingRulerSymbolTypeEnum.java new file mode 100644 index 0000000..aace9fe --- /dev/null +++ b/common/src/main/java/com/ycl/common/enums/business/CodingRulerSymbolTypeEnum.java @@ -0,0 +1,36 @@ +package com.ycl.common.enums.business; + +import com.baomidou.mybatisplus.annotation.EnumValue; +import com.fasterxml.jackson.annotation.JsonValue; +import lombok.Getter; + +import java.util.Arrays; +import java.util.Map; +import java.util.stream.Collectors; + +@Getter +public enum CodingRulerSymbolTypeEnum { + GT("0","澶т簬"), + GE("1","澶т簬绛変簬"), + EQ("2","绛変簬"), + LT("3","灏忎簬"), + LE("4","灏忎簬绛変簬"); + + @EnumValue + @JsonValue + private final String value; + + private final String desc; + + CodingRulerSymbolTypeEnum(String value, String desc) { + this.value = value; + this.desc = desc; + } + + + // 灏嗘灇涓捐浆鎹负 Map + public static Map<String, String> getMap() { + return Arrays.stream(CodingRulerSymbolTypeEnum.values()) + .collect(Collectors.toMap(CodingRulerSymbolTypeEnum::getValue, CodingRulerSymbolTypeEnum::getDesc)); + } +} -- Gitblit v1.8.0