6 yıl önce
ebeveyn
işleme
97506db3a3
29 değiştirilmiş dosya ile 1189 ekleme ve 2 silme
  1. 0 1
      pcbms/src/main/java/com/hssx/pcbms/controller/GoodsController.java
  2. 75 0
      pcbms/src/main/java/com/hssx/pcbms/controller/TaskController.java
  3. 84 0
      pcbms/src/main/java/com/hssx/pcbms/controller/TaskFileController.java
  4. 21 0
      pcbms/src/main/java/com/hssx/pcbms/controller/TaskParticipantsController.java
  5. 75 0
      pcbms/src/main/java/com/hssx/pcbms/controller/TaskTagsController.java
  6. 119 0
      pcbms/src/main/java/com/hssx/pcbms/entity/Task.java
  7. 67 0
      pcbms/src/main/java/com/hssx/pcbms/entity/TaskFile.java
  8. 51 0
      pcbms/src/main/java/com/hssx/pcbms/entity/TaskParticipants.java
  9. 58 0
      pcbms/src/main/java/com/hssx/pcbms/entity/TaskTags.java
  10. 21 0
      pcbms/src/main/java/com/hssx/pcbms/entity/vo/TaskDTO.java
  11. 16 0
      pcbms/src/main/java/com/hssx/pcbms/entity/vo/TaskParticipantsVO.java
  12. 20 0
      pcbms/src/main/java/com/hssx/pcbms/entity/vo/TaskVO.java
  13. 16 0
      pcbms/src/main/java/com/hssx/pcbms/mapper/TaskFileMapper.java
  14. 24 0
      pcbms/src/main/java/com/hssx/pcbms/mapper/TaskMapper.java
  15. 16 0
      pcbms/src/main/java/com/hssx/pcbms/mapper/TaskParticipantsMapper.java
  16. 16 0
      pcbms/src/main/java/com/hssx/pcbms/mapper/TaskTagsMapper.java
  17. 22 0
      pcbms/src/main/java/com/hssx/pcbms/service/TaskFileService.java
  18. 16 0
      pcbms/src/main/java/com/hssx/pcbms/service/TaskParticipantsService.java
  19. 22 0
      pcbms/src/main/java/com/hssx/pcbms/service/TaskService.java
  20. 22 0
      pcbms/src/main/java/com/hssx/pcbms/service/TaskTagsService.java
  21. 64 0
      pcbms/src/main/java/com/hssx/pcbms/service/impl/TaskFileServiceImpl.java
  22. 20 0
      pcbms/src/main/java/com/hssx/pcbms/service/impl/TaskParticipantsServiceImpl.java
  23. 102 0
      pcbms/src/main/java/com/hssx/pcbms/service/impl/TaskServiceImpl.java
  24. 71 0
      pcbms/src/main/java/com/hssx/pcbms/service/impl/TaskTagsServiceImpl.java
  25. 1 1
      pcbms/src/main/java/com/hssx/pcbms/util/CodeGenerator.java
  26. 19 0
      pcbms/src/main/resources/mapper/TaskFileMapper.xml
  27. 117 0
      pcbms/src/main/resources/mapper/TaskMapper.xml
  28. 17 0
      pcbms/src/main/resources/mapper/TaskParticipantsMapper.xml
  29. 17 0
      pcbms/src/main/resources/mapper/TaskTagsMapper.xml

+ 0 - 1
pcbms/src/main/java/com/hssx/pcbms/controller/GoodsController.java

@@ -350,6 +350,5 @@ public class GoodsController {
 
 
 
-
 }
 

+ 75 - 0
pcbms/src/main/java/com/hssx/pcbms/controller/TaskController.java

@@ -0,0 +1,75 @@
+package com.hssx.pcbms.controller;
+
+
+import com.hssx.pcbms.entity.Task;
+import com.hssx.pcbms.entity.vo.GoodsVO;
+import com.hssx.pcbms.entity.vo.TaskVO;
+import com.hssx.pcbms.service.TaskFileService;
+import com.hssx.pcbms.service.TaskService;
+import com.hssx.pcbms.util.HttpRespMsg;
+import com.hssx.pcbms.util.PageUtil;
+import com.hssx.pcbms.util.UploadFileToFileNameUtil;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.multipart.MultipartFile;
+
+/**
+ * <p>
+ *  前端控制器
+ * </p>
+ *
+ * @author 吴涛涛
+ * @since 2019-11-11
+ */
+@Controller
+@RequestMapping("/task")
+public class TaskController {
+
+    @Autowired
+    private TaskService taskService;
+    @Value("${upload.path}")
+    private String path;
+    /**
+     * 任务录入/修改
+     * 参数:
+     * publishId :当前发布任务的人的id
+     * name :名称,tagId:标签id,code:模具型号,planTime:计划时间如:2019-10-10
+     * ,workLoad:工作量如:10(单位:天),recipientId:接受人id,payer:付款方,
+     * payee:收款方,状态0-待派发 1-已派发 2-已完成 3-待审核 4-未通过 5-已延期(创建默认不传该字段)
+     * delayTime 延长日期(创建默认不传该字段,延期处理时传该字段)
+     * 修改:,id: 任务id (以上其他字段不修改不传)
+     */
+    @ApiOperation(value = "任务录入/修改", notes = "任务录入/修改方法")
+    @RequestMapping("/addOrUpdate")
+    @ResponseBody
+    public HttpRespMsg addOrUpdate(Task task,String participantsIdes) {
+        HttpRespMsg msg = taskService.addOrUpdate(task,participantsIdes);
+        return msg;
+    }
+
+    /**
+     * 任务列表
+     * 参数:pageNum:当前页,pageSize:每页多少条,uid: 当前人id
+     *  keyName:关键字,tag_id 标签id,state 状态,startTime 开始时间,endTime 结束时间
+     * type:0-我的任务 1-我发布的
+     */
+    @ApiOperation(value = "任务列表", notes = "任务列表方法")
+    @RequestMapping("/list")
+    @ResponseBody
+    public HttpRespMsg list(TaskVO taskVO, PageUtil page) {
+        HttpRespMsg msg = taskService.getListByCondition(taskVO,page);
+        return msg;
+    }
+
+
+
+
+
+}
+

