From 63e6b8736d1dcebcecd473a58eb39acb7797d444 Mon Sep 17 00:00:00 2001
From: youjie <272855983@qq.com>
Date: Mon, 27 Feb 2023 10:02:47 +0800
Subject: [PATCH] 增加取消组盘   取消配盘功能

---
 ant-design-vue-jeecg/src/views/system/receipt/ReceiptContainerHeaderList.vue                                                               |   4 ++--
 ant-design-vue-jeecg/src/views/system/shipment/ShipmentContainerHeaderList.vue                                                             |  12 ++++++------
 huaheng-wms-core/pom.xml                                                                                                                   |   8 +++++++-
 huaheng-wms-core/src/main/java/org/jeecg/modules/wms/receipt/receiptContainerHeader/service/impl/ReceiptContainerHeaderServiceImpl.java    |  13 +++++++------
 huaheng-wms-core/src/main/java/org/jeecg/modules/wms/receipt/receiptHeader/controller/ReceiptHeaderController.java                         |  26 ++------------------------
 huaheng-wms-core/src/main/java/org/jeecg/modules/wms/receipt/receiptHeader/entity/ReceiptDetail.java                                       |  14 +++++++-------
 huaheng-wms-core/src/main/java/org/jeecg/modules/wms/receipt/receiptHeader/service/IReceiptDetailService.java                              |  10 +++++++---
 huaheng-wms-core/src/main/java/org/jeecg/modules/wms/receipt/receiptHeader/service/impl/ReceiptDetailServiceImpl.java                      |  67 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--------
 huaheng-wms-core/src/main/java/org/jeecg/modules/wms/shipment/shipmentContainerHeader/controller/ShipmentContainerHeaderController.java    |  58 ++++++++++++++++++++++++++++++++--------------------------
 huaheng-wms-core/src/main/java/org/jeecg/modules/wms/shipment/shipmentContainerHeader/service/IShipmentContainerHeaderService.java         |  21 +++++++++++++++++----
 huaheng-wms-core/src/main/java/org/jeecg/modules/wms/shipment/shipmentContainerHeader/service/impl/ShipmentContainerHeaderServiceImpl.java |  84 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----------------
 huaheng-wms-core/src/main/java/org/jeecg/modules/wms/task/taskHeader/entity/TaskHeader.java                                                |   3 +++
 huaheng-wms-core/src/main/java/org/jeecg/modules/wms/task/taskHeader/service/impl/TaskHeaderServiceImpl.java                               | 146 ++++++++++++++++++++++++++++++++++++++++++++++++++++++--------------------------------------------------------------------------------------------
 huaheng-wms-core/src/main/java/org/jeecg/utils/interceptor/HuahengBatisInterceptor.java                                                    |   3 ++-
 14 files changed, 273 insertions(+), 196 deletions(-)

diff --git a/ant-design-vue-jeecg/src/views/system/receipt/ReceiptContainerHeaderList.vue b/ant-design-vue-jeecg/src/views/system/receipt/ReceiptContainerHeaderList.vue
index 6482f46..7f7dd7a 100644
--- a/ant-design-vue-jeecg/src/views/system/receipt/ReceiptContainerHeaderList.vue
+++ b/ant-design-vue-jeecg/src/views/system/receipt/ReceiptContainerHeaderList.vue
@@ -122,8 +122,8 @@
           <a v-if="record.status == 0 && record.taskType == 200" @click="selectPort(record)">生成任务</a>
           <a v-else-if="record.status == 0" @click="createTask(record)">生成任务</a>
           <a-divider type="vertical"/>
-          <a-popconfirm v-if="record.status == 0" v-has="'receiptContainerHeader:delete'" title="确定取消配盘吗?" @confirm="() => handleDelete(record.id)">
-            <a>取消配盘</a>
+          <a-popconfirm v-if="record.status == 0" v-has="'receiptContainerHeader:delete'" title="确定取消组盘吗?" @confirm="() => handleDelete(record.id)">
+            <a>取消组盘</a>
           </a-popconfirm>
           <a-divider type="vertical"/>
           <a-dropdown>
diff --git a/ant-design-vue-jeecg/src/views/system/shipment/ShipmentContainerHeaderList.vue b/ant-design-vue-jeecg/src/views/system/shipment/ShipmentContainerHeaderList.vue
index e23ff96..f061e06 100644
--- a/ant-design-vue-jeecg/src/views/system/shipment/ShipmentContainerHeaderList.vue
+++ b/ant-design-vue-jeecg/src/views/system/shipment/ShipmentContainerHeaderList.vue
@@ -124,17 +124,17 @@
         </template>
 
         <span slot="action" slot-scope="text, record">
-          <a v-has="'shipmentContainerHeader:edit'" @click="handleEdit(record)">编辑</a>
-          <a-divider type="vertical"/>
           <a v-if="record.status == 0" @click="selectPort(record)">生成任务</a>
           <a-divider type="vertical"/>
+          <a-popconfirm v-if="record.status == 0" v-has="'shipmentContainerHeader:delete'" title="确定取消配盘吗?" @confirm="() => handleDelete(record.id)">
+            <a>取消配盘</a>
+          </a-popconfirm>
+          <a-divider type="vertical"/>
           <a-dropdown>
             <a class="ant-dropdown-link">更多 <a-icon type="down"/></a>
-            <a-menu slot="overlay" v-has="'shipmentContainerHeader:delete'">
+            <a-menu slot="overlay" >
               <a-menu-item>
-                <a-popconfirm title="确定删除吗?" @confirm="() => handleDelete(record.id)">
-                  <a>删除</a>
-                </a-popconfirm>
+              <a v-has="'receiptContainerHeader:edit'" @click="handleEdit(record)">编辑</a>
               </a-menu-item>
             </a-menu>
           </a-dropdown>
diff --git a/huaheng-wms-core/pom.xml b/huaheng-wms-core/pom.xml
index a87c481..aef757b 100644
--- a/huaheng-wms-core/pom.xml
+++ b/huaheng-wms-core/pom.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0"?>
 <project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"
