diff --git a/pom.xml b/pom.xml index 810ba83a..53852ee4 100644 --- a/pom.xml +++ b/pom.xml @@ -28,12 +28,12 @@ 1.4.6 1.2.16 3.5.2 - 2.11.0 + 2.13.0 2.3 2.0.23 0.9.1 8.2.2 - 4.1.2 + 5.3.0 2.5.1 4.0.6.B 4.0.6.B @@ -223,6 +223,12 @@ ${yanzhu.version} + + net.sf.mpxj + mpxj + 13.0.2 + + diff --git a/yanzhu-auth/src/main/resources/bootstrap.yml b/yanzhu-auth/src/main/resources/bootstrap.yml index b49a61d4..d54c82d2 100644 --- a/yanzhu-auth/src/main/resources/bootstrap.yml +++ b/yanzhu-auth/src/main/resources/bootstrap.yml @@ -16,7 +16,7 @@ spring: # 服务注册地址 server-addr: @discovery.server-addr@ # 服务分组 - group: JiangYuQi + group: lijun config: # 配置中心地址 server-addr: @discovery.server-addr@ diff --git a/yanzhu-common/yanzhu-common-mapper/src/main/java/com/yanzhu/manage/domain/ProPlan.java b/yanzhu-common/yanzhu-common-mapper/src/main/java/com/yanzhu/manage/domain/ProPlan.java new file mode 100644 index 00000000..00b7c57d --- /dev/null +++ b/yanzhu-common/yanzhu-common-mapper/src/main/java/com/yanzhu/manage/domain/ProPlan.java @@ -0,0 +1,348 @@ +package com.yanzhu.manage.domain; + +import com.fasterxml.jackson.annotation.JsonFormat; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; +import com.yanzhu.common.core.annotation.Excel; +import com.yanzhu.common.core.web.domain.BaseEntity; + +import java.util.Date; + +/** + * 计划管理对象 pro_plan + * + * @author yanzhu + * @date 2024-11-03 + */ +public class ProPlan extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** $column.columnComment */ + private Long id; + + /** 公司ID */ + @Excel(name = "公司ID") + private Long comid; + + /** 项目ID */ + @Excel(name = "项目ID") + private Long projectId; + + /** 任务ID */ + @Excel(name = "任务ID") + private Long taskId; + + /** 任务唯一ID */ + @Excel(name = "任务唯一ID") + private String taskUniqueId; + + /** 父任务ID */ + @Excel(name = "父任务ID") + private Long parentId; + + /** 任务类型(FS,SS,FF,SF) */ + @Excel(name = "任务类型", readConverterExp = "F=S,SS,FF,SF") + private String taskType; + + /** 任务级别 */ + @Excel(name = "任务级别") + private Long taskOutlineLevel; + + /** 任务名称 */ + @Excel(name = "任务名称") + private String taskName; + + /** 任务工期 */ + @Excel(name = "任务工期") + private Double taskDuation; + + /** 任务开始时间 */ + @JsonFormat(pattern = "yyyy-MM-dd") + @Excel(name = "任务开始时间", width = 30, dateFormat = "yyyy-MM-dd") + private Date startDate; + + /** 任务结束时间 */ + @JsonFormat(pattern = "yyyy-MM-dd") + @Excel(name = "任务结束时间", width = 30, dateFormat = "yyyy-MM-dd") + private Date finishDate; + + /** 任务流 */ + @Excel(name = "任务流") + private String predecessors; + + /** 计划开始时间 */ + @JsonFormat(pattern = "yyyy-MM-dd") + @Excel(name = "计划开始时间", width = 30, dateFormat = "yyyy-MM-dd") + private Date planStartDate; + + /** 计划结束时间 */ + @JsonFormat(pattern = "yyyy-MM-dd") + @Excel(name = "计划结束时间", width = 30, dateFormat = "yyyy-MM-dd") + private Date planFinishDate; + + /** BIM ID */ + @Excel(name = "BIM ID") + private String bimId; + + /** 负责人 */ + @Excel(name = "负责人") + private String operator; + + /** 负责人ID */ + @Excel(name = "负责人ID") + private Long operatorId; + + /** 班组ID */ + @Excel(name = "班组ID") + private Long groupId; + + /** 班组名称 */ + @Excel(name = "班组名称") + private String groupName; + + private String compName; + + public String getCompName() { + return compName; + } + + public void setCompName(String compName) { + this.compName = compName; + } + + public String getProjectName() { + return projectName; + } + + public void setProjectName(String projectName) { + this.projectName = projectName; + } + + private String projectName; + /** $column.columnComment */ + @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()") + private Long isDel; + + public void setId(Long id) + { + this.id = id; + } + + public Long getId() + { + return id; + } + public void setComid(Long comid) + { + this.comid = comid; + } + + public Long getComid() + { + return comid; + } + public void setProjectId(Long projectId) + { + this.projectId = projectId; + } + + public Long getProjectId() + { + return projectId; + } + public void setTaskId(Long taskId) + { + this.taskId = taskId; + } + + public Long getTaskId() + { + return taskId; + } + public void setTaskUniqueId(String taskUniqueId) + { + this.taskUniqueId = taskUniqueId; + } + + public String getTaskUniqueId() + { + return taskUniqueId; + } + public void setParentId(Long parentId) + { + this.parentId = parentId; + } + + public Long getParentId() + { + return parentId; + } + public void setTaskType(String taskType) + { + this.taskType = taskType; + } + + public String getTaskType() + { + return taskType; + } + public void setTaskOutlineLevel(Long taskOutlineLevel) + { + this.taskOutlineLevel = taskOutlineLevel; + } + + public Long getTaskOutlineLevel() + { + return taskOutlineLevel; + } + public void setTaskName(String taskName) + { + this.taskName = taskName; + } + + public String getTaskName() + { + return taskName; + } + public void setTaskDuation(Double taskDuation) + { + this.taskDuation = taskDuation; + } + + public Double getTaskDuation() + { + return taskDuation; + } + public void setStartDate(Date startDate) + { + this.startDate = startDate; + } + + public Date getStartDate() + { + return startDate; + } + public void setFinishDate(Date finishDate) + { + this.finishDate = finishDate; + } + + public Date getFinishDate() + { + return finishDate; + } + public void setPredecessors(String predecessors) + { + this.predecessors = predecessors; + } + + public String getPredecessors() + { + return predecessors; + } + public void setPlanStartDate(Date planStartDate) + { + this.planStartDate = planStartDate; + } + + public Date getPlanStartDate() + { + return planStartDate; + } + public void setPlanFinishDate(Date planFinishDate) + { + this.planFinishDate = planFinishDate; + } + + public Date getPlanFinishDate() + { + return planFinishDate; + } + public void setBimId(String bimId) + { + this.bimId = bimId; + } + + public String getBimId() + { + return bimId; + } + public void setOperator(String operator) + { + this.operator = operator; + } + + public String getOperator() + { + return operator; + } + public void setOperatorId(Long operatorId) + { + this.operatorId = operatorId; + } + + public Long getOperatorId() + { + return operatorId; + } + public void setGroupId(Long groupId) + { + this.groupId = groupId; + } + + public Long getGroupId() + { + return groupId; + } + public void setGroupName(String groupName) + { + this.groupName = groupName; + } + + public String getGroupName() + { + return groupName; + } + public void setIsDel(Long isDel) + { + this.isDel = isDel; + } + + public Long getIsDel() + { + return isDel; + } + + @Override + public String toString() { + return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) + .append("id", getId()) + .append("comid", getComid()) + .append("projectId", getProjectId()) + .append("taskId", getTaskId()) + .append("taskUniqueId", getTaskUniqueId()) + .append("parentId", getParentId()) + .append("taskType", getTaskType()) + .append("taskOutlineLevel", getTaskOutlineLevel()) + .append("taskName", getTaskName()) + .append("taskDuation", getTaskDuation()) + .append("startDate", getStartDate()) + .append("finishDate", getFinishDate()) + .append("predecessors", getPredecessors()) + .append("planStartDate", getPlanStartDate()) + .append("planFinishDate", getPlanFinishDate()) + .append("bimId", getBimId()) + .append("operator", getOperator()) + .append("operatorId", getOperatorId()) + .append("groupId", getGroupId()) + .append("groupName", getGroupName()) + .append("isDel", getIsDel()) + .append("createBy", getCreateBy()) + .append("createTime", getCreateTime()) + .append("updateBy", getUpdateBy()) + .append("updateTime", getUpdateTime()) + .append("remark", getRemark()) + .toString(); + } +} diff --git a/yanzhu-common/yanzhu-common-mapper/src/main/java/com/yanzhu/manage/mapper/ProPlanMapper.java b/yanzhu-common/yanzhu-common-mapper/src/main/java/com/yanzhu/manage/mapper/ProPlanMapper.java new file mode 100644 index 00000000..501b9600 --- /dev/null +++ b/yanzhu-common/yanzhu-common-mapper/src/main/java/com/yanzhu/manage/mapper/ProPlanMapper.java @@ -0,0 +1,61 @@ +package com.yanzhu.manage.mapper; + +import java.util.List; +import com.yanzhu.manage.domain.ProPlan; + +/** + * 计划管理Mapper接口 + * + * @author yanzhu + * @date 2024-11-03 + */ +public interface ProPlanMapper +{ + /** + * 查询计划管理 + * + * @param id 计划管理主键 + * @return 计划管理 + */ + public ProPlan selectProPlanById(Long id); + + /** + * 查询计划管理列表 + * + * @param proPlan 计划管理 + * @return 计划管理集合 + */ + public List selectProPlanList(ProPlan proPlan); + + /** + * 新增计划管理 + * + * @param proPlan 计划管理 + * @return 结果 + */ + public int insertProPlan(ProPlan proPlan); + + /** + * 修改计划管理 + * + * @param proPlan 计划管理 + * @return 结果 + */ + public int updateProPlan(ProPlan proPlan); + + /** + * 删除计划管理 + * + * @param id 计划管理主键 + * @return 结果 + */ + public int deleteProPlanById(Long id); + + /** + * 批量删除计划管理 + * + * @param ids 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteProPlanByIds(Long[] ids); +} diff --git a/yanzhu-common/yanzhu-common-mapper/src/main/resources/mapper/manage/ProPlanMapper.xml b/yanzhu-common/yanzhu-common-mapper/src/main/resources/mapper/manage/ProPlanMapper.xml new file mode 100644 index 00000000..38610231 --- /dev/null +++ b/yanzhu-common/yanzhu-common-mapper/src/main/resources/mapper/manage/ProPlanMapper.xml @@ -0,0 +1,180 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + select pp.id, pp.comid, pp.project_id, pp.task_id, pp.task_unique_id, pp.parent_id, pp.task_type, + pp.task_outline_level, pp.task_name, pp.task_duation, pp.start_date, pp.finish_date, + pp.predecessors, pp.plan_start_date, pp.plan_finish_date, pp.bim_id, pp.operator, pp.operator_id, + pp.group_id, pp.group_name, pp.is_del, pp.create_by, pp.create_time, pp.update_by, pp.update_time, pp.remark, + dp.`dept_name` comp_name,pi.`project_name` + from pro_plan pp + LEFT JOIN sys_dept dp ON pp.`comid`=dp.`dept_id` + LEFT JOIN pro_project_info pi ON pp.`project_id`=pi.`id` + + + + + + + + insert into pro_plan + + comid, + project_id, + task_id, + task_unique_id, + parent_id, + task_type, + task_outline_level, + task_name, + task_duation, + start_date, + finish_date, + predecessors, + plan_start_date, + plan_finish_date, + bim_id, + operator, + operator_id, + group_id, + group_name, + is_del, + create_by, + create_time, + update_by, + update_time, + remark, + + + #{comid}, + #{projectId}, + #{taskId}, + #{taskUniqueId}, + #{parentId}, + #{taskType}, + #{taskOutlineLevel}, + #{taskName}, + #{taskDuation}, + #{startDate}, + #{finishDate}, + #{predecessors}, + #{planStartDate}, + #{planFinishDate}, + #{bimId}, + #{operator}, + #{operatorId}, + #{groupId}, + #{groupName}, + #{isDel}, + #{createBy}, + #{createTime}, + #{updateBy}, + #{updateTime}, + #{remark}, + + + + + update pro_plan + + comid = #{comid}, + project_id = #{projectId}, + task_id = #{taskId}, + task_unique_id = #{taskUniqueId}, + parent_id = #{parentId}, + task_type = #{taskType}, + task_outline_level = #{taskOutlineLevel}, + task_name = #{taskName}, + task_duation = #{taskDuation}, + start_date = #{startDate}, + finish_date = #{finishDate}, + predecessors = #{predecessors}, + plan_start_date = #{planStartDate}, + plan_finish_date = #{planFinishDate}, + bim_id = #{bimId}, + operator = #{operator}, + operator_id = #{operatorId}, + group_id = #{groupId}, + group_name = #{groupName}, + is_del = #{isDel}, + create_by = #{createBy}, + create_time = #{createTime}, + update_by = #{updateBy}, + update_time = #{updateTime}, + remark = #{remark}, + + where id = #{id} + + + + delete from pro_plan where id = #{id} + + + + delete from pro_plan where id in + + #{id} + + + \ No newline at end of file diff --git a/yanzhu-gateway/src/main/resources/bootstrap.yml b/yanzhu-gateway/src/main/resources/bootstrap.yml index bc5400f4..884c5efc 100644 --- a/yanzhu-gateway/src/main/resources/bootstrap.yml +++ b/yanzhu-gateway/src/main/resources/bootstrap.yml @@ -16,7 +16,7 @@ spring: # 服务注册地址 server-addr: @discovery.server-addr@ # 服务分组 - group: JiangYuQi + group: lijun config: # 配置中心地址 server-addr: @discovery.server-addr@ diff --git a/yanzhu-modules/yanzhu-file/src/main/resources/bootstrap.yml b/yanzhu-modules/yanzhu-file/src/main/resources/bootstrap.yml index d9d396b4..284fda00 100644 --- a/yanzhu-modules/yanzhu-file/src/main/resources/bootstrap.yml +++ b/yanzhu-modules/yanzhu-file/src/main/resources/bootstrap.yml @@ -16,7 +16,7 @@ spring: # 服务注册地址 server-addr: @discovery.server-addr@ # 服务分组 - group: JiangYuQi + group: lijun config: # 配置中心地址 server-addr: @discovery.server-addr@ diff --git a/yanzhu-modules/yanzhu-gen/src/main/resources/bootstrap.yml b/yanzhu-modules/yanzhu-gen/src/main/resources/bootstrap.yml index 568de19f..15150440 100644 --- a/yanzhu-modules/yanzhu-gen/src/main/resources/bootstrap.yml +++ b/yanzhu-modules/yanzhu-gen/src/main/resources/bootstrap.yml @@ -16,7 +16,7 @@ spring: # 服务注册地址 server-addr: @discovery.server-addr@ # 服务分组 - group: JiangYuQi + group: lijun config: # 配置中心地址 server-addr: @discovery.server-addr@ diff --git a/yanzhu-modules/yanzhu-manage/libs/aspose-tasks-24.10-jdk17.jar b/yanzhu-modules/yanzhu-manage/libs/aspose-tasks-24.10-jdk17.jar new file mode 100644 index 00000000..fbeb5cbc Binary files /dev/null and b/yanzhu-modules/yanzhu-manage/libs/aspose-tasks-24.10-jdk17.jar differ diff --git a/yanzhu-modules/yanzhu-manage/pom.xml b/yanzhu-modules/yanzhu-manage/pom.xml index 18fab7dc..7ed35a36 100644 --- a/yanzhu-modules/yanzhu-manage/pom.xml +++ b/yanzhu-modules/yanzhu-manage/pom.xml @@ -91,6 +91,14 @@ compile + + com.aspose + aspose-tasks + 24.10 + system + ${pom.basedir}\libs\aspose-tasks-24.10-jdk17.jar + + @@ -99,6 +107,9 @@ org.springframework.boot spring-boot-maven-plugin + + true + diff --git a/yanzhu-modules/yanzhu-manage/src/main/java/com/yanzhu/manage/controller/ProPlanController.java b/yanzhu-modules/yanzhu-manage/src/main/java/com/yanzhu/manage/controller/ProPlanController.java new file mode 100644 index 00000000..45832e94 --- /dev/null +++ b/yanzhu-modules/yanzhu-manage/src/main/java/com/yanzhu/manage/controller/ProPlanController.java @@ -0,0 +1,183 @@ +package com.yanzhu.manage.controller; + +import java.io.File; +import java.time.ZoneId; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; +import java.io.IOException; +import java.util.UUID; +import javax.servlet.http.HttpServletResponse; + +import com.alibaba.fastjson2.util.DateUtils; +import com.aspose.tasks.Project; +import com.aspose.tasks.TableCollection; +import com.aspose.tasks.Task; +import com.aspose.tasks.TaskCollection; +import com.yanzhu.common.core.utils.poi.ExcelUtil; +import com.yanzhu.common.core.web.controller.BaseController; +import com.yanzhu.common.core.web.domain.AjaxResult; +import com.yanzhu.common.core.web.page.TableDataInfo; +import com.yanzhu.common.log.annotation.Log; +import com.yanzhu.common.log.enums.BusinessType; +import com.yanzhu.common.security.annotation.RequiresPermissions; +import com.yanzhu.manage.domain.ProPlan; +import com.yanzhu.manage.service.IProPlanService; +import lombok.SneakyThrows; +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 org.springframework.web.multipart.MultipartFile; + + +/** + * 计划管理Controller + * + * @author yanzhu + * @date 2024-11-03 + */ +@RestController +@RequestMapping("/plan") +public class ProPlanController extends BaseController +{ + @Autowired + private IProPlanService proPlanService; + + /** + * 查询计划管理列表 + */ + @RequiresPermissions("manage:plan:list") + @GetMapping("/list") + public TableDataInfo list(ProPlan proPlan) + { + startPage(); + List list = proPlanService.selectProPlanList(proPlan); + return getDataTable(list); + } + + /** + * 导出计划管理列表 + */ + @RequiresPermissions("manage:plan:export") + @Log(title = "计划管理", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(HttpServletResponse response, ProPlan proPlan) + { + List list = proPlanService.selectProPlanList(proPlan); + ExcelUtil util = new ExcelUtil(ProPlan.class); + util.exportExcel(response, list, "计划管理数据"); + } + + @RequiresPermissions("manage:plan:import") + @Log(title = "计划管理", businessType = BusinessType.IMPORT) + @PostMapping("/importData") + public AjaxResult importData(MultipartFile file, Long compId,Long projectId) throws Exception { + try { + Project prj=new Project(file.getInputStream()); + List proPlans=new ArrayList<>(); + tasksToPlans(prj.getRootTask().getChildren(),proPlans); + for(ProPlan proPlan:proPlans){ + proPlan.setComid(compId); + proPlan.setProjectId(projectId); + } + proPlanService.addTasks(proPlans); + } catch (Exception e) { + e.printStackTrace(); + } + return AjaxResult.success(); + } + + private void tasksToPlans(TaskCollection children, List proPlans) { + for(Task task :children){ + ProPlan proPlan=taskToPlan(task); + proPlans.add(proPlan); + tasksToPlans(task.getChildren(),proPlans); + } + } + + private static ProPlan taskToPlan(Task task) { + ProPlan plan=new ProPlan(); + plan.setTaskId(task.getId()*1l); + plan.setTaskName(task.getName()); + plan.setTaskOutlineLevel(task.getOutlineLevel()*1l); + plan.setTaskUniqueId(task.getGuid()); + plan.setParentId(task.getParentTask().getId()*1l); + plan.setTaskDuation(task.getDuration().toDouble()); + plan.setStartDate(task.getStart()); + plan.setFinishDate(task.getFinish()); + TaskCollection task_predecessors = task.getPredecessors(); + //4. 获取前置任务(任务流) + StringBuilder beforeTaskId = new StringBuilder(); + StringBuilder beforeTaskType = new StringBuilder(); + if(task_predecessors != null){ + if(task_predecessors.size() > 0){ + for(Task relation : task_predecessors){ + Integer targetTaskId = relation.getId(); + if(beforeTaskId.length() == 0){ + beforeTaskId.append(targetTaskId); + beforeTaskType.append(relation.getType()); + }else{ + beforeTaskId.append("," + targetTaskId); + beforeTaskType.append("," + relation.getType()); + } + } + } + } + String task_predecessors_str = beforeTaskId.toString(); + String task_predecessors_str_type = beforeTaskType.toString(); + plan.setPredecessors(task_predecessors_str); + plan.setTaskType(task_predecessors_str_type); + plan.setPlanStartDate(task.getActualStart()); + plan.setPlanFinishDate(task.getActualFinish()); + return plan; + } + + /** + * 获取计划管理详细信息 + */ + @RequiresPermissions("manage:plan:query") + @GetMapping(value = "/{id}") + public AjaxResult getInfo(@PathVariable("id") Long id) + { + return success(proPlanService.selectProPlanById(id)); + } + + /** + * 新增计划管理 + */ + @RequiresPermissions("manage:plan:add") + @Log(title = "计划管理", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@RequestBody ProPlan proPlan) + { + return toAjax(proPlanService.insertProPlan(proPlan)); + } + + /** + * 修改计划管理 + */ + @RequiresPermissions("manage:plan:edit") + @Log(title = "计划管理", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@RequestBody ProPlan proPlan) + { + return toAjax(proPlanService.updateProPlan(proPlan)); + } + + /** + * 删除计划管理 + */ + @RequiresPermissions("manage:plan:remove") + @Log(title = "计划管理", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public AjaxResult remove(@PathVariable Long[] ids) + { + return toAjax(proPlanService.deleteProPlanByIds(ids)); + } +} diff --git a/yanzhu-modules/yanzhu-manage/src/main/java/com/yanzhu/manage/service/IProPlanService.java b/yanzhu-modules/yanzhu-manage/src/main/java/com/yanzhu/manage/service/IProPlanService.java new file mode 100644 index 00000000..47cf5f3d --- /dev/null +++ b/yanzhu-modules/yanzhu-manage/src/main/java/com/yanzhu/manage/service/IProPlanService.java @@ -0,0 +1,68 @@ +package com.yanzhu.manage.service; + +import java.util.List; +import com.yanzhu.manage.domain.ProPlan; + +/** + * 计划管理Service接口 + * + * @author yanzhu + * @date 2024-11-03 + */ +public interface IProPlanService +{ + /** + * 查询计划管理 + * + * @param id 计划管理主键 + * @return 计划管理 + */ + public ProPlan selectProPlanById(Long id); + public ProPlan selectProPlanByUniqueId(String UniqueId); + /** + * 查询计划管理列表 + * + * @param proPlan 计划管理 + * @return 计划管理集合 + */ + public List selectProPlanList(ProPlan proPlan); + + /** + * 新增计划管理 + * + * @param proPlan 计划管理 + * @return 结果 + */ + public int insertProPlan(ProPlan proPlan); + + /** + * 修改计划管理 + * + * @param proPlan 计划管理 + * @return 结果 + */ + public int updateProPlan(ProPlan proPlan); + + /** + * 批量删除计划管理 + * + * @param ids 需要删除的计划管理主键集合 + * @return 结果 + */ + public int deleteProPlanByIds(Long[] ids); + + /** + * 删除计划管理信息 + * + * @param id 计划管理主键 + * @return 结果 + */ + public int deleteProPlanById(Long id); + + /** + * 批量增加 + * @param proPlans + */ + public void addTasks(List proPlans); + +} diff --git a/yanzhu-modules/yanzhu-manage/src/main/java/com/yanzhu/manage/service/impl/ProPlanServiceImpl.java b/yanzhu-modules/yanzhu-manage/src/main/java/com/yanzhu/manage/service/impl/ProPlanServiceImpl.java new file mode 100644 index 00000000..3cc9f461 --- /dev/null +++ b/yanzhu-modules/yanzhu-manage/src/main/java/com/yanzhu/manage/service/impl/ProPlanServiceImpl.java @@ -0,0 +1,162 @@ +package com.yanzhu.manage.service.impl; + +import java.util.ArrayList; +import java.util.List; + +import com.yanzhu.common.core.context.SecurityContextHolder; +import com.yanzhu.common.core.utils.DateUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import com.yanzhu.manage.mapper.ProPlanMapper; +import com.yanzhu.manage.domain.ProPlan; +import com.yanzhu.manage.service.IProPlanService; + +/** + * 计划管理Service业务层处理 + * + * @author yanzhu + * @date 2024-11-03 + */ +@Service +public class ProPlanServiceImpl implements IProPlanService +{ + @Autowired + private ProPlanMapper proPlanMapper; + + /** + * 查询计划管理 + * + * @param id 计划管理主键 + * @return 计划管理 + */ + @Override + public ProPlan selectProPlanById(Long id) + { + return proPlanMapper.selectProPlanById(id); + } + + @Override + public ProPlan selectProPlanByUniqueId(String uniqueId) { + ProPlan where=new ProPlan(); + where.setTaskUniqueId(uniqueId); + List list=selectProPlanList(where); + return list.size()>0?list.get(0):null; + } + + /** + * 查询计划管理列表 + * + * @param proPlan 计划管理 + * @return 计划管理 + */ + @Override + public List selectProPlanList(ProPlan proPlan) + { + return proPlanMapper.selectProPlanList(proPlan); + } + + /** + * 新增计划管理 + * + * @param proPlan 计划管理 + * @return 结果 + */ + @Override + public int insertProPlan(ProPlan proPlan) + { + proPlan.setCreateBy(SecurityContextHolder.getUserName()); + proPlan.setCreateTime(DateUtils.getNowDate()); + return proPlanMapper.insertProPlan(proPlan); + } + + /** + * 修改计划管理 + * + * @param proPlan 计划管理 + * @return 结果 + */ + @Override + public int updateProPlan(ProPlan proPlan) + { + proPlan.setUpdateBy(SecurityContextHolder.getUserName()); + proPlan.setUpdateTime(DateUtils.getNowDate()); + return proPlanMapper.updateProPlan(proPlan); + } + + /** + * 批量删除计划管理 + * + * @param ids 需要删除的计划管理主键 + * @return 结果 + */ + @Override + public int deleteProPlanByIds(Long[] ids) + { + return proPlanMapper.deleteProPlanByIds(ids); + } + + /** + * 删除计划管理信息 + * + * @param id 计划管理主键 + * @return 结果 + */ + @Override + public int deleteProPlanById(Long id) + { + return proPlanMapper.deleteProPlanById(id); + } + + @Override + public void addTasks(List proPlans) { + if(proPlans.size()==0){ + return; + } + //获取原项目数据 + ProPlan where=new ProPlan(); + where.setProjectId(proPlans.get(0).getProjectId()); + where.setComid(proPlans.get(0).getComid()); + List oldList=selectProPlanList(where); + //保存增加的UniqueId + List addId=new ArrayList(); + for (ProPlan proPlan : proPlans) { + //增加UniqueId + addId.add(proPlan.getTaskUniqueId()); + //获取原数据 + ProPlan old=findInList(proPlan.getTaskUniqueId(),oldList); + if(old!=null){ + //有原数据进行修改 + old.setParentId(proPlan.getParentId()); + old.setTaskName(proPlan.getTaskName()); + old.setTaskId(proPlan.getTaskId()); + old.setTaskType(proPlan.getTaskType()); + old.setTaskOutlineLevel(proPlan.getTaskOutlineLevel()); + old.setTaskDuation(proPlan.getTaskDuation()); + old.setPredecessors(proPlan.getPredecessors()); + old.setStartDate(proPlan.getStartDate()); + old.setFinishDate(proPlan.getFinishDate()); + old.setPlanStartDate(proPlan.getPlanStartDate()); + old.setPlanFinishDate(proPlan.getPlanFinishDate()); + updateProPlan(old); + }else{ + //没有原数据进行插入 + insertProPlan(proPlan); + } + } + //删除无用的数据 + for(ProPlan proPlan:oldList){ + if(!addId.contains(proPlan.getTaskUniqueId())){ + deleteProPlanById(proPlan.getId()); + } + } + } + + private ProPlan findInList(String taskUniqueId, List oldList) { + for (ProPlan proPlan : oldList) { + if(taskUniqueId.equals(proPlan.getTaskUniqueId())){ + return proPlan; + } + } + return null; + } +} diff --git a/yanzhu-modules/yanzhu-manage/src/main/resources/bootstrap.yml b/yanzhu-modules/yanzhu-manage/src/main/resources/bootstrap.yml index e096f77d..9b1955cf 100644 --- a/yanzhu-modules/yanzhu-manage/src/main/resources/bootstrap.yml +++ b/yanzhu-modules/yanzhu-manage/src/main/resources/bootstrap.yml @@ -16,7 +16,7 @@ spring: # 服务注册地址 server-addr: @discovery.server-addr@ # 服务分组 - group: JiangYuQi + group: lijun config: # 配置中心地址 server-addr: @discovery.server-addr@ diff --git a/yanzhu-modules/yanzhu-system/src/main/resources/bootstrap.yml b/yanzhu-modules/yanzhu-system/src/main/resources/bootstrap.yml index 6ee499db..efe975fc 100644 --- a/yanzhu-modules/yanzhu-system/src/main/resources/bootstrap.yml +++ b/yanzhu-modules/yanzhu-system/src/main/resources/bootstrap.yml @@ -16,7 +16,7 @@ spring: # 服务注册地址 server-addr: @discovery.server-addr@ # 服务分组 - group: JiangYuQi + group: lijun config: # 配置中心地址 server-addr: @discovery.server-addr@ diff --git a/yanzhu-ui-vue3/src/api/manage/plan.js b/yanzhu-ui-vue3/src/api/manage/plan.js new file mode 100644 index 00000000..37850040 --- /dev/null +++ b/yanzhu-ui-vue3/src/api/manage/plan.js @@ -0,0 +1,44 @@ +import request from '@/utils/request' + +// 查询计划管理列表 +export function listPlan(query) { + return request({ + url: '/manage/plan/list', + method: 'get', + params: query + }) +} + +// 查询计划管理详细 +export function getPlan(id) { + return request({ + url: '/manage/plan/' + id, + method: 'get' + }) +} + +// 新增计划管理 +export function addPlan(data) { + return request({ + url: '/manage/plan', + method: 'post', + data: data + }) +} + +// 修改计划管理 +export function updatePlan(data) { + return request({ + url: '/manage/plan', + method: 'put', + data: data + }) +} + +// 删除计划管理 +export function delPlan(id) { + return request({ + url: '/manage/plan/' + id, + method: 'delete' + }) +} diff --git a/yanzhu-ui-vue3/src/views/manage/attendance_cfg/index.vue b/yanzhu-ui-vue3/src/views/manage/attendance_cfg/index.vue index 5b78f5c2..70b5336c 100644 --- a/yanzhu-ui-vue3/src/views/manage/attendance_cfg/index.vue +++ b/yanzhu-ui-vue3/src/views/manage/attendance_cfg/index.vue @@ -133,7 +133,7 @@