+ 84 - 0
pcbms/src/main/java/com/hssx/pcbms/controller/TaskFileController.java

@@ -0,0 +1,84 @@
+package com.hssx.pcbms.controller;
+
+
+import com.hssx.pcbms.service.TaskFileService;
+import com.hssx.pcbms.util.HttpRespMsg;
+import com.hssx.pcbms.util.PageUtil;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.multipart.MultipartFile;
+
+/**
+ * <p>
+ *  前端控制器
+ * </p>
+ *
+ * @author 吴涛涛
+ * @since 2019-11-11
+ */
+@Controller
+@RequestMapping("/taskfile")
+public class TaskFileController {
+
+    @Value("${upload.path}")
+    private String path;
+    @Autowired
+    private TaskFileService taskFileService;
+
+    /**
+     * 图片上传通用接口
+     * 参数:
+     * file:产品图片文件
+     * taskId:任务id
+     *
+     * @return
+     */
+    @ApiOperation(value = "任务资料上传通用接口", notes = "任务资料上传通用接口方法")
+    @RequestMapping("/uploadFile")
+    @ResponseBody
+    public HttpRespMsg uploadFile(MultipartFile file, String taskId) {
+        HttpRespMsg msg = new HttpRespMsg();
+        msg = taskFileService.updateFile(file,taskId);
+        return msg;
+    }
+
+
+    /**
+     * 任务资料删除
+     * 参数:
+     * id:任务资料文件id
+     *
+     * @return
+     */
+    @ApiOperation(value = "任务资料删除接口", notes = "任务资料删除方法")
+    @RequestMapping("/uploadFile")
+    @ResponseBody
+    public HttpRespMsg delFile(Integer id) {
+        HttpRespMsg msg = new HttpRespMsg();
+        msg.data = taskFileService.removeById(id);
+        return msg;
+    }
+
+    /**
+     * 资产列表
+     * 参数:
+     * taskId:任务id,pageNum:当前页,pageSize:每页多少条
+     * @return
+     */
+    @ApiOperation(value = "资产列表", notes = "资产列表方法")
+    @RequestMapping("/list")
+    @ResponseBody
+    public HttpRespMsg list(PageUtil page, String taskId) {
+        HttpRespMsg msg = taskFileService.getList(page,taskId);
+        return msg;
+    }
+
+}
+

+ 21 - 0
pcbms/src/main/java/com/hssx/pcbms/controller/TaskParticipantsController.java

@@ -0,0 +1,21 @@
+package com.hssx.pcbms.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ *  前端控制器
+ * </p>
+ *
+ * @author 吴涛涛
+ * @since 2019-11-11
+ */
+@RestController
+@RequestMapping("/task-participants")
+public class TaskParticipantsController {
+
+}
+

+ 75 - 0
pcbms/src/main/java/com/hssx/pcbms/controller/TaskTagsController.java

