diff --git a/ant-design-vue-jeecg/src/components/jeecgbiz/JSelectMultiSomeContainer.vue b/ant-design-vue-jeecg/src/components/jeecgbiz/JSelectMultiSomeContainer.vue index 534c1c3..40345af 100644 --- a/ant-design-vue-jeecg/src/components/jeecgbiz/JSelectMultiSomeContainer.vue +++ b/ant-design-vue-jeecg/src/components/jeecgbiz/JSelectMultiSomeContainer.vue @@ -27,7 +27,7 @@ export default { }, data() { return { - url: {list: '/inventory/inventoryDetail/list'}, + url: {list: '/inventory/inventoryDetail/queryPageListList'}, columns: [ {title: '容器编码', align: 'center', dataIndex: 'containerCode'}, {title: '库位编码', align: 'center', width: '15%', dataIndex: 'locationCode'}, diff --git a/ant-design-vue-jeecg/src/views/system/QuartzJobList.vue b/ant-design-vue-jeecg/src/views/system/QuartzJobList.vue index 1d4a334..c2c4647 100644 --- a/ant-design-vue-jeecg/src/views/system/QuartzJobList.vue +++ b/ant-design-vue-jeecg/src/views/system/QuartzJobList.vue @@ -13,7 +13,7 @@ </a-col> <a-col :md="6" :sm="10"> <a-form-model-item label="任务状态" prop="status"> - <a-select style="width: 220px" v-model="queryParam.status" placeholder="请选择状态"> + <a-select v-model="queryParam.status" placeholder="请选择状态"> <a-select-option value="">全部</a-select-option> <a-select-option value="0">正常</a-select-option> <a-select-option value="-1">停止</a-select-option> diff --git a/ant-design-vue-jeecg/src/views/system/inventory/SimpleInventoryDetailList.vue b/ant-design-vue-jeecg/src/views/system/inventory/SimpleInventoryDetailList.vue index fb40fb9..1339c9b 100644 --- a/ant-design-vue-jeecg/src/views/system/inventory/SimpleInventoryDetailList.vue +++ b/ant-design-vue-jeecg/src/views/system/inventory/SimpleInventoryDetailList.vue @@ -447,6 +447,9 @@ export default { '次品': 'red', '锁定': 'red', '冻结': 'red', + '空闲': 'green', + '有货': 'purple', + '满盘': 'blue', default: 'blue' }; return colors[status] || colors.default; diff --git a/ant-design-vue-jeecg/src/views/system/receipt/ReceiptHeaderHistoryList.vue b/ant-design-vue-jeecg/src/views/system/receipt/ReceiptHeaderHistoryList.vue index 8272b13..95864f9 100644 --- a/ant-design-vue-jeecg/src/views/system/receipt/ReceiptHeaderHistoryList.vue +++ b/ant-design-vue-jeecg/src/views/system/receipt/ReceiptHeaderHistoryList.vue @@ -286,7 +286,6 @@ export default { title: '原因', align: 'center', dataIndex: 'reason', - scopedSlots: {customRender: 'reason'} }, { title: '创建人', diff --git a/ant-design-vue-jeecg/src/views/system/task/TaskDetailList.vue b/ant-design-vue-jeecg/src/views/system/task/TaskDetailList.vue index 2e8debd..c3c9c75 100644 --- a/ant-design-vue-jeecg/src/views/system/task/TaskDetailList.vue +++ b/ant-design-vue-jeecg/src/views/system/task/TaskDetailList.vue @@ -199,6 +199,16 @@ export default { scopedSlots: { customRender: 'inventoryStatus_dictText' } }, { + title: '入库单ID', + align: 'center', + dataIndex: 'receiptId' + }, + { + title: '出库单ID', + align: 'center', + dataIndex: 'shipmentId' + }, + { title: '创建人', align: 'center', dataIndex: 'createBy' diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/inventory/inventoryDetail/controller/InventoryDetailController.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/inventory/inventoryDetail/controller/InventoryDetailController.java index df78858..2bebddb 100644 --- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/inventory/inventoryDetail/controller/InventoryDetailController.java +++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/inventory/inventoryDetail/controller/InventoryDetailController.java @@ -22,6 +22,7 @@ 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.core.toolkit.CollectionUtils; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import cn.hutool.core.date.DateUtil; @@ -69,6 +70,33 @@ public class InventoryDetailController extends JeecgController<InventoryDetail, return Result.OK(pageList); } + /** + * 分页列表查询 + * @param inventoryDetail + * @param pageNo + * @param pageSize + * @param req + * @return + */ + // @AutoLog(value = "库存详情-分页列表查询") + @ApiOperation(value = "库存详情-分页列表查询", notes = "库存详情-分页列表查询") + @GetMapping(value = "/queryPageListList") + public Result<IPage<InventoryDetail>> queryPageListList(InventoryDetail inventoryDetail, @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo, + @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize, HttpServletRequest req) { + Date inventoryAge = null; + if (inventoryDetail.getInventoryAge() != null) { + inventoryAge = DateUtil.offsetDay(new Date(), 0 - inventoryDetail.getInventoryAge()); + inventoryDetail.setInventoryAge(null); + } + QueryWrapper<InventoryDetail> queryWrapper = QueryGenerator.initQueryWrapper(inventoryDetail, req.getParameterMap()); + queryWrapper.lt(inventoryAge != null, "create_time", inventoryAge); + queryWrapper.lambda().groupBy(InventoryDetail::getContainerCode); + Page<InventoryDetail> page = new Page<InventoryDetail>(pageNo, pageSize); + IPage<InventoryDetail> pageList = inventoryDetailService.queryPage(page, queryWrapper); + inventoryDetailService.calculateInventoryAge(pageList.getRecords());// 计算库龄 + return Result.OK(pageList); + } + @ApiOperation(value = "库存详情-分页列表查询", notes = "库存详情-分页列表查询") @GetMapping(value = "/selectContainerlist") public Result<IPage<InventoryDetail>> selectContainerlist(InventoryDetail inventoryDetail, @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo, @@ -81,10 +109,14 @@ public class InventoryDetailController extends JeecgController<InventoryDetail, List<String> containerCodeList = inventoryDetailService.containerCodeList(warehouseCode, inventoryDetail.getMaterialCode()); QueryWrapper<InventoryDetail> queryWrapper = QueryGenerator.initQueryWrapper(inventoryDetail, req.getParameterMap()); Page<InventoryDetail> page = new Page<InventoryDetail>(pageNo, pageSize); - if (containerCodeList.size() > 0) { + if (CollectionUtils.isNotEmpty(containerCodeList)) { queryWrapper.in("container_code", containerCodeList); + queryWrapper.lambda().groupBy(InventoryDetail::getContainerCode); } pageList = inventoryDetailService.page(page, queryWrapper); + if (CollectionUtils.isEmpty(pageList.getRecords())) { + return Result.OK(pageList); + } } return Result.OK(pageList); } diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/monitor/job/AutoDeleteReceiptTask.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/monitor/job/AutoDeleteReceiptTask.java new file mode 100644 index 0000000..46ecb73 --- /dev/null +++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/monitor/job/AutoDeleteReceiptTask.java @@ -0,0 +1,73 @@ +package org.jeecg.modules.wms.monitor.job; + +import java.util.List; + +import javax.annotation.Resource; + +import org.jeecg.common.util.DateUtils; +import org.jeecg.modules.wms.api.erp.service.IErpService; +import org.jeecg.modules.wms.config.parameterConfiguration.service.IParameterConfigurationService; +import org.jeecg.modules.wms.framework.service.IHuahengMultiHandlerService; +import org.jeecg.modules.wms.receipt.receiptHeader.entity.ReceiptHeader; +import org.jeecg.modules.wms.receipt.receiptHeader.service.IReceiptHeaderService; +import org.jeecg.modules.wms.shipment.shipmentHeader.entity.ShipmentHeader; +import org.jeecg.modules.wms.shipment.shipmentHeader.service.IShipmentHeaderService; +import org.jeecg.utils.StringUtils; +import org.jeecg.utils.constant.QuantityConstant; +import org.quartz.*; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; + +import lombok.extern.slf4j.Slf4j; + +/** + * 删除完成的单据 + * @author 游杰 + */ + +@Slf4j +@PersistJobDataAfterExecution +@DisallowConcurrentExecution +public class AutoDeleteReceiptTask implements Job { + + @Resource + private IReceiptHeaderService receiptHeaderService; + + @Resource + private IShipmentHeaderService shipmentHeaderService; + + @Resource + private IErpService erpService; + @Resource + private IHuahengMultiHandlerService huahengMultiHandlerService; + @Resource + private IParameterConfigurationService parameterConfigurationService; + + @Override + public void execute(JobExecutionContext context) throws JobExecutionException { + String value = parameterConfigurationService.getValueByCode(QuantityConstant.RULE_DELETE_RECEIPT); + if (StringUtils.isEmpty(value)) { + value = "0"; + } + int DELETE_RECEIPT = Integer.parseInt(value); + if (DELETE_RECEIPT == QuantityConstant.NOT_DELETE_RECEIPT) { + return; + } + LambdaQueryWrapper<ReceiptHeader> receiptHeaderLambdaQueryWrapper = Wrappers.lambdaQuery(); + receiptHeaderLambdaQueryWrapper.eq(ReceiptHeader::getLastStatus, QuantityConstant.RECEIPT_HEADER_COMPLETED).isNull(ReceiptHeader::getReferCode); + List<ReceiptHeader> receiptHeaderList = receiptHeaderService.list(receiptHeaderLambdaQueryWrapper); + log.info(String.format(" AutoDeleteReceiptTask 执行任务! receiptHeaderList :" + receiptHeaderList + "时间" + DateUtils.getTimestamp())); + for (ReceiptHeader receiptHeader : receiptHeaderList) { + receiptHeaderService.delMain(String.valueOf(receiptHeader.getId()), QuantityConstant.WMS_COMPLETE_DELETE_RECEIPT); + } + LambdaQueryWrapper<ShipmentHeader> shipmentHeaderLambdaQueryWrapper = Wrappers.lambdaQuery(); + shipmentHeaderLambdaQueryWrapper.eq(ShipmentHeader::getLastStatus, QuantityConstant.SHIPMENT_HEADER_COMPLETED).isNull(ShipmentHeader::getReferCode); + List<ShipmentHeader> shipmentHeaderList = shipmentHeaderService.list(shipmentHeaderLambdaQueryWrapper); + log.info(String.format(" AutoDeleteReceiptTask 执行任务! shipmentHeaderList :" + shipmentHeaderList + "时间" + DateUtils.getTimestamp())); + for (ShipmentHeader shipmentHeader : shipmentHeaderList) { + shipmentHeaderService.delMain(String.valueOf(shipmentHeader.getId()), QuantityConstant.WMS_COMPLETE_DELETE_RECEIPT); + } + + } +} diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/monitor/job/ErpTask.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/monitor/job/ErpTask.java index d6e5154..fbcc978 100644 --- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/monitor/job/ErpTask.java +++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/monitor/job/ErpTask.java @@ -6,6 +6,7 @@ import javax.annotation.Resource; import org.jeecg.common.util.DateUtils; import org.jeecg.modules.wms.api.erp.service.IErpService; +import org.jeecg.modules.wms.config.parameterConfiguration.service.IParameterConfigurationService; import org.jeecg.modules.wms.framework.service.IHuahengMultiHandlerService; import org.jeecg.modules.wms.receipt.receiptHeader.entity.ReceiptHeader; import org.jeecg.modules.wms.receipt.receiptHeader.service.IReceiptHeaderService; @@ -39,6 +40,8 @@ public class ErpTask implements Job { private IErpService erpService; @Resource private IHuahengMultiHandlerService huahengMultiHandlerService; + @Resource + private IParameterConfigurationService parameterConfigurationService; @Override public void execute(JobExecutionContext context) throws JobExecutionException { diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/receipt/receiptHeader/service/impl/ReceiptHeaderServiceImpl.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/receipt/receiptHeader/service/impl/ReceiptHeaderServiceImpl.java index c1ffbd9..1cfb1bf 100644 --- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/receipt/receiptHeader/service/impl/ReceiptHeaderServiceImpl.java +++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/receipt/receiptHeader/service/impl/ReceiptHeaderServiceImpl.java @@ -79,7 +79,7 @@ public class ReceiptHeaderServiceImpl extends ServiceImpl<ReceiptHeaderMapper, R public boolean delMain(String id, String reason) { ReceiptHeader receiptHeader = getById(id); if (receiptHeader.getFirstStatus().intValue() > QuantityConstant.RECEIPT_HEADER_BUILD - && receiptHeader.getFirstStatus().intValue() <= QuantityConstant.RECEIPT_HEADER_COMPLETED) { + && receiptHeader.getLastStatus().intValue() < QuantityConstant.RECEIPT_HEADER_COMPLETED) { throw new JeecgBootException("不能删除非新建状态单据"); } receiptHeaderHistoryService.saveById(id, reason); diff --git a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/shipment/shipmentHeader/service/impl/ShipmentHeaderServiceImpl.java b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/shipment/shipmentHeader/service/impl/ShipmentHeaderServiceImpl.java index 1ac5620..432665b 100644 --- a/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/shipment/shipmentHeader/service/impl/ShipmentHeaderServiceImpl.java +++ b/huaheng-wms-core/src/main/java/org/jeecg/modules/wms/shipment/shipmentHeader/service/impl/ShipmentHeaderServiceImpl.java @@ -117,7 +117,7 @@ public class ShipmentHeaderServiceImpl extends ServiceImpl<ShipmentHeaderMapper, @Resource private IZoneService zoneService; - + @Resource private IWaveConfigService waveConfigService; @@ -132,7 +132,7 @@ public class ShipmentHeaderServiceImpl extends ServiceImpl<ShipmentHeaderMapper, throw new JeecgBootException("获取出库单信息失败!"); } if (shipmentHeader.getFirstStatus().intValue() > QuantityConstant.SHIPMENT_HEADER_BUILD - && shipmentHeader.getFirstStatus().intValue() <= QuantityConstant.SHIPMENT_HEADER_COMPLETED) { + && shipmentHeader.getFirstStatus().intValue() < QuantityConstant.SHIPMENT_HEADER_COMPLETED) { throw new JeecgBootException("不能删除非新建状态单据"); } LambdaUpdateWrapper<ShipmentHeader> shipmentHeaderLambdaUpdateWrapper = Wrappers.lambdaUpdate(); diff --git a/huaheng-wms-core/src/main/java/org/jeecg/utils/constant/QuantityConstant.java b/huaheng-wms-core/src/main/java/org/jeecg/utils/constant/QuantityConstant.java index 7a33be5..5c35dce 100644 --- a/huaheng-wms-core/src/main/java/org/jeecg/utils/constant/QuantityConstant.java +++ b/huaheng-wms-core/src/main/java/org/jeecg/utils/constant/QuantityConstant.java @@ -573,8 +573,15 @@ public class QuantityConstant { /** 自检到异常通知配置 */ public static final String SELF_CHECK_INFORM = "selfCheckInform"; - + /** 序列号前缀 */ public static final String RULE_MATERIAL_SERAIL_NUMBER = "materialSerialNoPrefix"; + /** 删除单据 */ + public static final String RULE_DELETE_RECEIPT = "deleteReceipt"; + + /** 不删除单据 */ + public static final int NOT_DELETE_RECEIPT = 0; + /** 删除单据 */ + public static final int DELETE_RECEIPT = 1; public static final int RULE_TASK_NOT_CLEAR = 0; public static final int RULE_TASK_AllOW_CLEAR = 1; @@ -690,28 +697,13 @@ public class QuantityConstant { public static final int HTTP_OK = 200; - public static final String URL = "http://erptest.gani.com.cn/K3Cloud/"; - - // pro - public static final String SRC_STOCK_ID = "10221050"; - public static final String SRC_STOCK_ID_BH = "10237102"; - public static final String DEST_STOCK_ID = "10237102"; - - public static final String WORK_SHOP = "BM000346"; // 生产车间 - // test -// public static final String SRC_STOCK_ID_BH = "9988308"; -// public static final String SRC_STOCK_ID = "9989058"; -// public static final String DEST_STOCK_ID = "9989057"; - public static final int AGV_TASK_NOT_CREATE = 0; // 没有创建过AGV任务 public static final int AGV_TASK_ALREADY_CREATE = 1; // 创建过AGV任务 - // 第三方打印工具 - public static final String PRINT_SERVICE = "PRINT_SERVICE"; - public static final String UPSTREAM_DELETE_RECEIPT = "上游删除"; public static final String BACK_DELETE_RECEIPT = "回传删除"; public static final String WMS_DELETE_RECEIPT = "WMS删除"; + public static final String WMS_COMPLETE_DELETE_RECEIPT = "单据完成删除"; /** * 不受控