Commit 206f332ca0c4f3e98fa7ea9e0dcfcc6a53cc1011

Authored by 谭毅彬
2 parents d70f0351 b9adf1d0

Merge branch 'develop' of http://www.huahengrobot.com:90/wms/wms4.git into develop

ant-design-vue-jeecg/src/views/system/stocktaking/CycleCountDetailList.vue
@@ -77,8 +77,8 @@ @@ -77,8 +77,8 @@
77 <cycle-count-detail-chi-id-modal ref="adjustmentModal" @ok="modalFormOk" :id="record.id"/> 77 <cycle-count-detail-chi-id-modal ref="adjustmentModal" @ok="modalFormOk" :id="record.id"/>
78 <a @click="createMany()"><a-icon/>新增</a> 78 <a @click="createMany()"><a-icon/>新增</a>
79 <a-divider type="vertical"/> 79 <a-divider type="vertical"/>
80 - <a v-if="record.enableStatus === 1" @click="selectPort(record)">生成盘点任务</a>  
81 - <a-divider v-if="record.enableStatus === 1" type="vertical"/> 80 + <a v-if="record.enableStatus == '1'" @click="selectPort(record)">生成盘点任务</a>
  81 + <a-divider v-if="record.enableStatus == '1'" type="vertical"/>
82 <a @click="loadDatas(record.cycleCountHeadId)"><a-icon type="sync"/>刷新</a> 82 <a @click="loadDatas(record.cycleCountHeadId)"><a-icon type="sync"/>刷新</a>
83 </template> 83 </template>
84 84
ant-design-vue-jeecg/src/views/system/stocktaking/subTables/CycleCountDetailChildSubTable.vue
@@ -23,7 +23,7 @@ @@ -23,7 +23,7 @@
23 23
24 <template slot="action" slot-scope="text, record"> 24 <template slot="action" slot-scope="text, record">
25 <adjustment-doc-modal ref="adjustmentModal" @ok="modalFormOk"/> 25 <adjustment-doc-modal ref="adjustmentModal" @ok="modalFormOk"/>
26 - <a v-if="record.childStatus != 1" @click="createMany(record.id)"><a-icon />实盘登记</a> 26 + <a v-if="record.childStatus != 1" @click="createMany(record)"><a-icon />实盘登记</a>
27 </template> 27 </template>
28 28
29 <template slot="fileSlot" slot-scope="text"> 29 <template slot="fileSlot" slot-scope="text">
ant-design-vue-jeecg/src/views/system/task/TaskDetailList.vue
@@ -80,7 +80,7 @@ @@ -80,7 +80,7 @@
80 80
81 <span slot="action" slot-scope="text, record"> 81 <span slot="action" slot-scope="text, record">
82 <adjustment-doc-modal ref="adjustmentModal" @ok="modalFormOk" :id="record.id" :taskHeaderId="record.taskHeaderId"/> 82 <adjustment-doc-modal ref="adjustmentModal" @ok="modalFormOk" :id="record.id" :taskHeaderId="record.taskHeaderId"/>
83 - <a v-if="record.taskType==700" @click="createMany(record)">实盘登记</a> 83 + <a v-if="record.taskType==700" @click="createMany(record)">实盘登记<a-divider type="vertical" /></a>
84 <a v-has="'taskDetail:edit'" @click="handleEdit(record)">编辑<a-divider type="vertical" /></a> 84 <a v-has="'taskDetail:edit'" @click="handleEdit(record)">编辑<a-divider type="vertical" /></a>
85 <a-popconfirm title="确定删除吗?" @confirm="() => handleDelete(record.id)"> 85 <a-popconfirm title="确定删除吗?" @confirm="() => handleDelete(record.id)">
86 <a v-has="'taskDetail:delete'">删除</a> 86 <a v-has="'taskDetail:delete'">删除</a>
huaheng-wms-core/src/main/java/org/jeecg/modules/wms/stocktaking/cycleCountDetail/service/impl/CycleCountDetailServiceImpl.java
@@ -4,9 +4,11 @@ import java.io.Serializable; @@ -4,9 +4,11 @@ import java.io.Serializable;
4 import java.math.BigDecimal; 4 import java.math.BigDecimal;
5 import java.util.Collection; 5 import java.util.Collection;
6 import java.util.List; 6 import java.util.List;
  7 +import java.util.stream.Collectors;
7 8
8 import javax.annotation.Resource; 9 import javax.annotation.Resource;
9 10
  11 +import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
