Commit 17ffb073335b2347627aad78d510ab0216d86f46
1 parent
228c6760
fix: 1. 编辑单据表头的货主编码,明细没有改变
2. 生成盘点任务前,如果库存做过移库,那么生成盘点任务的起始库位就不准确
Showing
7 changed files
with
31 additions
and
16 deletions
ant-design-vue-jeecg/src/views/system/receipt/ReceiptContainerHeaderList.vue
@@ -132,7 +132,7 @@ | @@ -132,7 +132,7 @@ | ||
132 | <!-- <a v-else-if="record.status == 0" @click="selectContainerStatus(record)" v-has="'receiptContainerHeader:createTask'"><a-button type="primary">生成任务</a-button><a-divider type="vertical"/></a>--> | 132 | <!-- <a v-else-if="record.status == 0" @click="selectContainerStatus(record)" v-has="'receiptContainerHeader:createTask'"><a-button type="primary">生成任务</a-button><a-divider type="vertical"/></a>--> |
133 | <a v-if="record.status == 0 && record.taskType == 200" @click="selectPort(record)" v-has="'receiptContainerHeader:createTask'"><a-button type="primary">生成任务</a-button><a-divider type="vertical"/></a> | 133 | <a v-if="record.status == 0 && record.taskType == 200" @click="selectPort(record)" v-has="'receiptContainerHeader:createTask'"><a-button type="primary">生成任务</a-button><a-divider type="vertical"/></a> |
134 | <a v-else-if="record.status == 0" @click="createTask(record)" v-has="'receiptContainerHeader:createTask'"><a-button type="primary">生成任务</a-button><a-divider type="vertical"/></a> | 134 | <a v-else-if="record.status == 0" @click="createTask(record)" v-has="'receiptContainerHeader:createTask'"><a-button type="primary">生成任务</a-button><a-divider type="vertical"/></a> |
135 | - <a-popconfirm v-if="record.status == 0" v-has="'receipatContainerHeader:delete'" title="确定取消配盘吗?" @confirm="() => handleDelete(record.id)"> | 135 | + <a-popconfirm v-if="record.status == 0" v-has="'receiptContainerHeader:delete'" title="确定取消配盘吗?" @confirm="() => handleDelete(record.id)"> |
136 | <a><a-button type="danger">取消配盘</a-button> <a-divider type="vertical"/></a> | 136 | <a><a-button type="danger">取消配盘</a-button> <a-divider type="vertical"/></a> |
137 | </a-popconfirm> | 137 | </a-popconfirm> |
138 | 138 |
huaheng-wms-core/src/main/java/org/jeecg/modules/wms/config/material/controller/MaterialController.java
@@ -16,7 +16,6 @@ import org.jeecg.modules.wms.config.material.entity.Material; | @@ -16,7 +16,6 @@ import org.jeecg.modules.wms.config.material.entity.Material; | ||
16 | import org.jeecg.modules.wms.config.material.entity.SearchDomain; | 16 | import org.jeecg.modules.wms.config.material.entity.SearchDomain; |
17 | import org.jeecg.modules.wms.config.material.service.IMaterialService; | 17 | import org.jeecg.modules.wms.config.material.service.IMaterialService; |
18 | import org.jeecg.utils.HuahengJwtUtil; | 18 | import org.jeecg.utils.HuahengJwtUtil; |
19 | -import org.jeecg.utils.StringUtils; | ||
20 | import org.springframework.beans.factory.annotation.Autowired; | 19 | import org.springframework.beans.factory.annotation.Autowired; |
21 | import org.springframework.web.bind.annotation.*; | 20 | import org.springframework.web.bind.annotation.*; |
22 | import org.springframework.web.servlet.ModelAndView; | 21 | import org.springframework.web.servlet.ModelAndView; |
huaheng-wms-core/src/main/java/org/jeecg/modules/wms/monitor/job/AutoDeleteTask.java
@@ -73,7 +73,8 @@ public class AutoDeleteTask implements Job { | @@ -73,7 +73,8 @@ public class AutoDeleteTask implements Job { | ||
73 | shipmentHeaderService.delMain(String.valueOf(shipmentHeader.getId()), QuantityConstant.WMS_COMPLETE_DELETE_RECEIPT); | 73 | shipmentHeaderService.delMain(String.valueOf(shipmentHeader.getId()), QuantityConstant.WMS_COMPLETE_DELETE_RECEIPT); |
74 | } | 74 | } |
75 | LambdaQueryWrapper<TaskHeader> taskHeaderLambdaQueryWrapper = Wrappers.lambdaQuery(); | 75 | LambdaQueryWrapper<TaskHeader> taskHeaderLambdaQueryWrapper = Wrappers.lambdaQuery(); |
76 | - taskHeaderLambdaQueryWrapper.eq(TaskHeader::getStatus, QuantityConstant.TASK_STATUS_COMPLETED); | 76 | + taskHeaderLambdaQueryWrapper.eq(TaskHeader::getStatus, QuantityConstant.TASK_STATUS_COMPLETED).ne(TaskHeader::getExceptionState, |
77 | + QuantityConstant.EXCEPTION_TASK_ERROR); | ||
77 | List<TaskHeader> taskHeaderList = taskHeaderService.list(taskHeaderLambdaQueryWrapper); | 78 | List<TaskHeader> taskHeaderList = taskHeaderService.list(taskHeaderLambdaQueryWrapper); |
78 | log.info(String.format(" AutoDeleteTask 执行任务! taskHeaderList :" + taskHeaderList + "时间" + DateUtils.getTimestamp())); | 79 | log.info(String.format(" AutoDeleteTask 执行任务! taskHeaderList :" + taskHeaderList + "时间" + DateUtils.getTimestamp())); |
79 | for (TaskHeader taskHeader : taskHeaderList) { | 80 | for (TaskHeader taskHeader : taskHeaderList) { |
huaheng-wms-core/src/main/java/org/jeecg/modules/wms/receipt/receiptHeader/controller/ReceiptHeaderController.java
@@ -130,7 +130,15 @@ public class ReceiptHeaderController extends JeecgController<ReceiptHeader, IRec | @@ -130,7 +130,15 @@ public class ReceiptHeaderController extends JeecgController<ReceiptHeader, IRec | ||
130 | @RequiresPermissions("receiptHeader:edit") | 130 | @RequiresPermissions("receiptHeader:edit") |
131 | @RequestMapping(value = "/edit", method = {RequestMethod.PUT, RequestMethod.POST}) | 131 | @RequestMapping(value = "/edit", method = {RequestMethod.PUT, RequestMethod.POST}) |
132 | public Result<String> edit(@RequestBody ReceiptHeader receiptHeader) { | 132 | public Result<String> edit(@RequestBody ReceiptHeader receiptHeader) { |
133 | + String companyCode = receiptHeader.getCompanyCode(); | ||
133 | receiptHeaderService.updateById(receiptHeader); | 134 | receiptHeaderService.updateById(receiptHeader); |
135 | + if (StringUtils.isNotEmpty(companyCode)) { | ||
136 | + List<ReceiptDetail> receiptDetailList = receiptDetailService.selectByMainId(String.valueOf(receiptHeader.getId())); | ||
137 | + for (ReceiptDetail receiptDetail : receiptDetailList) { | ||
138 | + receiptDetail.setCompanyCode(companyCode); | ||
139 | + receiptDetailService.updateById(receiptDetail); | ||
140 | + } | ||
141 | + } | ||
134 | return Result.OK("编辑成功!"); | 142 | return Result.OK("编辑成功!"); |
135 | } | 143 | } |
136 | 144 |
huaheng-wms-core/src/main/java/org/jeecg/modules/wms/shipment/shipmentHeader/controller/ShipmentHeaderController.java
@@ -3,7 +3,6 @@ package org.jeecg.modules.wms.shipment.shipmentHeader.controller; | @@ -3,7 +3,6 @@ package org.jeecg.modules.wms.shipment.shipmentHeader.controller; | ||
3 | import java.io.IOException; | 3 | import java.io.IOException; |
4 | import java.math.BigDecimal; | 4 | import java.math.BigDecimal; |
5 | import java.util.Arrays; | 5 | import java.util.Arrays; |
6 | -import java.util.Collections; | ||
7 | import java.util.List; | 6 | import java.util.List; |
8 | import java.util.Map; | 7 | import java.util.Map; |
9 | import java.util.stream.Collectors; | 8 | import java.util.stream.Collectors; |
@@ -16,7 +15,6 @@ import org.apache.shiro.SecurityUtils; | @@ -16,7 +15,6 @@ import org.apache.shiro.SecurityUtils; | ||
16 | import org.apache.shiro.authz.annotation.RequiresPermissions; | 15 | import org.apache.shiro.authz.annotation.RequiresPermissions; |
17 | import org.jeecg.common.api.vo.Result; | 16 | import org.jeecg.common.api.vo.Result; |
18 | import org.jeecg.common.aspect.annotation.AutoLog; | 17 | import org.jeecg.common.aspect.annotation.AutoLog; |
19 | -import org.jeecg.common.exception.JeecgBootException; | ||
20 | import org.jeecg.common.system.base.controller.JeecgController; | 18 | import org.jeecg.common.system.base.controller.JeecgController; |
21 | import org.jeecg.common.system.query.QueryGenerator; | 19 | import org.jeecg.common.system.query.QueryGenerator; |
22 | import org.jeecg.common.system.vo.LoginUser; | 20 | import org.jeecg.common.system.vo.LoginUser; |
@@ -33,6 +31,7 @@ import org.jeecg.modules.wms.shipment.shipmentHeader.service.IShipmentDetailServ | @@ -33,6 +31,7 @@ import org.jeecg.modules.wms.shipment.shipmentHeader.service.IShipmentDetailServ | ||
33 | import org.jeecg.modules.wms.shipment.shipmentHeader.service.IShipmentHeaderService; | 31 | import org.jeecg.modules.wms.shipment.shipmentHeader.service.IShipmentHeaderService; |
34 | import org.jeecg.modules.wms.task.taskHeader.entity.TaskHeader; | 32 | import org.jeecg.modules.wms.task.taskHeader.entity.TaskHeader; |
35 | import org.jeecg.utils.HuahengJwtUtil; | 33 | import org.jeecg.utils.HuahengJwtUtil; |
34 | +import org.jeecg.utils.StringUtils; | ||
36 | import org.jeecg.utils.constant.QuantityConstant; | 35 | import org.jeecg.utils.constant.QuantityConstant; |
37 | import org.jeecg.utils.support.ApiLogger; | 36 | import org.jeecg.utils.support.ApiLogger; |
38 | import org.jeecgframework.poi.excel.ExcelImportUtil; | 37 | import org.jeecgframework.poi.excel.ExcelImportUtil; |
@@ -46,15 +45,11 @@ import org.springframework.web.multipart.MultipartFile; | @@ -46,15 +45,11 @@ import org.springframework.web.multipart.MultipartFile; | ||
46 | import org.springframework.web.multipart.MultipartHttpServletRequest; | 45 | import org.springframework.web.multipart.MultipartHttpServletRequest; |
47 | import org.springframework.web.servlet.ModelAndView; | 46 | import org.springframework.web.servlet.ModelAndView; |
48 | 47 | ||
49 | -import com.alibaba.fastjson.JSON; | ||
50 | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; | 48 | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
51 | -import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; | ||
52 | import com.baomidou.mybatisplus.core.metadata.IPage; | 49 | import com.baomidou.mybatisplus.core.metadata.IPage; |
53 | -import com.baomidou.mybatisplus.core.toolkit.Wrappers; | ||
54 | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; | 50 | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
55 | 51 | ||
56 | import cn.monitor4all.logRecord.annotation.OperationLog; | 52 | import cn.monitor4all.logRecord.annotation.OperationLog; |
57 | -import cn.monitor4all.logRecord.context.LogRecordContext; | ||
58 | import io.swagger.annotations.Api; | 53 | import io.swagger.annotations.Api; |
59 | import io.swagger.annotations.ApiOperation; | 54 | import io.swagger.annotations.ApiOperation; |
60 | import lombok.extern.slf4j.Slf4j; | 55 | import lombok.extern.slf4j.Slf4j; |
@@ -143,7 +138,15 @@ public class ShipmentHeaderController extends JeecgController<ShipmentHeader, IS | @@ -143,7 +138,15 @@ public class ShipmentHeaderController extends JeecgController<ShipmentHeader, IS | ||
143 | @RequiresPermissions("shipmentHeader:edit") | 138 | @RequiresPermissions("shipmentHeader:edit") |
144 | @RequestMapping(value = "/edit", method = {RequestMethod.PUT, RequestMethod.POST}) | 139 | @RequestMapping(value = "/edit", method = {RequestMethod.PUT, RequestMethod.POST}) |
145 | public Result<String> edit(@RequestBody ShipmentHeader shipmentHeader) { | 140 | public Result<String> edit(@RequestBody ShipmentHeader shipmentHeader) { |
141 | + String companyCode = shipmentHeader.getCompanyCode(); | ||
146 | shipmentHeaderService.updateById(shipmentHeader); | 142 | shipmentHeaderService.updateById(shipmentHeader); |
143 | + if (StringUtils.isNotEmpty(companyCode)) { | ||
144 | + List<ShipmentDetail> shipmentDetailList = shipmentDetailService.selectByMainId(String.valueOf(shipmentHeader.getId())); | ||
145 | + for (ShipmentDetail shipmentDetail : shipmentDetailList) { | ||
146 | + shipmentDetail.setCompanyCode(companyCode); | ||
147 | + shipmentDetailService.updateById(shipmentDetail); | ||
148 | + } | ||
149 | + } | ||
147 | return Result.OK("编辑成功!"); | 150 | return Result.OK("编辑成功!"); |
148 | } | 151 | } |
149 | 152 |
huaheng-wms-core/src/main/java/org/jeecg/modules/wms/stocktaking/cycleCountDetail/service/impl/CycleCountDetailServiceImpl.java
@@ -8,7 +8,6 @@ import java.util.stream.Collectors; | @@ -8,7 +8,6 @@ import java.util.stream.Collectors; | ||
8 | 8 | ||
9 | import javax.annotation.Resource; | 9 | import javax.annotation.Resource; |
10 | 10 | ||
11 | -import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; | ||
12 | import org.jeecg.common.api.vo.Result; | 11 | import org.jeecg.common.api.vo.Result; |
13 | import org.jeecg.common.exception.JeecgBootException; | 12 | import org.jeecg.common.exception.JeecgBootException; |
14 | import org.jeecg.modules.wms.config.container.entity.Container; | 13 | import org.jeecg.modules.wms.config.container.entity.Container; |
@@ -43,6 +42,7 @@ import org.springframework.stereotype.Service; | @@ -43,6 +42,7 @@ import org.springframework.stereotype.Service; | ||
43 | import org.springframework.transaction.annotation.Transactional; | 42 | import org.springframework.transaction.annotation.Transactional; |
44 | 43 | ||
45 | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; | 44 | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
45 | +import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; | ||
46 | import com.baomidou.mybatisplus.core.toolkit.Wrappers; | 46 | import com.baomidou.mybatisplus.core.toolkit.Wrappers; |
47 | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; | 47 | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
48 | 48 | ||
@@ -85,6 +85,8 @@ public class CycleCountDetailServiceImpl extends ServiceImpl<CycleCountDetailMap | @@ -85,6 +85,8 @@ public class CycleCountDetailServiceImpl extends ServiceImpl<CycleCountDetailMap | ||
85 | private IShipmentContainerHeaderService shipmentContainerHeaderService; | 85 | private IShipmentContainerHeaderService shipmentContainerHeaderService; |
86 | @Resource | 86 | @Resource |
87 | private IInventoryHeaderService inventoryHeaderService; | 87 | private IInventoryHeaderService inventoryHeaderService; |
88 | + @Resource | ||
89 | + private ContainerServiceImpl containerService; | ||
88 | 90 | ||
89 | @Override | 91 | @Override |
90 | @Transactional | 92 | @Transactional |
@@ -206,7 +208,7 @@ public class CycleCountDetailServiceImpl extends ServiceImpl<CycleCountDetailMap | @@ -206,7 +208,7 @@ public class CycleCountDetailServiceImpl extends ServiceImpl<CycleCountDetailMap | ||
206 | cycleCountDetailChildServiceImpl.save(cycleCountDetailChild); | 208 | cycleCountDetailChildServiceImpl.save(cycleCountDetailChild); |
207 | } | 209 | } |
208 | } | 210 | } |
209 | - LambdaQueryWrapper <CycleCountDetail> cycleCountDetailLambdaQueryWrapper = Wrappers.lambdaQuery(); | 211 | + LambdaQueryWrapper<CycleCountDetail> cycleCountDetailLambdaQueryWrapper = Wrappers.lambdaQuery(); |
210 | cycleCountDetailLambdaQueryWrapper.eq(CycleCountDetail::getCycleCountHeadCode, code); | 212 | cycleCountDetailLambdaQueryWrapper.eq(CycleCountDetail::getCycleCountHeadCode, code); |
211 | List<CycleCountDetail> cycleCountDetailList = cycleCountDetailService.list(cycleCountDetailLambdaQueryWrapper); | 213 | List<CycleCountDetail> cycleCountDetailList = cycleCountDetailService.list(cycleCountDetailLambdaQueryWrapper); |
212 | if (CollectionUtils.isEmpty(cycleCountDetailList)) { | 214 | if (CollectionUtils.isEmpty(cycleCountDetailList)) { |
@@ -251,7 +253,11 @@ public class CycleCountDetailServiceImpl extends ServiceImpl<CycleCountDetailMap | @@ -251,7 +253,11 @@ public class CycleCountDetailServiceImpl extends ServiceImpl<CycleCountDetailMap | ||
251 | return Result.error("盘点明细没有子单"); | 253 | return Result.error("盘点明细没有子单"); |
252 | } | 254 | } |
253 | String containerCode = cycleCountDetail.getContainerCode(); | 255 | String containerCode = cycleCountDetail.getContainerCode(); |
254 | - String fromLocationCode = cycleCountDetail.getLocationCode(); | 256 | + Container container = containerService.getContainerByCode(containerCode, warehouseCode); |
257 | + if (container == null) { | ||
258 | + return Result.error("容器:" + containerCode + "不存在"); | ||
259 | + } | ||
260 | + String fromLocationCode = container.getLocationCode(); | ||
255 | String toLocationCode = QuantityConstant.EMPTY_STRING; | 261 | String toLocationCode = QuantityConstant.EMPTY_STRING; |
256 | String value = parameterConfigurationService.getValueByCode(QuantityConstant.RULE_TASK_LOCATION); | 262 | String value = parameterConfigurationService.getValueByCode(QuantityConstant.RULE_TASK_LOCATION); |
257 | int taskLocationRule = Integer.parseInt(value); | 263 | int taskLocationRule = Integer.parseInt(value); |
@@ -281,9 +287,9 @@ public class CycleCountDetailServiceImpl extends ServiceImpl<CycleCountDetailMap | @@ -281,9 +287,9 @@ public class CycleCountDetailServiceImpl extends ServiceImpl<CycleCountDetailMap | ||
281 | task.setZoneCode(zoneCode); | 287 | task.setZoneCode(zoneCode); |
282 | task.setInnernalTaskType(QuantityConstant.TASK_INTENERTYPE_CYCLECOUNT); | 288 | task.setInnernalTaskType(QuantityConstant.TASK_INTENERTYPE_CYCLECOUNT); |
283 | task.setTaskType(QuantityConstant.TASK_TYPE_CYCLECOUNT); | 289 | task.setTaskType(QuantityConstant.TASK_TYPE_CYCLECOUNT); |
284 | - task.setContainerCode(cycleCountDetail.getContainerCode()); | 290 | + task.setContainerCode(containerCode); |
285 | task.setStatus(QuantityConstant.TASK_STATUS_BUILD); | 291 | task.setStatus(QuantityConstant.TASK_STATUS_BUILD); |
286 | - task.setFromLocationCode(cycleCountDetail.getLocationCode()); | 292 | + task.setFromLocationCode(fromLocationCode); |
287 | task.setToPortCode(toPort); | 293 | task.setToPortCode(toPort); |
288 | task.setSequenceNumber(1); | 294 | task.setSequenceNumber(1); |
289 | task.setShipmentContainerHeaderId(cycleCoutDetailId); | 295 | task.setShipmentContainerHeaderId(cycleCoutDetailId); |
@@ -297,7 +303,6 @@ public class CycleCountDetailServiceImpl extends ServiceImpl<CycleCountDetailMap | @@ -297,7 +303,6 @@ public class CycleCountDetailServiceImpl extends ServiceImpl<CycleCountDetailMap | ||
297 | throw new JeecgBootException("盘点任务主表生成失败!"); | 303 | throw new JeecgBootException("盘点任务主表生成失败!"); |
298 | } | 304 | } |
299 | 305 | ||
300 | - | ||
301 | for (CycleCountDetailChild item : childList) { | 306 | for (CycleCountDetailChild item : childList) { |
302 | // 写入任务细表 | 307 | // 写入任务细表 |
303 | TaskDetail taskDetail = new TaskDetail(); | 308 | TaskDetail taskDetail = new TaskDetail(); |
huaheng-wms-core/src/main/java/org/jeecg/modules/wms/task/taskHeader/service/impl/TaskHeaderServiceImpl.java
@@ -792,7 +792,6 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea | @@ -792,7 +792,6 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea | ||
792 | // 9 更新单据 | 792 | // 9 更新单据 |
793 | ShipmentContainerHeader shipmentContainerHeader = shipmentContainerHeaderService.getById(taskHeader.getShipmentContainerHeaderId()); | 793 | ShipmentContainerHeader shipmentContainerHeader = shipmentContainerHeaderService.getById(taskHeader.getShipmentContainerHeaderId()); |
794 | if (shipmentContainerHeader != null) { | 794 | if (shipmentContainerHeader != null) { |
795 | - shipmentContainerHeader.setStatus(QuantityConstant.SHIPMENT_CONTAINER_FINISHED); | ||
796 | success = shipmentContainerHeaderService.updateStatusById(QuantityConstant.SHIPMENT_CONTAINER_FINISHED, shipmentContainerHeader.getId()); | 795 | success = shipmentContainerHeaderService.updateStatusById(QuantityConstant.SHIPMENT_CONTAINER_FINISHED, shipmentContainerHeader.getId()); |
797 | if (!success) { | 796 | if (!success) { |
798 | throw new JeecgBootException("处理空出失败,更新出库组盘头失败"); | 797 | throw new JeecgBootException("处理空出失败,更新出库组盘头失败"); |