Bläddra i källkod

开发费用填报接口

seyason 4 år sedan
förälder
incheckning
295ca439e6

+ 14 - 1
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.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.management.platform.entity.*;
+import com.management.platform.mapper.TaskCommentMapper;
 import com.management.platform.mapper.UserMapper;
 import com.management.platform.service.*;
 import com.management.platform.util.HttpRespMsg;
@@ -65,6 +66,8 @@ public class TaskController {
     private InformationService informationService;
     @Resource
     private TaskProgressService taskProgressService;
+    @Resource
+    private TaskCommentMapper taskCommentMapper;
 
     @RequestMapping("/save")
     public HttpRespMsg save(Task task) {
@@ -103,6 +106,7 @@ public class TaskController {
             if (task.getExecutorId() != null) {
                 msgRecepient = task.getExecutorId();
             }
+
         } else {
             //更新的情况,需要对比是否修改了任务标题,更新子任务的parentTname
             Task oldTask = taskService.getById(task.getId());
@@ -120,8 +124,17 @@ public class TaskController {
                 msgRecepient = task.getExecutorId();
             }
         }
-
         taskService.saveOrUpdate(task);
+
+
+        TaskComment comment = new TaskComment();
+        comment.setTaskId(task.getId());
+        comment.setUserId(user.getId());
+        comment.setUserName(user.getName());
+        comment.setType(isNew?1:2);
+        comment.setContent(user.getName()+"创建了任务");
+        taskCommentMapper.insert(comment);
+
         //更新执行人近期任务
         if (!StringUtils.isEmpty(task.getExecutorId())) {
             saveOrUpdateRecentTask(task, task.getExecutorId());

+ 3 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/entity/Information.java

@@ -6,6 +6,8 @@ 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;
@@ -53,6 +55,7 @@ public class Information extends Model<Information> {
      * 时间
      */
     @TableField("time")
+    @JsonFormat(pattern = "MM-dd HH:mm:ss")
     private LocalDateTime time;
 
     /**

+ 1 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/entity/Task.java

@@ -14,6 +14,7 @@ import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.experimental.Accessors;
 import org.springframework.format.annotation.DateTimeFormat;
+import org.springframework.web.bind.annotation.RequestParam;
 
 /**
  * <p>

+ 7 - 1
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/entity/TaskComment.java

@@ -16,7 +16,7 @@ import lombok.experimental.Accessors;
  * </p>
  *
  * @author Seyason
- * @since 2021-05-10
+ * @since 2021-05-18
  */
 @Data
 @EqualsAndHashCode(callSuper = false)
@@ -64,6 +64,12 @@ public class TaskComment extends Model<TaskComment> {
     @TableField("user_color")
     private String userColor;
 
+    /**
+     * 动态类型,0-留言,1-创建,2-修改
+     */
+    @TableField("type")
+    private Integer type;
+
 
     @Override
     protected Serializable pkVal() {

+ 13 - 1
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/TaskProgressServiceImpl.java

@@ -39,13 +39,25 @@ public class TaskProgressServiceImpl extends ServiceImpl<TaskProgressMapper, Tas
     private TaskMapper taskMapper;
     @Resource
     private ProjectMapper projectMapper;
-
+    @Resource
+    private TaskCommentMapper taskCommentMapper;
+    String[] statusList = new String[]{"状态正常", "存在风险", "进展逾期"};
     @Override
     public HttpRespMsg addProgress(TaskProgress progress, String participatorIds, HttpServletRequest request) {
         HttpRespMsg msg = new HttpRespMsg();
         User creator = userMapper.selectById(request.getHeader("Token"));
         progress.setCreatorId(request.getHeader("Token"));
         taskProgressMapper.insert(progress);
+
+        //生成任务动态
+        TaskComment comment = new TaskComment();
+        comment.setTaskId(progress.getTaskId());
+        comment.setUserId(progress.getCreatorId());
+        comment.setUserName(creator.getName());
+        comment.setType(2);
+        comment.setContent(creator.getName()+"更新任务进展为 " + statusList[progress.getStatus()]);
+        taskCommentMapper.insert(comment);
+
         if (!StringUtils.isEmpty(participatorIds)) {
             List<String> ids = ListUtil.convertLongIdsArrayToList(participatorIds);
             List<User> userList = userMapper.selectList(new QueryWrapper<User>().in("id", ids));

+ 2 - 1
fhKeeper/formulahousekeeper/management-platform/src/main/resources/mapper/TaskCommentMapper.xml

@@ -11,11 +11,12 @@
         <result column="content" property="content" />
         <result column="create_time" property="createTime" />
         <result column="user_color" property="userColor" />
+        <result column="type" property="type" />
     </resultMap>
 
     <!-- 通用查询结果列 -->
     <sql id="Base_Column_List">
-        id, task_id, user_id, user_name, content, create_time, user_color
+        id, task_id, user_id, user_name, content, create_time, user_color, type
     </sql>
 
 </mapper>

+ 1 - 1
fhKeeper/formulahousekeeper/timesheet/src/views/Home.vue

@@ -51,7 +51,7 @@
                                 <span v-else style="color:green">已读</span>
                             </template>
                         </el-table-column>
-                        <el-table-column property="indate" label="时间" align="center"></el-table-column>
+                        <el-table-column property="time" label="时间" align="center"></el-table-column>
                     </el-table>
                 </el-drawer>                
                 <el-dropdown trigger="hover" style="margin-left:10px;">

+ 104 - 2
fhKeeper/formulahousekeeper/timesheet/src/views/expense/expense.vue

@@ -41,13 +41,115 @@ export default {
   components: {},
   props: {},
   data() {
-    return {};
+    return {
+      addForm:{code:null,companyId:null,createDate:null, ticketNum:0,type:0,remark:null,totalAmount:0,},
+      page: 1,
+      size:20,
+    };
   },
   computed: {},
   watch: {},
   created() {},
   mounted() {},
-  methods: {},
+  methods: {
+    //获取单据列表
+    getList() {
+      this.
+      this.http.post('/expense-sheet/list', {pageIndex: this.page,
+                    pageSize: this.size,
+                    code: null,
+                    ownerId:null,
+                    },
+        res => {
+            if (res.code == "ok") {
+                this.$message({
+                message: '填报成功',
+                type: "success"
+                });
+            } else {
+                this.$message({
+                message: res.msg,
+                type: "error"
+                });
+            }
+        },
+        error => {
+            this.$message({
+                message: error,
+                type: "error"
+            });
+        });
+    },
+    //删除单据
+    delete(id) {
+      this.http.post('/expense-sheet/delete', {id: id},
+        res => {
+            if (res.code == "ok") {
+                this.$message({
+                message: '填报成功',
+                type: "success"
+                });
+            } else {
+                this.$message({
+                message: res.msg,
+                type: "error"
+                });
+            }
+        },
+        error => {
+            this.$message({
+                message: error,
+                type: "error"
+            });
+        });
+    },
+    //创建单据
+    add() {
+      this.addForm.items = '';//这里要传发票列表的json转string
+        this.http.post('/expense-sheet/add', this.addForm,
+        res => {
+            if (res.code == "ok") {
+                this.$message({
+                message: '填报成功',
+                type: "success"
+                });
+            } else {
+                this.$message({
+                message: res.msg,
+                type: "error"
+                });
+            }
+        },
+        error => {
+            this.$message({
+                message: error,
+                type: "error"
+            });
+        });
+    },
+
+    //获取单据编码
+    getNextCode() {
+        this.http.post('/expense-sheet/getNextCode', {
+        },
+        res => {
+            if (res.code == "ok") {
+                this.addForm.code = res.data;
+            } else {
+                this.$message({
+                message: res.msg,
+                type: "error"
+                });
+            }
+        },
+        error => {
+            this.$message({
+                message: error,
+                type: "error"
+            });
+        });
+    },
+  },
 };
 </script>
 <style scoped>

+ 6 - 9
fhKeeper/formulahousekeeper/timesheet/src/views/project/projectInside.vue

@@ -224,7 +224,7 @@
             <el-tab-pane label="文件中心" name="files"><FileCenter ref="fileCenter"></FileCenter></el-tab-pane>
             <el-tab-pane label="项目概览" name="info"><ProjectInfo ref="projectInfo"></ProjectInfo></el-tab-pane>
             <el-tab-pane label="数据统计" name="summary"><Summary ref="summary"></Summary></el-tab-pane>
-            <el-tab-pane label="挣值分析" name="earning"><Earning ref="earning"></Earning></el-tab-pane>
+            <el-tab-pane label="挣值分析" name="earning" v-if="user.role > 0 || user.id == project.inchargerId"><Earning ref="earning"></Earning></el-tab-pane>
         </el-tabs>
         
         <!--新增任务界面-->
@@ -1152,10 +1152,6 @@
             handleClick(tab, event) {
                 let pathModel = tab.name;
                 this.$router.push('/'+pathModel+'/'+this.curProjectId);
-                if (pathModel == 'summary') {
-                    //刷新页面
-                    this.$router.go(0);
-                }
             },
             showSubTaskList(task) {
                 this.subTaskVisible = true;
@@ -1866,13 +1862,14 @@
 
             submitInsert() {
                 if (this.textContent !== true) return  this.$message({
-          showClose: true,
-          message: '图片太大,请重新上传',
-          type: 'warning'
-        });
+                    showClose: true,
+                    message: '图片太大,请重新上传',
+                    type: 'warning'
+                });
                 this.$refs.form1.validate(valid => {
                     if (valid) {
                         delete this.addForm.subTaskList;
+                        delete this.addForm.progress;
                         this.http.post('/task/save',this.addForm,
                             res => {
                                 if (res.code == "ok") {

+ 4 - 7
fhKeeper/formulahousekeeper/timesheet/src/views/project/summary.vue

@@ -52,7 +52,7 @@
                 <div class="box">   
                     <div class="lableTxt">执行人分配</div>
                     <el-divider></el-divider>
-                    <div id="executorPanel" style="height:300px;"></div>
+                    <div id="executorPanel" style="height:300px;width:500px;"></div>
                 </div>
             </el-col>
             </el-row>
@@ -61,14 +61,14 @@
                     <div class="box">   
                         <div class="lableTxt">耗时最多任务</div>
                         <el-divider></el-divider>
-                        <div id="costPanel" style="height:300px;"></div>
+                        <div id="costPanel" style="height:300px;width:500px;"></div>
                     </div>
                 </el-col>
                 <el-col :span="12">    
                     <div class="box">   
                         <div class="lableTxt">按任务列表统计</div>
                         <el-divider></el-divider>
-                        <div id="stagesPanel" style="height:300px;"></div>
+                        <div id="stagesPanel" style="height:300px;width:500px;"></div>
                     </div>
                 </el-col>
             </el-row>
@@ -78,7 +78,7 @@
                     <div class="box" style="height:550px;">   
                         <div class="lableTxt">任务 计划工时 VS 实际工时 <el-link @click="exportTaskCompare" style="float:right;"><i class="iconfont firerock-iconexport"></i>导出</el-link></div>
                         <el-divider></el-divider>
-                        <div id="taskTimeComparePanel" style="height:500px;"></div>
+                        <div id="taskTimeComparePanel" style="height:500px;width:1100px;"></div>
                     </div>
                 </el-col>
             </el-row>
@@ -469,7 +469,6 @@
                             }]
                         };
                         myChart.setOption(option);
-                        console.log('===这是完成');
                     } else {
                         this.$message({
                             message: res.msg,
@@ -515,7 +514,6 @@
             }
         },
         created() {
-            console.log('created===');
             let height = window.innerHeight;
             this.tableHeight = height - 160;
             const that = this;
@@ -524,7 +522,6 @@
             };
         },
         mounted() {
-            console.log('=========图表mounted===');
             this.curProjectId = parseInt(this.$route.params.id);
             var _this = this;
             window.addEventListener("resize", function() {