소스 검색

Merge branch 'master' of http://47.100.37.243:10191/wutt/manHourHousekeeper into master

seyason 1 년 전
부모
커밋
ae466da641
17개의 변경된 파일365개의 추가작업 그리고 88개의 파일을 삭제
  1. 46 0
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/SapProjectServiceController.java
  2. 9 0
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/TaskController.java
  3. 54 0
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/entity/SapProjectService.java
  4. 16 0
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/mapper/SapProjectServiceMapper.java
  5. 16 0
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/SapProjectServiceService.java
  6. 39 39
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ProjectServiceImpl.java
  7. 20 0
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/SapProjectServiceServiceImpl.java
  8. 38 38
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/task/TimingTask.java
  9. 7 0
      fhKeeper/formulahousekeeper/management-platform/src/main/resources/mapper/ReportMapper.xml
  10. 18 0
      fhKeeper/formulahousekeeper/management-platform/src/main/resources/mapper/SapProjectServiceMapper.xml
  11. 19 4
      fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/controller/PlanController.java
  12. 8 2
      fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/entity/Plan.java
  13. 1 0
      fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/service/impl/PlanServiceImpl.java
  14. 2 1
      fhKeeper/formulahousekeeper/management-workshop/src/main/resources/mapper/PlanMapper.xml
  15. 1 1
      fhKeeper/formulahousekeeper/timesheet-workshop-h5/src/views/workView/fillReport.vue
  16. 36 1
      fhKeeper/formulahousekeeper/timesheet-workshop/src/views/plan/planComponent.vue
  17. 35 2
      fhKeeper/formulahousekeeper/timesheet/src/components/taskComponent.vue

+ 46 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/SapProjectServiceController.java

@@ -0,0 +1,46 @@
+package com.management.platform.controller;
+
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.management.platform.entity.SapProjectService;
+import com.management.platform.mapper.UserMapper;
+import com.management.platform.service.SapProjectServiceService;
+import com.management.platform.util.HttpRespMsg;
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
+import java.util.List;
+
+/**
+ * <p>
+ *  前端控制器
+ * </p>
+ *
+ * @author Seyason
+ * @since 2023-11-27
+ */
+@RestController
+@RequestMapping("/sap-project-service")
+public class SapProjectServiceController {
+
+    @Resource
+    private SapProjectServiceService sapProjectServiceService;
+    @Resource
+    private HttpServletRequest request;
+    @Resource
+    private UserMapper userMapper;
+
+    @RequestMapping("/sapServiceList")
+    public HttpRespMsg sapServiceList(){
+        HttpRespMsg msg=new HttpRespMsg();
+        Integer companyId = userMapper.selectById(request.getHeader("token")).getCompanyId();
+        List<SapProjectService> serviceList = sapProjectServiceService.list(new LambdaQueryWrapper<SapProjectService>().eq(SapProjectService::getCompanyId, companyId));
+        msg.setData(serviceList);
+        return msg;
+    }
+
+}
+

+ 9 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/TaskController.java

