diff --git a/jeecg-boot-master/ant-design-vue-jeecg/src/views/system/config/BomDetailList.vue b/jeecg-boot-master/ant-design-vue-jeecg/src/views/system/config/BomDetailList.vue
index 140f69f..8e51b96 100644
--- a/jeecg-boot-master/ant-design-vue-jeecg/src/views/system/config/BomDetailList.vue
+++ b/jeecg-boot-master/ant-design-vue-jeecg/src/views/system/config/BomDetailList.vue
@@ -64,8 +64,8 @@
         <span slot="action" slot-scope="text, record">
           <a v-has="'bomDetail:edit'" @click="handleEdit(record)">编辑</a>
           <a-divider type="vertical" />
-          <a-popconfirm title="确定删除吗?" v-has="'bomDetail:edit'" @confirm="() => handleDelete(record.id)">
-            <a>删除</a>
+          <a-popconfirm title="确定删除吗?"  @confirm="() => handleDelete(record.id)">
+            <a v-has="'bomDetail:delete'">删除</a>
           </a-popconfirm>
         </span>
 
diff --git a/jeecg-boot-master/ant-design-vue-jeecg/src/views/system/task/CircleTaskHeaderList.vue b/jeecg-boot-master/ant-design-vue-jeecg/src/views/system/task/CircleTaskHeaderList.vue
index 7ee89d8..d9b141d 100644
--- a/jeecg-boot-master/ant-design-vue-jeecg/src/views/system/task/CircleTaskHeaderList.vue
+++ b/jeecg-boot-master/ant-design-vue-jeecg/src/views/system/task/CircleTaskHeaderList.vue
@@ -93,7 +93,7 @@
 
     <!-- 操作按钮区域 -->
     <div class="table-operator">
-      <a-button @click="createCheckOut()" type="primary">出库查看</a-button>
+      <a-button v-has="'taskHeader:checkOut'" @click="createCheckOut()" type="primary">出库查看</a-button>
 <!--      <a-button type="primary" icon="download" @click="handleExportXls('任务表')">导出</a-button>-->
 <!--      <a-upload name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader" :action="importExcelUrl" @change="handleImportExcel">-->
 <!--        <a-button type="primary" icon="import">导入</a-button>-->
@@ -151,17 +151,17 @@
         </template>
 
         <span slot="action" slot-scope="text, record">
-          <a v-if="record.status == 1" @click="executeTask(record)">执行</a>
+          <a v-if="record.status == 1" v-has="'taskHeader:executeTask'" @click="executeTask(record)">执行</a>
           <a-divider type="vertical" />
-          <a v-if="record.status < 100" @click="completeTask(record)">完成</a>
+          <a v-if="record.status < 100" v-has="'taskHeader:completeTask'" @click="completeTask(record)">完成</a>
           <a-divider type="vertical" />
           <a-dropdown>
             <a class="ant-dropdown-link">更多 <a-icon type="down" /></a>
             <a-menu slot="overlay">
-               <a-menu-item v-has="'circleTaskHeader:edit'">
+               <a-menu-item v-has="'taskHeader:edit'">
                 <a @click="handleEdit(record)">编辑</a>
               </a-menu-item>
-              <a-menu-item v-has="'circleTaskHeader:delete'" >
+              <a-menu-item v-has="'taskHeader:delete'" >
                 <a-popconfirm title="确定删除吗?" @confirm="() => handleDelete(record.id)">
                   <a>删除</a>
                 </a-popconfirm>
diff --git a/jeecg-boot-master/ant-design-vue-jeecg/src/views/system/task/ReceiptTaskHeaderList.vue b/jeecg-boot-master/ant-design-vue-jeecg/src/views/system/task/ReceiptTaskHeaderList.vue
index 2d31876..830e119 100644
--- a/jeecg-boot-master/ant-design-vue-jeecg/src/views/system/task/ReceiptTaskHeaderList.vue
+++ b/jeecg-boot-master/ant-design-vue-jeecg/src/views/system/task/ReceiptTaskHeaderList.vue
@@ -93,8 +93,8 @@
 
     <!-- 操作按钮区域 -->
     <div class="table-operator">
-      <a-button @click="createEmptyIn()" type="primary">空托入库</a-button>
-      <a-button @click="createManyEmptyIn()" type="primary">空托组入库</a-button>
+      <a-button @click="createEmptyIn()" v-has="'taskHeader:emptyIn'" type="primary">空托入库</a-button>
+      <a-button @click="createManyEmptyIn()" v-has="'taskHeader:manyEmptyIn'" type="primary">空托组入库</a-button>
     </div>
 
     <!-- table区域-begin -->