10 import org.jeecg.common.api.vo.Result; 12 import org.jeecg.common.api.vo.Result;
11 import org.jeecg.common.exception.JeecgBootException; 13 import org.jeecg.common.exception.JeecgBootException;
12 import org.jeecg.modules.wms.config.container.entity.Container; 14 import org.jeecg.modules.wms.config.container.entity.Container;
@@ -17,7 +19,9 @@ import org.jeecg.modules.wms.config.material.entity.Material; @@ -17,7 +19,9 @@ import org.jeecg.modules.wms.config.material.entity.Material;
17 import org.jeecg.modules.wms.config.material.service.impl.MaterialServiceImpl; 19 import org.jeecg.modules.wms.config.material.service.impl.MaterialServiceImpl;
18 import org.jeecg.modules.wms.config.parameterConfiguration.service.IParameterConfigurationService; 20 import org.jeecg.modules.wms.config.parameterConfiguration.service.IParameterConfigurationService;
19 import org.jeecg.modules.wms.inventory.inventoryHeader.entity.InventoryDetail; 21 import org.jeecg.modules.wms.inventory.inventoryHeader.entity.InventoryDetail;
  22 +import org.jeecg.modules.wms.inventory.inventoryHeader.entity.InventoryHeader;
20 import org.jeecg.modules.wms.inventory.inventoryHeader.service.IInventoryDetailService; 23 import org.jeecg.modules.wms.inventory.inventoryHeader.service.IInventoryDetailService;
  24 +import org.jeecg.modules.wms.inventory.inventoryHeader.service.IInventoryHeaderService;
21 import org.jeecg.modules.wms.receipt.receiptContainerHeader.service.IReceiptContainerHeaderService; 25 import org.jeecg.modules.wms.receipt.receiptContainerHeader.service.IReceiptContainerHeaderService;
22 import org.jeecg.modules.wms.shipment.shipmentContainerHeader.service.IShipmentContainerHeaderService; 26 import org.jeecg.modules.wms.shipment.shipmentContainerHeader.service.IShipmentContainerHeaderService;
23 import org.jeecg.modules.wms.stocktaking.cycleCountDetail.entity.CycleCountDetail; 27 import org.jeecg.modules.wms.stocktaking.cycleCountDetail.entity.CycleCountDetail;
@@ -79,6 +83,8 @@ public class CycleCountDetailServiceImpl extends ServiceImpl&lt;CycleCountDetailMap @@ -79,6 +83,8 @@ public class CycleCountDetailServiceImpl extends ServiceImpl&lt;CycleCountDetailMap
79 private IReceiptContainerHeaderService receiptContainerHeaderService; 83 private IReceiptContainerHeaderService receiptContainerHeaderService;
80 @Resource 84 @Resource
81 private IShipmentContainerHeaderService shipmentContainerHeaderService; 85 private IShipmentContainerHeaderService shipmentContainerHeaderService;
  86 + @Resource
  87 + private IInventoryHeaderService inventoryHeaderService;
82 88
83 @Override 89 @Override
84 @Transactional 90 @Transactional
@@ -160,6 +166,10 @@ public class CycleCountDetailServiceImpl extends ServiceImpl&lt;CycleCountDetailMap @@ -160,6 +166,10 @@ public class CycleCountDetailServiceImpl extends ServiceImpl&lt;CycleCountDetailMap
160 if (locationByCode.getStatus().equals(QuantityConstant.STATUS_CONTAINER_LOCK)) { 166 if (locationByCode.getStatus().equals(QuantityConstant.STATUS_CONTAINER_LOCK)) {
161 return Result.error("当前库位已锁定 请检查数据 库存里面不是锁定 实际上库位里面锁定了"); 167 return Result.error("当前库位已锁定 请检查数据 库存里面不是锁定 实际上库位里面锁定了");
162 } 168 }
  169 + InventoryHeader inventoryHeader = inventoryHeaderService.getById(taskId);
  170 + if (inventoryHeader == null) {
  171 + return Result.error("根据库存头ID:" + taskId + "没有找到库存头");
  172 + }
163 173
164 CycleCountDetail cycleCountDetail = new CycleCountDetail(); 174 CycleCountDetail cycleCountDetail = new CycleCountDetail();
165 cycleCountDetail.setCycleCountHeadId(headerId); 175 cycleCountDetail.setCycleCountHeadId(headerId);
@@ -170,9 +180,9 @@ public class CycleCountDetailServiceImpl extends ServiceImpl&lt;CycleCountDetailMap @@ -170,9 +180,9 @@ public class CycleCountDetailServiceImpl extends ServiceImpl&lt;CycleCountDetailMap
170 cycleCountDetail.setInventoryHeaderId(inventoryDetails.get(0).getInventoryHeaderId()); 180 cycleCountDetail.setInventoryHeaderId(inventoryDetails.get(0).getInventoryHeaderId());
171 cycleCountDetail.setLocationCode(inventoryDetails.get(0).getLocationCode()); 181 cycleCountDetail.setLocationCode(inventoryDetails.get(0).getLocationCode());
172 cycleCountDetail.setInventorySts(inventoryDetails.get(0).getInventoryStatus()); 182 cycleCountDetail.setInventorySts(inventoryDetails.get(0).getInventoryStatus());
173 - cycleCountDetail.setSystemQty(BigDecimal.ZERO);  
174 - cycleCountDetail.setCountedQty(BigDecimal.ZERO);  
175 - cycleCountDetail.setGapQty(BigDecimal.ZERO); 183 + cycleCountDetail.setSystemQty(inventoryHeader.getTotalQty());
  184 +// cycleCountDetail.setCountedQty(BigDecimal.ZERO);
  185 +// cycleCountDetail.setGapQty(BigDecimal.ZERO);