@@ -4,6 +4,7 @@ package com.management.platform.controller;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.github.pagehelper.IPage;
@@ -93,6 +94,8 @@ public class TaskController {
     private TaskRestartMapper taskRestartMapper;
     @Resource
     private TaskPersonLiableMapper taskPersonLiableMapper;
+    @Resource
+    private SapProjectServiceService sapProjectServiceService;
 
     @RequestMapping("/save")
     @Transactional
@@ -103,6 +106,12 @@ public class TaskController {
         //当前用户
         User user = userMapper.selectById(userId);
         HttpRespMsg msg = new HttpRespMsg();
+        if(task.getServiceId()!=null){
+            SapProjectService one = sapProjectServiceService.getOne(new LambdaQueryWrapper<SapProjectService>().eq(SapProjectService::getCompanyId, user.getCompanyId()).eq(SapProjectService::getServiceCode,task.getServiceId()));
+            if(one!=null){
+                task.setName(one.getServiceName()+"-"+one.getServiceCode());
+            }
+        }
 
         //新建的任务,需要设置创建人,创建时间
         if (task.getId() == null) {

+ 54 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/entity/SapProjectService.java

@@ -0,0 +1,54 @@
+package com.management.platform.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableField;
+import java.io.Serializable;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author Seyason
+ * @since 2023-11-27
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class SapProjectService extends Model<SapProjectService> {
+
+    private static final long serialVersionUID=1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * 项目服务编号
+     */
+    @TableField("service_code")
+    private String serviceCode;
+
+    /**
+     * 项目服务名称
+     */
+    @TableField("service_name")
+    private String serviceName;
+
+    /**
+     * 公司id
+     */
+    @TableField("company_id")
+    private Integer companyId;
+
+
+    @Override
+    protected Serializable pkVal() {
+        return this.id;
+    }
+
+}

+ 16 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/mapper/SapProjectServiceMapper.java

@@ -0,0 +1,16 @@
+package com.management.platform.mapper;
+
+import com.management.platform.entity.SapProjectService;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author Seyason
+ * @since 2023-11-27
+ */
+public interface SapProjectServiceMapper extends BaseMapper<SapProjectService> {
+
+}

+ 16 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/SapProjectServiceService.java

@@ -0,0 +1,16 @@
+package com.management.platform.service;
+
+import com.management.platform.entity.SapProjectService;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author Seyason
+ * @since 2023-11-27
+ */
+public interface SapProjectServiceService extends IService<SapProjectService> {
+
+}

+ 39 - 39
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ProjectServiceImpl.java

@@ -231,6 +231,10 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
     private ReportExtraDegreeService reportExtraDegreeService;
     @Resource
     private TaskService taskService;
+    @Resource
+    private StagesService stagesService;
+    @Resource
+    private SapProjectServiceService sapProjectServiceService;
 
     @Value(value = "${upload.path}")
     private String path;
@@ -11341,7 +11345,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
         List<ProjectQueryResponse> projectQueryResponses = xmlResponseData.getProjectQueryResponses();
         List<Map<String,Object>> idsMapList=new ArrayList<>();
         if(projectQueryResponses!=null&&projectQueryResponses.size()>0){
-            List<Task> taskList=new ArrayList<>();
+            List<Stages> stagesList=new ArrayList<>();
             for (ProjectQueryResponse item : projectQueryResponses) {
                 Project project=new Project();
                 //处理项目分类
@@ -11409,7 +11413,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                         TaskGroup taskGroup=new TaskGroup();
                         taskGroup.setProjectId(project.getId());
                         taskGroup.setTaskGroupCode(ps.getProjectElementID());
-                        taskGroup.setName(ps.getTaskGroupName().getName());
+                        taskGroup.setName(ps.getTaskGroupName()==null?"":ps.getTaskGroupName().getName());
                         TaskGroup one = taskGroupMapper.selectOne(new QueryWrapper<TaskGroup>().eq("project_id", project.getId()).eq("task_group_code", ps.getProjectElementID()));
                         if(one!=null){
                            taskGroup.setId(one.getId());
@@ -11422,53 +11426,49 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                     });
                 }
             }
-            LocalDate localDate=LocalDate.now();
             if(idsMapList.size()>0){
                 List<Integer> projectIds = idsMapList.stream().map(i -> Integer.valueOf(String.valueOf(i.get("projectId")))).collect(Collectors.toList());
                 List<Integer> groupIds = idsMapList.stream().map(i -> Integer.valueOf(String.valueOf(i.get("groupId")))).collect(Collectors.toList());
-                List<Task> allTasks = taskMapper.selectList(new LambdaQueryWrapper<Task>().in(Task::getProjectId, projectIds).in(Task::getGroupId, groupIds));
                 List<Stages> allStages = stagesMapper.selectList(new LambdaQueryWrapper<Stages>().in(Stages::getProjectId, projectIds).in(Stages::getGroupId, groupIds));
                 for (Map<String, Object> map : idsMapList) {
-                    //处理项目下服务数据 ------->工时管家相关项目下任务分组下创建任务数据
-                    if(projectServiceData!=null){
-                        List<ServiceProduct> serviceProducts = projectServiceData.getServiceProducts();
-                        if(serviceProducts!=null&&serviceProducts.size()>0){
-                            List<Task> hasTasks =allTasks.stream().filter(al->al.getProjectId().equals(map.get("projectId"))&&al.getGroupId().equals(map.get("groupId"))).collect(Collectors.toList());
-                            for (ServiceProduct serviceProduct : serviceProducts) {
-                                Task task=new Task();
-                                task.setName(serviceProduct.getDescription().getDescription()+"-"+serviceProduct.getInternalID());
-                                task.setGroupId(Integer.valueOf(String.valueOf(map.get("groupId"))));
-                                task.setProjectId(Integer.valueOf(String.valueOf(map.get("projectId"))));
-                                task.setCreateDate(localDate);
-                                task.setCompanyId(companyId);
-                                Optional<Stages> first = allStages.stream().filter(a -> a.getGroupId().equals(task.getGroupId()) && a.getProjectId().equals(task.getProjectId())).findFirst();
-                                if(first.isPresent()){
-                                    task.setStagesId(first.get().getId());
-                                }else {
-                                    //创建默认列表
-                                    Stages stage = new Stages();
-                                    stage.setGroupId(task.getGroupId());
-                                    stage.setSequence(1);
-                                    stage.setProjectId(task.getProjectId());
-                                    stage.setStagesName(MessageUtils.message("excel.WorkUnfolds"));
-                                    stagesMapper.insert(stage);
-                                    allStages.add(stage);
-                                    task.setStagesId(stage.getId());
-                                }
-                                task.setServiceId(serviceProduct.getInternalID());
-                                Optional<Task> optional = hasTasks.stream().filter(s -> s.getServiceId().equals(task.getServiceId())&&s.getProjectId().equals(task.getProjectId())&&s.getGroupId().equals(task.getGroupId())).findFirst();
-                                if(!optional.isPresent()){
-                                    taskList.add(task);
-                                }
-                            }
-                        }
+                    Optional<Stages> first = allStages.stream().filter(a -> a.getGroupId().equals(String.valueOf(map.get("groupId"))) && a.getProjectId().equals(String.valueOf(map.get("projectId")))).findFirst();
+                    if(!first.isPresent()){
+                        //创建默认列表
+                        Stages stage = new Stages();
+                        stage.setGroupId(Integer.valueOf(String.valueOf(map.get("groupId"))));
+                        stage.setSequence(1);
+                        stage.setProjectId(Integer.valueOf(String.valueOf(map.get("projectId"))));
+                        stage.setStagesName(MessageUtils.message("excel.WorkUnfolds"));
+                        allStages.add(stage);
+                        stagesList.add(stage);
                     }
                 }
             }
-            if(taskList.size()>0){
-                taskService.saveBatch(taskList);
+            if(stagesList.size()>0){
+                stagesService.saveBatch(stagesList);
+            }
+        }
+        //处理项目下服务数据 ------->工时管家相关项目下任务分组下创建任务数据
+        List<SapProjectService> serviceList = sapProjectServiceService.list(new LambdaQueryWrapper<SapProjectService>().eq(SapProjectService::getCompanyId, companyId));
+        List<SapProjectService> sapProjectServiceList=new ArrayList<>();
+        if(projectServiceData!=null){
+            List<ServiceProduct> serviceProducts = projectServiceData.getServiceProducts();
+            if(serviceProducts!=null&&serviceProducts.size()>0){
+                for (ServiceProduct serviceProduct : serviceProducts) {
+                    SapProjectService sapProjectService=new SapProjectService();
+                    sapProjectService.setServiceCode(serviceProduct.getInternalID());
+                    sapProjectService.setServiceName(serviceProduct.getDescription().getDescription());
+                    sapProjectService.setCompanyId(companyId);
+                    boolean match = serviceList.stream().anyMatch(s -> s.getServiceCode().equals(serviceProduct.getInternalID()));
+                    if(!match){
+                        sapProjectServiceList.add(sapProjectService);
+                    }
+                }
             }
         }
+        if(sapProjectServiceList.size()>0){
+            sapProjectServiceService.saveBatch(sapProjectServiceList);
+        }
         msg.setData(xmlResponseData);
         return msg;
     }

+ 20 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/SapProjectServiceServiceImpl.java

@@ -0,0 +1,20 @@
+package com.management.platform.service.impl;
+
+import com.management.platform.entity.SapProjectService;
+import com.management.platform.mapper.SapProjectServiceMapper;
+import com.management.platform.service.SapProjectServiceService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ *  服务实现类
+ * </p>
+ *
+ * @author Seyason
+ * @since 2023-11-27
+ */
+@Service
+public class SapProjectServiceServiceImpl extends ServiceImpl<SapProjectServiceMapper, SapProjectService> implements SapProjectServiceService {
+
+}

+ 38 - 38
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/task/TimingTask.java

@@ -168,6 +168,10 @@ public class TimingTask {
     private TaskGroupService taskGroupService;
     @Resource
     private TaskGroupMapper taskGroupMapper;
+    @Resource
+    private StagesService stagesService;
+    @Resource
+    private SapProjectServiceService sapProjectServiceService;
 
 
     private static final List<Integer> VALID_TOKEN_CHARS = new ArrayList<>();
@@ -1667,7 +1671,7 @@ public class TimingTask {
             List<ProjectQueryResponse> projectQueryResponses = xmlResponseData.getProjectQueryResponses();
             List<Map<String,Object>> idsMapList=new ArrayList<>();
             if(projectQueryResponses!=null&&projectQueryResponses.size()>0){
-                List<Task> taskList=new ArrayList<>();
+                List<Stages> stagesList=new ArrayList<>();
                 for (ProjectQueryResponse item : projectQueryResponses) {
                     Project project=new Project();
                     //处理项目分类
@@ -1748,53 +1752,49 @@ public class TimingTask {
                         });
                     }
                 }
-                LocalDate localDate=LocalDate.now();
                 if(idsMapList.size()>0){
                     List<Integer> projectIds = idsMapList.stream().map(i -> Integer.valueOf(String.valueOf(i.get("projectId")))).collect(Collectors.toList());
                     List<Integer> groupIds = idsMapList.stream().map(i -> Integer.valueOf(String.valueOf(i.get("groupId")))).collect(Collectors.toList());
-                    List<Task> allTasks = taskMapper.selectList(new LambdaQueryWrapper<Task>().in(Task::getProjectId, projectIds).in(Task::getGroupId, groupIds));
                     List<Stages> allStages = stagesMapper.selectList(new LambdaQueryWrapper<Stages>().in(Stages::getProjectId, projectIds).in(Stages::getGroupId, groupIds));
                     for (Map<String, Object> map : idsMapList) {
-                        //处理项目下服务数据 ------->工时管家相关项目下任务分组下创建任务数据
-                        if(projectServiceData!=null){
-                            List<ServiceProduct> serviceProducts = projectServiceData.getServiceProducts();
-                            if(serviceProducts!=null&&serviceProducts.size()>0){
-                                List<Task> hasTasks =allTasks.stream().filter(al->al.getProjectId().equals(map.get("projectId"))&&al.getGroupId().equals(map.get("groupId"))).collect(Collectors.toList());
-                                for (ServiceProduct serviceProduct : serviceProducts) {
-                                    Task task=new Task();
-                                    task.setName(serviceProduct.getDescription().getDescription()+"-"+serviceProduct.getInternalID());
-                                    task.setGroupId(Integer.valueOf(String.valueOf(map.get("groupId"))));
-                                    task.setProjectId(Integer.valueOf(String.valueOf(map.get("projectId"))));
-                                    task.setCreateDate(localDate);
-                                    task.setCompanyId(companyId);
-                                    Optional<Stages> first = allStages.stream().filter(a -> a.getGroupId().equals(task.getGroupId()) && a.getProjectId().equals(task.getProjectId())).findFirst();
-                                    if(first.isPresent()){
-                                        task.setStagesId(first.get().getId());
-                                    }else {
-                                        //创建默认列表
-                                        Stages stage = new Stages();
-                                        stage.setGroupId(task.getGroupId());
-                                        stage.setSequence(1);
-                                        stage.setProjectId(task.getProjectId());
-                                        stage.setStagesName(MessageUtils.message("excel.WorkUnfolds"));
-                                        stagesMapper.insert(stage);
-                                        allStages.add(stage);
-                                        task.setStagesId(stage.getId());
-                                    }
-                                    task.setServiceId(serviceProduct.getInternalID());
-                                    Optional<Task> optional = hasTasks.stream().filter(s -> s.getServiceId().equals(task.getServiceId())&&s.getProjectId().equals(task.getProjectId())&&s.getGroupId().equals(task.getGroupId())).findFirst();
-                                    if(!optional.isPresent()){
-                                        taskList.add(task);
-                                    }
-                                }
-                            }
+                        Optional<Stages> first = allStages.stream().filter(a -> a.getGroupId().equals(String.valueOf(map.get("groupId"))) && a.getProjectId().equals(String.valueOf(map.get("projectId")))).findFirst();
+                        if(!first.isPresent()){
+                            //创建默认列表
+                            Stages stage = new Stages();
+                            stage.setGroupId(Integer.valueOf(String.valueOf(map.get("groupId"))));
+                            stage.setSequence(1);
+                            stage.setProjectId(Integer.valueOf(String.valueOf(map.get("projectId"))));
+                            stage.setStagesName(MessageUtils.message("excel.WorkUnfolds"));
+                            allStages.add(stage);
+                            stagesList.add(stage);
                         }
                     }
                 }
-                if(taskList.size()>0){
-                    taskService.saveBatch(taskList);
+                if(stagesList.size()>0){
+                    stagesService.saveBatch(stagesList);
                 }
             }
+            //处理项目下服务数据 ------->工时管家相关项目下任务分组下创建任务数据
+            List<SapProjectService> serviceList = sapProjectServiceService.list(new LambdaQueryWrapper<SapProjectService>().eq(SapProjectService::getCompanyId, companyId));
+            List<SapProjectService> sapProjectServiceList=new ArrayList<>();
+            if(projectServiceData!=null){
+                List<ServiceProduct> serviceProducts = projectServiceData.getServiceProducts();
+                if(serviceProducts!=null&&serviceProducts.size()>0){
+                    for (ServiceProduct serviceProduct : serviceProducts) {
+                        SapProjectService sapProjectService=new SapProjectService();
+                        sapProjectService.setServiceCode(serviceProduct.getInternalID());
+                        sapProjectService.setServiceName(serviceProduct.getDescription().getDescription());
+                        sapProjectService.setCompanyId(companyId);
+                        boolean match = serviceList.stream().anyMatch(s -> s.getServiceCode().equals(serviceProduct.getInternalID()));
+                        if(!match){
+                            sapProjectServiceList.add(sapProjectService);
+                        }
+                    }
+                }
+            }
+            if(sapProjectServiceList.size()>0){
+                sapProjectServiceService.saveBatch(sapProjectServiceList);
+            }
         }
     }
 

+ 7 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/resources/mapper/ReportMapper.xml

@@ -978,6 +978,13 @@
         </foreach>
         AND p.company_id=936 AND p.category IN(168,169,171,172)
         AND r.create_date BETWEEN #{startDate} AND #{endDate}
+        AND r.creator_id NOT IN(8276751764399792128,8236086890927300608,8326361182460387328,
+        8342351512166014976,8236086972770754560,8236087310001184768,
+        8236087296243867648,8236087257492692992,8236088012337389568,
+        8245855829805441024,8318841602900172800,8236087360399941632,
+        8236087733260984320,8236090183732764672,8291179326062796800,
+        8236090183611129856,8236087738910711808
+        )
     </select>
 
     <select id="getReallWorkingTimeByProjectId" resultType="java.lang.Double">

+ 18 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/resources/mapper/SapProjectServiceMapper.xml

@@ -0,0 +1,18 @@
+<?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.management.platform.mapper.SapProjectServiceMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.management.platform.entity.SapProjectService">
+        <id column="id" property="id" />
+        <result column="service_code" property="serviceCode" />
+        <result column="service_name" property="serviceName" />
+        <result column="company_id" property="companyId" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        id, service_code, service_name, company_id
+    </sql>
+
+</mapper>

+ 19 - 4
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/controller/PlanController.java

@@ -1,13 +1,12 @@
 package com.management.platform.controller;
 
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.management.platform.entity.Plan;
-import com.management.platform.entity.PlanProcedureTotal;
-import com.management.platform.entity.PlanSteelStampNumber;
-import com.management.platform.entity.ProdProcedureTeam;
+import com.management.platform.entity.*;
 import com.management.platform.service.PlanService;
 import com.management.platform.service.PlanSteelStampNumberService;
+import com.management.platform.service.ReportService;
 import com.management.platform.util.HttpRespMsg;
 import org.apache.ibatis.annotations.Param;
 import org.springframework.transaction.annotation.Transactional;
@@ -38,6 +37,8 @@ public class PlanController {
     private PlanService planService;
     @Resource
     private PlanSteelStampNumberService planSteelStampNumberService;
+    @Resource
+    private ReportService reportService;
 
     @RequestMapping("/list")
     public HttpRespMsg list(String date,String steelStampNumber,@RequestParam(defaultValue = "3") Integer planType,Integer deptId,Integer pageIndex,Integer pageSize,Integer isMob){
@@ -154,5 +155,19 @@ public class PlanController {
     public HttpRespMsg allPlanList(HttpServletRequest request){
         return planService.allPlanList(request);
     }
+
+    @RequestMapping("/deletePlan")
+    public HttpRespMsg deletePlan(Integer id){
+        HttpRespMsg msg=new HttpRespMsg();
+        Plan plan = planService.getById(id);
+        Report one = reportService.getOne(new LambdaQueryWrapper<Report>().eq(Report::getPlanId, id));
+        if(one==null){
+            plan.setIsDelete(1);
+            planService.updateById(plan);
+            return msg;
+        }
+        msg.setError("‘已有员工报工,删除失败");
+        return msg;
+    }
 }
 

+ 8 - 2
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/entity/Plan.java

@@ -22,7 +22,7 @@ import org.springframework.format.annotation.DateTimeFormat;
  * </p>
  *
  * @author Seyason
- * @since 2023-11-16
+ * @since 2023-11-27
  */
 @Data
 @EqualsAndHashCode(callSuper = false)
@@ -218,7 +218,7 @@ public class Plan extends Model<Plan> {
     private String createId;
 
     /**
-     * 0-待下发 1-已下发
+     * 0-待下发 1-已下发 2-已中止
      */
     @TableField("status")
     private Integer status;
@@ -241,6 +241,12 @@ public class Plan extends Model<Plan> {
     @TableField("hide_state")
     private Integer hideState;
 
+    /**
+     * 是否删除0-否 1-是
+     */
+    @TableField("is_delete")
+    private Integer isDelete;
+
     @TableField(exist = false)
     private String  steelStampNumber;
 

+ 1 - 0
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/service/impl/PlanServiceImpl.java

@@ -112,6 +112,7 @@ public class PlanServiceImpl extends ServiceImpl<PlanMapper, Plan> implements Pl
         format.setMinimumFractionDigits(2);
         queryWrapper.eq(Plan::getCompanyId,companyId);
         queryWrapper.ne(Plan::getStatus,2);
+        queryWrapper.eq(Plan::getIsDelete,0);
         if(planType!=2){
             queryWrapper.eq(Plan::getPlanType,0);
         }else {

+ 2 - 1
fhKeeper/formulahousekeeper/management-workshop/src/main/resources/mapper/PlanMapper.xml

@@ -37,11 +37,12 @@
         <result column="vehicle_num_start" property="vehicleNumStart" />
         <result column="vehicle_num_end" property="vehicleNumEnd" />
         <result column="hide_state" property="hideState" />
+        <result column="is_delete" property="isDelete" />
     </resultMap>
 
     <!-- 通用查询结果列 -->
     <sql id="Base_Column_List">
-        id, product_scheduling_num, product_id, product_name, project_code, company_id, num, main_process, station_id, station_name, foreman_id, foreman_name, plan_type, start_date, end_date, plan_total_wages, progress, task_name, task_type_id, task_type_name, check_type, task_change_notice_num, plan_man_num, plan_work_hour, money_of_job, describtion, version_number, create_time, create_id, status, vehicle_num_start, vehicle_num_end, hide_state
+        id, product_scheduling_num, product_id, product_name, project_code, company_id, num, main_process, station_id, station_name, foreman_id, foreman_name, plan_type, start_date, end_date, plan_total_wages, progress, task_name, task_type_id, task_type_name, check_type, task_change_notice_num, plan_man_num, plan_work_hour, money_of_job, describtion, version_number, create_time, create_id, status, vehicle_num_start, vehicle_num_end, hide_state, is_delete
     </sql>
 
 </mapper>

+ 1 - 1
fhKeeper/formulahousekeeper/timesheet-workshop-h5/src/views/workView/fillReport.vue

@@ -198,7 +198,7 @@ export default {
         }).catch(err => { this.$toast.clear(); });
     },
     steelNumFilter(){
-      this.reportForm.planSteelStampNumberList=this.oldPlanSteelStampNumberList.filter(item => item.includes(this.inputSteelNum));
+      this.reportForm.planSteelStampNumberList=this.oldPlanSteelStampNumberList.filter(item => item.number.includes(this.inputSteelNum));
     },
 
     //打开报工页面

+ 36 - 1
fhKeeper/formulahousekeeper/timesheet-workshop/src/views/plan/planComponent.vue

@@ -82,6 +82,7 @@
         <el-table-column label="操作" :fixed="'right'">
           <template slot-scope="scope">
             <div @click="editPlan(scope.row)" class="colorText">编辑</div>
+            <div @click="deletePlan(scope.row.id)" class="colorText">删除</div>
             <div v-if="jisuanDate(scope.row.startDate) > 30" @click="hidePlan(scope.row.id, scope.row.hideState)"
               class="colorText">{{ scope.row.hideState == 0 ? '隐藏' : '取消隐藏' }}</div>
           </template>
@@ -1014,7 +1015,41 @@ export default {
           );
         }
       });
-    }
+    },
+    //删除计划
+    deletePlan(id) {
+      this.$alert('该计划将被删除','是否删除该计划', {
+        confirmButtonText: '确定',
+        callback: action => {
+          this.http.post(
+            "/plan/deletePlan",
+            {
+              id: id,
+            },
+            (res) => {
+              if (res.code == "ok") {
+                this.$message({
+                  message: '删除成功',
+                  type: "success",
+                });
+              } else {
+                this.$message({
+                  message: res.msg,
+                  type: "error",
+                });
+              }
+              this.getTableData()
+            },
+            (error) => {
+              this.$message({
+                message: error,
+                type: "error",
+              });
+            }
+          );
+        }
+      });
+    },
   },
 };
 </script>