@@ -0,0 +1,75 @@
+package com.hssx.pcbms.controller;
+
+
+import com.hssx.pcbms.entity.GoodsTags;
+import com.hssx.pcbms.entity.TaskTags;
+import com.hssx.pcbms.service.GoodsTagsService;
+import com.hssx.pcbms.service.TaskTagsService;
+import com.hssx.pcbms.util.HttpRespMsg;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ *  前端控制器
+ * </p>
+ *
+ * @author 吴涛涛
+ * @since 2019-11-11
+ */
+@Controller
+@RequestMapping("/task-tags")
+public class TaskTagsController {
+
+    @Autowired
+    private TaskTagsService taskTagsService;
+
+    /**
+     * 标签的添加或修改
+     * 参数:
+     * name :名称
+     * 修改需要传 id:标签id
+     * @return
+     */
+    @ApiOperation(value = "标签的添加或修改", notes = "标签的添加或修改方法")
+    @RequestMapping("/addOrUpdate")
+    @ResponseBody
+    public HttpRespMsg adaddOrUpdated(TaskTags taskTags) {
+        HttpRespMsg msg = taskTagsService.add(taskTags);
+        return msg;
+    }
+
+    /**
+     * 标签的列表
+     * 参数:  keyName:关键字(非必传)
+     * @return
+     */
+    @ApiOperation(value = "标签的列表", notes = "标签的列表")
+    @RequestMapping("/list")
+    @ResponseBody
+    public HttpRespMsg list(@RequestParam(required = false)String keyName) {
+        HttpRespMsg msg = taskTagsService.getListByKeyName(keyName);
+        return msg;
+    }
+    /**
+     *
+     * 删除分类标签
+     * 参数:
+     * @return
+     */
+    @ApiOperation(value = "删除分类标签", notes = "删除分类标签")
+    @RequestMapping("/delTags")
+    @ResponseBody
+    public HttpRespMsg delTags(TaskTags taskTags) {
+        HttpRespMsg msg = taskTagsService.delTags(taskTags);
+        return msg;
+    }
+
+}
+

+ 119 - 0
pcbms/src/main/java/com/hssx/pcbms/entity/Task.java

@@ -0,0 +1,119 @@
+package com.hssx.pcbms.entity;
+
+import java.math.BigDecimal;
+
+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 吴涛涛
+ * @since 2019-11-11
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class Task extends Model<Task> {
+
+    private static final long serialVersionUID=1L;
+
+    /**
+     * 任务主键
+     */
+    //AUTO 数据库ID自增
+    //INPUT 用户输入ID
+    //ID_WORKER 全局唯一ID,Long类型的主键
+    //ID_WORKER_STR 字符串全局唯一ID
+    //UUID 全局唯一ID,UUID类型的主键
+    //NONE 该类型为未设置主键类型
+    @TableId(value = "id",type = IdType.ID_WORKER_STR )
+    private String id;
+
+    /**
+     * 任务名称
+     */
+    @TableField("name")
+    private String name;
+
+    /**
+     * 任务编码
+     */
+    @TableField("code")
+    private String code;
+
+    /**
+     * 计划时间
+     */
+    @TableField("plan_time")
+    private String planTime;
+
+    /**
+     * 工作量
+     */
+    @TableField("work_load")
+    private Integer workLoad;
+
+    /**
+     * 接受人id
+     */
+    @TableField("recipient_id")
+    private Integer recipientId;
+
+    /**
+     * 付款方
+     */
+    @TableField("payer")
+    private String payer;
+
+    /**
+     * 收款方
+     */
+    @TableField("payee")
+    private String payee;
+
+    /**
+     * 费用
+     */
+    @TableField("fee")
+    private BigDecimal fee;
+
+    /**
+     * 任务标签分类id
+     */
+    @TableField("tag_id")
+    private String tagId;
+
+    /**
+     * 延迟日期
+     */
+    @TableField("delay_time")
+    private String delayTime;
+
+    /**
+     * 状态0-待派发 1-已派发 2-已接受 3-待审核 4-未通过
+     */
+    @TableField("state")
+    private Integer state;
+
+    /**
+     * 发布人id
+     */
+    @TableField("publish_id")
+    private Integer publishId;
+
+
+    @Override
+    protected Serializable pkVal() {
+        return this.id;
+    }
+
+}

+ 67 - 0
pcbms/src/main/java/com/hssx/pcbms/entity/TaskFile.java

@@ -0,0 +1,67 @@
+package com.hssx.pcbms.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import com.baomidou.mybatisplus.annotation.TableId;
+import java.time.LocalDateTime;
+import com.baomidou.mybatisplus.annotation.TableField;
+import java.io.Serializable;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author 吴涛涛
+ * @since 2019-11-11
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class TaskFile extends Model<TaskFile> {
+
+    private static final long serialVersionUID=1L;
+
+    /**
+     * 任务资料文件表的主键
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * 任务id
+     */
+    @TableField("task_id")
+    private String taskId;
+
+    /**
+     * 文件的名字
+     */
+    @TableField("name")
+    private String name;
+
+    /**
+     * 文件保存的地址
+     */
+    @TableField("url")
+    private String url;
+
+    /**
+     * 文件保存的日期
+     */
+    @TableField("indate")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private LocalDateTime indate;
+
+
+    @Override
+    protected Serializable pkVal() {
+        return this.id;
+    }
+
+}

+ 51 - 0
pcbms/src/main/java/com/hssx/pcbms/entity/TaskParticipants.java

@@ -0,0 +1,51 @@
+package com.hssx.pcbms.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 吴涛涛
+ * @since 2019-11-11
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class TaskParticipants extends Model<TaskParticipants> {
+
+    private static final long serialVersionUID=1L;
+
+    /**
+     * 任务参与人表主键
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * 参与人id
+     */
+    @TableField("user_id")
+    private Integer userId;
+
+    /**
+     * 任务id
+     */
+    @TableField("task_id")
+    private String taskId;
+
+
+    @Override
+    protected Serializable pkVal() {
+        return this.id;
+    }
+
+}