@@ -146,19 +146,19 @@
         </template>
 
         <span slot="action" slot-scope="text, record">
-          <a v-if="record.status == 1" @click="executeTask(record)">执行</a>
+          <a v-if="record.status == 1" v-has="'taskHeader:executeTask'" @click="executeTask(record)">执行</a>
           <a-divider type="vertical" />
-           <a v-if="record.status < 100" @click="cancelTask(record)">取消</a>
+           <a v-if="record.status < 100" v-has="'taskHeader:cancelTask'" @click="cancelTask(record)">取消</a>
           <a-divider type="vertical" />
-          <a v-if="record.status < 100" @click="completeTask(record)">完成</a>
+          <a v-if="record.status < 100" v-has="'taskHeader:completeTask'" @click="completeTask(record)">完成</a>
           <a-divider type="vertical" />
           <a-dropdown>
             <a class="ant-dropdown-link">更多 <a-icon type="down" /></a>
             <a-menu slot="overlay">
-               <a-menu-item v-has="'receiptTaskHeader:edit'">
+               <a-menu-item v-has="'taskHeader:edit'">
                 <a @click="handleEdit(record)">编辑</a>
               </a-menu-item>
-              <a-menu-item v-has="'receiptTaskHeader:delete'">
+              <a-menu-item v-has="'taskHeader:delete'">
                 <a-popconfirm title="确定删除吗?" @confirm="() => handleDelete(record.id)">
                   <a>删除</a>
                 </a-popconfirm>
diff --git a/jeecg-boot-master/ant-design-vue-jeecg/src/views/system/task/ShipmentTaskHeaderList.vue b/jeecg-boot-master/ant-design-vue-jeecg/src/views/system/task/ShipmentTaskHeaderList.vue
index 9aed809..e97a7c3 100644
--- a/jeecg-boot-master/ant-design-vue-jeecg/src/views/system/task/ShipmentTaskHeaderList.vue
+++ b/jeecg-boot-master/ant-design-vue-jeecg/src/views/system/task/ShipmentTaskHeaderList.vue
@@ -93,8 +93,8 @@
 
     <!-- 操作按钮区域 -->
     <div class="table-operator">
-      <a-button @click="createEmptyOut()" type="primary" >空托出库</a-button>
-      <a-button @click="createManyEmptyOut()" type="primary" >空托组出库</a-button>
+      <a-button @click="createEmptyOut()" v-has="'taskHeader:emptyOut'" type="primary" >空托出库</a-button>
+      <a-button @click="createManyEmptyOut()" v-has="'taskHeader:manyEmptyOut'" type="primary" >空托组出库</a-button>
     </div>
 
     <!-- table区域-begin -->
@@ -146,19 +146,19 @@
         </template>
 
         <span slot="action" slot-scope="text, record">
-          <a v-if="record.status == 1" @click="executeTask(record)">执行</a>
+          <a v-if="record.status == 1" v-has="'taskHeader:executeTask'" @click="executeTask(record)">执行</a>
           <a-divider type="vertical" />
-          <a v-if="record.status < 100" @click="cancelTask(record)">取消</a>
+          <a v-if="record.status < 100" v-has="'taskHeader:executeTask'" @click="cancelTask(record)">取消</a>
           <a-divider type="vertical" />
-          <a v-if="record.status < 100" @click="completeTask(record)">完成</a>
+          <a v-if="record.status < 100" v-has="'taskHeader:executeTask'" @click="completeTask(record)">完成</a>
           <a-divider type="vertical" />
           <a-dropdown>
             <a class="ant-dropdown-link">更多 <a-icon type="down" /></a>
             <a-menu slot="overlay">
-               <a-menu-item v-has="'shipmentTaskHeader:edit'">
+               <a-menu-item v-has="'taskHeader:edit'">
                 <a @click="handleEdit(record)">编辑</a>
               </a-menu-item>
-              <a-menu-item v-has="'shipmentTaskHeader:delete'">
+              <a-menu-item v-has="'taskHeader:delete'">
                 <a-popconfirm title="确定删除吗?" @confirm="() => handleDelete(record.id)">
                   <a>删除</a>
                 </a-popconfirm>
