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.setReviewUser(authAdmin.getId().intValue());
} }
orderEntity.setUpdateTime(new Date()); orderEntity.setUpdateTime(new Date());
orderEntity.setAuditTime(new Date());
orderService.updateOrder(orderEntity); orderService.updateOrder(orderEntity);
List<String> erpIds = DataTransUtil.strToErpList(orderEntity.getErpFk()); List<String> erpIds = DataTransUtil.strToErpList(orderEntity.getErpFk());
if (erpIds != null && erpIds.size() > 0) { if (erpIds != null && erpIds.size() > 0) {
@ -319,6 +320,7 @@ public class OrderController {
if (customerId == 110) { if (customerId == 110) {
stockOrderEntity.setReviewUser(authAdmin.getId().intValue()); stockOrderEntity.setReviewUser(authAdmin.getId().intValue());
} }
stockOrderEntity.setAuditTime(new Date());
stockOrderService.updateById(stockOrderEntity); stockOrderService.updateById(stockOrderEntity);
} }
} else { } else {
@ -331,7 +333,7 @@ public class OrderController {
if (customerId == 110) { if (customerId == 110) {
stockOrderEntity.setReviewUser(authAdmin.getId().intValue()); stockOrderEntity.setReviewUser(authAdmin.getId().intValue());
} }
stockOrderEntity.setAuditTime(new Date());
stockOrderService.updateById(stockOrderEntity); 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.BussinessTypeEntity;
import com.glxp.sale.admin.entity.basic.UdiInfoEntity; import com.glxp.sale.admin.entity.basic.UdiInfoEntity;
import com.glxp.sale.admin.entity.info.CompanyEntity; import com.glxp.sale.admin.entity.info.CompanyEntity;
import com.glxp.sale.admin.entity.info.CompanyProductRelevanceEntity; import com.glxp.sale.admin.entity.inout.OrderEntity;
import com.glxp.sale.admin.entity.inout.*; 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.inventory.InvProductDetailEntity;
import com.glxp.sale.admin.entity.param.SystemParamConfigEntity; import com.glxp.sale.admin.entity.param.SystemParamConfigEntity;
import com.glxp.sale.admin.entity.udid.UdiEntity; import com.glxp.sale.admin.entity.udid.UdiEntity;
import com.glxp.sale.admin.exception.JsonException; import com.glxp.sale.admin.exception.JsonException;
import com.glxp.sale.admin.req.basic.CompanyProductRelevanceRequest; 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.inout.*;
import com.glxp.sale.admin.req.inventory.FilterInvProductDetailRequest;
import com.glxp.sale.admin.res.PageSimpleResponse; import com.glxp.sale.admin.res.PageSimpleResponse;
import com.glxp.sale.admin.res.basic.BussinessTypResponse; import com.glxp.sale.admin.res.basic.BussinessTypResponse;
import com.glxp.sale.admin.res.basic.CompanyProductRelevanceResponse; 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.annotation.Resource;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import javax.validation.Valid; import javax.validation.Valid;
import java.util.*; import java.util.ArrayList;
import java.util.function.Consumer; import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@RestController @RestController
@ -1121,7 +1122,7 @@ public class WareHouseController {
@AuthRuleAnnotation("") @AuthRuleAnnotation("")
@PostMapping("/warehouse/inout/replaceCodes") @PostMapping("/warehouse/inout/replaceCodes")
public BaseResponse replaceCodes(@RequestBody CodesReplaceRequest codesReplaceRequest) { 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); return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL);
} }
UdiEntity udi = FilterUdiUtils.getUdi(codesReplaceRequest.getCode()); UdiEntity udi = FilterUdiUtils.getUdi(codesReplaceRequest.getCode());

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

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

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

Loading…
Cancel
Save