|
|
@@ -14,6 +14,7 @@ import com.dk.mdm.infrastructure.convert.mac.RecPayItemConvert;
|
|
|
import com.dk.mdm.infrastructure.convert.sale.OrderConvert;
|
|
|
import com.dk.mdm.infrastructure.convert.sale.OrderItemConvert;
|
|
|
import com.dk.mdm.infrastructure.convert.sale.OutBoundDtoConvert;
|
|
|
+import com.dk.mdm.infrastructure.util.AuthUtils;
|
|
|
import com.dk.mdm.mapper.common.CommonMapper;
|
|
|
import com.dk.mdm.mapper.ivt.OutboundItemMapper;
|
|
|
import com.dk.mdm.mapper.ivt.OutboundMapper;
|
|
|
@@ -34,6 +35,7 @@ import com.dk.mdm.model.pojo.mac.RecPayItem;
|
|
|
import com.dk.mdm.model.pojo.mst.Customer;
|
|
|
import com.dk.mdm.model.pojo.mst.MoneyAccount;
|
|
|
import com.dk.mdm.model.pojo.mst.MoneyAccountItem;
|
|
|
+import com.dk.mdm.model.pojo.mst.Supplier;
|
|
|
import com.dk.mdm.model.pojo.sale.MultiOwner;
|
|
|
import com.dk.mdm.model.pojo.sale.Order;
|
|
|
import com.dk.common.service.BaseService;
|
|
|
@@ -55,6 +57,7 @@ import com.dk.mdm.model.response.sale.OrderItemResponse;
|
|
|
import com.dk.mdm.model.response.sale.OrderResponse;
|
|
|
import com.dk.mdm.model.vo.ivt.OutboundVO;
|
|
|
import com.dk.mdm.model.vo.mac.RecPayItemVO;
|
|
|
+import com.dk.mdm.model.vo.mst.SupplierVo;
|
|
|
import com.dk.mdm.model.vo.sale.OrderItemVO;
|
|
|
import com.dk.mdm.model.vo.sale.OrderVO;
|
|
|
import com.dk.mdm.service.common.CommonService;
|
|
|
@@ -63,6 +66,7 @@ import com.dk.mdm.service.mac.AccountService;
|
|
|
import com.dk.mdm.service.mac.RecPayItemService;
|
|
|
import com.dk.mdm.service.mac.ReceiptService;
|
|
|
import com.dk.mdm.service.mst.MoneyAccountService;
|
|
|
+import com.dk.mdm.service.mst.SupplierService;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
@@ -159,6 +163,11 @@ public class OrderService extends BaseService<Order> {
|
|
|
@Autowired
|
|
|
private OutboundMapper outboundMapper;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private SupplierService supplierService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private AuthUtils authUtils;
|
|
|
|
|
|
/**
|
|
|
* @desc : 条件查询
|
|
|
@@ -309,6 +318,13 @@ public class OrderService extends BaseService<Order> {
|
|
|
// 订单明细保存
|
|
|
if (orderVO.getItemList() != null && orderVO.getItemList().size() > 0) {
|
|
|
for (OrderItemVO orderItemVO : orderVO.getItemList()) {
|
|
|
+ //外协品供应上只有name 没有id 的时候 要新建供应商
|
|
|
+ if (orderItemVO.getSkuId() == null) { //说明外协品
|
|
|
+ if (orderItemVO.getSupId() == null) { //说明在库里不存在这个供应商
|
|
|
+ Supplier supplier = supplierService.saleinsert(new SupplierVo().setSupName(orderItemVO.getSupName()).setSupType("供应商类别-外协").setCpId(authUtils.getStaff().getCpId()));
|
|
|
+ orderItemVO.setSupId(supplier.getSupId());
|
|
|
+ }
|
|
|
+ }
|
|
|
OrderItem orderItem = orderItemConvert.convertToPo(orderItemVO);
|
|
|
orderItem.setOrderId(order.getOrderId()).setCpId(order.getCpId()).setOutStatus(Constant.OutStatus.DAICHUKU.getName());
|
|
|
if (orderItem.getPriceStd() == null) {
|
|
|
@@ -544,9 +560,11 @@ public class OrderService extends BaseService<Order> {
|
|
|
orderItemForUpdate = orderItemMapper.selectByIdForUpdate(orderItemVO.getItemId());
|
|
|
// 出库数量
|
|
|
BigDecimal outintOrOutQty = orderItemForUpdate.getOutingQty().add(orderItemForUpdate.getOutQty());
|
|
|
- // 商品数量不能小于(出库中数量+已出库数量)
|
|
|
- if (orderItemVO.getItemQty().compareTo(outintOrOutQty) == -1) {
|
|
|
- throw new BaseBusinessException(ResponseCodeEnum.OPERATE_FAIL.getCode(), ErrorCodeEnum.ITEMQTY_NO_LESS_OUTQTY.getMessage());
|
|
|
+ if (!"STD".equals(gradeCode)) {
|
|
|
+ // 商品数量不能小于(出库中数量+已出库数量)
|
|
|
+ if (orderItemVO.getItemQty().compareTo(outintOrOutQty) == -1) {
|
|
|
+ throw new BaseBusinessException(ResponseCodeEnum.OPERATE_FAIL.getCode(), ErrorCodeEnum.ITEMQTY_NO_LESS_OUTQTY.getMessage());
|
|
|
+ }
|
|
|
}
|
|
|
// 如果出库数量不是0,则不能改仓库
|
|
|
if (outintOrOutQty.compareTo(BigDecimal.ZERO) != 0) {
|
|
|
@@ -799,7 +817,7 @@ public class OrderService extends BaseService<Order> {
|
|
|
if (orderVO.getOutboundProcessingFlag() != null && orderVO.getOutboundProcessingFlag()) {
|
|
|
//标准版 只有一个出库单 所以get0 就可以 且 编辑销售订单得时候 一定是有出库单的
|
|
|
List<OutboundResponse> outboundList = outboundMapper.selectByCond(new OutboundQuery().setFromId(orderVO.getOrderId()));
|
|
|
- if (outboundList.size() > 0) {
|
|
|
+ if (outboundList.size() > 0) { //有订单有出库单后续才编辑 没有就不用编辑
|
|
|
OutboundResponse outboundResponsejson = outboundList.get(0);
|
|
|
for (OrderItemVO orderItemVO : combinedList) {
|
|
|
//拿到 订单明细对应的出库明细 订单明细id 和 出库单来源明细 是一 一 对应的 所以 get0 也是不会有问题的
|