浏览代码

张丁 预约作业票修改等逻辑

zhangding 3 年之前
父节点
当前提交
421febbc07

+ 11 - 0
master/src/main/java/com/ruoyi/project/invoice/controller/TInvoiceBookingworkticketController.java

@@ -101,4 +101,15 @@ public class TInvoiceBookingworkticketController extends BaseController
     {
         return toAjax(tInvoiceBookingworkticketService.deleteTInvoiceBookingworkticketByIds(ids));
     }
+
+    /**
+     * 关联票号
+     */
+    @PreAuthorize("@ss.hasAnyRoles ('dbbz,admin')")
+    @Log(title = "关联票号", businessType = BusinessType.OTHER)
+    @DeleteMapping("/association")
+    public AjaxResult association(@PathVariable Long[] ids)
+    {
+        return toAjax(tInvoiceBookingworkticketService.deleteTInvoiceBookingworkticketByIds(ids));
+    }
 }

+ 9 - 0
master/src/main/java/com/ruoyi/project/invoice/controller/TInvoiceWorkcontentController.java

@@ -68,6 +68,15 @@ public class TInvoiceWorkcontentController extends BaseController
         return AjaxResult.success(tInvoiceWorkcontentService.selectTInvoiceWorkcontentById(id));
     }
 
+    /**
+     * 根据关联的ID获取预约作业内容详细信息
+     */
+    @GetMapping(value = "/getWorkcontentBybookingticketId{bookingticketId}")
+    public AjaxResult getInfoBybookingticketId(@PathVariable("bookingticketId") Long bookingticketId)
+    {
+        return AjaxResult.success(tInvoiceWorkcontentService.selectTInvoiceWorkcontentBybookingticketId(bookingticketId));
+    }
+
     /**
      * 新增预约作业内容
      */

+ 8 - 0
master/src/main/java/com/ruoyi/project/invoice/mapper/TInvoiceWorkcontentMapper.java

@@ -60,4 +60,12 @@ public interface TInvoiceWorkcontentMapper
      * @return 结果
      */
     public int deleteTInvoiceWorkcontentByIds(Long[] ids);
+
+    /**
+     *根据关联ID 查询预约作业内容
+     *
+     * @param bookingticketId 预约作业内容bookingticketId
+     * @return 预约作业内容
+     */
+    List<TInvoiceWorkcontent> selectTInvoiceWorkcontentBybookingticketId(Long bookingticketId);
 }

+ 11 - 0
master/src/main/java/com/ruoyi/project/invoice/service/ITInvoiceWorkcontentService.java

@@ -19,6 +19,14 @@ public interface ITInvoiceWorkcontentService
      */
     public TInvoiceWorkcontent selectTInvoiceWorkcontentById(Long id);
 
+    /**
+     *根据关联ID 查询预约作业内容
+     *
+     * @param bookingticketId 预约作业内容bookingticketId
+     * @return 预约作业内容
+     */
+    public  List<TInvoiceWorkcontent> selectTInvoiceWorkcontentBybookingticketId(Long bookingticketId);
+
     /**
      * 查询预约作业内容列表
      * 
@@ -43,6 +51,7 @@ public interface ITInvoiceWorkcontentService
      */
     public int updateTInvoiceWorkcontent(TInvoiceWorkcontent tInvoiceWorkcontent);
 
+
     /**
      * 批量删除预约作业内容
      * 
@@ -58,4 +67,6 @@ public interface ITInvoiceWorkcontentService
      * @return 结果
      */
     public int deleteTInvoiceWorkcontentById(Long id);
+
+
 }

+ 13 - 0
master/src/main/java/com/ruoyi/project/invoice/service/impl/TInvoiceWorkcontentServiceImpl.java

@@ -31,6 +31,19 @@ public class TInvoiceWorkcontentServiceImpl implements ITInvoiceWorkcontentServi
         return tInvoiceWorkcontentMapper.selectTInvoiceWorkcontentById(id);
     }
 