+ 58 - 0
pcbms/src/main/java/com/hssx/pcbms/entity/TaskTags.java

@@ -0,0 +1,58 @@
+package com.hssx.pcbms.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import com.baomidou.mybatisplus.annotation.TableId;
+import java.time.LocalDateTime;
+import com.baomidou.mybatisplus.annotation.TableField;
+import java.io.Serializable;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author 吴涛涛
+ * @since 2019-11-11
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class TaskTags extends Model<TaskTags> {
+
+    private static final long serialVersionUID=1L;
+
+    /**
+     * 任务标签id
+     */
+    //AUTO 数据库ID自增
+    //INPUT 用户输入ID
+    //ID_WORKER 全局唯一ID,Long类型的主键
+    //ID_WORKER_STR 字符串全局唯一ID
+    //UUID 全局唯一ID,UUID类型的主键
+    //NONE 该类型为未设置主键类型
+    @TableId(value = "id",type = IdType.ID_WORKER_STR )
+    private String id;
+
+    /**
+     * 标签名称
+     */
+    @TableField("name")
+    private String name;
+
+    /**
+     * 时间
+     */
+    @TableField("indate")
+    private LocalDateTime indate;
+
+
+    @Override
+    protected Serializable pkVal() {
+        return this.id;
+    }
+
+}

+ 21 - 0
pcbms/src/main/java/com/hssx/pcbms/entity/vo/TaskDTO.java

@@ -0,0 +1,21 @@
+package com.hssx.pcbms.entity.vo;
+
+import com.hssx.pcbms.entity.Task;
+import com.hssx.pcbms.entity.TaskParticipants;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * Author: 吴涛涛 cuiyi@itany.com
+ * Date : 2019 - 11 - 11 19:21
+ * Description:<描述>
+ * Version: 1.0
+ */
+@Data
+public class TaskDTO extends Task {
+    private List<TaskParticipantsVO> participantsVOS;
+    private String tagName;
+    private String publishName;
+    private String recipient;
+}

+ 16 - 0
pcbms/src/main/java/com/hssx/pcbms/entity/vo/TaskParticipantsVO.java

@@ -0,0 +1,16 @@
+package com.hssx.pcbms.entity.vo;
+
+import com.hssx.pcbms.entity.TaskParticipants;
+import lombok.Data;
+
+/**
+ * Author: 吴涛涛 cuiyi@itany.com
+ * Date : 2019 - 11 - 11 19:22
+ * Description:<描述>
+ * Version: 1.0
+ */
+@Data
+public class TaskParticipantsVO extends TaskParticipants {
+    private String userName;
+    private String headPic;
+}

+ 20 - 0
pcbms/src/main/java/com/hssx/pcbms/entity/vo/TaskVO.java

@@ -0,0 +1,20 @@
+package com.hssx.pcbms.entity.vo;
+
+
+import com.hssx.pcbms.entity.Task;
+import lombok.Data;
+
+/**
+ * Author: 吴涛涛 cuiyi@itany.com
+ * Date : 2019 - 11 - 11 16:32
+ * Description:<描述>
+ * Version: 1.0
+ */
+@Data
+public class TaskVO extends Task {
+    private String startTime;
+    private String endTime;
+    private Integer uid;
+    private String keyName;
+    private Integer type;
+}

+ 16 - 0
pcbms/src/main/java/com/hssx/pcbms/mapper/TaskFileMapper.java

@@ -0,0 +1,16 @@
+package com.hssx.pcbms.mapper;
+
+import com.hssx.pcbms.entity.TaskFile;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author 吴涛涛
+ * @since 2019-11-11
+ */
+public interface TaskFileMapper extends BaseMapper<TaskFile> {
+
+}

+ 24 - 0
pcbms/src/main/java/com/hssx/pcbms/mapper/TaskMapper.java

@@ -0,0 +1,24 @@
+package com.hssx.pcbms.mapper;
+
+import com.hssx.pcbms.entity.Task;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.hssx.pcbms.entity.vo.TaskDTO;
+import com.hssx.pcbms.entity.vo.TaskVO;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author 吴涛涛
+ * @since 2019-11-11
+ */
+public interface TaskMapper extends BaseMapper<Task> {
+
+    List<TaskDTO> selectListByCondition(@Param("taskVO") TaskVO taskVO);
+
+    List<TaskDTO> selectListByTaskIds(@Param("list")List<String> taskIds);
+}

+ 16 - 0
pcbms/src/main/java/com/hssx/pcbms/mapper/TaskParticipantsMapper.java

@@ -0,0 +1,16 @@
+package com.hssx.pcbms.mapper;
+
+import com.hssx.pcbms.entity.TaskParticipants;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author 吴涛涛
+ * @since 2019-11-11
+ */
+public interface TaskParticipantsMapper extends BaseMapper<TaskParticipants> {
+
+}

