1.修改单据编辑相关逻辑

2.完成验收更新审核时间字段
master
x_z 3 years ago
parent 2f8a03ced1
commit 57cbee7c3f

@ -308,6 +308,7 @@ public class OrderController {
orderEntity.setReviewUser(authAdmin.getId().intValue());
}
orderEntity.setUpdateTime(new Date());
orderEntity.setAuditTime(new Date());
orderService.updateOrder(orderEntity);
List<String> erpIds = DataTransUtil.strToErpList(orderEntity.getErpFk());
if (erpIds != null && erpIds.size() > 0) {
@ -319,6 +320,7 @@ public class OrderController {
if (customerId == 110) {
stockOrderEntity.setReviewUser(authAdmin.getId().intValue());
}
stockOrderEntity.setAuditTime(new Date());
stockOrderService.updateById(stockOrderEntity);
}
} else {
@ -331,7 +333,7 @@ public class OrderController {
if (customerId == 110) {
stockOrderEntity.setReviewUser(authAdmin.getId().intValue());
}
stockOrderEntity.setAuditTime(new Date());
stockOrderService.updateById(stockOrderEntity);
}
}

@ -13,17 +13,16 @@ import com.glxp.sale.admin.entity.basic.BasicUnitMaintainEntity;
import com.glxp.sale.admin.entity.basic.BussinessTypeEntity;
import com.glxp.sale.admin.entity.basic.UdiInfoEntity;
import com.glxp.sale.admin.entity.info.CompanyEntity;
import com.glxp.sale.admin.entity.info.CompanyProductRelevanceEntity;
import com.glxp.sale.admin.entity.inout.*;
import com.glxp.sale.admin.entity.inout.OrderEntity;
import com.glxp.sale.admin.entity.inout.StockOrderEntity;
import com.glxp.sale.admin.entity.inout.WarehouseEntity;
import com.glxp.sale.admin.entity.inout.WarehouseUserEntity;
import com.glxp.sale.admin.entity.inventory.InvProductDetailEntity;
import com.glxp.sale.admin.entity.param.SystemParamConfigEntity;
import com.glxp.sale.admin.entity.udid.UdiEntity;
import com.glxp.sale.admin.exception.JsonException;
import com.glxp.sale.admin.req.basic.CompanyProductRelevanceRequest;
import com.glxp.sale.admin.req.basic.FilterUdiInfoRequest;
import com.glxp.sale.admin.req.info.FilterCompanyProductRelevanceRequest;
import com.glxp.sale.admin.req.inout.*;
import com.glxp.sale.admin.req.inventory.FilterInvProductDetailRequest;
import com.glxp.sale.admin.res.PageSimpleResponse;
import com.glxp.sale.admin.res.basic.BussinessTypResponse;
import com.glxp.sale.admin.res.basic.CompanyProductRelevanceResponse;
@ -58,8 +57,10 @@ import org.springframework.web.context.request.ServletRequestAttributes;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.validation.Valid;
import java.util.*;
import java.util.function.Consumer;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
@RestController
@ -1121,7 +1122,7 @@ public class WareHouseController {
@AuthRuleAnnotation("")
@PostMapping("/warehouse/inout/replaceCodes")
public BaseResponse replaceCodes(@RequestBody CodesReplaceRequest codesReplaceRequest) {
if (StrUtil.isBlank(codesReplaceRequest.getCode())) {
if (StrUtil.isBlank(codesReplaceRequest.getCode()) || StrUtil.isBlank(codesReplaceRequest.getOrderId())) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL);
}
UdiEntity udi = FilterUdiUtils.getUdi(codesReplaceRequest.getCode());

@ -29,6 +29,11 @@ public class CodesReplaceRequest {
*/
private Integer newCount;
/**
*
*/
private String orderId;
private UdiInfoEntity udiEntity;
}

@ -96,4 +96,12 @@ public interface OrderService {
* @return
*/
boolean updateOrderInfo(String actDate, String auditTime, List<String> orderIds);
/**
*
*
* @param orderEntity
* @param orders
*/
public void getAllOrder(OrderEntity orderEntity, List<OrderEntity> orders);
}

@ -3,11 +3,13 @@ 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;
import com.glxp.sale.admin.constant.ConstantType;
import com.glxp.sale.admin.dao.inout.*;
import com.glxp.sale.admin.dao.inventory.InvProductDao;
import com.glxp.sale.admin.dao.inventory.InvProductDetailDao;
import com.glxp.sale.admin.entity.inout.FilterErpOrderRequest;
import com.glxp.sale.admin.entity.inout.OrderEntity;
import com.glxp.sale.admin.entity.inout.WarehouseEntity;
import com.glxp.sale.admin.entity.inventory.InvProductDetailEntity;
import com.glxp.sale.admin.entity.inventory.InvProductEntity;
@ -17,10 +19,12 @@ import com.glxp.sale.admin.req.inout.WarehouseQueryRequest;
import com.glxp.sale.admin.req.inventory.FilterInvProductDetailRequest;
import com.glxp.sale.admin.req.inventory.FilterInvProductRequest;
import com.glxp.sale.admin.service.inout.CodesService;
import com.glxp.sale.admin.service.inout.OrderService;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
@ -41,6 +45,8 @@ public class CodesServiceImpl implements CodesService {
private OrderDao orderDao;
@Resource
private StockOrderDao stockOrderDao;
@Resource
private OrderService orderService;
@Override
public List<WarehouseEntity> listWarehouse(WarehouseQueryRequest warehouseQueryRequest) {
@ -158,75 +164,89 @@ public class CodesServiceImpl implements CodesService {
@Transactional(rollbackFor = Exception.class)
@Override
public void replaceCodes(CodesReplaceRequest codesReplaceRequest) {
List<WarehouseEntity> codeList = codesDao.findByCode(codesReplaceRequest.getCode());
//删除码表,添加新的条码,并更新库存
for (WarehouseEntity warehouseEntity : codeList) {
//删除码详情
codesDao.deleteByOrderIdAndCode(warehouseEntity.getOrderId(), warehouseEntity.getCode());
//查询库存详情
FilterInvProductDetailRequest filterInvProductDetailRequest = new FilterInvProductDetailRequest();
filterInvProductDetailRequest.setOriginCode(codesReplaceRequest.getCode());
filterInvProductDetailRequest.setProductIdFk(warehouseEntity.getRelId());
filterInvProductDetailRequest.setOrderIdFk(warehouseEntity.getOrderId());
if (StrUtil.isNotBlank(warehouseEntity.getBatchNo())) {
filterInvProductDetailRequest.setBatchNo(warehouseEntity.getBatchNo());
} else {
filterInvProductDetailRequest.setBatchNo("empty");
}
List<InvProductDetailEntity> invProductDetailEntities = invProductDetailDao.filterInvProductDetail(filterInvProductDetailRequest);
if (CollUtil.isNotEmpty(invProductDetailEntities)) {
//库存详情不为空,单据已验收,更新库存
InvProductDetailEntity invProductDetailEntity = invProductDetailEntities.get(0); //库存
//删除库存详情
invProductDetailDao.deleteByOrderIdAndCode(warehouseEntity.getOrderId(), codesReplaceRequest.getCode());
//查询原库存详情和新的库存详情
FilterInvProductRequest filterInvProductRequest = new FilterInvProductRequest();
filterInvProductRequest.setRelIdFk(invProductDetailEntity.getProductIdFk());
if (StrUtil.isBlank(invProductDetailEntity.getBatchNo())) {
filterInvProductRequest.setBatchNo("empty");
} else {
filterInvProductRequest.setBatchNo(invProductDetailEntity.getBatchNo());
OrderEntity orderEntity = orderDao.selectByBillNo(codesReplaceRequest.getOrderId());
//查询所有单据
List<OrderEntity> orderList = new ArrayList<>();
orderList.add(orderEntity);
orderService.getAllOrder(orderEntity, orderList);
for (OrderEntity order : orderList) {
//查询条码
WarehouseQueryRequest warehouseQueryRequest = new WarehouseQueryRequest();
warehouseQueryRequest.setOrderId(order.getId());
warehouseQueryRequest.setCode(codesReplaceRequest.getCode());
List<WarehouseEntity> warehouseEntities = codesDao.findByOrderId(warehouseQueryRequest);
if (CollUtil.isNotEmpty(warehouseEntities)) {
for (WarehouseEntity warehouseEntity : warehouseEntities) {
//删除码详情
codesDao.deleteByOrderIdAndCode(warehouseEntity.getOrderId(), warehouseEntity.getCode());
if (order.getStatus().equals(ConstantStatus.ORDER_STATUS_PROCESS)) {
//查询库存详情
FilterInvProductDetailRequest filterInvProductDetailRequest = new FilterInvProductDetailRequest();
filterInvProductDetailRequest.setOriginCode(codesReplaceRequest.getCode());
filterInvProductDetailRequest.setProductIdFk(warehouseEntity.getRelId());
filterInvProductDetailRequest.setOrderIdFk(order.getId());
if (StrUtil.isNotBlank(warehouseEntity.getBatchNo())) {
filterInvProductDetailRequest.setBatchNo(warehouseEntity.getBatchNo());
} else {
filterInvProductDetailRequest.setBatchNo("empty");
}
List<InvProductDetailEntity> invProductDetailEntities = invProductDetailDao.filterInvProductDetail(filterInvProductDetailRequest);
if (CollUtil.isNotEmpty(invProductDetailEntities)) {
//库存详情不为空,单据已验收,更新库存
InvProductDetailEntity invProductDetailEntity = invProductDetailEntities.get(0); //库存
//删除库存详情
invProductDetailDao.deleteByOrderIdAndCode(warehouseEntity.getOrderId(), codesReplaceRequest.getCode());
//查询原库存详情和新的库存详情
FilterInvProductRequest filterInvProductRequest = new FilterInvProductRequest();
filterInvProductRequest.setRelIdFk(invProductDetailEntity.getProductIdFk());
if (StrUtil.isBlank(invProductDetailEntity.getBatchNo())) {
filterInvProductRequest.setBatchNo("empty");
} else {
filterInvProductRequest.setBatchNo(invProductDetailEntity.getBatchNo());
}
InvProductEntity invProductEntity = invProductDao.filterInvProduct(filterInvProductRequest).get(0);
if (invProductDetailEntity.getMainAction().equals(ConstantType.TYPE_OUT)) {
//出库
int count = invProductEntity.getOutCount() + invProductDetailEntity.getCount();
invProductEntity.setOutCount(count);
} else if (invProductDetailEntity.getMainAction().equals(ConstantType.TYPE_PUT)) {
//入库
int count = invProductEntity.getInCount() - invProductDetailEntity.getCount();
invProductEntity.setInCount(count);
}
//更新库存
invProductDao.updateInvProduct(invProductEntity);
}
}
//删除单据详情
FilterErpOrderRequest deleteOrderDetailParam = new FilterErpOrderRequest();
deleteOrderDetailParam.setOrderIdFk(order.getId());
deleteOrderDetailParam.setGoodsid(warehouseEntity.getRelId());
deleteOrderDetailParam.setBatchNo(warehouseEntity.getBatchNo());
orderDetailDao.deleteOrder(deleteOrderDetailParam); //删除扫码单据详情
StockOrderDetailFilterRequest deleteStockOrderDetailParam = new StockOrderDetailFilterRequest();
deleteStockOrderDetailParam.setProductId(warehouseEntity.getRelId());
deleteStockOrderDetailParam.setBatchNo(warehouseEntity.getBatchNo());
deleteStockOrderDetailParam.setOrderIdFk(order.getId());
stockOrderDetailDao.deleteStockOrderDetail(deleteStockOrderDetailParam); //删除业务单据详情
}
InvProductEntity invProductEntity = invProductDao.filterInvProduct(filterInvProductRequest).get(0);
if (invProductDetailEntity.getMainAction().equals(ConstantType.TYPE_OUT)) {
//出库
int count = invProductEntity.getOutCount() + invProductDetailEntity.getCount();
invProductEntity.setOutCount(count);
} else if (invProductDetailEntity.getMainAction().equals(ConstantType.TYPE_PUT)) {
//入库
int count = invProductEntity.getInCount() - invProductDetailEntity.getCount();
invProductEntity.setInCount(count);
}
//更新库存
invProductDao.updateInvProduct(invProductEntity);
}
//删除单据详情
FilterErpOrderRequest deleteOrderDetailParam = new FilterErpOrderRequest();
deleteOrderDetailParam.setOrderIdFk(warehouseEntity.getOrderId());
deleteOrderDetailParam.setGoodsid(warehouseEntity.getRelId());
deleteOrderDetailParam.setBatchNo(warehouseEntity.getBatchNo());
orderDetailDao.deleteOrder(deleteOrderDetailParam); //删除扫码单据详情
StockOrderDetailFilterRequest deleteStockOrderDetailParam = new StockOrderDetailFilterRequest();
deleteStockOrderDetailParam.setProductId(warehouseEntity.getRelId());
deleteStockOrderDetailParam.setBatchNo(warehouseEntity.getBatchNo());
deleteStockOrderDetailParam.setOrderIdFk(warehouseEntity.getOrderId());
stockOrderDetailDao.deleteStockOrderDetail(deleteStockOrderDetailParam); //删除业务单据详情
int orderDetailCount = orderDetailDao.countByOrderId(warehouseEntity.getOrderId());
if (orderDetailCount == 0) {
//当单据详情数量为0时删除扫码单据和业务单据
orderDao.deleteById(warehouseEntity.getOrderId());
stockOrderDao.deleteByOrderIdFk(warehouseEntity.getOrderId());
int orderDetailCount = orderDetailDao.countByOrderId(order.getId());
if (orderDetailCount == 0) {
//当单据详情数量为0时删除扫码单据和业务单据
orderDao.deleteById(order.getId());
stockOrderDao.deleteByOrderIdFk(order.getId());
}
}
}
}
}

@ -334,12 +334,15 @@ public class OrderServiceImpl implements OrderService {
* @param orderEntity
* @param orders
*/
private void getAllOrder(OrderEntity orderEntity, List<OrderEntity> orders) {
@Override
public void getAllOrder(OrderEntity orderEntity, List<OrderEntity> orders) {
OrderFilterRequest orderFilterRequest = new OrderFilterRequest();
//补单单号
if (StrUtil.isNotBlank(orderEntity.getSupplementNo())) {
//补单单号不为空,查询补单数据
OrderEntity order = orderDao.selectByBillNo(orderEntity.getSupplementNo());
if (!orders.contains(order)) {
orderFilterRequest.setId(orderEntity.getSupplementNo());
OrderEntity order = orderDao.findOne(orderFilterRequest);
if (null != order && !orders.contains(order)) {
orders.add(order);
getAllOrder(order, orders);
}
@ -347,9 +350,10 @@ public class OrderServiceImpl implements OrderService {
//缺量补单上级单号
if (StrUtil.isNotBlank(orderEntity.getOriginUllageSupNo())) {
//补单单号不为空,查询补单数据
OrderEntity order = orderDao.selectByBillNo(orderEntity.getOriginUllageSupNo());
if (!orders.contains(order)) {
//缺量补单上级单号不为空,查询单据数据
orderFilterRequest.setId(orderEntity.getOriginUllageSupNo());
OrderEntity order = orderDao.findOne(orderFilterRequest);
if (null != order && !orders.contains(order)) {
orders.add(order);
getAllOrder(order, orders);
}
@ -357,9 +361,10 @@ public class OrderServiceImpl implements OrderService {
//缺量补单
if (StrUtil.isNotBlank(orderEntity.getUllageSupNo())) {
//补单单号不为空,查询补单数据
OrderEntity order = orderDao.selectByBillNo(orderEntity.getUllageSupNo());
if (!orders.contains(order)) {
//缺量补单单号不为空,查询单据数据
orderFilterRequest.setId(orderEntity.getUllageSupNo());
OrderEntity order = orderDao.findOne(orderFilterRequest);
if (null != order && !orders.contains(order)) {
orders.add(order);
getAllOrder(order, orders);
}
@ -375,7 +380,7 @@ public class OrderServiceImpl implements OrderService {
OrderFilterRequest orderFilterRequest = new OrderFilterRequest();
orderFilterRequest.setId(id);
OrderEntity orderEntity = orderDao.findOne(orderFilterRequest);
if (orderEntity.getStatus() == 4) {
if (orderEntity.getStatus().equals(ConstantStatus.ORDER_STATUS_PROCESS)) {
//查询库存详情
FilterInvProductDetailRequest filterInvProductDetailRequest = new FilterInvProductDetailRequest();
filterInvProductDetailRequest.setOrderIdFk(id);
@ -436,9 +441,14 @@ public class OrderServiceImpl implements OrderService {
throw new RuntimeException("删除单据失败");
}
} else {
//未验收单据
orderDao.deleteById(id);
orderDetailDao.deleteByOrderId(id);
//未验收单据,删除单据,单据详情,码详情
try {
orderDao.deleteById(id);
orderDetailDao.deleteByOrderId(id);
codesDao.deleteByOrderId(id);
} catch (Exception e) {
throw new RuntimeException("删除单据失败");
}
}
}
}

Loading…
Cancel
Save