diff --git a/oms_web/oms_vue/src/views/inventory/inner/index.vue b/oms_web/oms_vue/src/views/inventory/inner/index.vue index 6b99efb2..64fc9e8a 100644 --- a/oms_web/oms_vue/src/views/inventory/inner/index.vue +++ b/oms_web/oms_vue/src/views/inventory/inner/index.vue @@ -57,6 +57,7 @@ + @@ -168,7 +169,7 @@ - + @@ -431,7 +432,7 @@ export default { this.snOpen = false; return; } - + this.form.inventoryInfoList=[] let quantity = Number(this.form.quantity); let productSn = this.inputSn; let snPrefix = ""; @@ -503,18 +504,11 @@ export default { this.purchaseOrderSelectVisible = true; }, handlePurchaseOrderSelect(order) { - this.form.vendorCode = order.vendorCode - this.form.vendorName = order.vendorName - this.form.productType = order.productType - this.form.productCode = order.productCode - this.form.productModel = order.productModel - this.form.price = order.price - this.form.quantity = order.quantity - this.form.warehouseId = order.warehouseId + this.form= Object.assign(this.form,order) + this.form.totalAmount=order.amountTotal const warehouse = this.warehouseOptions.find(w => w.id === this.form.warehouseId); this.form.warehouseName = warehouse.warehouseName || ''; this.form.warehouseType = warehouse.warehouseType - this.form.productDesc = order.productDesc this.open = true; this.isView = false; this.title = "添加入库单"; diff --git a/ruoyi-sip/src/main/java/com/ruoyi/sip/domain/OmsInventoryInner.java b/ruoyi-sip/src/main/java/com/ruoyi/sip/domain/OmsInventoryInner.java index 7688f3f0..1b44c701 100644 --- a/ruoyi-sip/src/main/java/com/ruoyi/sip/domain/OmsInventoryInner.java +++ b/ruoyi-sip/src/main/java/com/ruoyi/sip/domain/OmsInventoryInner.java @@ -9,6 +9,7 @@ import org.apache.commons.lang3.builder.ToStringStyle; import com.ruoyi.common.annotation.Excel; import com.ruoyi.common.core.domain.BaseEntity; +import java.math.BigDecimal; import java.util.Date; import java.util.List; @@ -66,5 +67,12 @@ public class OmsInventoryInner extends BaseEntity { @Excel(name = "入库时间",dateFormat="yyyy-MM-dd HH:mm:ss") private Date createTime; + private String purchaseNo; + private String productType; + private String orderCode; + private BigDecimal totalAmount; + private BigDecimal taxRate; + private BigDecimal taxTotal; + private Long itemId; private List inventoryInfoList; } diff --git a/ruoyi-sip/src/main/java/com/ruoyi/sip/domain/OmsPurchaseOrder.java b/ruoyi-sip/src/main/java/com/ruoyi/sip/domain/OmsPurchaseOrder.java index 861df31f..be65a708 100644 --- a/ruoyi-sip/src/main/java/com/ruoyi/sip/domain/OmsPurchaseOrder.java +++ b/ruoyi-sip/src/main/java/com/ruoyi/sip/domain/OmsPurchaseOrder.java @@ -140,5 +140,23 @@ public class OmsPurchaseOrder extends BaseEntity } } + @Getter + public enum StatusEnum { + WAIT_COMPLETED(0, "待入库"), + PART_COMPLETED(1, "部分入库"), + COMPLETED(2, "已完成"), + + + ; + + private final String value; + private final Integer code; + + StatusEnum(Integer code, String value) { + this.code = code; + this.value = value; + } + + } } diff --git a/ruoyi-sip/src/main/java/com/ruoyi/sip/domain/OmsPurchaseOrderItem.java b/ruoyi-sip/src/main/java/com/ruoyi/sip/domain/OmsPurchaseOrderItem.java index 2b051976..a2782385 100644 --- a/ruoyi-sip/src/main/java/com/ruoyi/sip/domain/OmsPurchaseOrderItem.java +++ b/ruoyi-sip/src/main/java/com/ruoyi/sip/domain/OmsPurchaseOrderItem.java @@ -31,11 +31,10 @@ public class OmsPurchaseOrderItem extends BaseEntity /** 产品CODE */ private String productCode; - /** 0:待入库 1:已完成 */ - private Long innerStatus; /** 数量 */ private BigDecimal quantity; + private BigDecimal innerQuantity; /** 单价 */ private BigDecimal price; diff --git a/ruoyi-sip/src/main/java/com/ruoyi/sip/dto/inventory/OmsPurchaseOrderItemDto.java b/ruoyi-sip/src/main/java/com/ruoyi/sip/dto/inventory/OmsPurchaseOrderItemDto.java index 5f40ed1a..253e1eee 100644 --- a/ruoyi-sip/src/main/java/com/ruoyi/sip/dto/inventory/OmsPurchaseOrderItemDto.java +++ b/ruoyi-sip/src/main/java/com/ruoyi/sip/dto/inventory/OmsPurchaseOrderItemDto.java @@ -30,6 +30,10 @@ public class OmsPurchaseOrderItemDto extends OmsPurchaseOrder { /** 数量 */ private BigDecimal quantity; private BigDecimal innerQuantity; + private BigDecimal taxTotal; + private BigDecimal amountTotal; + private BigDecimal taxRate; + private Long itemId; /** 单价 */ diff --git a/ruoyi-sip/src/main/java/com/ruoyi/sip/mapper/OmsPurchaseOrderMapper.java b/ruoyi-sip/src/main/java/com/ruoyi/sip/mapper/OmsPurchaseOrderMapper.java index d209ecac..179703dc 100644 --- a/ruoyi-sip/src/main/java/com/ruoyi/sip/mapper/OmsPurchaseOrderMapper.java +++ b/ruoyi-sip/src/main/java/com/ruoyi/sip/mapper/OmsPurchaseOrderMapper.java @@ -102,4 +102,8 @@ public interface OmsPurchaseOrderMapper List listByCodeList(List businessKeyList); List listItem(OmsPurchaseOrderItemDto omsPurchaseOrder); + + List listByItemId(Long itemId); + + void updateOmsPurchaseOrderItem(OmsPurchaseOrderItem updateItem); } diff --git a/ruoyi-sip/src/main/java/com/ruoyi/sip/service/IOmsPurchaseOrderService.java b/ruoyi-sip/src/main/java/com/ruoyi/sip/service/IOmsPurchaseOrderService.java index 34f9a4ab..b53e000c 100644 --- a/ruoyi-sip/src/main/java/com/ruoyi/sip/service/IOmsPurchaseOrderService.java +++ b/ruoyi-sip/src/main/java/com/ruoyi/sip/service/IOmsPurchaseOrderService.java @@ -90,4 +90,6 @@ public interface IOmsPurchaseOrderService List listApproved(OmsPurchaseOrder omsPurchaseOrder); List listItem(OmsPurchaseOrderItemDto omsPurchaseOrder); + + void innerWarehouse(Long itemId, Long quantity); } diff --git a/ruoyi-sip/src/main/java/com/ruoyi/sip/service/impl/OmsInventoryInnerServiceImpl.java b/ruoyi-sip/src/main/java/com/ruoyi/sip/service/impl/OmsInventoryInnerServiceImpl.java index 7678d9e7..ae25e29f 100644 --- a/ruoyi-sip/src/main/java/com/ruoyi/sip/service/impl/OmsInventoryInnerServiceImpl.java +++ b/ruoyi-sip/src/main/java/com/ruoyi/sip/service/impl/OmsInventoryInnerServiceImpl.java @@ -42,6 +42,8 @@ public class OmsInventoryInnerServiceImpl implements IOmsInventoryInnerService { @Autowired private IInventoryAuthService inventoryAuthService; + @Autowired + private IOmsPurchaseOrderService purchaseOrderService; @Autowired private IOmsPayableBillService payableBillService; /** @@ -123,6 +125,9 @@ public class OmsInventoryInnerServiceImpl implements IOmsInventoryInnerService { } omsInventoryInner.setWarehouseId(warehouseIdList.get(0)); + //修改对应的采购订单 + purchaseOrderService.innerWarehouse(omsInventoryInner.getItemId(),omsInventoryInner.getQuantity()); + //todo 判断制造商是否需要生成应付单 // BigDecimal totalPriceWithTax = inventoryInfoList.stream().map(InventoryInfo::getInnerPrice).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add); // //生成应付单 diff --git a/ruoyi-sip/src/main/java/com/ruoyi/sip/service/impl/OmsPurchaseOrderServiceImpl.java b/ruoyi-sip/src/main/java/com/ruoyi/sip/service/impl/OmsPurchaseOrderServiceImpl.java index 71eda971..b1c01c1b 100644 --- a/ruoyi-sip/src/main/java/com/ruoyi/sip/service/impl/OmsPurchaseOrderServiceImpl.java +++ b/ruoyi-sip/src/main/java/com/ruoyi/sip/service/impl/OmsPurchaseOrderServiceImpl.java @@ -279,6 +279,36 @@ public class OmsPurchaseOrderServiceImpl implements IOmsPurchaseOrderService, To return omsPurchaseOrderMapper.listItem(omsPurchaseOrder); } + @Override + public void innerWarehouse(Long itemId, Long quantity) { + List omsPurchaseOrderItems = omsPurchaseOrderMapper.listByItemId(itemId); + if (CollUtil.isEmpty(omsPurchaseOrderItems)){ + return; + } + //默认全部入库 一旦入库数量与实际数量不等 则代表部分入库 + OmsPurchaseOrderItem updateItem = new OmsPurchaseOrderItem(); + boolean flag = true; + for (OmsPurchaseOrderItem omsPurchaseOrderItem : omsPurchaseOrderItems) { + if (omsPurchaseOrderItem.getId().equals(itemId)) { + BigDecimal innerQuantity = omsPurchaseOrderItem.getInnerQuantity() == null ? BigDecimal.ZERO : omsPurchaseOrderItem.getInnerQuantity(); + omsPurchaseOrderItem.setInnerQuantity(innerQuantity.add(BigDecimal.valueOf(quantity))); + updateItem = omsPurchaseOrderItem; + } + if (omsPurchaseOrderItem.getInnerQuantity().compareTo(omsPurchaseOrderItem.getQuantity()) != 0) { + flag = false; + } + } + omsPurchaseOrderMapper.updateOmsPurchaseOrderItem(updateItem); + + //更新订单入库状态 + OmsPurchaseOrder omsPurchaseOrder = new OmsPurchaseOrder(); + omsPurchaseOrder.setId(omsPurchaseOrderItems.get(0).getPurchaseId()); + omsPurchaseOrder.setStatus(flag ? OmsPurchaseOrder.StatusEnum.COMPLETED.getCode() : OmsPurchaseOrder.StatusEnum.PART_COMPLETED.getCode()); + omsPurchaseOrder.setUpdateTime(DateUtils.getNowDate()); + omsPurchaseOrderMapper.updateOmsPurchaseOrder(omsPurchaseOrder); + + } + /** * 新增采购单明细表信息 diff --git a/ruoyi-sip/src/main/resources/mapper/inventory/OmsInventoryInnerMapper.xml b/ruoyi-sip/src/main/resources/mapper/inventory/OmsInventoryInnerMapper.xml index e2606b7f..0519a507 100644 --- a/ruoyi-sip/src/main/resources/mapper/inventory/OmsInventoryInnerMapper.xml +++ b/ruoyi-sip/src/main/resources/mapper/inventory/OmsInventoryInnerMapper.xml @@ -14,10 +14,17 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + + + + + select t1.id, t1.inner_code, t1.product_code, t1.quantity, t1.warehouse_id, t1.create_by, t1.update_by, t1.create_time, t1.update_time ,t1.vendor_code,t1.file_id,t1.remark, + t1.purchase_no,t1.product_type,t1.order_code,t1.total_amount,t1.tax_rate,t1.tax_total, t2.warehouse_name, t3.user_name as create_by_name, t4.vendor_name,t5.model ,t6.original_filename @@ -44,6 +51,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and t1.warehouse_id = #{warehouseId} and t1.create_by like concat('%', #{createBy}, '%') and t3.user_name like concat('%', #{createByName}, '%') + and t1.purchase_no = #{purchaseNo} + and t1.product_type = #{productType} + and t1.order_code = #{orderCode} @@ -98,6 +108,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" update_by, create_time, update_time, + purchase_no, + product_type, + order_code, + total_amount, + tax_rate, + tax_total, #{innerCode}, @@ -111,6 +127,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" #{updateBy}, #{createTime}, #{updateTime}, + #{purchaseNo}, + #{productType}, + #{orderCode}, + #{totalAmount}, + #{taxRate}, + #{taxTotal}, @@ -128,6 +150,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" update_by = #{updateBy}, create_time = #{createTime}, update_time = #{updateTime}, + purchase_no = #{purchaseNo}, + product_type = #{productType}, + order_code = #{orderCode}, + total_amount = #{totalAmount}, + tax_rate = #{taxRate}, + tax_total = #{taxTotal}, where id = #{id} diff --git a/ruoyi-sip/src/main/resources/mapper/sip/OmsPurchaseOrderMapper.xml b/ruoyi-sip/src/main/resources/mapper/sip/OmsPurchaseOrderMapper.xml index bb4c9343..73e712e1 100644 --- a/ruoyi-sip/src/main/resources/mapper/sip/OmsPurchaseOrderMapper.xml +++ b/ruoyi-sip/src/main/resources/mapper/sip/OmsPurchaseOrderMapper.xml @@ -35,7 +35,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - + @@ -59,8 +59,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" t1.tax_rate, t1.tax_total, t1.amount_total, - t1.inner_status, t1.delivery_date, + t1.inner_quantity, t2.type as product_type,t2.model as product_model,t2.description as product_description FROM oms_purchase_order_item t1 left join product_info t2 on t1.product_code = t2.product_code @@ -165,6 +165,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" t1.quantity, t1.price, t1.amount_total, + t1.tax_total, + t1.tax_rate, + t1.id as item_id, + t2.warehouse_id, t3.description as product_desc @@ -189,6 +193,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + insert into oms_purchase_order @@ -341,6 +350,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" where purchase_no = #{purchaseNo} + + update oms_purchase_order_item + + inner_quantity = #{innerQuantity}, + + where id = #{id} + delete from oms_purchase_order where id = #{id} @@ -365,9 +381,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - insert into oms_purchase_order_item( purchase_id, product_code, inner_status, quantity, price, tax_rate, tax_total, amount_total,delivery_date) values + insert into oms_purchase_order_item( purchase_id, product_code, inner_quantity, quantity, price, tax_rate, tax_total, amount_total,delivery_date) values - ( #{item.purchaseId}, #{item.productCode}, #{item.innerStatus}, #{item.quantity}, + ( #{item.purchaseId}, #{item.productCode}, #{item.innerQuantity}, #{item.quantity}, #{item.price}, #{item.taxRate}, #{item.taxTotal}, #{item.amountTotal}, #{item.deliveryDate})