diff --git a/api-admin/src/main/java/com/glxp/sale/admin/controller/basic/SpsSyncDownloadController.java b/api-admin/src/main/java/com/glxp/sale/admin/controller/basic/SpsSyncDownloadController.java index 6e0a69b..5ef55cb 100644 --- a/api-admin/src/main/java/com/glxp/sale/admin/controller/basic/SpsSyncDownloadController.java +++ b/api-admin/src/main/java/com/glxp/sale/admin/controller/basic/SpsSyncDownloadController.java @@ -3,12 +3,14 @@ package com.glxp.sale.admin.controller.basic; import cn.hutool.core.collection.CollUtil; import com.glxp.sale.admin.constant.ConstantStatus; import com.glxp.sale.admin.entity.basic.BasicExportStatusEntity; +import com.glxp.sale.admin.entity.inout.OrderEntity; import com.glxp.sale.admin.req.basic.SpsSyncDataRequest; import com.glxp.sale.admin.res.basic.SpSyncUdiResponse; import com.glxp.sale.admin.res.basic.SpsSyncBusResponse; import com.glxp.sale.admin.res.basic.SpsSyncDataResponse; import com.glxp.sale.admin.res.basic.SpsSyncOrderResponse; import com.glxp.sale.admin.service.basic.BasicExportService; +import com.glxp.sale.admin.service.inout.OrderService; import com.glxp.sale.common.res.BaseResponse; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; @@ -22,6 +24,8 @@ public class SpsSyncDownloadController { SpsSyncDownloadService spsSyncDownloadService; @Resource BasicExportService basicExportService; + @Resource + OrderService orderService; @GetMapping("sps/sync/basic") public BaseResponse findProductInfo(SpsSyncDataRequest spsSyncDataRequest) { @@ -39,7 +43,7 @@ public class SpsSyncDownloadController { if (CollUtil.isNotEmpty(baseResponse.getData().getWarehouseUserEntities())) { logs = logs + "分库用户信息:" + baseResponse.getData().getWarehouseUserEntities().size() + "条\n"; } - if(CollUtil.isNotEmpty(baseResponse.getData().getWarehouseBussinessTypeEntities())){ + if (CollUtil.isNotEmpty(baseResponse.getData().getWarehouseBussinessTypeEntities())) { logs = logs + "分库单据类型:" + baseResponse.getData().getWarehouseBussinessTypeEntities().size() + "条\n"; } @@ -118,6 +122,11 @@ public class SpsSyncDownloadController { basicExportStatusEntity.setRemark(logs); basicExportService.updateExportStatus(basicExportStatusEntity); + if (CollUtil.isNotEmpty(baseResponse.getData().getOrderEntities())) { + for (OrderEntity orderEntity : baseResponse.getData().getOrderEntities()) { + orderService.updateOrderStatus(orderEntity.getId(), 1); + } + } SpsSyncOrderResponse spsSyncOrderResponse = baseResponse.getData(); spsSyncOrderResponse.setTaskId(basicExportStatusEntity.getId()); baseResponse.setData(spsSyncOrderResponse); diff --git a/api-admin/src/main/java/com/glxp/sale/admin/controller/basic/SpsSyncDownloadService.java b/api-admin/src/main/java/com/glxp/sale/admin/controller/basic/SpsSyncDownloadService.java index 58ede26..e2479ae 100644 --- a/api-admin/src/main/java/com/glxp/sale/admin/controller/basic/SpsSyncDownloadService.java +++ b/api-admin/src/main/java/com/glxp/sale/admin/controller/basic/SpsSyncDownloadService.java @@ -344,8 +344,6 @@ public class SpsSyncDownloadService { SyncDataSetResponse syncDataSetEntity = syncDataSetService.selectSet(); if (syncDataSetEntity.isOrderScanFinish()) { List orderEntities = new ArrayList<>(); - - if (syncDataSetEntity.isOrderUnReceive()) { OrderFilterRequest orderFilterRequest = new OrderFilterRequest(); BeanUtils.copyProperties(spsSyncDataRequest, orderFilterRequest); diff --git a/api-admin/src/main/java/com/glxp/sale/admin/controller/inout/StockOrderController.java b/api-admin/src/main/java/com/glxp/sale/admin/controller/inout/StockOrderController.java index 9ce8461..3ce6295 100644 --- a/api-admin/src/main/java/com/glxp/sale/admin/controller/inout/StockOrderController.java +++ b/api-admin/src/main/java/com/glxp/sale/admin/controller/inout/StockOrderController.java @@ -6,6 +6,7 @@ import cn.hutool.core.util.StrUtil; import com.github.pagehelper.PageInfo; import com.glxp.sale.admin.annotation.AuthRuleAnnotation; import com.glxp.sale.admin.constant.ConstantStatus; +import com.glxp.sale.admin.dao.inout.OrderDao; import com.glxp.sale.admin.entity.auth.AuthAdmin; import com.glxp.sale.admin.entity.basic.*; import com.glxp.sale.admin.entity.info.CompanyEntity; @@ -83,6 +84,8 @@ public class StockOrderController { GennerOrderUtils gennerOrderUtils; @Resource private BussinessTypeService bussinessTypeService; + @Resource + private OrderDao orderDao; @AuthRuleAnnotation("") @GetMapping("/udiwms/stock/order/error") @@ -614,21 +617,43 @@ public class StockOrderController { } /** - * 回退已验收单据到未验收状态 + * 撤回已验收单据到未验收状态 * * @param billNo * @return */ @AuthRuleAnnotation("") - @GetMapping("/udiwms/stock/order/rollback") + @GetMapping("/udiwms/stock/order/received/rollback") public BaseResponse rollbackOrder(String billNo) { if (StrUtil.isBlank(billNo)) { return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL); } + + OrderEntity orderEntity = orderDao.selectByBillNo(billNo); + if (StrUtil.isNotEmpty(orderEntity.getSupplementNo()) || StrUtil.isNotEmpty(orderEntity.getUllageSupNo())) { + return ResultVOUtils.error(500, "单据已补单,无法撤回!"); + } + if (orderEntity.getExportStatus() == ConstantStatus.ORDER_EXPORT_ED) { + return ResultVOUtils.error(500, "单据已同步到内网UDI管理系统,无法撤回!"); + } boolean result = stockOrderService.rollbackOrder(billNo); if (result) { return ResultVOUtils.success(); } - return ResultVOUtils.error(ResultEnum.NOT_NETWORK, "回退失败"); + return ResultVOUtils.error(ResultEnum.NOT_NETWORK, "撤回失败"); + } + + //未验收单据撤回到等待校验 + @AuthRuleAnnotation("") + @GetMapping("/udiwms/stock/order/unReceive/rollback") + public BaseResponse rollUnReceivebackOrder(String billNo) { + if (StrUtil.isBlank(billNo)) { + return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL); + } + boolean result = stockOrderService.rollbackOrder(billNo); + if (result) { + return ResultVOUtils.success("撤回成功!"); + } + return ResultVOUtils.error(ResultEnum.NOT_NETWORK, "撤回失败"); } } diff --git a/api-admin/src/main/java/com/glxp/sale/admin/controller/inout/WareHouseController.java b/api-admin/src/main/java/com/glxp/sale/admin/controller/inout/WareHouseController.java index 16ab2e2..49e3a90 100644 --- a/api-admin/src/main/java/com/glxp/sale/admin/controller/inout/WareHouseController.java +++ b/api-admin/src/main/java/com/glxp/sale/admin/controller/inout/WareHouseController.java @@ -1264,10 +1264,10 @@ public class WareHouseController { return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL); } List userList = JSONUtil.toList(userListJson, AuthAdmin.class); - if (CollUtil.isEmpty(userList)) { - return ResultVOUtils.error(500, "用户列表不能为空"); - } - warehouseUserService.saveWarehouseUser(code, JSONUtil.toList(userListJson, AuthAdmin.class)); +// if (CollUtil.isEmpty(userList)) { +// return ResultVOUtils.error(500, "用户列表不能为空"); +// } + warehouseUserService.saveWarehouseUser(code, userList); InvSubWarehouseEntity invSubWarehouseEntity = invSubWarehouseService.findByInvSubByCode(code); invWarehouseService.updateTime(invSubWarehouseEntity.getParentId(), new Date()); diff --git a/api-admin/src/main/java/com/glxp/sale/admin/service/inout/impl/StockOrderServiceImpl.java b/api-admin/src/main/java/com/glxp/sale/admin/service/inout/impl/StockOrderServiceImpl.java index 9a97577..f41ca16 100644 --- a/api-admin/src/main/java/com/glxp/sale/admin/service/inout/impl/StockOrderServiceImpl.java +++ b/api-admin/src/main/java/com/glxp/sale/admin/service/inout/impl/StockOrderServiceImpl.java @@ -1,5 +1,6 @@ package com.glxp.sale.admin.service.inout.impl; +import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.StrUtil; import com.github.pagehelper.PageHelper; import com.glxp.sale.admin.constant.ConstantStatus; @@ -165,7 +166,6 @@ public class StockOrderServiceImpl implements StockOrderService { public boolean rollbackOrder(String billNo) { //查询业务单据 StockOrderEntity stockOrderEntity = stockOrderDao.selectByBillNo(billNo); - //查询扫码单据 OrderEntity orderEntity = orderDao.selectByBillNo(billNo); if (stockOrderEntity.getStatus().equals(ConstantStatus.SORDER_CHECKED)) { @@ -198,7 +198,9 @@ public class StockOrderServiceImpl implements StockOrderService { filterInvProductDetailRequest.setOrderIdFk(orderEntity.getId()); List invProductDetailEntities = invPreInProductDetailDao.filterInvProductDetail(filterInvProductDetailRequest); - Map> invPreInProductDetailMap = invProductDetailEntities.stream().collect(Collectors.groupingBy(InvProductDetailEntity::getProductIdFk)); + Map> invPreInProductDetailMap = invProductDetailEntities + .stream() + .collect(Collectors.groupingBy(InvProductDetailEntity::getProductIdFk)); List invPreInProductList = new ArrayList<>(invPreInProductDetailMap.keySet().size()); @@ -248,42 +250,43 @@ public class StockOrderServiceImpl implements StockOrderService { filterInvProductDetailRequest.setOrderIdFk(orderEntity.getId()); List invProductDetailEntities = invProductDetailDao.filterInvProductDetail(filterInvProductDetailRequest); - //合并各个产品集合数据 - Map> invProductDetailMap = invProductDetailEntities.stream().collect(Collectors.groupingBy(InvProductDetailEntity::getProductIdFk)); - - List invProductList = new ArrayList<>(invProductDetailMap.keySet().size()); +// //合并各个产品集合数据 +// Map> invProductDetailMap = +// invProductDetailEntities.stream().collect(Collectors.groupingBy(InvProductDetailEntity::getProductIdFk)); - for (String productId : invProductDetailMap.keySet()) { - List detailList = invProductDetailMap.get(productId); - //查询库存 + List invProductList = new ArrayList<>(); + for (InvProductDetailEntity invProductDetailEntity : invProductDetailEntities) { FilterInvProductRequest filterInvProductRequest = new FilterInvProductRequest(); - filterInvProductRequest.setRelIdFk(productId); - filterInvProductRequest.setSupId(detailList.get(0).getSupId()); - filterInvProductRequest.setInvWarehouseCode(detailList.get(0).getInvWarehouseCode()); - filterInvProductRequest.setInvStorageCode(detailList.get(0).getInvStorageCode()); - if (StrUtil.isNotBlank(detailList.get(0).getBatchNo())) { + filterInvProductRequest.setRelIdFk(invProductDetailEntity.getProductIdFk()); + filterInvProductRequest.setSupId(invProductDetailEntity.getSupId()); + filterInvProductRequest.setInvWarehouseCode(invProductDetailEntity.getInvWarehouseCode()); + filterInvProductRequest.setInvStorageCode(invProductDetailEntity.getInvStorageCode()); + if (StrUtil.isBlank(invProductDetailEntity.getBatchNo())) { filterInvProductRequest.setBatchNo("empty"); } else { - filterInvProductRequest.setBatchNo(detailList.get(0).getBatchNo()); + filterInvProductRequest.setBatchNo(invProductDetailEntity.getBatchNo()); } List invProductEntities = invProductDao.filterInvProduct(filterInvProductRequest); - InvProductEntity invProductEntity = invProductEntities.get(0); - - detailList.forEach(invProductDetailEntity -> calculateInvCount(invProductEntity, invProductDetailEntity)); - - invProductList.add(invProductEntity); + if (CollUtil.isNotEmpty(invProductEntities) && invProductEntities.size() > 0) { + InvProductEntity invProductEntity = invProductEntities.get(0); + calculateInvCount(invProductEntity, invProductDetailEntity); + invProductList.add(invProductEntity); + } else { + return false; + } } - //删除库存详情 invProductDetailDao.deleteByOrderId(orderEntity.getId()); //删除码详情 - codesDao.deleteByOrderId(orderEntity.getId()); +// codesDao.deleteByOrderId(orderEntity.getId()); //更新库存 for (InvProductEntity invProductEntity : invProductList) { //查询库存码详情,如果库存码详情为空,则删除此库存 FilterInvProductDetailRequest detailParams = new FilterInvProductDetailRequest(); detailParams.setBatchNo(invProductEntity.getBatchNo()); detailParams.setInvCodes(Collections.singletonList(invProductEntity.getInvStorageCode())); + detailParams.setInvWarehouseCode(invProductEntity.getInvWarehouseCode()); + detailParams.setSupId(invProductEntity.getSupId()); detailParams.setProductIdFk(invProductEntity.getRelIdFk()); int count = invProductDetailDao.statCount(detailParams); if (count == 0) { @@ -294,7 +297,6 @@ public class StockOrderServiceImpl implements StockOrderService { } } } - //修改单据状态到未验收 stockOrderEntity.setStatus(ConstantStatus.SORDER_CHECKED); } diff --git a/api-admin/src/main/java/com/glxp/sale/admin/service/inout/impl/WarehouseUserServiceImpl.java b/api-admin/src/main/java/com/glxp/sale/admin/service/inout/impl/WarehouseUserServiceImpl.java index dedeebf..2351d78 100644 --- a/api-admin/src/main/java/com/glxp/sale/admin/service/inout/impl/WarehouseUserServiceImpl.java +++ b/api-admin/src/main/java/com/glxp/sale/admin/service/inout/impl/WarehouseUserServiceImpl.java @@ -68,6 +68,8 @@ public class WarehouseUserServiceImpl implements WarehouseUserService { @Override public void saveWarehouseUser(String code, List userList) { + //删除旧数据 + warehouseUserDao.deleteByCode(code); if (CollUtil.isNotEmpty(userList)) { List warehouseUserEntities = new ArrayList<>(userList.size()); userList.forEach(user -> { @@ -77,8 +79,6 @@ public class WarehouseUserServiceImpl implements WarehouseUserService { warehouseUserEntity.setUserid(user.getId()); warehouseUserEntities.add(warehouseUserEntity); }); - //删除旧数据 - warehouseUserDao.deleteByCode(code); warehouseUserDao.batchInsert(warehouseUserEntities); } } @@ -110,6 +110,6 @@ public class WarehouseUserServiceImpl implements WarehouseUserService { @Override public Integer countUserBySubInvCode(String subInvCode) { - return warehouseUserDao.countByCode(subInvCode); + return warehouseUserDao.countByCode(subInvCode); } } diff --git a/api-admin/src/main/java/com/glxp/sale/admin/service/inventory/impl/InvProductServiceImpl.java b/api-admin/src/main/java/com/glxp/sale/admin/service/inventory/impl/InvProductServiceImpl.java index 06a2922..0a127d6 100644 --- a/api-admin/src/main/java/com/glxp/sale/admin/service/inventory/impl/InvProductServiceImpl.java +++ b/api-admin/src/main/java/com/glxp/sale/admin/service/inventory/impl/InvProductServiceImpl.java @@ -119,11 +119,20 @@ public class InvProductServiceImpl implements InvProductService { for (String relIdFk : relIdFkSet) { if (CollUtil.isNotEmpty(batchNoSet)) { for (String batchNo : batchNoSet) { - List list = data.stream().filter(product -> product.getRelIdFk().equals(relIdFk)).filter(product -> product.getBatchNo().equals(batchNo)).collect(Collectors.toList()); + List list = + data.stream().filter(product -> product.getRelIdFk().equals(relIdFk)) + .filter(product -> StrUtil.trimToEmpty(product.getBatchNo()).equals(StrUtil.trimToEmpty(batchNo))) + .collect(Collectors.toList()); if (CollUtil.isNotEmpty(list)) { InvProductResponse invProductResponse = list.get(0); - int inCount = data.stream().filter(product -> product.getRelIdFk().equals(relIdFk)).filter(product -> product.getBatchNo().equals(batchNo)).mapToInt(InvProductResponse::getInCount).sum(); - int outCount = data.stream().filter(product -> product.getRelIdFk().equals(relIdFk)).filter(product -> product.getBatchNo().equals(batchNo)).mapToInt(InvProductResponse::getOutCount).sum(); + int inCount = data.stream() + .filter(product -> product.getRelIdFk().equals(relIdFk)) + .filter(product -> StrUtil.trimToEmpty(product.getBatchNo()).equals(StrUtil.trimToEmpty(batchNo))) + .mapToInt(InvProductResponse::getInCount).sum(); + int outCount = data.stream() + .filter(product -> product.getRelIdFk().equals(relIdFk)) + .filter(product -> StrUtil.trimToEmpty(product.getBatchNo()).equals(StrUtil.trimToEmpty(batchNo))) + .mapToInt(InvProductResponse::getOutCount).sum(); invProductResponse.setInCount(inCount); invProductResponse.setOutCount(outCount); invProductResponse.setReCount(inCount - outCount); diff --git a/api-admin/src/main/resources/mybatis/mapper/auth/AuthAdminDao.xml b/api-admin/src/main/resources/mybatis/mapper/auth/AuthAdminDao.xml index e15eef5..320912e 100644 --- a/api-admin/src/main/resources/mybatis/mapper/auth/AuthAdminDao.xml +++ b/api-admin/src/main/resources/mybatis/mapper/auth/AuthAdminDao.xml @@ -34,7 +34,7 @@ replace INTO auth_user(id, userName, passWord, lastLoginIp, - lastLoginTime, createTime, userFlag, lastModifyTime, employeeName,CustomerId,locInvCode,locSubInvCode,dept) + lastLoginTime, createTime, userFlag, lastModifyTime, employeeName,CustomerId,locInvCode,locSubInvCode,dept,comments) values ( #{id}, #{userName}, @@ -48,7 +48,7 @@ #{CustomerId}, #{locInvCode}, #{locSubInvCode}, - #{dept} + #{dept},#{comments} )