+ 16 - 0
pcbms/src/main/java/com/hssx/pcbms/mapper/TaskTagsMapper.java

@@ -0,0 +1,16 @@
+package com.hssx.pcbms.mapper;
+
+import com.hssx.pcbms.entity.TaskTags;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author 吴涛涛
+ * @since 2019-11-11
+ */
+public interface TaskTagsMapper extends BaseMapper<TaskTags> {
+
+}

+ 22 - 0
pcbms/src/main/java/com/hssx/pcbms/service/TaskFileService.java

@@ -0,0 +1,22 @@
+package com.hssx.pcbms.service;
+
+import com.hssx.pcbms.entity.TaskFile;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.hssx.pcbms.util.HttpRespMsg;
+import com.hssx.pcbms.util.PageUtil;
+import org.springframework.web.multipart.MultipartFile;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author 吴涛涛
+ * @since 2019-11-11
+ */
+public interface TaskFileService extends IService<TaskFile> {
+
+    HttpRespMsg updateFile(MultipartFile file, String taskId);
+
+    HttpRespMsg getList(PageUtil page, String taskId);
+}

+ 16 - 0
pcbms/src/main/java/com/hssx/pcbms/service/TaskParticipantsService.java

@@ -0,0 +1,16 @@
+package com.hssx.pcbms.service;
+
+import com.hssx.pcbms.entity.TaskParticipants;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author 吴涛涛
+ * @since 2019-11-11
+ */
+public interface TaskParticipantsService extends IService<TaskParticipants> {
+
+}

+ 22 - 0
pcbms/src/main/java/com/hssx/pcbms/service/TaskService.java

@@ -0,0 +1,22 @@
+package com.hssx.pcbms.service;
+
+import com.hssx.pcbms.entity.Task;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.hssx.pcbms.entity.vo.TaskVO;
+import com.hssx.pcbms.util.HttpRespMsg;
+import com.hssx.pcbms.util.PageUtil;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author 吴涛涛
+ * @since 2019-11-11
+ */
+public interface TaskService extends IService<Task> {
+
+    HttpRespMsg addOrUpdate(Task task,String participantsIdes);
+
+    HttpRespMsg getListByCondition(TaskVO taskVO, PageUtil page);
+}

+ 22 - 0
pcbms/src/main/java/com/hssx/pcbms/service/TaskTagsService.java

@@ -0,0 +1,22 @@
+package com.hssx.pcbms.service;
+
+import com.hssx.pcbms.entity.TaskTags;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.hssx.pcbms.util.HttpRespMsg;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author 吴涛涛
+ * @since 2019-11-11
+ */
+public interface TaskTagsService extends IService<TaskTags> {
+
+    HttpRespMsg add(TaskTags taskTags);
+
+    HttpRespMsg getListByKeyName(String keyName);
+
+    HttpRespMsg delTags(TaskTags taskTags);
+}

+ 64 - 0
pcbms/src/main/java/com/hssx/pcbms/service/impl/TaskFileServiceImpl.java

@@ -0,0 +1,64 @@
+package com.hssx.pcbms.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.github.pagehelper.PageHelper;
+import com.github.pagehelper.PageInfo;
+import com.hssx.pcbms.entity.TaskFile;
+import com.hssx.pcbms.mapper.TaskFileMapper;
+import com.hssx.pcbms.service.TaskFileService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.hssx.pcbms.util.HttpRespMsg;
+import com.hssx.pcbms.util.PageUtil;
+import com.hssx.pcbms.util.UploadFileToFileNameUtil;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Service;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+/**
+ * <p>
+ *  服务实现类
+ * </p>
+ *
+ * @author 吴涛涛
+ * @since 2019-11-11
+ */
+@Service
+public class TaskFileServiceImpl extends ServiceImpl<TaskFileMapper, TaskFile> implements TaskFileService {
+
+    @Resource
+    private TaskFileMapper taskFileMapper;
+    @Value("${upload.path}")
+    private String path;
+    @Override
+    public HttpRespMsg updateFile(MultipartFile file, String taskId) {
+        HttpRespMsg msg = new HttpRespMsg();
+        String filePath = "";
+        if (file != null) {
+            filePath = UploadFileToFileNameUtil.uploadFile(file, path);
+        }
+        if(filePath.equals("")){
+            msg.setError("上传图片失败了");
+            return msg;
+        }
+        TaskFile taskFile = new TaskFile();
+        taskFile.setName(file.getOriginalFilename());
+        taskFile.setUrl(filePath);
+        taskFile.setTaskId(taskId);
+        taskFileMapper.insert(taskFile);
+        msg.data = filePath;
+        return msg;
+    }
+
+    @Override
+    public HttpRespMsg getList(PageUtil page, String taskId) {
+        HttpRespMsg msg = new HttpRespMsg();
+        PageHelper.startPage(page.getPageNum(),page.getPageSize());
+        List<TaskFile> list = taskFileMapper.selectList(new QueryWrapper<TaskFile>().eq("task_id", taskId).orderByDesc("id"));
+        PageInfo<TaskFile> info = new PageInfo<>(list);
+        msg.data = info;
+        return msg;
+    }
+}

