Min před 1 rokem
rodič
revize
2bde1faef7

+ 5 - 0
fhKeeper/formulahousekeeper/management-workshop/src/main/java/com/management/platform/entity/ProdProcedureTeam.java

@@ -7,9 +7,12 @@ 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;
+import org.springframework.format.annotation.DateTimeFormat;
 
 /**
  * <p>
@@ -69,6 +72,8 @@ public class ProdProcedureTeam extends Model<ProdProcedureTeam> {
      * 最近更新时间
      */
     @TableField("update_time")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     private LocalDateTime updateTime;
 
     @TableField("plan_procedure_id")

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

@@ -827,12 +827,16 @@ public class PlanServiceImpl extends ServiceImpl<PlanMapper, Plan> implements Pl
     @Override
     public HttpRespMsg changePeople(ProdProcedureTeam prodProcedureTeam, String newPeopleId) {
         HttpRespMsg msg=new HttpRespMsg();
+        List<ProdProcedureTeam> list=new ArrayList<>();
         ProdProcedureTeam p=new ProdProcedureTeam();
         BeanUtils.copyProperties(prodProcedureTeam,p);
         p.setId(null);
         p.setUserId(newPeopleId);
         p.setStatus(0);
-        if(!prodProcedureTeamService.save(p)){
+        prodProcedureTeam.setStatus(4);
+        list.add(prodProcedureTeam);
+        list.add(p);
+        if(!prodProcedureTeamService.saveOrUpdateBatch(list)){
             msg.setError("验证失败");
         }
         return msg;

+ 52 - 32
fhKeeper/formulahousekeeper/timesheet-workshop-h5/src/components/chooseSomeone.vue

@@ -6,12 +6,13 @@
     </div>
     <div class="chooseSomeone_Con contentRoll">
       <!-- 单选 -->
-      <van-radio-group v-model="radioVal" class="chooseSomeone_radio_group" v-if="newGroupView == 1">
+      <van-radio-group v-model="radioVal" class="chooseSomeoneo_group" v-if="newGroupView == 1">
         <van-radio :name="item.id" v-for="item, index in personnelList" :key="index">
-          <div class="chooseSomeone_radio_group_item">
+          <div class="chooseSomeone_group_item">
             <div>{{ item.name }}</div>
-            <div class="textBeyondHiding">{{ item.workStation }}</div>
+            <div class="textBeyondHiding">{{ item.jobNumber }}</div>
           </div>
+          <div class="textDepartmentName">{{ item.departmentName }}</div>
         </van-radio>
       </van-radio-group>
 
@@ -22,6 +23,7 @@
             <div>{{ item.name }}</div>
             <div class="textBeyondHiding">{{ item.jobNumber }}</div>
           </div>
+          <div class="textDepartmentName">{{ item.departmentName }}</div>
         </van-checkbox>
       </van-checkbox-group>
 
@@ -32,7 +34,7 @@
         <div class="treeBox_tree">
           <el-tree ref="tree" v-model="treeVal" show-checkbox node-key="id" :data="personnelTree" :props="defaultProps"
             :filter-node-method="filterNode">
-            <span class="custom-tree-node" slot-scope="{ node, data }">
+            <span class="custom-tree-node" slot-scope="{ node }">
               <span>
                 {{ node.label }}
               </span>
@@ -78,6 +80,10 @@ export default {
       type: Array,
       default: () => []
     },
+    type:{
+      type:Number,
+      default:()=> 0//0新增 1换人
+    }
   },
   components: {},
   data() {
@@ -98,7 +104,7 @@ export default {
       newGroupView: '', // 组件传过来的值
       newGroupViewBack: '', // 组件传过来的值
 
-      loadingBtn: false // 确定按钮loading
+      loadingBtn: false, // 确定按钮loading
     };
   },
   computed: {},
@@ -148,24 +154,30 @@ export default {
     },
     newGroupViewBackCli(flg, i) {
       this.newGroupViewBack = flg
+      if(this.type != 1) {
       this.newGroupView = i
       this.$refs.tree.setCheckedKeys(this.groupVal)
+      } else {
+          this.getPeople()
+      }
+      
     },
     // 获取所有人员
     getPeople() {
       this.$axios.post('/user/getSimpleActiveUserList', {})
         .then(res => {
           if (res.code == "ok") {
-            if (!this.peopleList) {
-              this.peopleList = res.data.map(item => {
+            // if (!this.peopleList) {
+              this.personnelList = res.data.map(item => {
                 return {
                   name: item.name,
                   id: item.id,
                   phone: item.phone,
-                  jobNumber: item.jobNumber
+                  jobNumber: item.jobNumber,
+                  departmentName: item.departmentName
                 }
               })
-            }
+            // }
           } else {
             this.$toast.clear();
             this.$toast.fail(res.msg);
@@ -212,31 +224,36 @@ export default {
       let newArr = this.personnelList.filter(item => {
         return arr.includes(item.id)
       })
+      console.log(newArr)
+      // return
       this.loadingBtn = true
       this.$emit('ChooseSomeoneChanhe', newArr)
     },
     treeHandClick() {
-      console.log(this.treeVal)
-      console.log(this.$refs.tree.getCheckedNodes())
-      let arr = this.$refs.tree.getCheckedNodes()
-      arr = arr.filter(item => {
-        return !item.children
-      })
-      console.log(arr)
-      if(arr.length <= 0) {
-        this.$toast('请选择人员');
-        return
-      }
-      let newArr = arr.map(item => {
-        return {
-          id: item.id,
-          name: item.label || '',
-          phone: item.phone || '',
-          jobNumber: item.jobNumber || ''
+      if(this.newGroupView == 3) {
+        let arr = this.$refs.tree.getCheckedNodes()
+        arr = arr.filter(item => {
+          return !item.children
+        })
+        console.log(arr)
+        if(arr.length <= 0) {
+          this.$toast('请选择人员');
+          return
         }
-      })
-      this.loadingBtn = true
-      this.$emit('ChooseSomeoneChanhe', newArr)
+         let newArr = arr.map(item => {
+          return {
+            id: item.id,
+            name: item.label || '',
+            phone: item.phone || '',
+            jobNumber: item.jobNumber || '',
+            departmentName: item.departmentName || ''
+          }
+        })
+        this.loadingBtn = true
+        this.$emit('ChooseSomeoneChanhe', newArr)
+      } else {
+        this.handClick()
+      }
     }
   },
 };
@@ -246,7 +263,10 @@ export default {
 * {
   box-sizing: border-box;
 }
-
+.textDepartmentName {
+  color: #999;
+  font-size: 14px;
+}
 .chooseSomeone {
   display: flex;
   flex-wrap: wrap;
@@ -298,7 +318,7 @@ export default {
     overflow-y: auto;
     padding: 10px;
 
-    .chooseSomeoneo_group {
+    .chooseSomeoneo_group, .chooseSomeone_radio_group {
 
       .van-radio,
       .van-checkbox {
@@ -317,7 +337,7 @@ export default {
         }
       }
 
-      .chooseSomeone_group_item {
+      .chooseSomeone_group_item, .chooseSomeone_radio_group_item {
         display: flex;
         justify-content: space-between;
 

+ 41 - 21
fhKeeper/formulahousekeeper/timesheet-workshop-h5/src/views/planView/todayPlan/distribution.vue

@@ -38,7 +38,7 @@
            <div class="PlanItem" v-show="todayAndTomorrow" style="width:100%">
             <div>组员:</div>
             <span class="" v-if="item.teamNames">{{ item.teamNames }}</span>
-            <span style="color: #1989fa;" v-if="!item.teamNames && beDeptList" @click="distributionProp(item,index)">分配</span>
+            <span style="color: #1989fa;" v-if="!item.teamNames && beDeptList" @click="distributionProp(item,index,'add')">分配</span>
             <div>
               <span style="color: #1989fa;" v-if="item.prodProcedureTeamList" @click="workShowHide(index)">{{ item.flg ? paiArr[0] : paiArr[1] }}</span>
             </div>
@@ -51,14 +51,14 @@
                         <div class="distribution_ItemBom">
                           <div class="PlanItem">
                             <span>{{ second_item.user.name }}</span>
-                            <span>{{ second_item.status==0?"待接收":second_item.status==1?"进行中":second_item.status==2?"已完工":"已终止"}}</span>
-                            <span class="" v-if="second_item.status==3" @click="changePeople(second_item)"  style="color: #1989fa;">换人</span>
+                            <span>{{ second_item.status==0?"待接收":second_item.status==1?"进行中":second_item.status==2?"已完工":second_item.status==3?"已中止":"已换人"}}</span>
+                            <span class="" v-if="second_item.status==3" @click="distributionProp(item,index,'change', second_item)"  style="color: #1989fa;">换人</span>
                             <span class="" v-if="second_item.status==0" @click="deletePeople(second_item.id)"  style="color: #1989fa;">删除</span>
                           </div>
                         </div>
                       </div>
                       <div class="PlanItem">
-                            <span class="" v-if="item.teamNames" @click="distributionProp(item,index)"  style="color: #1989fa;">新增</span>
+                            <span class="" v-if="beDeptList" @click="distributionProp(item,index,'add')"  style="color: #1989fa;">新增</span>
                           </div>
                     </div>
                 </div>
@@ -67,10 +67,9 @@
         </div>
       </div>
     </div>
-    
     <!-- 弹出层选人 -->
     <van-popup v-model="popupShow" round position="bottom" :style="{ height: '80%',background: '#F4F4F4' }" >
-      <ChooseSomeone ref="ChooseSomeone" :groupView="2" :groupViewBack="true" :peopleList="peopleList" @ChooseSomeoneChanhe="chooseSomeoneChanhe" :peopleListId="peopleListId"></ChooseSomeone>
+      <ChooseSomeone ref="ChooseSomeone" :groupView="this.groupViewNum" :type="this.peopleType" :groupViewBack="true" :peopleList="peopleList" @ChooseSomeoneChanhe="chooseSomeoneChanhe" :peopleListId="peopleListId" :key="ChooseSomeoneKey"></ChooseSomeone>
     </van-popup>
   </div>
 <div class="formBatch">
@@ -113,7 +112,13 @@ export default {
       productSchedulingNum: '',
       productName: '',
       isCanAgree:false,
-      user: JSON.parse(localStorage.userInfo)
+      user: JSON.parse(localStorage.userInfo),
+      peopleType:0,
+      groupViewNum:0,
+
+      ChooseSomeoneKey: 1,
+
+      peopleListIdObj: null, // 杯换人的所有信息
     };
   },
   computed: {},
@@ -235,14 +240,26 @@ export default {
         }
       )
     },
-    distributionProp(item, index) {
-      if(this.beDeptList) {
-        console.log(item, index)
+    distributionProp(item, index, str, itemObj) {
+      this.ChooseSomeoneKey++
+      if(str=='add'){
+        this.peopleType=0;
+        this.groupViewNum=2;
         if(item.teamIds) {
           this.peopleListId = item.teamIds.split(',')
         } else {
           this.peopleListId = []
         }
+      }else if(str=='change'){
+        this.peopleType=1;
+        this.groupViewNum=1;
+        // 针对换人存之前人的所有信息
+        this.peopleListId = [itemObj.userId]
+        this.peopleListIdObj = itemObj
+      }
+      if(this.beDeptList) {
+        console.log(item, index)
+        
         this.distributionIndex = index
         this.popupShow = true
       }
@@ -264,19 +281,15 @@ export default {
     },
     //换人
     changePeople(item,newPeopleId){
+        delete item.user
         this.$axios.post('/plan/changePeople', {
-        departmentId: this.departmentId,
+        ...item,
+        newPeopleId:newPeopleId
       })
       .then(res => {
         if (res.code == "ok") {
-          this.peopleList = res.data.map(item => {
-            return {
-              name: item.name,
-              id: item.id,
-              phone: item.phone,
-              jobNumber: item.jobNumber
-            }
-          })
+            this.getDistributionList()
+            this.popupShow = false
         } else {
           this.$toast.clear();
           this.$toast.fail(res.msg);
@@ -295,7 +308,8 @@ export default {
               name: item.name,
               id: item.id,
               phone: item.phone,
-              jobNumber: item.jobNumber
+              jobNumber: item.jobNumber,
+              departmentName: item.departmentName
             }
           })
         } else {
@@ -336,7 +350,13 @@ export default {
       let nameArr = item.map(item => {
         return item.name
       })
-      this.teamAllocation(arr, nameArr)
+      if(this.peopleType == 1) {
+        console.log(arr)
+        console.log('被换人信息', this.peopleListIdObj)
+        this.changePeople(this.peopleListIdObj,arr[0])
+      } else {
+        this.teamAllocation(arr, nameArr)
+      }
     }
   },
 };