diff --git a/jeecg-boot-master/ant-design-vue-jeecg/src/views/system/task/TransferTaskHeaderList.vue b/jeecg-boot-master/ant-design-vue-jeecg/src/views/system/task/TransferTaskHeaderList.vue
index 35f3710..c1778a8 100644
--- a/jeecg-boot-master/ant-design-vue-jeecg/src/views/system/task/TransferTaskHeaderList.vue
+++ b/jeecg-boot-master/ant-design-vue-jeecg/src/views/system/task/TransferTaskHeaderList.vue
@@ -93,8 +93,8 @@
 
     <!-- 操作按钮区域 -->
     <div class="table-operator">
-      <a-button @click="createTransfer()" type="primary">移库任务</a-button>
-      <a-button @click="createOverStation()" type="primary">跨站任务</a-button>
+      <a-button @click="createTransfer()" v-has="'taskHeader:transfer'" type="primary">移库任务</a-button>
+      <a-button @click="createOverStation()" v-has="'taskHeader:overStation'" type="primary">跨站任务</a-button>
 <!--      <a-button type="primary" icon="download" @click="handleExportXls('任务表')">导出</a-button>-->
 <!--      <a-upload name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader" :action="importExcelUrl" @change="handleImportExcel">-->
 <!--        <a-button type="primary" icon="import">导入</a-button>-->
@@ -152,17 +152,17 @@
         </template>
 
         <span slot="action" slot-scope="text, record">
-          <a v-if="record.status == 1" @click="executeTask(record)">执行</a>
+          <a v-if="record.status == 1" v-has="'taskHeader:executeTask'" @click="executeTask(record)">执行</a>
           <a-divider type="vertical" />
-          <a v-if="record.status < 100" @click="completeTask(record)">完成</a>
+          <a v-if="record.status < 100" v-has="'taskHeader:completeTask'" @click="completeTask(record)">完成</a>
           <a-divider type="vertical" />
           <a-dropdown>
             <a class="ant-dropdown-link">更多 <a-icon type="down" /></a>
             <a-menu slot="overlay">
-               <a-menu-item v-has="'transferTaskHeader:edit'">
+               <a-menu-item v-has="'taskHeader:edit'">
                 <a @click="handleEdit(record)">编辑</a>
               </a-menu-item>
-              <a-menu-item v-has="'transferTaskHeader:delete'">
+              <a-menu-item v-has="'taskHeader:delete'">
                 <a-popconfirm title="确定删除吗?" @confirm="() => handleDelete(record.id)">
                   <a>删除</a>
                 </a-popconfirm>
diff --git a/jeecg-boot-master/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/controller/SysAnnouncementController.java b/jeecg-boot-master/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/controller/SysAnnouncementController.java
index 0891101..8a9680c 100644
--- a/jeecg-boot-master/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/controller/SysAnnouncementController.java
+++ b/jeecg-boot-master/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/controller/SysAnnouncementController.java
@@ -9,6 +9,7 @@ import com.jeecg.dingtalk.api.core.response.Response;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang.StringUtils;
 import org.apache.shiro.SecurityUtils;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
 import org.jeecg.common.api.vo.Result;
 import org.jeecg.common.constant.CommonConstant;
 import org.jeecg.common.constant.CommonSendStatus;