+ 20 - 0
pcbms/src/main/java/com/hssx/pcbms/service/impl/TaskParticipantsServiceImpl.java

@@ -0,0 +1,20 @@
+package com.hssx.pcbms.service.impl;
+
+import com.hssx.pcbms.entity.TaskParticipants;
+import com.hssx.pcbms.mapper.TaskParticipantsMapper;
+import com.hssx.pcbms.service.TaskParticipantsService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ *  服务实现类
+ * </p>
+ *
+ * @author 吴涛涛
+ * @since 2019-11-11
+ */
+@Service
+public class TaskParticipantsServiceImpl extends ServiceImpl<TaskParticipantsMapper, TaskParticipants> implements TaskParticipantsService {
+
+}

+ 102 - 0
pcbms/src/main/java/com/hssx/pcbms/service/impl/TaskServiceImpl.java

@@ -0,0 +1,102 @@
+package com.hssx.pcbms.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.github.pagehelper.PageHelper;
+import com.github.pagehelper.PageInfo;
+import com.hssx.pcbms.entity.Task;
+import com.hssx.pcbms.entity.TaskParticipants;
+import com.hssx.pcbms.entity.vo.TaskDTO;
+import com.hssx.pcbms.entity.vo.TaskVO;
+import com.hssx.pcbms.mapper.TaskMapper;
+import com.hssx.pcbms.service.TaskParticipantsService;
+import com.hssx.pcbms.service.TaskService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.hssx.pcbms.util.HttpRespMsg;
+import com.hssx.pcbms.util.ListUtil;
+import com.hssx.pcbms.util.PageUtil;
+import org.apache.commons.collections4.collection.CompositeCollection;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * <p>
+ *  服务实现类
+ * </p>
+ *
+ * @author 吴涛涛
+ * @since 2019-11-11
+ */
+@Service
+public class TaskServiceImpl extends ServiceImpl<TaskMapper, Task> implements TaskService {
+
+    @Resource
+    private TaskMapper taskMapper;
+    @Resource
+    private TaskParticipantsService taskParticipantsService;
+
+    @Override
+    public HttpRespMsg addOrUpdate(Task task,String participantsIdes) {
+        HttpRespMsg msg = new HttpRespMsg();
+        List<TaskParticipants> taskParticipants = new ArrayList<>();
+        if(null == task.getId()){
+            taskMapper.insert(task);
+            if(participantsIdes.length()>0 && participantsIdes != ""){
+                List<Integer> ids = ListUtil.convertIntegerIdsArrayToList(participantsIdes);
+                for (Integer id : ids) {
+                    TaskParticipants participants = new TaskParticipants();
+                    participants.setTaskId(task.getId());
+                    participants.setUserId(id);
+                    taskParticipants.add(participants);
+                }
+                taskParticipantsService.saveBatch(taskParticipants);
+            }
+        }else{
+            taskMapper.updateById(task);
+            if(participantsIdes.length()>0 && participantsIdes != ""){
+                taskParticipantsService.remove(new QueryWrapper<TaskParticipants>().eq("task_id",task.getId()));
+                List<Integer> ids = ListUtil.convertIntegerIdsArrayToList(participantsIdes);
+                for (Integer id : ids) {
+                    TaskParticipants participants = new TaskParticipants();
+                    participants.setTaskId(task.getId());
+                    participants.setUserId(id);
+                    taskParticipants.add(participants);
+                }
+                taskParticipantsService.saveBatch(taskParticipants);
+            }
+        }
+        return msg;
+    }
+
+    @Override
+    public HttpRespMsg getListByCondition(TaskVO taskVO, PageUtil page) {
+        HttpRespMsg msg = new HttpRespMsg();
+        PageHelper.startPage(page.getPageNum(),page.getPageSize());
+        if(taskVO.getType()==0){
+            //我的任务
+            List<Task> tasks= taskMapper.selectList(new QueryWrapper<Task>().eq("recipient_id", taskVO.getUid()));
+            List<TaskParticipants> participants = taskParticipantsService.list(new QueryWrapper<TaskParticipants>().eq("user_id", taskVO.getUid()));
+            List<String> taskIds = new ArrayList<>();
+            if(tasks.size()>0){
+                taskIds.addAll(tasks.stream().map(Task::getId).collect(Collectors.toList()));
+            }
+            if(participants.size()>0){
+                taskIds.addAll(participants.stream().map(TaskParticipants::getTaskId).collect(Collectors.toList()));
+            }
+            if(taskIds .size()>0){
+                List<TaskDTO> taskDTOList = taskMapper.selectListByTaskIds(taskIds);
+                PageInfo<TaskDTO> pageInfo = new PageInfo<>(taskDTOList);
+                msg.data = pageInfo;
+            }
+        }else if(taskVO.getType()==1){
+            //我发布的
+            List<TaskDTO> taskDTOList = taskMapper.selectListByCondition(taskVO);
+            PageInfo<TaskDTO> pageInfo = new PageInfo<>(taskDTOList);
+            msg.data = pageInfo;
+        }
+        return msg;
+    }
+}