176 cycleCountDetail.setEnableStatus(QuantityConstant.CYCLECOUNT_STATUS_BUILD); 186 cycleCountDetail.setEnableStatus(QuantityConstant.CYCLECOUNT_STATUS_BUILD);
177 cycleCountDetailService.save(cycleCountDetail); 187 cycleCountDetailService.save(cycleCountDetail);
178 for (InventoryDetail inventoryDetail : inventoryDetails) { 188 for (InventoryDetail inventoryDetail : inventoryDetails) {
@@ -196,6 +206,24 @@ public class CycleCountDetailServiceImpl extends ServiceImpl&lt;CycleCountDetailMap @@ -196,6 +206,24 @@ public class CycleCountDetailServiceImpl extends ServiceImpl&lt;CycleCountDetailMap
196 cycleCountDetailChildServiceImpl.save(cycleCountDetailChild); 206 cycleCountDetailChildServiceImpl.save(cycleCountDetailChild);
197 } 207 }
198 } 208 }
  209 + LambdaQueryWrapper <CycleCountDetail> cycleCountDetailLambdaQueryWrapper = Wrappers.lambdaQuery();
  210 + cycleCountDetailLambdaQueryWrapper.eq(CycleCountDetail::getCycleCountHeadCode, code);
  211 + List<CycleCountDetail> cycleCountDetailList = cycleCountDetailService.list(cycleCountDetailLambdaQueryWrapper);
  212 + if (CollectionUtils.isEmpty(cycleCountDetailList)) {
  213 + throw new JeecgBootException("没有找到盘点头信息");
  214 + }
  215 + BigDecimal countSystemQty = BigDecimal.ZERO;
  216 + List<BigDecimal> systemQty = cycleCountDetailList.stream().map(i -> i.getSystemQty()).collect(Collectors.toList());
  217 + for (BigDecimal bigDecimal : systemQty) {
  218 + countSystemQty = countSystemQty.add(bigDecimal);
  219 + }
  220 + CycleCountHeader cycleCountHeader = new CycleCountHeader();
  221 + cycleCountHeader.setId(cycleCountDetailList.get(0).getCycleCountHeadId());
  222 + cycleCountHeader.setTotalLocs(cycleCountDetailList.size());
  223 + cycleCountHeader.setTotalItems(countSystemQty);
  224 + if (!cycleCountHeaderService.updateById(cycleCountHeader)) {
  225 + throw new JeecgBootException("修改盘点头数量信息失败");
  226 + }
199 return Result.OK("生成完成", headerId); 227 return Result.OK("生成完成", headerId);
200 } 228 }
201 229
@@ -330,6 +358,9 @@ public class CycleCountDetailServiceImpl extends ServiceImpl&lt;CycleCountDetailMap @@ -330,6 +358,9 @@ public class CycleCountDetailServiceImpl extends ServiceImpl&lt;CycleCountDetailMap
330 if (cycleCountDetail.getEnableStatus().equals(QuantityConstant.CYCLECOUNT_STATUS_BUILD)) { 358 if (cycleCountDetail.getEnableStatus().equals(QuantityConstant.CYCLECOUNT_STATUS_BUILD)) {
331 return Result.error("当前盘点明细是新建状态 不能调整"); 359 return Result.error("当前盘点明细是新建状态 不能调整");
332 } 360 }
  361 + if (cycleCountDetail.getEnableStatus().equals(QuantityConstant.CYCLECOUNT_STATUS_COMPLETED)) {
  362 + return Result.error("当前盘点明细是完成状态 不能调整");
  363 + }
