Min 1 سال پیش
والد
کامیت
9c641baf0b
18فایلهای تغییر یافته به همراه475 افزوده شده و 33 حذف شده
  1. 7 0
      fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/controller/PlanController.java
  2. 2 2
      fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/controller/PlanProcedureTotalController.java
  3. 5 0
      fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/controller/ReportController.java
  4. 11 3
      fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/entity/Plan.java
  5. 1 1
      fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/mapper/ProdProcedureTeamMapper.java
  6. 1 1
      fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/service/PlanProcedureTotalService.java
  7. 2 0
      fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/service/ReportService.java
  8. 2 2
      fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/service/impl/PlanProcedureTotalServiceImpl.java
  9. 34 1
      fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/service/impl/ReportServiceImpl.java
  10. 3 1
      fhKeeper/formulahousekeeper/management-workshop/src/main/resources/mapper/PlanMapper.xml
  11. 11 0
      fhKeeper/formulahousekeeper/management-workshop/src/main/resources/mapper/ProdProcedureTeamMapper.xml
  12. 3 2
      fhKeeper/formulahousekeeper/management-workshop/src/main/resources/mapper/ReportMapper.xml
  13. 2 2
      fhKeeper/formulahousekeeper/timesheet-workshop-h5/src/router/index.js
  14. 98 1
      fhKeeper/formulahousekeeper/timesheet-workshop-h5/src/views/statisticsView/statisticsView.vue
  15. 1 1
      fhKeeper/formulahousekeeper/timesheet-workshop-h5/src/views/workView/fillReport.vue
  16. 11 2
      fhKeeper/formulahousekeeper/timesheet-workshop-h5/src/views/workView/workView.vue
  17. 26 1
      fhKeeper/formulahousekeeper/timesheet-workshop/src/views/plan/planComponent.vue
  18. 255 13
      fhKeeper/formulahousekeeper/timesheet-workshop/src/views/statistic/index.vue

+ 7 - 0
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/controller/PlanController.java