+ 71 - 0
pcbms/src/main/java/com/hssx/pcbms/service/impl/TaskTagsServiceImpl.java

@@ -0,0 +1,71 @@
+package com.hssx.pcbms.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.hssx.pcbms.entity.Goods;
+import com.hssx.pcbms.entity.GoodsTags;
+import com.hssx.pcbms.entity.Task;
+import com.hssx.pcbms.entity.TaskTags;
+import com.hssx.pcbms.mapper.TaskMapper;
+import com.hssx.pcbms.mapper.TaskTagsMapper;
+import com.hssx.pcbms.service.TaskTagsService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.hssx.pcbms.util.HttpRespMsg;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+
+/**
+ * <p>
+ *  服务实现类
+ * </p>
+ *
+ * @author 吴涛涛
+ * @since 2019-11-11
+ */
+@Service
+public class TaskTagsServiceImpl extends ServiceImpl<TaskTagsMapper, TaskTags> implements TaskTagsService {
+    @Resource
+    private TaskTagsMapper taskTagsMapper;
+    @Resource
+    private TaskMapper taskMapper;
+
+    @Override
+    public HttpRespMsg add(TaskTags goodsTags) {
+        HttpRespMsg msg = new HttpRespMsg();
+        Integer count = taskTagsMapper.selectCount(new QueryWrapper<TaskTags>().eq("name", goodsTags.getName()));
+        if (count > 0) {
+            msg.setError("该分类标签已存在");
+            return msg;
+        } else {
+            if (null == goodsTags.getId()) {
+                taskTagsMapper.insert(goodsTags);
+            } else {
+                taskTagsMapper.updateById(goodsTags);
+            }
+        }
+        return msg;
+    }
+
+    @Override
+    public HttpRespMsg getListByKeyName(String keyName) {
+        HttpRespMsg msg = new HttpRespMsg();
+        QueryWrapper<TaskTags> qw = new QueryWrapper();
+        if (keyName != null) {
+            qw.like("name", keyName);
+        }
+        msg.data = taskTagsMapper.selectList(qw);
+        return msg;
+    }
+
+    @Override
+    public HttpRespMsg delTags(TaskTags goodsTags) {
+        HttpRespMsg msg = new HttpRespMsg();
+        Integer count = taskMapper.selectCount(new QueryWrapper<Task>().eq("tag_id", goodsTags.getId()).last("limit 1"));
+        if (count > 0) {
+            msg.setError("该标签下存在任务,暂不支持该操作。");
+            return msg;
+        }
+        taskTagsMapper.deleteById(goodsTags.getId());
+        return msg;
+    }
+}

+ 1 - 1
pcbms/src/main/java/com/hssx/pcbms/util/CodeGenerator.java