-    xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+         xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
     <modelVersion>4.0.0</modelVersion>
 
     <parent>
@@ -79,6 +79,12 @@
             <artifactId>jimureport-spring-boot-starter</artifactId>
             <version>1.4.32</version>
         </dependency>
+
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-validation</artifactId>
+        </dependency>
+
     </dependencies>
 
     <build>
diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/receipt/receiptContainerHeader/service/impl/ReceiptContainerHeaderServiceImpl.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/receipt/receiptContainerHeader/service/impl/ReceiptContainerHeaderServiceImpl.java
index e6607cd..0c5a8f6 100644
--- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/receipt/receiptContainerHeader/service/impl/ReceiptContainerHeaderServiceImpl.java
+++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/receipt/receiptContainerHeader/service/impl/ReceiptContainerHeaderServiceImpl.java
@@ -338,12 +338,13 @@ public class ReceiptContainerHeaderServiceImpl extends ServiceImpl<ReceiptContai
         List<ReceiptContainerDetail> receiptContainerDetailList = receiptContainerDetailService.getReceiptContainerDetailListByHeaderId(id);
         for (ReceiptContainerDetail receiptContainerDetail : receiptContainerDetailList) {
             ReceiptDetail receiptDetail = receiptDetailService.getById(receiptContainerDetail.getReceiptDetailId());
-            if (receiptDetail != null) {
-                receiptDetail.setStatus(QuantityConstant.RECEIPT_HEADER_BUILD);
-                receiptDetail.setTaskQty(receiptDetail.getTaskQty().subtract(receiptContainerDetail.getQty()));
-                if (!receiptDetailService.updateById(receiptDetail)) {
-                    throw new ServiceException("取消组盘失败, 更新入库明细失败id是" + receiptContainerDetail.getReceiptDetailId());
-                }
+            if (receiptDetail == null) {
+                throw new ServiceException("取消组盘失败, 没有找到入库组盘详情id是" + receiptContainerDetail.getReceiptDetailId());
+            }
+            receiptDetail.setStatus(QuantityConstant.RECEIPT_HEADER_BUILD);
+            receiptDetail.setTaskQty(receiptDetail.getTaskQty().subtract(receiptContainerDetail.getQty()));
+            if (!receiptDetailService.updateById(receiptDetail)) {
+                throw new ServiceException("取消组盘失败, 更新入库明细失败id是" + receiptContainerDetail.getReceiptDetailId());
             }
             if (!receiptContainerDetailService.removeById(receiptContainerDetail.getId())) {
                 throw new ServiceException("取消组盘失败, 删除入库组盘明细表失败id是" + receiptContainerDetail.getId());
diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/receipt/receiptHeader/controller/ReceiptHeaderController.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/receipt/receiptHeader/controller/ReceiptHeaderController.java
index 0df65d7..fafc6ce 100644
--- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/receipt/receiptHeader/controller/ReceiptHeaderController.java
+++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/receipt/receiptHeader/controller/ReceiptHeaderController.java
@@ -42,7 +42,6 @@ import org.springframework.web.multipart.MultipartFile;
 import org.springframework.web.multipart.MultipartHttpServletRequest;
 import org.springframework.web.servlet.ModelAndView;
 
-import com.aliyun.oss.ServiceException;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -142,7 +141,6 @@ public class ReceiptHeaderController extends JeecgController<ReceiptHeader, IRec
     @DeleteMapping(value = "/delete")
     public Result<String> delete(@RequestParam(name = "id", required = true) String id) {
         receiptHeaderService.delMain(id, QuantityConstant.WMS_DELETE_RECEIPT);
-
         return Result.OK("删除成功!");
     }
 
@@ -251,26 +249,7 @@ public class ReceiptHeaderController extends JeecgController<ReceiptHeader, IRec
     @RequiresPermissions("receiptDetail:delete")
     @DeleteMapping(value = "/deleteReceiptDetail")
     public Result<String> deleteReceiptDetail(@RequestParam(name = "id", required = true) String id) {
-        ReceiptDetail receiptDetail = receiptDetailService.getById(id);
-        if (receiptDetail == null) {
-            return Result.error("删除失败, 没有找到入库单详情");
-        }
-        ReceiptHeader receiptHeader = receiptHeaderService.getById(receiptDetail.getReceiptId());
-        if (receiptHeader == null) {
-            return Result.error("删除失败, 没有找到入库单");
-        }
-        if (receiptHeader.getFirstStatus().intValue() != QuantityConstant.RECEIPT_HEADER_BUILD) {
-            return Result.error("删除失败, 入库单必须是新建状态才能删除详情");
-        }
-        boolean success = receiptDetailService.removeById(id);
-        if (!success) {
-            throw new ServiceException("删除详情失败");
-        }
-        success = receiptHeaderService.updateReceiptHeader(receiptDetail.getReceiptId());
-        if (!success) {
-            throw new ServiceException("更新入库单头数量失败");
-        }
-        return Result.OK("删除成功!");
+        return receiptDetailService.removeDetailById(id);
     }
 
     /**
@@ -283,8 +262,7 @@ public class ReceiptHeaderController extends JeecgController<ReceiptHeader, IRec
     @RequiresPermissions("receiptDetail:deleteBatch")
     @DeleteMapping(value = "/deleteBatchReceiptDetail")
     public Result<String> deleteBatchReceiptDetail(@RequestParam(name = "ids", required = true) String ids) {
-        this.receiptDetailService.removeByIds(Arrays.asList(ids.split(",")));
-        return Result.OK("批量删除成功!");
+        return receiptDetailService.removeDetailListById(Arrays.asList(ids.split(",")));
     }
 
     /**
diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/receipt/receiptHeader/entity/ReceiptDetail.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/receipt/receiptHeader/entity/ReceiptDetail.java
index 6182138..47dda70 100644
--- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/receipt/receiptHeader/entity/ReceiptDetail.java
+++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/receipt/receiptHeader/entity/ReceiptDetail.java
@@ -1,18 +1,18 @@
 package org.jeecg.modules.wms.receipt.receiptHeader.entity;
 
 import java.io.Serializable;
+import java.util.Date;
+
+import org.jeecg.common.aspect.annotation.Dict;
+import org.jeecgframework.poi.excel.annotation.Excel;
+
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
-import org.jeecg.common.aspect.annotation.Dict;
-import lombok.Data;
-import com.fasterxml.jackson.annotation.JsonFormat;
-import org.springframework.format.annotation.DateTimeFormat;
-import org.jeecgframework.poi.excel.annotation.Excel;
-import java.util.Date;
+
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
-import java.io.UnsupportedEncodingException;
+import lombok.Data;
 
 /**
  * @Description: 入库单详情
diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/receipt/receiptHeader/service/IReceiptDetailService.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/receipt/receiptHeader/service/IReceiptDetailService.java
index ba908fd..7f575a7 100644
--- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/receipt/receiptHeader/service/IReceiptDetailService.java
+++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/receipt/receiptHeader/service/IReceiptDetailService.java
@@ -1,11 +1,11 @@
 package org.jeecg.modules.wms.receipt.receiptHeader.service;
 
-import com.baomidou.mybatisplus.extension.service.IService;
+import java.util.List;
+
 import org.jeecg.common.api.vo.Result;
 import org.jeecg.modules.wms.receipt.receiptHeader.entity.ReceiptDetail;
-import org.jeecg.modules.wms.receipt.receiptHeader.entity.ReceiptHeader;
 
-import java.util.List;
+import com.baomidou.mybatisplus.extension.service.IService;
 
 /**
  * @Description: 入库单详情
@@ -18,4 +18,8 @@ public interface IReceiptDetailService extends IService<ReceiptDetail> {
     public List<ReceiptDetail> selectByMainId(String mainId);
 
     public Result saveReceiptDetail(ReceiptDetail receiptDetail);
+
+    public Result removeDetailById(String id);
+
+    public Result removeDetailListById(List<String> idList);
 }
diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/receipt/receiptHeader/service/impl/ReceiptDetailServiceImpl.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/receipt/receiptHeader/service/impl/ReceiptDetailServiceImpl.java
index 32199d6..3ec1ec1 100644
--- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/receipt/receiptHeader/service/impl/ReceiptDetailServiceImpl.java
+++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/receipt/receiptHeader/service/impl/ReceiptDetailServiceImpl.java
@@ -1,7 +1,11 @@
 package org.jeecg.modules.wms.receipt.receiptHeader.service.impl;
 
-import com.alibaba.fastjson.JSON;
-import com.aliyun.oss.ServiceException;
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.annotation.Resource;
+
 import org.jeecg.common.api.vo.Result;
 import org.jeecg.modules.wms.config.material.entity.Material;
 import org.jeecg.modules.wms.config.material.service.IMaterialService;
@@ -13,19 +17,17 @@ import org.jeecg.modules.wms.receipt.receiptHeader.service.IReceiptHeaderService
 import org.jeecg.utils.HuahengJwtUtil;
 import org.jeecg.utils.StringUtils;
 import org.jeecg.utils.constant.QuantityConstant;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
-import java.util.ArrayList;
-import java.util.List;
+import com.alibaba.fastjson.JSON;
+import com.aliyun.oss.ServiceException;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 
 import cn.monitor4all.logRecord.annotation.OperationLog;
 import cn.monitor4all.logRecord.context.LogRecordContext;
 
-import org.springframework.beans.factory.annotation.Autowired;
-
-import javax.annotation.Resource;
-
 /**
  * @Description: 入库单详情
  * @Author:      jeecg-boot
@@ -50,6 +52,16 @@ public class ReceiptDetailServiceImpl extends ServiceImpl<ReceiptDetailMapper, R
     }
 
     @Override
+    public boolean save(ReceiptDetail entity) {
+        BigDecimal qty = entity.getQty();
+        if (qty.compareTo(BigDecimal.ZERO) < 0) {
+            throw new ServiceException("单据数量不能小于0");
+        }
+        return super.save(entity);
+    }
+
+    @Override
+    @Transactional(rollbackFor = ServiceException.class)
     @OperationLog(bizId = "''", bizType = "'入库单追踪'", tag = "'入库详情添加'", extra = "#extraJsonString", msg = "''", operatorId = "#username", recordReturnValue = true)
     public Result saveReceiptDetail(ReceiptDetail receiptDetail) {
         ReceiptHeader receiptHeader = receiptHeaderService.getById(receiptDetail.getReceiptId());
@@ -95,4 +107,43 @@ public class ReceiptDetailServiceImpl extends ServiceImpl<ReceiptDetailMapper, R
         LogRecordContext.putVariable("extraJsonString", JSON.toJSONString(receiptDetailList));
         return Result.OK("添加成功!");
     }
+
+    @Override
+    @Transactional(rollbackFor = ServiceException.class)
+    public Result removeDetailById(String id) {
+        ReceiptDetail receiptDetail = receiptDetailService.getById(id);
+        if (receiptDetail == null) {
+            return Result.error("删除失败, 没有找到入库单详情");
+        }
+        BigDecimal taskQty = receiptDetail.getTaskQty();
+        if (taskQty.compareTo(BigDecimal.ZERO) != 0) {
+            return Result.error("删除失败, 收货数量不为0");
+        }
+        ReceiptHeader receiptHeader = receiptHeaderService.getById(receiptDetail.getReceiptId());
+        if (receiptHeader == null) {
+            return Result.error("删除失败, 没有找到入库单");
+        }
+        if (receiptHeader.getFirstStatus().intValue() != QuantityConstant.RECEIPT_HEADER_BUILD) {
+            return Result.error("删除失败, 入库单必须是新建状态才能删除详情");
+        }
+        boolean success = receiptDetailService.removeById(id);
+        if (!success) {
+            throw new ServiceException("删除详情失败");
+        }
+        success = receiptHeaderService.updateReceiptHeader(receiptDetail.getReceiptId());
+        if (!success) {
+            throw new ServiceException("更新入库单头数量失败");
+        }
+        return Result.OK("删除成功!");
+    }
+
+    @Override
+    @Transactional(rollbackFor = ServiceException.class)
+    public Result removeDetailListById(List<String> idList) {
+        Result result = null;
+        for (String id : idList) {
+            result = removeDetailById(id);
+        }
+        return result;
+    }
 }
diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/shipment/shipmentContainerHeader/controller/ShipmentContainerHeaderController.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/shipment/shipmentContainerHeader/controller/ShipmentContainerHeaderController.java
index 0401ec7..6386211 100644
--- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/shipment/shipmentContainerHeader/controller/ShipmentContainerHeaderController.java
+++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/shipment/shipmentContainerHeader/controller/ShipmentContainerHeaderController.java
@@ -1,40 +1,44 @@
 package org.jeecg.modules.wms.shipment.shipmentContainerHeader.controller;
 
-import org.apache.shiro.authz.annotation.RequiresPermissions;
-import org.jeecg.common.system.query.QueryGenerator;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import lombok.extern.slf4j.Slf4j;
-import org.jeecg.common.system.base.controller.JeecgController;
-import org.jeecg.common.api.vo.Result;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.*;
+import java.io.IOException;
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
-import org.springframework.web.servlet.ModelAndView;
-import java.util.Arrays;
+
+import org.apache.shiro.SecurityUtils;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.jeecg.common.api.vo.Result;
+import org.jeecg.common.aspect.annotation.AutoLog;
+import org.jeecg.common.system.base.controller.JeecgController;
+import org.jeecg.common.system.query.QueryGenerator;
+import org.jeecg.common.system.vo.LoginUser;
 import org.jeecg.common.util.oConvertUtils;
 import org.jeecg.modules.wms.shipment.shipmentContainerHeader.entity.ShipmentContainerDetail;
 import org.jeecg.modules.wms.shipment.shipmentContainerHeader.entity.ShipmentContainerHeader;
-import org.jeecg.modules.wms.shipment.shipmentContainerHeader.service.IShipmentContainerHeaderService;
 import org.jeecg.modules.wms.shipment.shipmentContainerHeader.service.IShipmentContainerDetailService;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-import org.jeecg.common.aspect.annotation.AutoLog;
-import org.apache.shiro.SecurityUtils;
-import org.jeecg.common.system.vo.LoginUser;
+import org.jeecg.modules.wms.shipment.shipmentContainerHeader.service.IShipmentContainerHeaderService;
 import org.jeecgframework.poi.excel.ExcelImportUtil;
 import org.jeecgframework.poi.excel.def.NormalExcelConstants;
 import org.jeecgframework.poi.excel.entity.ExportParams;
 import org.jeecgframework.poi.excel.entity.ImportParams;
 import org.jeecgframework.poi.excel.view.JeecgEntityExcelView;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
 import org.springframework.web.multipart.MultipartHttpServletRequest;
-import java.io.IOException;
-import java.util.List;
-import java.util.Map;
-import java.util.stream.Collectors;
+import org.springframework.web.servlet.ModelAndView;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
 
 /**
  * @Description: 出库组盘
@@ -114,8 +118,8 @@ public class ShipmentContainerHeaderController extends JeecgController<ShipmentC
     @RequiresPermissions("shipmentContainerHeader:delete")
     @DeleteMapping(value = "/delete")
     public Result<String> delete(@RequestParam(name = "id", required = true) String id) {
-        shipmentContainerHeaderService.delMain(id);
-        return Result.OK("删除成功!");
+        Result result = shipmentContainerHeaderService.cancelCombine(Integer.parseInt(id));
+        return result;
     }
 
     /**
@@ -128,8 +132,10 @@ public class ShipmentContainerHeaderController extends JeecgController<ShipmentC
     @RequiresPermissions("shipmentContainerHeader:deleteBatch")
     @DeleteMapping(value = "/deleteBatch")
     public Result<String> deleteBatch(@RequestParam(name = "ids", required = true) String ids) {
-        this.shipmentContainerHeaderService.delBatchMain(Arrays.asList(ids.split(",")));
-        return Result.OK("批量删除成功!");
+        List<String> idList = Arrays.asList(ids.split(","));
+        List<Integer> idInterList = idList.stream().map(Integer::parseInt).collect(Collectors.toList());
+        Result result = shipmentContainerHeaderService.cancelCombine(idInterList);
+        return result;
     }
 
     /**
diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/shipment/shipmentContainerHeader/service/IShipmentContainerHeaderService.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/shipment/shipmentContainerHeader/service/IShipmentContainerHeaderService.java
index 6094e9f..e72b994 100644
--- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/shipment/shipmentContainerHeader/service/IShipmentContainerHeaderService.java
+++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/shipment/shipmentContainerHeader/service/IShipmentContainerHeaderService.java
@@ -1,13 +1,14 @@
 package org.jeecg.modules.wms.shipment.shipmentContainerHeader.service;
 
-import org.jeecg.modules.wms.shipment.shipmentContainerHeader.entity.ShipmentContainerDetail;
-import org.jeecg.modules.wms.shipment.shipmentContainerHeader.entity.ShipmentContainerHeader;
-import com.baomidou.mybatisplus.extension.service.IService;
-import org.springframework.beans.factory.annotation.Autowired;
 import java.io.Serializable;
 import java.util.Collection;
 import java.util.List;
 
+import org.jeecg.common.api.vo.Result;
+import org.jeecg.modules.wms.shipment.shipmentContainerHeader.entity.ShipmentContainerHeader;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+
 /**
  * @Description: 出库组盘
  * @Author:      jeecg-boot
@@ -41,4 +42,16 @@ public interface IShipmentContainerHeaderService extends IService<ShipmentContai
      * @return
      */
     boolean cancelShipmentTask(Integer shipmentContainerHeaderId);
+
+    /**
+     * 取消配盘
+     * @return
+     */
+    Result cancelCombine(Integer id);
+
+    /**
+     * 取消配盘
+     * @return
+     */
+    Result cancelCombine(List<Integer> ids);
 }
diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/shipment/shipmentContainerHeader/service/impl/ShipmentContainerHeaderServiceImpl.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/shipment/shipmentContainerHeader/service/impl/ShipmentContainerHeaderServiceImpl.java
index 90a6619..d54fbae 100644
--- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/shipment/shipmentContainerHeader/service/impl/ShipmentContainerHeaderServiceImpl.java
+++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/shipment/shipmentContainerHeader/service/impl/ShipmentContainerHeaderServiceImpl.java
@@ -1,33 +1,34 @@
 package org.jeecg.modules.wms.shipment.shipmentContainerHeader.service.impl;
 
-import com.aliyun.oss.ServiceException;
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.baomidou.mybatisplus.core.toolkit.Wrappers;
-import org.jeecg.modules.wms.receipt.receiptContainerHeader.entity.ReceiptContainerDetail;
-import org.jeecg.modules.wms.receipt.receiptHeader.entity.ReceiptDetail;
-import org.jeecg.modules.wms.receipt.receiptHeader.entity.ReceiptHeader;
-import org.jeecg.modules.wms.shipment.shipmentContainerHeader.entity.ShipmentContainerHeader;
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
+import java.util.stream.Collectors;
+
+import javax.annotation.Resource;
+
+import org.jeecg.common.api.vo.Result;
+import org.jeecg.modules.wms.inventory.inventoryHeader.entity.InventoryDetail;
+import org.jeecg.modules.wms.inventory.inventoryHeader.service.IInventoryDetailService;
 import org.jeecg.modules.wms.shipment.shipmentContainerHeader.entity.ShipmentContainerDetail;
+import org.jeecg.modules.wms.shipment.shipmentContainerHeader.entity.ShipmentContainerHeader;
 import org.jeecg.modules.wms.shipment.shipmentContainerHeader.mapper.ShipmentContainerDetailMapper;
 import org.jeecg.modules.wms.shipment.shipmentContainerHeader.mapper.ShipmentContainerHeaderMapper;
 import org.jeecg.modules.wms.shipment.shipmentContainerHeader.service.IShipmentContainerDetailService;
 import org.jeecg.modules.wms.shipment.shipmentContainerHeader.service.IShipmentContainerHeaderService;
 import org.jeecg.modules.wms.shipment.shipmentHeader.entity.ShipmentDetail;
-import org.jeecg.modules.wms.shipment.shipmentHeader.entity.ShipmentHeader;
 import org.jeecg.modules.wms.shipment.shipmentHeader.service.IShipmentDetailService;
 import org.jeecg.modules.wms.shipment.shipmentHeader.service.IShipmentHeaderService;
 import org.jeecg.utils.constant.QuantityConstant;
-import org.springframework.stereotype.Service;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
-import javax.annotation.Resource;
-import java.io.Serializable;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Collection;
-import java.util.stream.Collectors;
+import com.aliyun.oss.ServiceException;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 
 /**
  * @Description: 出库组盘
@@ -49,6 +50,8 @@ public class ShipmentContainerHeaderServiceImpl extends ServiceImpl<ShipmentCont
     private IShipmentHeaderService shipmentHeaderService;
     @Resource
     private IShipmentContainerDetailService shipmentContainerDetailService;
+    @Resource
+    private IInventoryDetailService inventoryDetailService;
 
     @Override
     @Transactional
@@ -164,4 +167,53 @@ public class ShipmentContainerHeaderServiceImpl extends ServiceImpl<ShipmentCont
         return true;
     }
 
+    @Override
+    @Transactional(rollbackFor = ServiceException.class)
+    public Result cancelCombine(Integer id) {
+        ShipmentContainerHeader shipmentContainerHeader = this.getById(id);
+        if (shipmentContainerHeader == null) {
+            return Result.error("取消出库配盘失败, 没有找到出库组盘头id是" + id);
+        }
+        int status = shipmentContainerHeader.getStatus();
+        if (status >= QuantityConstant.SHIPMENT_CONTAINER_TASK) {
+            return Result.error("取消出库配盘失败,已经生成出库任务");
+        }
+        List<ShipmentContainerDetail> shipmentContainerDetailList = shipmentContainerDetailService.getShipmentContainerDetailListByHeaderId(id);
+        for (ShipmentContainerDetail shipmentContainerDetail : shipmentContainerDetailList) {
+            ShipmentDetail shipmentDetail = shipmentDetailService.getById(shipmentContainerDetail.getShipmentDetailId());
+            if (shipmentDetail == null) {
+                throw new ServiceException("取消出库配盘失败, 没有找到出库单详情id是" + shipmentContainerDetail.getShipmentDetailId());
+            }
+            shipmentDetail.setStatus(QuantityConstant.SHIPMENT_HEADER_BUILD);
+            shipmentDetail.setTaskQty(shipmentDetail.getTaskQty().subtract(shipmentContainerDetail.getQty()));
+            if (!shipmentDetailService.updateById(shipmentDetail)) {
+                throw new ServiceException("取消出库配盘失败, 更新出库明细失败id是" + shipmentContainerDetail.getShipmentDetailId());
+            }
+            if (!shipmentContainerDetailService.removeById(shipmentContainerDetail.getId())) {
+                throw new ServiceException("取消出库配盘失败, 删除出库组盘明细表失败id是" + shipmentContainerDetail.getId());
+            }
+            if (!shipmentHeaderService.updateShipmentHeaderStatus(shipmentDetail.getShipmentId())) {
+                throw new ServiceException("取消出库配盘失败, 更新出库单头失败");
+            }
+            InventoryDetail inventoryDetail = inventoryDetailService.getById(shipmentContainerDetail.getInventoryDetailId());
+            inventoryDetail.setTaskQty(inventoryDetail.getTaskQty().subtract(shipmentContainerDetail.getQty()));
+            if (!inventoryDetailService.updateById(inventoryDetail)) {
+                throw new ServiceException("取消出库配盘失败, 解锁库存详情失败");
+            }
+        }
+        if (!this.removeById(id)) {
+            throw new ServiceException("取消出库配盘失败, 删除出库组盘头表失败id是" + id);
+        }
+        return Result.ok("取消配盘成功");
+    }
+
+    @Override
+    public Result cancelCombine(List<Integer> ids) {
+        Result result = null;
+        for (Integer id : ids) {
+            result = cancelCombine(id);
+        }
+        return result;
+    }
+
 }
diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/task/taskHeader/entity/TaskHeader.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/task/taskHeader/entity/TaskHeader.java
index 031a0b9..226c0e3 100644
--- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/task/taskHeader/entity/TaskHeader.java
+++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/task/taskHeader/entity/TaskHeader.java
@@ -3,6 +3,8 @@ package org.jeecg.modules.wms.task.taskHeader.entity;
 import java.io.Serializable;
 import java.util.Date;
 
+import javax.validation.constraints.NotEmpty;
+
 import org.jeecg.common.aspect.annotation.Dict;
 import org.jeecgframework.poi.excel.annotation.Excel;
 
@@ -45,6 +47,7 @@ public class TaskHeader implements Serializable {
     /** 仓库 */
     @Excel(name = "仓库", width = 15)
     @ApiModelProperty(value = "仓库")
+    @NotEmpty(message = "仓库编码不能为空")
     private String warehouseCode;
     /** 货主 */
     @Excel(name = "货主", width = 15)
diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/task/taskHeader/service/impl/TaskHeaderServiceImpl.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/task/taskHeader/service/impl/TaskHeaderServiceImpl.java
index fb9311c..bf3bc07 100644
--- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/task/taskHeader/service/impl/TaskHeaderServiceImpl.java
+++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/task/taskHeader/service/impl/TaskHeaderServiceImpl.java
@@ -6,16 +6,13 @@ import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Date;
 import java.util.List;
-import java.util.concurrent.CopyOnWriteArrayList;
 import java.util.stream.Collectors;
 
 import javax.annotation.Resource;
 
-import org.apache.poi.hpsf.Decimal;
 import org.apache.shiro.SecurityUtils;
 import org.jeecg.common.api.vo.Result;
 import org.jeecg.common.system.vo.LoginUser;
-import org.jeecg.modules.system.entity.SysDepartRolePermission;
 import org.jeecg.modules.wms.api.wcs.service.LocationAllocationService;
 import org.jeecg.modules.wms.api.wcs.service.WcsService;
 import org.jeecg.modules.wms.config.container.entity.Container;
@@ -26,7 +23,6 @@ import org.jeecg.modules.wms.config.locationHigh.entity.LocationHigh;
 import org.jeecg.modules.wms.config.locationHigh.service.ILocationHighService;
 import org.jeecg.modules.wms.config.locationType.entity.LocationType;
 import org.jeecg.modules.wms.config.locationType.service.ILocationTypeService;
-import org.jeecg.modules.wms.config.material.service.IMaterialService;
 import org.jeecg.modules.wms.config.parameterConfiguration.service.IParameterConfigurationService;
 import org.jeecg.modules.wms.config.port.entity.Port;
 import org.jeecg.modules.wms.config.port.service.IPortService;
@@ -63,7 +59,6 @@ import org.jeecg.modules.wms.task.taskHeader.mapper.TaskDetailMapper;
 import org.jeecg.modules.wms.task.taskHeader.mapper.TaskHeaderMapper;
 import org.jeecg.modules.wms.task.taskHeader.service.ITaskDetailService;
 import org.jeecg.modules.wms.task.taskHeader.service.ITaskHeaderService;
-import org.jeecg.utils.HuahengJwtUtil;
 import org.jeecg.utils.StringUtils;
 import org.jeecg.utils.constant.QuantityConstant;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -1395,7 +1390,7 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea
             if (!success) {
                 throw new ServiceException("完成分拣出库任务,更新目标库位失败");
             }
-            success = containerService.updateLocationCodeAndStatus(containerCode, toLocationCode, containerStatus, warehouseCode);
+            success = containerService.updateStatus(containerCode, containerStatus, warehouseCode);
             if (!success) {
                 throw new ServiceException("完成分拣出库任务,更新容器失败");
             }
@@ -1515,73 +1510,62 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea
         return Result.OK("完成空托盘入库成功");
     }
 
-
-
-
     /**
      * 盘点完成
-     *盘点有差异完成时状态为105
-     * @param taskHeader
+     * 盘点有差异完成时状态为105
+     * @param  taskHeader
      * @return
      */
     @Transactional(rollbackFor = Exception.class)
     public Result completeCycleCountTask(TaskHeader taskHeader) {
-        /*盘点完成,传入任务主单,查出任务明细,通过任务明细查找盘点的明细单,
-        完成任务同时,修改盘点细单和主单的状态,完成后库存锁复位*/
+        /*
+         * 盘点完成,传入任务主单,查出任务明细,通过任务明细查找盘点的明细单,
+         * 完成任务同时,修改盘点细单和主单的状态,完成后库存锁复位
+         */
 
-        LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
+        LoginUser sysUser = (LoginUser)SecurityUtils.getSubject().getPrincipal();
         taskHeader.setStatus(QuantityConstant.TASK_STATUS_COMPLETED);
-        //更新用户
+        // 更新用户
         taskHeader.setUpdateBy(sysUser.getUsername());
-        //更新时间
+        // 更新时间
         taskHeader.setUpdateTime(new Date());
 
-
-        //1.先拿到盘点单主单据
+        // 1.先拿到盘点单主单据
         CycleCountDetail cycleCountDetail = cycleCountDetailService.getById(taskHeader.getShipmentContainerHeaderId());
 
-        if ((cycleCountDetail.getCountedQty().add(cycleCountDetail.getGapQty())).compareTo(BigDecimal.ZERO)==0)
-        {
-            return Result.error("盘点单据系统实盘数量跟差异数量0,不能完成 单据号" +cycleCountDetail.getCycleCountHeadCode());
+        if ((cycleCountDetail.getCountedQty().add(cycleCountDetail.getGapQty())).compareTo(BigDecimal.ZERO) == 0) {
+            return Result.error("盘点单据系统实盘数量跟差异数量0,不能完成 单据号" + cycleCountDetail.getCycleCountHeadCode());
         }
 
-        //2.盘点单主单据查明细单据list
+        // 2.盘点单主单据查明细单据list
         LambdaQueryWrapper<CycleCountDetailChild> childLambdaQueryWrapper = new LambdaQueryWrapper<CycleCountDetailChild>();
-        childLambdaQueryWrapper.eq(CycleCountDetailChild::getCycleCountDetailid,cycleCountDetail.getId());
+        childLambdaQueryWrapper.eq(CycleCountDetailChild::getCycleCountDetailid, cycleCountDetail.getId());
         List<CycleCountDetailChild> children = cycleCountDetailChildService.list(childLambdaQueryWrapper);
 
-        //3.单据list如果差异数量+生成入库单,差异数-生成出库单进行回传类型其他出库单
-
+        // 3.单据list如果差异数量+生成入库单,差异数-生成出库单进行回传类型其他出库单
 
         InventoryHeader inventoryHeader = inventoryHeaderService.getById(cycleCountDetail.getInventoryHeaderId());
 
-        int outboundOrderId=0;
-        String outboundOrderCode=null;
-        int warehousingOrderId=0;
-        String warehousingOrderCode=null;
+        int outboundOrderId = 0;
+        String outboundOrderCode = null;
+        int warehousingOrderId = 0;
+        String warehousingOrderCode = null;
 
-
-        for (CycleCountDetailChild child : children)
-        {
-            if (!child.getChildStatus().equals(QuantityConstant.CYCLECOUNT_STATUS_REGISTERED))
-            {
+        for (CycleCountDetailChild child : children) {
+            if (!child.getChildStatus().equals(QuantityConstant.CYCLECOUNT_STATUS_REGISTERED)) {
                 throw new ServiceException("当前任务里面还有没有进行登记的数据,不能完成任务");
             }
 
-
-            if (child.getInventoryDetaiId()!=null)
-            {
+            if (child.getInventoryDetaiId() != null) {
                 InventoryDetail inventoryDetail = inventoryDetailService.getById(child.getInventoryDetaiId());
-                if (inventoryDetail==null)
-                {
+                if (inventoryDetail == null) {
                     throw new ServiceException("盘点还没完成 库存明细单据就不存在了 可能出现了问题或者所容器没成功");
                 }
                 inventoryHeader.setTotalQty(inventoryHeader.getTotalQty().add(child.getGapQty()));
                 inventoryDetail.setQty(child.getCountedQty());
                 inventoryDetailService.updateById(inventoryDetail);
-            }else
-            {
-                InventoryDetail inventoryDetail=new InventoryDetail();
+            } else {
+                InventoryDetail inventoryDetail = new InventoryDetail();
                 inventoryDetail.setInventoryHeaderId(inventoryHeader.getId());
                 inventoryDetail.setWarehouseCode(inventoryHeader.getWarehouseCode());
                 inventoryDetail.setCompanyCode(inventoryHeader.getCompanyCode());
@@ -1600,30 +1584,27 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea
                 child.setInventoryDetaiId(inventoryDetail.getId());
             }
 
-
             child.setChildStatus(QuantityConstant.CYCLECOUNT_STATUS_COMPLETED);
-            if (child.getGapQty().compareTo(BigDecimal.ZERO) == 1)
-            {
-                if (warehousingOrderId==0) {
+            if (child.getGapQty().compareTo(BigDecimal.ZERO) == 1) {
+                if (warehousingOrderId == 0) {
                     ReceiptHeader receiptHeader = new ReceiptHeader();
                     receiptHeader.setWarehouseCode(taskHeader.getWarehouseCode());
                     receiptHeader.setCompanyCode(taskHeader.getCompanyCode());
                     receiptHeader.setType(QuantityConstant.RECEIPT_BILL_TYPE_OR);
-                    receiptHeader.setRemark("盘盈 单号"+cycleCountDetail.getCycleCountHeadCode());
+                    receiptHeader.setRemark("盘盈 单号" + cycleCountDetail.getCycleCountHeadCode());
                     Result result = receiptHeaderService.saveReceiptHeader(receiptHeader);
-                    if (result.getCode() != 200)
-                    {
+                    if (result.getCode() != 200) {
                         return result;
                     }
                     receiptHeader.setFirstStatus(QuantityConstant.RECEIPT_HEADER_COMPLETED);
                     receiptHeader.setLastStatus(QuantityConstant.RECEIPT_HEADER_COMPLETED);
                     receiptHeaderService.updateById(receiptHeader);
-                    //生成入库单并且赋值给warehousingOrderId
-                    warehousingOrderId=receiptHeader.getId();
-                    warehousingOrderCode=receiptHeader.getCode();
+                    // 生成入库单并且赋值给warehousingOrderId
+                    warehousingOrderId = receiptHeader.getId();
+                    warehousingOrderCode = receiptHeader.getCode();
                 }
 
-                //生成明细
+                // 生成明细
                 ReceiptDetail receiptDetail = new ReceiptDetail();
                 receiptDetail.setReceiptId(warehousingOrderId);
                 receiptDetail.setReceiptCode(warehousingOrderCode);
@@ -1641,8 +1622,8 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea
                 receiptDetail.setStatus(QuantityConstant.RECEIPT_HEADER_COMPLETED);
                 receiptDetailService.save(receiptDetail);
 
-                //增加库存交易记录
-                InventoryTransaction inventoryTransaction=new InventoryTransaction();
+                // 增加库存交易记录
+                InventoryTransaction inventoryTransaction = new InventoryTransaction();
                 inventoryTransaction.setWarehouseCode(taskHeader.getWarehouseCode());
                 inventoryTransaction.setCompanyCode(taskHeader.getCompanyCode());
                 inventoryTransaction.setContainerCode(child.getContainerCode());
@@ -1662,38 +1643,31 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea
 
             }
 
+            if (child.getGapQty().compareTo(BigDecimal.ZERO) == -1) {
 
-
-            if (child.getGapQty().compareTo(BigDecimal.ZERO) == -1)
-            {
-
-                if (child.getGapQty().abs().compareTo(child.getSystemQty()) > -1)
-                {
+                if (child.getGapQty().abs().compareTo(child.getSystemQty()) > -1) {
                     inventoryDetailService.removeById(child.getInventoryDetaiId());
                 }
 
-
-                if (outboundOrderId==0)
-                {
+                if (outboundOrderId == 0) {
                     ShipmentHeader shipmentHeader = new ShipmentHeader();
                     shipmentHeader.setWarehouseCode(taskHeader.getWarehouseCode());
                     shipmentHeader.setCompanyCode(taskHeader.getCompanyCode());
                     shipmentHeader.setType(QuantityConstant.SHIPMENT_BILL_TYPE_OS);
-                    shipmentHeader.setRemark("盘亏 单号"+cycleCountDetail.getCycleCountHeadCode());
+                    shipmentHeader.setRemark("盘亏 单号" + cycleCountDetail.getCycleCountHeadCode());
                     Result result = shipmentHeaderService.saveShipmentHeader(shipmentHeader);
-                    if (result.getCode() != 200)
-                    {
+                    if (result.getCode() != 200) {
                         return result;
                     }
                     shipmentHeader.setFirstStatus(QuantityConstant.RECEIPT_HEADER_COMPLETED);
                     shipmentHeader.setLastStatus(QuantityConstant.RECEIPT_HEADER_COMPLETED);
                     shipmentHeaderService.updateById(shipmentHeader);
-                    //生成出库单并且赋值给outboundOrderId
-                    outboundOrderId=shipmentHeader.getId();
-                    outboundOrderCode=shipmentHeader.getCode();
+                    // 生成出库单并且赋值给outboundOrderId
+                    outboundOrderId = shipmentHeader.getId();
+                    outboundOrderCode = shipmentHeader.getCode();
 
                 }
-                //生成明细
+                // 生成明细
                 ShipmentDetail shipmentDetail = new ShipmentDetail();
                 shipmentDetail.setShipmentId(outboundOrderId);
                 shipmentDetail.setShipmentCode(outboundOrderCode);
@@ -1711,7 +1685,7 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea
                 shipmentDetail.setStatus(QuantityConstant.RECEIPT_HEADER_COMPLETED);
                 shipmentDetailService.save(shipmentDetail);
 
-                InventoryTransaction inventoryTransaction=new InventoryTransaction();
+                InventoryTransaction inventoryTransaction = new InventoryTransaction();
                 inventoryTransaction.setWarehouseCode(taskHeader.getWarehouseCode());
                 inventoryTransaction.setCompanyCode(taskHeader.getCompanyCode());
                 inventoryTransaction.setContainerCode(child.getContainerCode());
@@ -1732,45 +1706,33 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea
             cycleCountDetailChildService.updateById(child);
         }
 
-
-        if (inventoryHeader.getTotalQty().compareTo(BigDecimal.ZERO)<1)
-        {
+        if (inventoryHeader.getTotalQty().compareTo(BigDecimal.ZERO) < 1) {
             inventoryHeaderService.removeById(inventoryHeader);
         }
 
         inventoryHeaderService.updateById(inventoryHeader);
 
-        //4.完成当前任务
+        // 4.完成当前任务
         if (!taskHeaderService.saveOrUpdate(taskHeader)) {
             throw new ServiceException("盘点任务单据状态更新失败!");
         }
-        //盘点明细状态
+        // 盘点明细状态
         cycleCountDetail.setEnableStatus(QuantityConstant.CYCLECOUNT_STATUS_COMPLETED);
         cycleCountDetail.setCompletedBy(sysUser.getUsername());
         cycleCountDetail.setCompletedAt(new Date());
         cycleCountDetailService.updateById(cycleCountDetail);
-        //更新主单状态
+        // 更新主单状态
         cycleCountHeaderService.updataHeaderStatus(cycleCountDetail.getCycleCountHeadCode());
 
+        // 释放库位
+        locationService.updateStatus(cycleCountDetail.getLocationCode(), QuantityConstant.STATUS_LOCATION_EMPTY, taskHeader.getWarehouseCode());
 
-        //释放库位
-        locationService.updateStatus(cycleCountDetail.getLocationCode(),
-                QuantityConstant.STATUS_LOCATION_EMPTY, taskHeader.getWarehouseCode());
-
-
-        //还原容器状态
-        containerService.restoreContainer(cycleCountDetail.getContainerCode(),taskHeader.getWarehouseCode());
+        // 还原容器状态
+        containerService.restoreContainer(cycleCountDetail.getContainerCode(), taskHeader.getWarehouseCode());
 
         return Result.OK("完成盘点任务成功");
     }
 
-
-
-
-
-
-
-
     /**
      * 完成空托盘出库任务
      * @param  taskHeader 任务
diff --git a/huaheng-wms-core/src/main/java/org/jeecg/utils/interceptor/HuahengBatisInterceptor.java b/huaheng-wms-core/src/main/java/org/jeecg/utils/interceptor/HuahengBatisInterceptor.java
index 282297e..13dbcd0 100644
--- a/huaheng-wms-core/src/main/java/org/jeecg/utils/interceptor/HuahengBatisInterceptor.java
+++ b/huaheng-wms-core/src/main/java/org/jeecg/utils/interceptor/HuahengBatisInterceptor.java
@@ -12,6 +12,7 @@ import org.apache.ibatis.plugin.*;
 import org.apache.shiro.SecurityUtils;
 import org.jeecg.common.system.vo.LoginUser;
 import org.jeecg.common.util.oConvertUtils;
+import org.jeecg.utils.HuahengJwtUtil;
 import org.springframework.stereotype.Component;
 
 import lombok.extern.slf4j.Slf4j;
@@ -113,7 +114,7 @@ public class HuahengBatisInterceptor implements Interceptor {
                         if (sysUser != null) {
                             // 登录账号
                             field.setAccessible(true);
-                            field.set(parameter, sysUser.getRealname());
+                            field.set(parameter, HuahengJwtUtil.getCurrentOperator());
                             field.setAccessible(false);
                         }
                     }
--
libgit2 0.22.2