@@ -36,6 +36,13 @@ public class PlanController {
     public HttpRespMsg list(String date,String steelStampNumber,@RequestParam(defaultValue = "3") Integer planType,Integer deptId,Integer pageIndex,Integer pageSize){
         return planService.getList(date,steelStampNumber,planType,deptId,pageIndex,pageSize);
     }
+    
+    @RequestMapping("/getById")
+    public HttpRespMsg getById(Plan plan){
+        HttpRespMsg httpRespMsg=new HttpRespMsg();
+        httpRespMsg.setData(planService.getById(plan.getId()));
+        return httpRespMsg;
+    }
 
     @RequestMapping("/addOrUpdatePlan")
     @Transactional

+ 2 - 2
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/controller/PlanProcedureTotalController.java

@@ -26,8 +26,8 @@ public class PlanProcedureTotalController {
     private PlanProcedureTotalService planProcedureTotalService;
 
     @RequestMapping("/getReportForWorkList")
-    public HttpRespMsg getReportForWorkList(){
-        return planProcedureTotalService.getReportForWorkList();
+    public HttpRespMsg getReportForWorkList(String chicleNumStart,String chicleNumEnd){
+        return planProcedureTotalService.getReportForWorkList(chicleNumStart,chicleNumEnd);
     }
 
     @RequestMapping("/getFillProcedureDetail")

+ 5 - 0
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/controller/ReportController.java

@@ -1533,5 +1533,10 @@ public class ReportController {
         return reportService.getPlanRealTimeProgressList(deptId,userId,startDate,endDate,pageIndex,pageSize);
     }
 
+    @RequestMapping("exportPlanRealTimeProgressList")
+    public HttpRespMsg exportPlanRealTimeProgressList(String deptId,String userId,String startDate,String endDate){
+        return reportService.exportPlanRealTimeProgressList(deptId,userId,startDate,endDate);
+    }
+
 }
 

+ 11 - 3
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/entity/Plan.java

@@ -23,7 +23,7 @@ import org.springframework.format.annotation.DateTimeFormat;
  * </p>
  *
  * @author Seyason
- * @since 2023-08-01
+ * @since 2023-08-25
  */
 @Data
 @EqualsAndHashCode(callSuper = false)
@@ -236,9 +236,17 @@ public class Plan extends Model<Plan> {
     @TableField("status")
     private Integer status;
 
+    /**
+     * 车辆序号
+     */
+    @TableField("chicle_num_start")
+    private String chicleNumStart;
 
-    @TableField(exist = false)
-    private List<Map<String,Object>> planRealTimeProgress;
+    /**
+     * 车辆序号
+     */
+    @TableField("chicle_num_end")
+    private String chicleNumEnd;
 
 
     @Override

+ 1 - 1
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/mapper/ProdProcedureTeamMapper.java

@@ -16,7 +16,7 @@ import java.util.List;
  */
 public interface ProdProcedureTeamMapper extends BaseMapper<ProdProcedureTeam> {
 
-    public List<HashMap> getReportForWorkList(String userId);
+    public List<HashMap> getReportForWorkList(String userId,String chicleNumStart,String chicleNumEnd);
 
     public HashMap getFillProcedureDetail(Integer id);
 }

+ 1 - 1
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/service/PlanProcedureTotalService.java

@@ -14,7 +14,7 @@ import com.management.platform.util.HttpRespMsg;
  */
 public interface PlanProcedureTotalService extends IService<PlanProcedureTotal> {
 
-    HttpRespMsg getReportForWorkList();
+    HttpRespMsg getReportForWorkList(String chicleNumStart,String chicleNumEnd);
 
     HttpRespMsg getFillProcedureDetail(Integer id);
 }

+ 2 - 0
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/service/ReportService.java

@@ -124,4 +124,6 @@ public interface ReportService extends IService<Report> {
     HttpRespMsg exportPersonWorkHoursWorkTime(String deptId, String userId, String startDate, String endDate);
 
     HttpRespMsg getPlanRealTimeProgressList(String deptId, String userId, String startDate, String endDate, Integer pageIndex, Integer pageSize);
+
+    HttpRespMsg exportPlanRealTimeProgressList(String deptId, String userId, String startDate, String endDate);
 }

+ 2 - 2
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/service/impl/PlanProcedureTotalServiceImpl.java

@@ -40,11 +40,11 @@ public class PlanProcedureTotalServiceImpl extends ServiceImpl<PlanProcedureTota
     private ProdProcedureTeamMapper prodProcedureTeamMapper;
 
     @Override
-    public HttpRespMsg getReportForWorkList() {
+    public HttpRespMsg getReportForWorkList(String chicleNumStart,String chicleNumEnd) {
         HttpRespMsg msg=new HttpRespMsg();
         User user = userMapper.selectById(request.getHeader("token"));
         /*获取作为组员参与的数据*/
-        List<HashMap> dataList = prodProcedureTeamMapper.getReportForWorkList(user.getId());
+        List<HashMap> dataList = prodProcedureTeamMapper.getReportForWorkList(user.getId(),chicleNumStart,chicleNumEnd);
         //抽取出所有的planId
         List<Integer> planIdList = dataList.stream().map(item -> (Integer) item.get("planId")).collect(Collectors.toList());
         //重新封装成两层结构,第一层为planId,第二层为planId下的数据

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

@@ -4323,9 +4323,42 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
         HashMap map=new HashMap();
         List<Map<String, Object>> planRealTimeProgressList = reportMapper.getPlanRealTimeProgressList(companyId, deptId, userId, startDate, endDate, pageStart, pageSize);
         Integer total=reportMapper.getPlanRealTimeProgressCount(companyId, deptId, userId, startDate, endDate);
-        map.put("record",planRealTimeProgressList);
+        map.put("records",planRealTimeProgressList);
         map.put("total",total);
         httpRespMsg.setData(map);
         return httpRespMsg;
     }
+
+    @Override
+    public HttpRespMsg exportPlanRealTimeProgressList(String deptId, String userId, String startDate, String endDate) {
+        HttpRespMsg msg=new HttpRespMsg();
+        HttpRespMsg respMsg = getPlanRealTimeProgressList(deptId, userId, startDate, endDate, null, null);
+        Integer companyId = userMapper.selectById(request.getHeader("token")).getCompanyId();
+        HashMap resultMap= (HashMap) respMsg.data;
+        List<Map<String, Object>> mapList= (List<Map<String, Object>>) resultMap.get("records");
+        List<List<String>> dataList=new ArrayList<>();
+        List<String> titleList=new ArrayList<>();
+        titleList.add("排产计划");
+        titleList.add("工序");
+        titleList.add("人员");
+        titleList.add("计划工时");
+        titleList.add("当前工时");
+        titleList.add("进度");
+        dataList.add(titleList);
+        for (Map<String, Object> map : mapList) {
+            List<String> itemMap=new ArrayList<>();
+            itemMap.add(String.valueOf(map.get("taskName")==null?"":map.get("taskName")));
+            itemMap.add(String.valueOf(map.get("procedureName")==null?"":map.get("procedureName")));
+            itemMap.add(String.valueOf(map.get("userName")==null?"":map.get("userName")));
+            itemMap.add(String.valueOf(map.get("planWorkTime")==null?0:map.get("planWorkTime")));
+            itemMap.add(String.valueOf(map.get("nowWorkTime")==null?0:map.get("nowWorkTime")));
+            itemMap.add((map.get("progress")==null?0:map.get("progress"))+"%");
+            dataList.add(itemMap);
+        }
+        Company company = companyMapper.selectById(companyId);
+        String fileName=("计划实际工时表_")+company.getCompanyName()+System.currentTimeMillis();
+        String resp = ExcelUtil.exportGeneralExcelByTitleAndList(fileName, dataList, path);
+        msg.setData(resp);
+        return msg;
+    }
 }

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

@@ -36,11 +36,13 @@
         <result column="create_time" property="createTime" />
         <result column="create_id" property="createId" />
         <result column="status" property="status" />
+        <result column="chicle_num_start" property="chicleNumStart" />
+        <result column="chicle_num_end" property="chicleNumEnd" />
     </resultMap>
 
     <!-- 通用查询结果列 -->
     <sql id="Base_Column_List">
-        id, product_scheduling_num, product_id, product_name, project_code, company_id, steel_stamp_number_start, steel_stamp_number_end, 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
+        id, product_scheduling_num, product_id, product_name, project_code, company_id, steel_stamp_number_start, steel_stamp_number_end, 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, chicle_num_start, chicle_num_end
     </sql>
 
 </mapper>

+ 11 - 0
fhKeeper/formulahousekeeper/management-workshop/src/main/resources/mapper/ProdProcedureTeamMapper.xml

@@ -31,6 +31,17 @@
                  LEFT JOIN product ON product.id = plan.`product_id`
                  LEFT JOIN prod_procedure ON prod_procedure.id = plan_procedure_total.prod_procedure_id
         where 1 = 1 and a.status = 1 and a.user_id=#{userId}
+        <choose>
+            <when test="chicleNumStart!=null and chicleNumStart!='' and chicleNumEnd!=null and chicleNumEnd!=''">
+                and (plan.chicle_num_start &gt;= #{chicleNumStart} and plan.chicle_num_end &lt;= #{chicleNumEnd})
+            </when>
+            <when test="chicleNumStart!=null and chicleNumStart!='' and (chicleNumEnd==null or chicleNumEnd=='')">
+                and  (#{chicleNumStart} between plan.chicle_num_start and plan.chicle_num_end)
+            </when>
+            <when test="chicleNumEnd!=null and chicleNumEnd!='' and (chicleNumStart==null or chicleNumStart=='')">
+                and  (#{chicleNumEnd} between plan.chicle_num_start and plan.chicle_num_end)
+            </when>
+        </choose>
         order by plan.id desc
     </select>
 

+ 3 - 2
fhKeeper/formulahousekeeper/management-workshop/src/main/resources/mapper/ReportMapper.xml

@@ -168,7 +168,7 @@
     </select>
 
     <select id="getPlanRealTimeProgressList" resultType="java.util.Map">
-        select a.id,(Case when b.plan_type=0 then b.product_scheduling_num else b.task_change_notice_num end) as taskName,
+        select a.id as pptId,b.id as planId,b.plan_type as planType,(Case when b.plan_type=0 then b.product_scheduling_num else b.task_change_notice_num end) as taskName,
         c.name as procedureName,u.name as userName,d.work_time as planWorkTime,(select SUM(working_time) from report where user_procedure_team_id = d.id) as nowWorkTime,d.progress
         from plan_procedure_total a
         left join plan b on a.plan_id=b.id
@@ -185,6 +185,7 @@
         <if test="startDate!=null and startDate!='' and endDate!=null and endDate!=''">
             and (b.start_date &gt;= #{startDate} and b.end_date &lt;= #{endDate})
         </if>
+        order by b.create_time,a.id desc
         <if test="pageStart!=null and pageSize!=null">
             limit #{pageStart},#{pageSize}
         </if>
@@ -192,7 +193,7 @@
 
     <select id="getPlanRealTimeProgressCount" resultType="java.lang.Integer">
         select count(1) from (
-        select a.id,(Case when b.plan_type=0 then b.product_scheduling_num else b.task_change_notice_num end) as taskName,
+        select a.id as pptId,b.id as planId,b.plan_type as planType,(Case when b.plan_type=0 then b.product_scheduling_num else b.task_change_notice_num end) as taskName,
         c.name as procedureName,u.name as userName,d.work_time as planWorkTime,(select SUM(working_time) from report where user_procedure_team_id = d.id) as nowWorkTime,d.progress
         from plan_procedure_total a
         left join plan b on a.plan_id=b.id

+ 2 - 2
fhKeeper/formulahousekeeper/timesheet-workshop-h5/src/router/index.js

@@ -78,8 +78,8 @@ const router = new Router({
         }
     },
     {
-        // path: "/statisticsView",
-        path: "/statistic",
+        path: "/statisticsView",
+        // path: "/statistic",
         component: () => import("@/views/statisticsView/statisticsView"),
         meta: {
             title: "数据统计",

+ 98 - 1
fhKeeper/formulahousekeeper/timesheet-workshop-h5/src/views/statisticsView/statisticsView.vue

@@ -1,16 +1,39 @@
 <template>
   <div>
     <van-nav-bar title="数据统计" left-text="返回"  @click-left="back" fixed left-arrow/>
+    <van-date-picker
+      v-model="currentDate"
+      title="选择日期"
+    />
+    <van-tabs v-model="checkStatus" sticky @change="clickLabel" offset-top="1.22667rem">
+        <van-tab v-for="(item, index) in labelList" :title="item.name" :key="index" :name="item.id">
+            <van-cell-group v-for="(itemList, indexList) in groupList" :key="indexList" :style="indexList == 0 ? 'margin: 0.5rem 0;' : 'margin-bottom: 0.5rem'">
+                <van-cell title="提交日期" :value="itemList.happenDate" />
+                <van-cell title="项目名称" :value="itemList.projectName" />
+                <van-cell title="提交人" :value="itemList.enterName" />
+                <van-cell title="研究中心" :value="itemList.centerName" />
+                <van-cell title="阶段" :value="itemList.subDtemplateName" />
+                <van-cell title="理由" :label="itemList.reason" v-if="checkStatus != 0"/>
+            </van-cell-group>
+        </van-tab>
+      </van-tabs>
   </div>
 </template>
 
 <script>
+import Vue from "vue";
+import { ImagePreview } from "vant";
+import { DatePicker } from 'vant';
+Vue.use(ImagePreview);
 export default {
   props: {},
   components: {},
   data() {
     return {
-
+      checkStatus: '0',
+      labelList: [{name: '我的统计', id: '0'},{name: '工位统计', id: '1'}],
+      groupList: [],
+      currentDate: ['2021', '01', '01'],
     };
   },
   computed: {},
@@ -21,10 +44,84 @@ export default {
     back() {
       this.$router.go(-1);
     },
+    // 点击标签触发
+    clickLabel() {
+        this.getData()
+    },
+    // 获取数据
+    getData() {
+        // this.$toast.loading({
+        //   message: '数据加载中...',
+        //   forbidClick: true,
+        // });
+        // this.$axios.post("/data-item-detail/getAllDataItemDetail", {
+
+        // })
+        // .then(res => {
+        //     if(res.code == "ok") {
+
+        //     } else {
+        //         this.$toast.fail('获取失败');
+        //     }
+        // }).catch(err=> {this.$toast.clear();});
+    },
   },
 };
 </script>
 
 <style scoped>
+.eddit {
+    padding: 0.4rem 0.4rem;
+    text-align: right;
+}
+.search-icon {
+    font-size: 0.4rem;
+    display: flex;
+    align-items: center;
+    margin-left: 0.3rem;
+}
+.wrapper {
+    display: flex;
+    align-items: center;
+    justify-content: center;
+    height: 100%;
+}
 
+.block {
+    width: 8rem;
+    height: 14rem;
+    background-color: #fff;
+    position: relative;
+}
+.butt {
+    position: absolute;
+    bottom: 0;
+    left: 0;
+}
+.poClass p {
+    padding: 0.4rem 0.2rem;
+    color: #7d7e80;
+}
+.van-image {
+  width: 2rem !important;
+  height: 2rem !important;
+}
+.auste {
+    width: 100%;
+    height: 12rem;
+    overflow: auto;
+}
+.ayss {
+    width: 100%;
+    text-align: center;
+    line-height: 1.2rem;
+    border-bottom: 1px solid #7d7e80;
+}
+.ss {
+    position: absolute;
+    width: 100%;
+    top: 0;
+    left: 0;
+    z-index: 2;
+}
 </style>

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

@@ -5,7 +5,7 @@
         <div>{{reportForm.product_name}}</div>
         <div>{{reportForm.plan_type == 0? reportForm.product_scheduling_num:reportForm.task_change_notice_num}}</div>
         <div>{{reportForm.start_date}}至{{reportForm.end_date}}</div>
-      </div>
+    </div>
 
     <van-form @submit="onSubmit">
       <van-cell-group inset>

+ 11 - 2
fhKeeper/formulahousekeeper/timesheet-workshop-h5/src/views/workView/workView.vue

@@ -1,8 +1,12 @@
 <template>
   <div class="distribution">
     <van-nav-bar title="报工" left-text="返回" @click-left="back" fixed left-arrow />
-
     <div class="distribution_con contentRoll">
+      <div> 
+        <van-field v-model="chicleNumStart" type="digit" label="车辆序号" @blur="getMyPlanProcedureList()"/>
+        -
+        <van-field  v-model="chicleNumEnd" type="digit" @blur="getMyPlanProcedureList()"/>
+      </div>
       <van-empty v-if="myPlanProcedureList.length == 0">暂无待报工任务</van-empty>
       <div v-for="(prod, prodIndex) in myPlanProcedureList">
         <div class="distribution_header">
@@ -68,6 +72,8 @@ export default {
       popupShow: false,
       titleText: '今日计划', // 默认文字
       todayAndTomorrow: true, // true 今日计划,false 明日计划
+      chicleNumStart:null,
+      chicleNumEnd:null
     };
   },
   computed: {},
@@ -94,7 +100,10 @@ export default {
         forbidClick: true,
         duration: 0
       });
-      this.$axios.post("/plan-procedure-total/getReportForWorkList", this.form)
+      this.$axios.post("/plan-procedure-total/getReportForWorkList", {
+        chicleNumStart:this.chicleNumStart,
+        chicleNumEnd:this.chicleNumEnd
+      })
         .then(res => {
           if (res.code == "ok") {
             this.$toast.clear();

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

@@ -117,8 +117,13 @@
           <el-form-item label="计划总工价" v-if="this.titleName==='编辑今日计划'"  prop="planTotalWages">
             <el-input v-model="todayPlanForm.planTotalWages" type="number"></el-input>
           </el-form-item>
-          <el-form-item label="进度"  :style="this.titleName==='编辑今日计划'?'':'width: 100%'" prop="progress">
+          <!-- <el-form-item label="进度"  :style="this.titleName==='编辑今日计划'?'':'width: 100%'" prop="progress">
             <el-input v-model="todayPlanForm.progress" maxlength="20"></el-input>
+          </el-form-item> -->
+            <el-form-item label="车辆序号" style="width: 100%" prop="steelStampNumberStart">
+            <el-input-number class="w45" v-model="todayPlanForm.chicleNumStart" maxlength="20"></el-input-number>
+            {{ "-" }}
+            <el-input-number class="w45" v-model="todayPlanForm.chicleNumEnd" maxlength="20"></el-input-number>
           </el-form-item>
           <el-form-item label="数量" prop="num">
             <el-input v-model="todayPlanForm.num" maxlength="10" type="number"></el-input>
@@ -267,6 +272,8 @@ export default {
         projectCode: "",
         steelStampNumberStart: "",
         steelStampNumberEnd: "",
+        chicleNumStart:"",
+        chicleNumEnd:"",
         num: "",
         mainProcess: "",
         progress: "",
@@ -628,6 +635,24 @@ export default {
               return
           }
       }
+      if(!this.todayPlanForm.chicleNumStart){
+          if(this.todayPlanForm.chicleNumStart){
+              this.$message({
+                  message:"车辆序号区间填写不完整",
+                  type: "error",
+              });
+              return  
+          }
+      }
+      if(!this.todayPlanForm.chicleNumEnd){
+          if(this.todayPlanForm.chicleNumEnd){
+              this.$message({
+                  message:"车辆序号区间填写不完整",
+                  type: "error",
+              });
+              return
+          }
+      }
       if(this.todayPlanForm.endDate<this.todayPlanForm.startDate){
         this.$message({
                   message:"完工日期不能小于开工日期",

+ 255 - 13
fhKeeper/formulahousekeeper/timesheet-workshop/src/views/statistic/index.vue

@@ -78,13 +78,21 @@
             </el-table>
 
             <!-- 计划实时进度表 -->
-            <el-table v-if="ins == 1"  key="19" border :data="fTEDataList" highlight-current-row v-loading="listLoading" :height="+tableHeight - 1" style="width: 100%;">
-                <el-table-column align="center" prop="projectCode" label="排除计划" min-width="150"></el-table-column>
-                <el-table-column align="center" prop="projectName" label="工序" min-width="250"></el-table-column>
-                <el-table-column align="center" prop="workTime" label="人员" min-width="150"></el-table-column>
-                <el-table-column align="center" prop="FTE" label="计划工时" min-width="250"></el-table-column>
-                <el-table-column align="center" prop="FTE" label="当前工时" min-width="250"></el-table-column>
-                <el-table-column align="center" prop="FTE" label="进度" min-width="250"></el-table-column>
+            <el-table v-if="ins == 1"  key="19" border :data="planRealTimeProgressList" highlight-current-row v-loading="listLoading" :height="+tableHeight - 1" style="width: 100%;">
+                <el-table-column align="center" prop="taskName" label="排产计划" min-width="150">
+                  <template slot-scope="scope">
+                    <span  @click="showPlanDetail(scope.row)" class="colorText">{{scope.row.taskName}}</span>
+                  </template>
+                </el-table-column>
+                <el-table-column align="center" prop="procedureName" label="工序" min-width="250"></el-table-column>
+                <el-table-column align="center" prop="userName" label="人员" min-width="150"></el-table-column>
+                <el-table-column align="center" prop="planWorkTime" label="计划工时" min-width="250"></el-table-column>
+                <el-table-column align="center" prop="nowWorkTime" label="当前工时" min-width="250"></el-table-column>
+                <el-table-column align="center" prop="progress" label="进度" min-width="250">
+                  <template slot-scope="scope">
+                    {{scope.row.progress}}%
+                  </template>
+                </el-table-column>
             </el-table>
 
         <!--工具条-->
@@ -161,6 +169,132 @@
           </div>
   </el-dialog>
 
+
+  <!-- 查看今日/明日计划 -->
+    <el-dialog :title="this.taskName" :visible.sync="planDetailDiaLog" width="800px" top="190px" :before-close="handleClose">
+      <div class="planDialog">
+        <el-form ref="planForm" :model="planForm" label-width="120px" disabled>
+          <el-form-item label="排产工单号" style="width: 100%" prop="productSchedulingNum">
+            <el-input v-model="planForm.productSchedulingNum" maxlength="50"></el-input>
+          </el-form-item>
+          <el-form-item label="产品名称" style="width: 100%" prop="productId">
+            <el-select v-model="planForm.productId" placeholder="请选择" class="w100" @change="setProductCode">
+              <el-option v-for="item in productList" :key="item.id" :label="item.name" :value="item.id">
+              </el-option>
+            </el-select>
+          </el-form-item>
+          <el-form-item label="项目代码" style="width: 100%" prop="projectCode">
+            <el-input v-model="planForm.projectCode" maxlength="50" readonly></el-input>
+          </el-form-item>
+          <el-form-item label="钢印号" style="width: 100%" prop="steelStampNumberStart">
+            <el-input class="w45" v-model="planForm.steelStampNumberStart" maxlength="20"></el-input>
+            {{ "-" }}
+            <el-input class="w45" v-model="planForm.steelStampNumberEnd" maxlength="20"></el-input>
+          </el-form-item>
+          <el-form-item label="计划总工价" v-if="this.titleName==='编辑今日计划'"  prop="planTotalWages">
+            <el-input v-model="planForm.planTotalWages" type="number"></el-input>
+          </el-form-item>
+          <el-form-item label="进度"  :style="this.titleName==='编辑今日计划'?'':'width: 100%'" prop="progress">
+            <el-input v-model="planForm.progress" maxlength="20"></el-input>
+          </el-form-item>
+          <el-form-item label="数量" prop="num">
+            <el-input v-model="planForm.num" maxlength="10" type="number"></el-input>
+          </el-form-item>
+          <el-form-item label="主工序" prop="mainProcess">
+            <el-input v-model="planForm.mainProcess" maxlength="20"></el-input>
+          </el-form-item>
+          <el-form-item label="工位" prop="stationId">
+            <el-cascader v-model="planForm.stationId" :options="departmentList" :props="{ checkStrictly: true }"
+              collapse-tags class="w100" clearable @change="getIncharger()">
+            </el-cascader>
+          </el-form-item>
+          <el-form-item label="工长" prop="foremanName">
+            <el-input v-model="planForm.foremanName" readonly></el-input>
+          </el-form-item>
+          <el-form-item label="开工时间" prop="startDate">
+            <el-date-picker class="w100" v-model="planForm.startDate" type="date" placeholder="选择日期"
+              value-format="yyyy-MM-dd" readonly>
+            </el-date-picker>
+          </el-form-item>
+          <el-form-item label="完工时间" prop="endDate">
+            <el-date-picker class="w100" v-model="planForm.endDate" type="date" placeholder="选择日期"
+              value-format="yyyy-MM-dd">
+            </el-date-picker>
+          </el-form-item>
+          <el-form-item label="描述" style="width: 100%">
+            <el-input type="textarea" :rows="6" placeholder="请输入描述" v-model="planForm.describtion" maxlength="200">
+            </el-input>
+          </el-form-item>
+        </el-form>
+      </div>
+    </el-dialog>
+
+    <!-- 插单计划 -->
+    <el-dialog :title="taskName" :visible.sync="orderInsertPlanDetailDiaLog" width="800px" top="18.5vh" :before-close="handleClose">
+      <div class="planDialog">
+        <el-form ref="orderInsertPlanForm" :model="orderInsertPlanForm" label-width="120px" disabled>
+          <el-form-item label="任务变更通知号" style="width: 100%" prop="taskChangeNoticeNum">
+            <el-input v-model="orderInsertPlanForm.taskChangeNoticeNum" placeholder="请输入" maxlength="50"></el-input>
+          </el-form-item>
+          <el-form-item label="任务名称" style="width: 100%" prop="taskName">
+            <el-input v-model="orderInsertPlanForm.taskName" placeholder="请输入" maxlength="50"></el-input>
+          </el-form-item>
+          <el-form-item label="任务类型" prop="taskTypeId">
+            <el-select v-model="orderInsertPlanForm.taskTypeId" placeholder="请选择" class="w100">
+              <el-option v-for="item in taskTypeList" :key="item.id" :label="item.taskTypeName" :value="item.id">
+              </el-option>
+            </el-select>
+          </el-form-item>
+          <el-form-item label="计划人数" prop="planManNum">
+            <el-input v-model="orderInsertPlanForm.planManNum" type="number" placeholder="请输入" maxlength="5"></el-input>
+          </el-form-item>
+          <el-form-item label="数量" prop="num">
+            <el-input v-model="orderInsertPlanForm.num" type="number" placeholder="请输入" maxlength="5"></el-input>
+          </el-form-item>
+          <el-form-item label="计划工时" prop="planWorkHour">
+            <div style="display: flex;">
+              <el-input v-model="orderInsertPlanForm.planWorkHour" type="number" placeholder="请输入" style="flex: 1;" maxlength="5"></el-input>
+              <div style="margin-left: 10px;">小时</div>
+            </div>
+          </el-form-item>
+          <el-form-item label="单价" prop="moneyOfJob">
+            <div style="display: flex;">
+              <el-input v-model="orderInsertPlanForm.moneyOfJob" type="number" placeholder="请输入" style="flex: 1;" maxlength="5"></el-input>
+              <div style="margin-left: 10px;">元/小时</div>
+            </div>
+          </el-form-item>
+          <el-form-item label="质检类型" prop="productId">
+            <el-select v-model="orderInsertPlanForm.checkType" placeholder="请选择" class="w100">
+              <el-option v-for="item in checkTypeList" :key="item.id" :label="item.name" :value="item.id">
+              </el-option>
+            </el-select>
+          </el-form-item>
+          <el-form-item label="工位" prop="stationId">
+            <el-cascader v-model="orderInsertPlanForm.stationId" :options="departmentList" :props="{ checkStrictly: true }"
+              collapse-tags class="w100" clearable @change="getIncharger()">
+            </el-cascader>
+          </el-form-item>
+          <el-form-item label="工长" prop="foremanName">
+            <el-input v-model="orderInsertPlanForm.foremanName"></el-input>
+          </el-form-item>
+          <el-form-item label="开工时间" prop="startDate">
+            <el-date-picker class="w100" v-model="orderInsertPlanForm.startDate" type="date" placeholder="选择日期"
+              value-format="yyyy-MM-dd">
+            </el-date-picker>
+          </el-form-item>
+          <el-form-item label="完工时间" prop="endDate">
+            <el-date-picker class="w100" v-model="orderInsertPlanForm.endDate" type="date" placeholder="选择日期"
+              value-format="yyyy-MM-dd">
+            </el-date-picker>
+          </el-form-item>
+          <el-form-item label="描述" style="width: 100%">
+            <el-input type="textarea" :rows="6" placeholder="请输入描述" v-model="orderInsertPlanForm.describtion" maxlength="200">
+            </el-input>
+          </el-form-item>
+        </el-form>
+      </div>
+    </el-dialog>
+
   </section>
 </template>
 
@@ -225,6 +359,45 @@ export default {
       totalCost:0,
       totalWorkingTime:0,
 
+      planForm: {
+        id: null,
+        productSchedulingNum: "",
+        productId: "",
+        projectCode: "",
+        steelStampNumberStart: "",
+        steelStampNumberEnd: "",
+        num: "",
+        mainProcess: "",
+        progress: "",
+        stationId: "",
+        foremanId: "",
+        foremanName: "",
+        startDate: this.todayDate,
+        endDate: "",
+        describtion: "",
+        versionNumber: "",
+        planTotalWages:0
+      },
+
+      orderInsertPlanForm : {
+        id: null,
+        taskChangeNoticeNum: "",
+        taskName: "",
+        taskTypeId: "",
+        taskTypeName: "",
+        planManNum: "",
+        num: "",
+        planWorkHour: "",
+        moneyOfJob: "",
+        foremanId: "",
+        foremanName: "",
+        startDate: "",
+        endDate: "",
+        describtion: "",
+        versionNumber: "",
+        checkType:0,
+      },
+
 
       personWorkHoursWagesList:[],
       planRealTimeProgressList:[],
@@ -248,6 +421,10 @@ export default {
 
       monthPersonnel: '',
       exportLoading: false,
+
+      taskName:'',//计划名称
+      planDetailDiaLog:false,
+      orderInsertPlanDetailDiaLog:false
     };
   },
   computed: {},
@@ -310,6 +487,16 @@ export default {
       }
   },
   methods: {
+    showPlanDetail(item){
+      console.log(item)
+      if(item.planType==0){
+        this.planDetailDiaLog=true
+      }else{
+        this.orderInsertPlanDetailDiaLog=true
+      }
+      this.taskName=item.taskName
+      this.getPlanDetail(item);
+    },
     showReportDetail(item){
       console.log(item)
       this.reportDetailDialog=true
@@ -395,6 +582,31 @@ export default {
           });
         });
     },
+    //获取计划数据
+    getPlanDetail(item){
+      this.http.post( "/plan/getById", {
+            id:item.planId
+        },
+        res => {
+          if (res.code == "ok") {
+            if(item.planType==0){
+              this.planForm=res.data
+            }else{
+              this.orderInsertPlanForm=res.data
+            }
+          } else {
+            this.$message({
+              message: res.msg,
+              type: "error"
+            });
+          }
+        },error => {
+          this.$message({
+            message: error,
+            type: "error"
+          });
+        });
+    },
     //人员工时工价表数据
     getPersonWorkHoursWagesList(){
         this.http.post( "/report/getPersonWorkHoursWagesList", {
@@ -575,11 +787,12 @@ export default {
         sl.deptId=this.departmentIdArray[0];
         sl.userId=this.userId;
     } else if (this.ins == 1) {
-        fName = this.$t('projectTaskReport') + '.xlsx';
-        url += "/exportProjectTask";
-        if(this.taskTypeId != 'null' && this.taskTypeId != null && this.taskTypeId != '') {
-        sl.taskType = this.taskTypeId
-        }
+        fName = '计划实际工时表_' + '.xlsx';
+        url += "/exportPlanRealTimeProgressList";
+        sl.startDate=this.rangeDatas[0];
+        sl.endDate=this.rangeDatas[1];
+        sl.deptId=this.departmentIdArray[0];
+        sl.userId=this.userId;
     }
         this.http.post(url, sl,
         res => {
@@ -647,6 +860,7 @@ export default {
       }
       if(this.ins == 1){
         //TODO: 获取数据
+        this.getPlanRealTimeProgressList()
       }
     },
     // 日期
@@ -719,7 +933,7 @@ export default {
   },
 };
 </script>
-<style scoped>
+<style scoped lang='scss'>
 .tableRightBtn {
   float: right;
   margin-left: 15px !important;
@@ -927,4 +1141,32 @@ export default {
   color:red;
 }
 
+.planDialog::-webkit-scrollbar {
+    display: none;
+    /* Chrome Safari */
+}
+// 新增样式
+.planDialog {
+    max-height: 42vh;
+    overflow-y: auto;
+    scrollbar-width: none;
+    /* Firefox */
+    -ms-overflow-style: none;
+}
+.el-form {
+      display: flex;
+      flex-wrap: wrap;
+      justify-content: space-between;
+}
+.w100 {
+      width: 100%;
+}
+.el-form-item {
+      width: 50%;
+
+      .w45 {
+        width: 49%;
+      }
+}
+
 </style>