+
+    /**
+     *根据关联ID 查询预约作业内容
+     *
+     * @param bookingticketId 预约作业内容bookingticketId
+     * @return 预约作业内容
+     */
+    @Override
+    public List<TInvoiceWorkcontent> selectTInvoiceWorkcontentBybookingticketId(Long bookingticketId)
+    {
+        return tInvoiceWorkcontentMapper.selectTInvoiceWorkcontentBybookingticketId(bookingticketId);
+    }
+
     /**
      * 查询预约作业内容列表
      *

+ 5 - 0
master/src/main/resources/mybatis/invoice/TInvoiceWorkcontentMapper.xml

@@ -52,6 +52,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <include refid="selectTInvoiceWorkcontentVo"/>
         where id = #{id}
     </select>
+
+    <select id="selectTInvoiceWorkcontentBybookingticketId" parameterType="Long" resultMap="TInvoiceWorkcontentResult">
+        <include refid="selectTInvoiceWorkcontentVo"/>
+        where d.bookingticket_id = #{bookingticketId}
+    </select>
         
     <insert id="insertTInvoiceWorkcontent" parameterType="TInvoiceWorkcontent">
         <selectKey keyProperty="id" resultType="long" order="BEFORE">

+ 8 - 0
ui/src/api/invoice/workcontent.js

@@ -17,6 +17,14 @@ export function getWorkcontent(id) {
   })
 }
 
+// 根据关联ID查询预约作业内容详细
+export function getWorkcontentBybookingticketId(bookingticketId) {
+  return request({
+    url: '/invoice/workcontent/getWorkcontentBybookingticketId' + bookingticketId,
+    method: 'get'
+  })
+}
+
 // 新增预约作业内容
 export function addWorkcontent(data) {
   return request({

+ 64 - 28
ui/src/views/invoice/bookingworkticket/index.vue

@@ -89,7 +89,7 @@
           size="mini"
           @click="handleAdd"
           v-hasPermi="['invoice:bookingworkticket:add']"
-        >新增</el-button>
+        >预约</el-button>
       </el-col>
       <el-col :span="1.5">
         <el-button
@@ -101,16 +101,6 @@
           v-hasPermi="['invoice:bookingworkticket:edit']"
         >修改</el-button>
       </el-col>
-      <el-col :span="1.5">
-        <el-button
-        v-if=""
-          type="danger"
-          icon="el-icon-delete"
-          size="mini"
-          :disabled="multiple"
-          @click="handleDelete"
-          v-hasPermi="['invoice:bookingworkticket:remove']"
-        >删除</el-button>
       </el-col>
         <el-col :span="1.5">
             <el-button
@@ -161,26 +151,32 @@
             @click="handleUpdate(scope.row)"
             v-hasPermi="['invoice:bookingworkticket:edit']"
           >修改</el-button>
+           <el-button
+         v-if="scope.row.status== 0"
+            size="mini"
+            type="text"
+            icon="el-icon-edit"
+            @click="handleDelete(scope.row)"
+          >删除</el-button>
           <el-button
             size="mini"
             type="text"
-            icon="el-icon-delete"
+            icon="el-icon-s-claim"
             @click="signature(scope.row)"
-            v-hasPermi="['invoice:bookingworkticket:remove']"
+            v-hasPermi="['invoice:bookingworkticket:signature']"
           >签字</el-button>
            <el-button
             size="mini"
             type="text"
-            icon="el-icon-delete"
+            icon="el-icon-s-promotion"
             @click="association(scope.row)"
-            v-hasPermi="['invoice:bookingworkticket:remove']"
+             v-hasRole="['dbbz','admin']"
           >关联票号</el-button>
            <el-button
             size="mini"
             type="text"
-            icon="el-icon-delete"
+            icon="el-icon-share"
             @click="billSee(scope.row)"
-            v-hasPermi="['invoice:bookingworkticket:remove']"
           >票据预览</el-button>
         </template>
       </el-table-column>
@@ -300,7 +296,8 @@
       </el-form>
         
             <el-form v-for="(ruleForm, index) in ruleForm" :key="index" :model="ruleForm" :rules="rules" ref="ruleForm" label-width="100px" class="demo-ruleForm">
-   <el-divider content-position="left" >新增一条作业内容</el-divider>
+    <el-divider><i class="el-icon-more" style="color:green;font-size:100%"></i><i class="el-icon-more" style="color:green;font-size:100%"></i> <span ><font color="green">关联的作业内容</font></span>
+    <i class="el-icon-more" style="color:green;font-size:100%"></i><i class="el-icon-more" style="color:green;font-size:100%"></i></el-divider>
           <el-form-item label="作业内容描述" prop="workDescription">
             <el-input v-model="ruleForm.workDescription"></el-input>
           </el-form-item> 
@@ -398,7 +395,7 @@
 
 <script>
 import { listBookingworkticket, getBookingworkticket, delBookingworkticket, addBookingworkticket, updateBookingworkticket, exportBookingworkticket, importTemplate} from "@/api/invoice/bookingworkticket";
-import { listWorkcontent, getWorkcontent, delWorkcontent, addWorkcontent, updateWorkcontent, exportWorkcontent} from "@/api/invoice/workcontent";
+import { listWorkcontent, getWorkcontent, delWorkcontent, addWorkcontent, updateWorkcontent, exportWorkcontent,getWorkcontentBybookingticketId} from "@/api/invoice/workcontent";
 import { treeselect } from "@/api/system/dept";
 import { getToken } from "@/utils/auth";
 import Treeselect from "@riophae/vue-treeselect";
@@ -409,6 +406,8 @@ export default {
   components: { Treeselect },
   data() {
     return {
+      //用户名和承包商名
+      username:"",
       //bookticked关联ID
       btid:"",
       // 遮罩层
@@ -515,7 +514,6 @@ export default {
       this.$nextTick(() => {
           this.clientHeight = document.body.clientHeight -250
       })
-    this.getList();
     this.getTreeselect();
       this.getDicts("booking_work_status").then(response => {
       this.statusOptions = response.data;
@@ -547,6 +545,7 @@ export default {
     this.getDicts("book_guardian_unit").then(response => {
       this.guardianUnitOptions = response.data;
     });
+      this.getList();
   },
   methods: {
 // 表单添加一行
@@ -577,12 +576,36 @@ export default {
 
     /** 查询预约作业票台账列表 */
     getList() {
-      this.loading = true;
+       this.getDicts("book_work_unit").then(response => {
+      this.workUnitOptions = response.data;
+        this.loading = true;
+      //查到登陆用户的角色和名称 
+          var name = this.$store.state.user.name;
+          this.bookingworkticketList=[]
+          //先判断用户是否是承包商
+        //  debugger
+        for(var i=0;i<this.workUnitOptions.length;i++ ) {
+               if(name==this.workUnitOptions[i].dictLabel){
+               this.username =this.workUnitOptions[i].dictValue;
+               }
+        }
+        //如果是承包商 就循环遍历出这个承包商所预约的
       listBookingworkticket(this.queryParams).then(response => {
-        this.bookingworkticketList = response.rows;
-        this.total = response.total;
+        console.log(response)
+        let btlist =response.rows;
+         for(var i=0;i<btlist.length;i++){
+          if(this.username==btlist[i].workUnit){
+              this.bookingworkticketList.push(btlist[i]);
+                 this.total = this.bookingworkticketList.total;
+          }else{
+              this.bookingworkticketList=response.rows;
+                 this.total = response.total;
+          }
+         }
         this.loading = false;
       });
+    });
+     
     },
      /** 查询部门下拉树结构 */
      getTreeselect() {
@@ -679,6 +702,7 @@ export default {
     /** 新增按钮操作 */
     handleAdd() {
       this.reset();
+      this.resetForm1();
       this.open = true;
       this.title = "添加预约作业票台账";
     },
@@ -690,19 +714,25 @@ export default {
         this.form = response.data;
         this.open = true;
         this.title = "修改预约作业票台账";
-        getWorkcontent(id).then(response => {
-          
+          let bookingticketId=this.form.id
+        getWorkcontentBybookingticketId(bookingticketId).then(response => {
+          this.ruleForm=response.data
           });
       });
     },
     /** 提交按钮 */
     submitForm() {
-
       this.$refs["form"].validate(valid => {
         if (valid) {
           if (this.form.id != null) {
             updateBookingworkticket(this.form).then(response => {
-              
+              //修改的时候先修改作业票台账,在根据关联id修改相关的 作业内容子项
+               this.btid=response.data;
+               for(var i=0;i<this.ruleForm.length;i++){
+                   this.ruleForm[i].bookingticketId=this.btid;
+                 updateWorkcontent(this.ruleForm[i]).then(response => {
+            });
+               }
               this.msgSuccess("修改成功");
               this.open = false;
               this.getList();
@@ -710,7 +740,7 @@ export default {
           } else {
             addBookingworkticket(this.form).then(response => {
               //取得返回的关联id,然后多个作业内容数据表单 插入到后台
-                 this.btid=   response.data;
+                 this.btid=response.data;
                 for(var i=0;i<this.ruleForm.length;i++){
                    this.ruleForm[i].bookingticketId=this.btid;
                  addWorkcontent(this.ruleForm[i]).then(response => {
@@ -781,6 +811,12 @@ export default {
       // 提交上传文件
       submitFileForm() {
           this.$refs.upload.submit();
+      },
+      //关联票号
+      association(){
+        console.log(this.$store.state.user)
+        var userName = this.$store.state.user.roles;
+        this.msgSuccess(userName);
       }
   }
 };