333 364
334 if (cycleCountDetailChild.getCountedQty().compareTo(BigDecimal.ZERO) == 0) { 365 if (cycleCountDetailChild.getCountedQty().compareTo(BigDecimal.ZERO) == 0) {
335 return Result.error("别闹"); 366 return Result.error("别闹");
huaheng-wms-core/src/main/java/org/jeecg/modules/wms/task/taskHeader/service/ITaskHeaderService.java
@@ -4,6 +4,7 @@ import java.io.Serializable; @@ -4,6 +4,7 @@ import java.io.Serializable;
4 import java.util.Collection; 4 import java.util.Collection;
5 import java.util.List; 5 import java.util.List;
6 6
  7 +import javafx.concurrent.Task;
7 import org.jeecg.common.api.vo.Result; 8 import org.jeecg.common.api.vo.Result;
8 import org.jeecg.modules.wms.config.location.entity.Location; 9 import org.jeecg.modules.wms.config.location.entity.Location;
9 import org.jeecg.modules.wms.task.taskHeader.entity.QucikReceiptEntity; 10 import org.jeecg.modules.wms.task.taskHeader.entity.QucikReceiptEntity;
@@ -310,6 +311,13 @@ public interface ITaskHeaderService extends IService&lt;TaskHeader&gt; { @@ -310,6 +311,13 @@ public interface ITaskHeaderService extends IService&lt;TaskHeader&gt; {
310 Result cancelShipmentTask(TaskHeader taskHeader); 311 Result cancelShipmentTask(TaskHeader taskHeader);
311 312
312 /** 313 /**
  314 + * 修改盘点明细状态
  315 + * @param taskHeader
  316 + * @return
  317 + */
  318 + Result updateCycleCountDetailByEnableStatus(TaskHeader taskHeader);
  319 +
  320 + /**
313 * 更新状态 321 * 更新状态
314 * @param status 322 * @param status
315 * @param id 323 * @param id
huaheng-wms-core/src/main/java/org/jeecg/modules/wms/task/taskHeader/service/impl/TaskHeaderServiceImpl.java
@@ -910,6 +910,8 @@ public class TaskHeaderServiceImpl extends ServiceImpl&lt;TaskHeaderMapper, TaskHea @@ -910,6 +910,8 @@ public class TaskHeaderServiceImpl extends ServiceImpl&lt;TaskHeaderMapper, TaskHea
910 case QuantityConstant.TASK_TYPE_WHOLESHIPMENT: 910 case QuantityConstant.TASK_TYPE_WHOLESHIPMENT:
911 case QuantityConstant.TASK_TYPE_SORTINGSHIPMENT: 911 case QuantityConstant.TASK_TYPE_SORTINGSHIPMENT:
912 result = taskHeaderService.cancelShipmentTask(taskHeader); 912 result = taskHeaderService.cancelShipmentTask(taskHeader);
  913 + case QuantityConstant.TASK_TYPE_CYCLECOUNT:
  914 + result = taskHeaderService.updateCycleCountDetailByEnableStatus(taskHeader);
913 break; 915 break;
914 } 916 }
915 taskHeaderService.cancelLocationAndContainerStatus(taskHeader); 917 taskHeaderService.cancelLocationAndContainerStatus(taskHeader);
@@ -2772,6 +2774,24 @@ public class TaskHeaderServiceImpl extends ServiceImpl&lt;TaskHeaderMapper, TaskHea @@ -2772,6 +2774,24 @@ public class TaskHeaderServiceImpl extends ServiceImpl&lt;TaskHeaderMapper, TaskHea
2772 } 2774 }
2773 2775
2774 @Override 2776 @Override
  2777 + public Result updateCycleCountDetailByEnableStatus(TaskHeader taskHeader) {
  2778 + log.info("开始取消盘点任务");
  2779 + LambdaQueryWrapper<CycleCountDetail> cycleCountDetailLambdaQueryWrapper = Wrappers.lambdaQuery();
  2780 + cycleCountDetailLambdaQueryWrapper.eq(CycleCountDetail::getContainerCode, taskHeader.getContainerCode())
  2781 + .ne(CycleCountDetail::getEnableStatus, QuantityConstant.SHIPMENT_RECEIVE_SUCCESS);
  2782 + CycleCountDetail cycleCountDetail = cycleCountDetailService.getOne(cycleCountDetailLambdaQueryWrapper);
  2783 + if (cycleCountDetail == null) {
  2784 + throw new JeecgBootException("取消盘点任务,没有找到盘点明细");
  2785 + }
  2786 + cycleCountDetail.setEnableStatus(QuantityConstant.CYCLECOUNT_STATUS_BUILD);
  2787 + if (!cycleCountDetailService.updateById(cycleCountDetail)) {
  2788 + throw new JeecgBootException("取消盘点任务,修改盘点明细状态失败");
  2789 + }
  2790 + log.info("完成取消盘点任务");
  2791 + return Result.ok("取消盘点任务成功");
  2792 + }
  2793 +
  2794 + @Override
2775 public boolean updateStatusById(int status, int id) { 2795 public boolean updateStatusById(int status, int id) {
2776 TaskHeader taskHeader = new TaskHeader(); 2796 TaskHeader taskHeader = new TaskHeader();
2777 taskHeader.setId(id); 2797 taskHeader.setId(id);