+ 35 - 2
fhKeeper/formulahousekeeper/timesheet/src/components/taskComponent.vue

@@ -42,7 +42,17 @@
                     </el-option>
                 </el-select>
             </el-form-item>
-            <el-form-item :label="$t('taskdefinition')" prop="name">
+            <el-form-item v-if="this.user.companyId==3092" :label="$t('taskdefinition')" prop="serviceId">
+                <el-select filterable  v-model="addForm.serviceId" placeholder="请选择任务内容">
+                    <el-option
+                    v-for="item in sapServiceList"
+                    :key="item.serviceCode"
+                    :label="item.serviceName+'-'+item.serviceCode"
+                    :value="item.serviceCode">
+                    </el-option>
+                </el-select>
+            </el-form-item>
+            <el-form-item v-else  :label="$t('taskdefinition')" prop="name">
                 <el-input v-model="addForm.name" :maxlength="40" :disabled="(this.addForm.id != null && user.id != this.addForm.createrId && currentProject.inchargerId != user.id) && !permissions.projectManagement && !(groupResponsibleId == user.id)" :placeholder="$t('enterthetaskcontent')" clearable></el-input>
             </el-form-item>
             <!-- {{timelabel}}{{mileageCup}} -->
@@ -716,6 +726,7 @@ export default {
         },
         taskRules : {
             name: [{ required: true, message: this.$t('enterthetaskcontent'), trigger: "blur" }],
+            serviceId: [{ required: true, message: '请选择任务内容', trigger: "blur" }],
             projectId: [{ required: true, message: '请选择所属项目', trigger: "blur" }],
             groupId: [{ required: true, message: '请选择所属任务分组', trigger: "blur" }],
             stagesId: [{ required: true, message: '请选择所属任务列表', trigger: "blur" }],
@@ -830,7 +841,8 @@ export default {
         dynamicTab: true,
         dailyList: [],
         meetingId: '',
-        integrationProjectList: []
+        integrationProjectList: [],
+        sapServiceList:[]
     };
   },
   computed: {},
@@ -841,6 +853,7 @@ export default {
     this.triggerEvent(this.integrationTask)
     this.gstimhour = [this.user.timeType.allday]
     this.gstimday = [1]
+    this.getSapServiceList()
 
     this.timess()
   },
@@ -1941,6 +1954,26 @@ export default {
 
         this.$emit('closeBounced', {taskLineClickAbs: true, items: row})
     },
+    //获取SAP项目服务数据列表
+    getSapServiceList(){
+        this.http.post('/sap-project-service/sapServiceList', {},
+        res => {
+            if(res.code == "ok"){
+                this.sapServiceList=res.data
+            } else {
+                this.$message({
+                message: res.msg,
+                type: "error"
+                });
+            }
+        },
+        error => {
+            this.$message({
+                message: error,
+                type: "error"
+            });
+        })
+    },
     // 列表的上传按钮
     uploadFileClick(item){
         console.log("upload",item.file);