@@ -121,6 +122,7 @@ public class SysAnnouncementController {
 	 * @return
 	 */
 	@RequestMapping(value = "/add", method = RequestMethod.POST)
+	@RequiresPermissions("Announcement:add")
 	public Result<SysAnnouncement> add(@RequestBody SysAnnouncement sysAnnouncement) {
 		Result<SysAnnouncement> result = new Result<SysAnnouncement>();
 		try {
@@ -145,6 +147,7 @@ public class SysAnnouncementController {
 	 * @return
 	 */
 	@RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST})
+	@RequiresPermissions("Announcement:edit")
 	public Result<SysAnnouncement> eidt(@RequestBody SysAnnouncement sysAnnouncement) {
 		Result<SysAnnouncement> result = new Result<SysAnnouncement>();
 		SysAnnouncement sysAnnouncementEntity = sysAnnouncementService.getById(sysAnnouncement.getId());
@@ -171,6 +174,7 @@ public class SysAnnouncementController {
 	 * @return
 	 */
 	@RequestMapping(value = "/delete", method = RequestMethod.DELETE)
+	@RequiresPermissions("Announcement:delete")
 	public Result<SysAnnouncement> delete(@RequestParam(name="id",required=true) String id) {
 		Result<SysAnnouncement> result = new Result<SysAnnouncement>();
 		SysAnnouncement sysAnnouncement = sysAnnouncementService.getById(id);
@@ -193,6 +197,7 @@ public class SysAnnouncementController {
 	 * @return
 	 */
 	@RequestMapping(value = "/deleteBatch", method = RequestMethod.DELETE)
+	@RequiresPermissions("Announcement:deleteBatch")
 	public Result<SysAnnouncement> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
 		Result<SysAnnouncement> result = new Result<SysAnnouncement>();
 		if(ids==null || "".equals(ids.trim())) {
diff --git a/jeecg-boot-master/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/controller/SysDictController.java b/jeecg-boot-master/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/controller/SysDictController.java
index 5e21130..edca33c 100644
--- a/jeecg-boot-master/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/controller/SysDictController.java
+++ b/jeecg-boot-master/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/controller/SysDictController.java
@@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.shiro.SecurityUtils;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
 import org.apache.shiro.authz.annotation.RequiresRoles;
 import org.jeecg.common.api.vo.Result;
 import org.jeecg.common.constant.CacheConstant;
@@ -338,6 +339,7 @@ public class SysDictController {
 	 * @return
 	 */
 	//@RequiresRoles({"admin"})
+	@RequiresPermissions("dict:add")
 	@RequestMapping(value = "/add", method = RequestMethod.POST)
 	public Result<SysDict> add(@RequestBody SysDict sysDict) {
 		Result<SysDict> result = new Result<SysDict>();
@@ -359,6 +361,7 @@ public class SysDictController {
 	 * @return
 	 */
 	//@RequiresRoles({"admin"})
+	@RequiresPermissions("dict:edit")
 	@RequestMapping(value = "/edit", method = { RequestMethod.PUT,RequestMethod.POST })
 	public Result<SysDict> edit(@RequestBody SysDict sysDict) {
 		Result<SysDict> result = new Result<SysDict>();
@@ -381,6 +384,7 @@ public class SysDictController {
 	 * @return
 	 */
 	//@RequiresRoles({"admin"})
+	@RequiresPermissions("dict:delete")
 	@RequestMapping(value = "/delete", method = RequestMethod.DELETE)
 	@CacheEvict(value={CacheConstant.SYS_DICT_CACHE, CacheConstant.SYS_ENABLE_DICT_CACHE}, allEntries=true)
 	public Result<SysDict> delete(@RequestParam(name="id",required=true) String id) {
diff --git a/jeecg-boot-master/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/wms/task/taskHeader/controller/TaskHeaderController.java b/jeecg-boot-master/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/wms/task/taskHeader/controller/TaskHeaderController.java
index 41df1d0..43c268e 100644
--- a/jeecg-boot-master/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/wms/task/taskHeader/controller/TaskHeaderController.java
+++ b/jeecg-boot-master/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/wms/task/taskHeader/controller/TaskHeaderController.java
@@ -112,6 +112,7 @@ public class TaskHeaderController extends JeecgController<TaskHeader, ITaskHeade
     @AutoLog(value = "任务表-添加")
     @ApiOperation(value="任务表-添加", notes="任务表-添加")
     @PostMapping(value = "/add")
+	@RequiresPermissions("taskHeader:add")
     public Result<String> add(@RequestBody TaskHeader taskHeader) {
         taskHeaderService.save(taskHeader);
         return Result.OK("添加成功!");
@@ -124,7 +125,8 @@ public class TaskHeaderController extends JeecgController<TaskHeader, ITaskHeade
      */
     @AutoLog(value = "任务表-编辑")
     @ApiOperation(value="任务表-编辑", notes="任务表-编辑")
-    @RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST})
+	@RequiresPermissions("taskHeader:edit")
+	@RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST})
     public Result<String> edit(@RequestBody TaskHeader taskHeader) {
         taskHeaderService.updateById(taskHeader);
         return Result.OK("编辑成功!");
@@ -137,6 +139,7 @@ public class TaskHeaderController extends JeecgController<TaskHeader, ITaskHeade
      */
     @AutoLog(value = "任务表-通过id删除")
     @ApiOperation(value="任务表-通过id删除", notes="任务表-通过id删除")
+	@RequiresPermissions("taskHeader:edit")
     @DeleteMapping(value = "/delete")
     public Result<String> delete(@RequestParam(name="id",required=true) String id) {
         taskHeaderService.delMain(id);
@@ -150,6 +153,7 @@ public class TaskHeaderController extends JeecgController<TaskHeader, ITaskHeade
      */
     @AutoLog(value = "任务表-批量删除")
     @ApiOperation(value="任务表-批量删除", notes="任务表-批量删除")
+	@RequiresPermissions("taskHeader:deleteBatch")
     @DeleteMapping(value = "/deleteBatch")
     public Result<String> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
         this.taskHeaderService.delBatchMain(Arrays.asList(ids.split(",")));
@@ -202,6 +206,7 @@ public class TaskHeaderController extends JeecgController<TaskHeader, ITaskHeade
 	@AutoLog(value = "任务详情-添加")
 	@ApiOperation(value="任务详情-添加", notes="任务详情-添加")
 	@PostMapping(value = "/addTaskDetail")
+	@RequiresPermissions("taskDetail:add")
 	public Result<String> addTaskDetail(@RequestBody TaskDetail taskDetail) {
 		taskDetailService.save(taskDetail);
 		return Result.OK("添加成功!");
@@ -214,6 +219,7 @@ public class TaskHeaderController extends JeecgController<TaskHeader, ITaskHeade
 	 */
 	@AutoLog(value = "任务详情-编辑")
 	@ApiOperation(value="任务详情-编辑", notes="任务详情-编辑")
+	@RequiresPermissions("taskDetail:edit")
 	@RequestMapping(value = "/editTaskDetail", method = {RequestMethod.PUT,RequestMethod.POST})
 	public Result<String> editTaskDetail(@RequestBody TaskDetail taskDetail) {
 		taskDetailService.updateById(taskDetail);
@@ -227,6 +233,7 @@ public class TaskHeaderController extends JeecgController<TaskHeader, ITaskHeade
 	 */
 	@AutoLog(value = "任务详情-通过id删除")
 	@ApiOperation(value="任务详情-通过id删除", notes="任务详情-通过id删除")
+	@RequiresPermissions("taskDetail:delete")
 	@DeleteMapping(value = "/deleteTaskDetail")
 	public Result<String> deleteTaskDetail(@RequestParam(name="id",required=true) String id) {
 		taskDetailService.removeById(id);
@@ -240,6 +247,7 @@ public class TaskHeaderController extends JeecgController<TaskHeader, ITaskHeade
 	 */
 	@AutoLog(value = "任务详情-批量删除")
 	@ApiOperation(value="任务详情-批量删除", notes="任务详情-批量删除")
+	@RequiresPermissions("taskDetail:deleteBatch")
 	@DeleteMapping(value = "/deleteBatchTaskDetail")
 	public Result<String> deleteBatchTaskDetail(@RequestParam(name="ids",required=true) String ids) {
 	    this.taskDetailService.removeByIds(Arrays.asList(ids.split(",")));
@@ -324,6 +332,7 @@ public class TaskHeaderController extends JeecgController<TaskHeader, ITaskHeade
 	 @AutoLog(value = "任务表-完成任务")
 	 @ApiOperation(value="任务表-完成任务", notes="任务表-完成任务")
 	 @PostMapping( "/completeTaskByWMS")
+	 @RequiresPermissions("taskHeader:completeTask")
 	 public Result completeTaskByWMS(@RequestBody TaskHeader taskHeader){
 		if(taskHeader == null) {
 			 return Result.error("taskHeader不能为空");
@@ -346,6 +355,7 @@ public class TaskHeaderController extends JeecgController<TaskHeader, ITaskHeade
 	 @ApiOperation(value="任务表-取消任务", notes="任务表-取消任务")
 	 @PostMapping( "/cancelTask")
 	 @ResponseBody
+	 @RequiresPermissions("taskHeader:cancelTask")
 	 public Result cancelTask(@RequestParam(name="ids",required=true) String ids) {
 		 if (StringUtils.isEmpty(ids)) {
 			 return Result.error("taskId不能为空");
@@ -370,6 +380,7 @@ public class TaskHeaderController extends JeecgController<TaskHeader, ITaskHeade
 	 @AutoLog(value = "任务表-执行任务")
 	 @ApiOperation(value="任务表-执行任务", notes="任务表-执行任务")
 	 @PostMapping( "/execute")
+	 @RequiresPermissions("taskHeader:executeTask")
 	 public Result execute(@RequestBody  TaskHeader taskHeader) {
 		 {
 			 if (taskHeader == null) {
@@ -393,6 +404,7 @@ public class TaskHeaderController extends JeecgController<TaskHeader, ITaskHeade
 	 @AutoLog(value = "任务表-创建空托入库任务")
 	 @ApiOperation(value="任务表-创建空托入库任务", notes="任务表-创建空托入库任务")
 	 @PostMapping( "/createEmptyIn")
+	 @RequiresPermissions("taskHeader:emptyIn")
 	 public Result createEmptyIn(@RequestBody  TaskHeader taskHeader, HttpServletRequest req) {
 	 	String contaienrCode = taskHeader.getContainerCode();
 	 	String toLocationCode = taskHeader.getToLocationCode();
@@ -413,6 +425,7 @@ public class TaskHeaderController extends JeecgController<TaskHeader, ITaskHeade
 	  */
 	 @AutoLog(value = "任务表-创建空托出库任务")
 	 @ApiOperation(value="任务表-创建空托出库任务", notes="任务表-创建空托出库任务")
+	 @RequiresPermissions("taskHeader:emptyOut")
 	 @PostMapping( "/createEmptyOut")
 	 public Result createEmptyOut(@RequestBody  TaskHeader taskHeader, HttpServletRequest req) {
 		 String contaienrCode = taskHeader.getContainerCode();
@@ -434,6 +447,7 @@ public class TaskHeaderController extends JeecgController<TaskHeader, ITaskHeade
 	  */
 	 @AutoLog(value = "任务表-创建移库任务")
 	 @ApiOperation(value="任务表-创建移库任务", notes="任务表-创建移库任务")
+	 @RequiresPermissions("taskHeader:transfer")
 	 @PostMapping( "/createTransferTask")
 	 public Result createTransferTask(@RequestBody  TaskHeader taskHeader, HttpServletRequest req) {
 		 String fromLocationCode = taskHeader.getFromLocationCode();
@@ -456,6 +470,7 @@ public class TaskHeaderController extends JeecgController<TaskHeader, ITaskHeade
 	 @AutoLog(value = "任务表-创建出库查看任务")
 	 @ApiOperation(value="任务表-创建出库查看任务", notes="任务表-创建出库查看任务")
 	 @PostMapping( "/createCheckOutTask")
+	 @RequiresPermissions("taskHeader:checkOut")
 	 public Result createCheckOutTask(@RequestBody  TaskHeader taskHeader, HttpServletRequest req) {
 		 String containerCode = taskHeader.getContainerCode();
 		 String toPortCode = taskHeader.getToPortCode();
@@ -476,6 +491,7 @@ public class TaskHeaderController extends JeecgController<TaskHeader, ITaskHeade
 	  */
 	 @AutoLog(value = "任务表-创建跨站任务")
 	 @ApiOperation(value="任务表-创建跨站任务", notes="任务表-创建跨站任务")
+	 @RequiresPermissions("taskHeader:overStation")
 	 @PostMapping( "/createOverStationTask")
 	 public Result createOverStationTask(@RequestBody  TaskHeader taskHeader, HttpServletRequest req) {
 		 String containerCode = taskHeader.getContainerCode();
@@ -499,6 +515,7 @@ public class TaskHeaderController extends JeecgController<TaskHeader, ITaskHeade
 	 @AutoLog(value = "任务表-创建空托盘组入库")
 	 @ApiOperation(value="任务表-创建空托盘组入库", notes="任务表-创建空托盘组入库")
 	 @PostMapping( "/createManyEmptyIn")
+	 @RequiresPermissions("taskHeader:manyEmptyIn")
 	 public Result createManyEmptyIn(@RequestBody  TaskHeader taskHeader, HttpServletRequest req) {
 		 String containerCode = taskHeader.getContainerCode();
 		 String toLocationCode = taskHeader.getToLocationCode();
@@ -518,6 +535,7 @@ public class TaskHeaderController extends JeecgController<TaskHeader, ITaskHeade
 	  */
 	 @AutoLog(value = "任务表-创建空托盘组出库")
 	 @ApiOperation(value="任务表-创建空托盘组出库", notes="任务表-创建空托盘组出库")
+	 @RequiresPermissions("taskHeader:manyEmptyOut")
 	 @PostMapping( "/createManyEmptyOut")
 	 public Result createManyEmptyOut(@RequestBody  TaskHeader taskHeader, HttpServletRequest req) {
 		 String containerCode = taskHeader.getContainerCode();