@@ -204,7 +204,7 @@ public class CodeGenerator {
         //若想要生成的实体类继承某个Controller,则可打开下面注释。写上需要继承的Controller的位置即可
 //        strategy.setSuperControllerClass("com.baomidou.ant.common.BaseController");
         //此处user是表名,多个英文逗号分割
-        strategy.setInclude("score");
+        strategy.setInclude("task_participants");
 //        strategy.setExclude();//数据库表全生成
 //        strategy.setInclude(scanner("user").split(","));//表名,多个英文逗号分割
         strategy.setControllerMappingHyphenStyle(true);

+ 19 - 0
pcbms/src/main/resources/mapper/TaskFileMapper.xml

@@ -0,0 +1,19 @@
+<?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.hssx.pcbms.mapper.TaskFileMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.hssx.pcbms.entity.TaskFile">
+        <id column="id" property="id" />
+        <result column="task_id" property="taskId" />
+        <result column="name" property="name" />
+        <result column="url" property="url" />
+        <result column="indate" property="indate" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        id, task_id, name, url, indate
+    </sql>
+
+</mapper>

+ 117 - 0
pcbms/src/main/resources/mapper/TaskMapper.xml

@@ -0,0 +1,117 @@
+<?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.hssx.pcbms.mapper.TaskMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.hssx.pcbms.entity.Task">
+        <id column="id" property="id" />
+        <result column="name" property="name" />
+        <result column="code" property="code" />
+        <result column="plan_time" property="planTime" />
+        <result column="work_load" property="workLoad" />
+        <result column="recipient_id" property="recipientId" />
+        <result column="payer" property="payer" />
+        <result column="payee" property="payee" />
+        <result column="fee" property="fee" />
+        <result column="tag_id" property="tagId" />
+        <result column="delay_time" property="delayTime" />
+        <result column="state" property="state" />
+        <result column="publish_id" property="publishId" />
+    </resultMap>
+    <resultMap id="BaseResultMapVO" type="com.hssx.pcbms.entity.vo.TaskDTO">
+        <id column="id" property="id" />
+        <result column="name" property="name" />
+        <result column="code" property="code" />
+        <result column="plan_time" property="planTime" />
+        <result column="work_load" property="workLoad" />
+        <result column="recipient_id" property="recipientId" />
+        <result column="payer" property="payer" />
+        <result column="payee" property="payee" />
+        <result column="fee" property="fee" />
+        <result column="tag_id" property="tagId" />
+        <result column="delay_time" property="delayTime" />
+        <result column="state" property="state" />
+        <result column="publish_id" property="publishId" />
+        <result column="publishName" property="publishName" />
+        <result column="tag_name" property="tagName" />
+        <result column="recipient" property="recipient" />
+        <collection property="participantsVOS" select="selectPaticaterByTaskId" column="{taskId=id,}"
+                    ofType="com.hssx.pcbms.entity.vo.TaskParticipantsVO"/>
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        id, name, code, plan_time, work_load, recipient_id, payer, payee, fee, tag_id, delay_time, state, publish_id
+    </sql>
+
+    <select id="selectListByCondition" resultMap="BaseResultMapVO">
+        select
+        t.id, t.name, t.code, t.plan_time, t.work_load, t.recipient_id,
+        t.payer, t.payee, t.fee, t.tag_id, t.delay_time, t.state, t.publish_id
+        u.name publishName,tt.name tag_name,ru.name recipient
+          from
+            task t
+          left join user u
+          on t.publish_id = u.id
+          left join task_tags tt
+          on tt.id = t.tag_id
+          left join user ru
+          on t.recipient_id = ru.id
+        <where>
+            <if test="taskVO.keyName != null and taskVO.keyName != ''">
+                and name like concat('%',#{taskVO.keyName},'%')
+            </if>
+            <if test="taskVO.startTime != null and taskVO.startTime != ''and taskVO.endTime != null and taskVO.endTime != ''">
+               and plan_time between #{taskVO.startTime} and #{taskVO.endTime}
+            </if>
+            <if test="taskVO.uid != null">
+                and publish_id =#{taskVO.uid}
+            </if>
+        </where>
+        order by t.id desc
+    </select>
+    <select id="selectListByTaskIds" resultMap="BaseResultMapVO">
+        select
+        t.id, t.name, t.code, t.plan_time, t.work_load, t.recipient_id,
+        t.payer, t.payee, t.fee, t.tag_id, t.delay_time, t.state, t.publish_id
+        u.name publishName,tt.name tag_name,ru.name recipient
+        from
+        task t
+        left join user u
+        on t.publish_id = u.id
+        left join task_tags tt
+        on tt.id = t.tag_id
+        left join user ru
+        on t.recipient_id = ru.id
+        <where>
+            <foreach collection="list" separator="," close=")" item="item" open="t.id in (" index="index">
+                #{item}
+            </foreach>
+            <if test="taskVO.keyName != null and taskVO.keyName != ''">
+                and name like concat('%',#{taskVO.keyName},'%')
+            </if>
+            <if test="taskVO.startTime != null and taskVO.startTime != ''and taskVO.endTime != null and taskVO.endTime != ''">
+                and plan_time between #{taskVO.startTime} and #{taskVO.endTime}
+            </if>
+            <if test="taskVO.uid != null">
+                and publish_id =#{taskVO.uid}
+            </if>
+        </where>
+        order by t.id desc
+    </select>
+    <resultMap id="PaticaterMapVO" type="com.hssx.pcbms.entity.vo.TaskParticipantsVO">
+        <id column="id" property="id" />
+        <result column="user_id" property="userId" />
+        <result column="task_id" property="taskId" />
+        <result column="head_pic" property="headPic"/>
+        <result column="name" property="userName"/>
+    </resultMap>
+
+    <select id="selectPaticaterByTaskId" resultMap="PaticaterMapVO">
+        select tp.id, tp.user_id, tp.task_id,u.name
+          from task_participants tp
+          left join user u
+          on tp.user_id = u.id
+          where tp.task_id = #{id}
+    </select>
+</mapper>

+ 17 - 0
pcbms/src/main/resources/mapper/TaskParticipantsMapper.xml

@@ -0,0 +1,17 @@
+<?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.hssx.pcbms.mapper.TaskParticipantsMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.hssx.pcbms.entity.TaskParticipants">
+        <id column="id" property="id" />
+        <result column="user_id" property="userId" />
+        <result column="task_id" property="taskId" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        id, user_id, task_id
+    </sql>
+
+</mapper>

+ 17 - 0
pcbms/src/main/resources/mapper/TaskTagsMapper.xml

@@ -0,0 +1,17 @@
+<?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.hssx.pcbms.mapper.TaskTagsMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.hssx.pcbms.entity.TaskTags">
+        <id column="id" property="id" />
+        <result column="name" property="name" />
+        <result column="indate" property="indate" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        id, name, indate
+    </sql>
+
+</mapper>