fix: 产品入库的库存返回产品大类、规则型号、单位
| | |
| | | return AjaxResult.success(procurementRecordService.add(procurementDto)); |
| | | } |
| | | |
| | | @PostMapping("/addProduct") |
| | | @Log(title = "入库管理-产品入库", businessType = BusinessType.INSERT) |
| | | @Transactional |
| | | public AjaxResult addProduct(@RequestBody Details detail) { |
| | | return AjaxResult.success(procurementRecordService.addProduct(detail)); |
| | | } |
| | | |
| | | @PostMapping("/update") |
| | | @Log(title = "采购入库-入库管理-修改入库", businessType = BusinessType.UPDATE) |
| | | @Transactional |
| | |
| | | |
| | | int add(ProcurementAddDto procurementDto); |
| | | |
| | | int addProduct(Details detail); |
| | | IPage<ProcurementPageDto> listPage(Page page, ProcurementPageDto procurementDto); |
| | | |
| | | IPage<ProcurementPageDtoCopy> listPageCopy(Page page, ProcurementPageDto procurementDto); |
| | |
| | | String entryDateStr = procurementDto.getEntryDate() + " 00:00:00"; |
| | | String createTimeStr = procurementDto.getCreateTime() + " 00:00:00"; |
| | | SalesLedgerProduct salesLedgerProduct = salesLedgerProductMapper.selectById(procurementDto.getSalesLedgerProductId()); |
| | | if(salesLedgerProduct == null){ |
| | | if (procurementDto.getSalesLedgerProductId() != null && salesLedgerProduct == null) { |
| | | throw new RuntimeException("销售台账产品不存在"); |
| | | } |
| | | if (procurementDto.getSalesLedgerProductId() != null && salesLedgerProduct != null) { |
| | | salesLedgerProduct.setMinStock(procurementDto.getMinStock()); |
| | | salesLedgerProductMapper.updateById(salesLedgerProduct); |
| | | } |
| | | ProcurementRecordStorage procurementRecordStorageById = getProcurementRecordById(procurementDto.getId()); |
| | | procurementRecordStorageById.setCreateBy(sysUser.getNickName()); |
| | | procurementRecordStorageById.setCreateUser(sysUser.getUserId()); |
| | |
| | | } |
| | | |
| | | @Override |
| | | public int addProduct(Details detail) { |
| | | LoginUser loginUser = SecurityUtils.getLoginUser(); |
| | | |
| | | ProcurementRecordStorage.ProcurementRecordStorageBuilder builder = ProcurementRecordStorage.builder() |
| | | .id(detail.getId()) |
| | | .inboundBatches("第1批次") |
| | | .inboundNum(detail.getInboundQuantity()) |
| | | .warnNum(detail.getWarnNum()) |
| | | .outStockQuantity(detail.getOutStockQuantity()) |
| | | .shortageDescription(detail.getShortageDescription()) |
| | | .productModelId(detail.getProductModelId()) |
| | | .updateTime(LocalDateTime.now()) |
| | | .updateUser(loginUser.getUserId()); |
| | | if (detail.getId() == null) { |
| | | builder.createTime(LocalDateTime.now()) |
| | | .createUser(loginUser.getUserId()) |
| | | .createBy(loginUser.getNickName()); |
| | | } |
| | | |
| | | boolean success = this.saveOrUpdate(builder.build()); |
| | | return success ? 1 : 0; |
| | | } |
| | | |
| | | @Override |
| | | public IPage<ProcurementPageDto> listPage(Page page, ProcurementPageDto procurementDto) { |
| | | IPage<ProcurementPageDto> procurementPageDtoIPage = procurementRecordMapper.listPage(page, procurementDto); |
| | | List<ProcurementPageDto> procurementPageDtos = procurementPageDtoIPage.getRecords(); |
| | |
| | | </select> |
| | | <select id="listPage" resultType="com.ruoyi.procurementrecord.dto.ProcurementPageDto"> |
| | | select |
| | | t3.supplier_name, |
| | | t3.purchase_contract_number, |
| | | t2.product_category, |
| | | t3.supplier_name as supplierName, |
| | | t3.purchase_contract_number as purchaseContractNumber, |
| | | case when t2.product_category is null then t5.product_name |
| | | else t2.product_category end as productCategory, |
| | | t1.id, |
| | | t1.sales_ledger_product_id, |
| | | t1.product_model_id, |
| | | t1.create_user, |
| | | t2.specification_model, |
| | | t2.unit, |
| | | t2.tax_rate, |
| | | t2.tax_inclusive_unit_price, |
| | | t1.sales_ledger_product_id as salesLedgerProductId, |
| | | t1.product_model_id as productModelId, |
| | | t1.create_user as createUser, |
| | | case when t2.specification_model is null then t4.model |
| | | else t2.specification_model end as specificationModel, |
| | | case when t2.unit is null then t4.unit |
| | | else t2.unit end as unit, |
| | | t2.tax_rate as taxRate, |
| | | t2.tax_inclusive_unit_price as taxInclusiveUnitPrice, |
| | | (t1.inbound_num * t2.tax_inclusive_unit_price) as taxInclusiveTotalPrice, |
| | | (t1.inbound_num * t2.tax_inclusive_unit_price - t1.inbound_num * t2.tax_inclusive_unit_price * t2.tax_rate / 100) as taxExclusiveTotalPrice, |
| | | t1.inbound_batches, |
| | | t1.inbound_num, |
| | | (t1.inbound_num * t2.tax_inclusive_unit_price - t1.inbound_num * t2.tax_inclusive_unit_price * t2.tax_rate / |
| | | 100) as taxExclusiveTotalPrice, |
| | | t1.inbound_batches as inboundBatches, |
| | | t1.inbound_num as inboundNum, |
| | | t1.inbound_num as inboundNum0, |
| | | t1.create_time, |
| | | t1.update_time, |
| | | t1.create_by, |
| | | t2.warn_num, |
| | | t1.create_time as createTime, |
| | | t1.update_time as updateTime, |
| | | t1.create_by as createBy, |
| | | t2.warn_num as warnNum, |
| | | t1.out_stock_quantity as outStockQuantity, |
| | | t1.shortage_description as shortageDescription |
| | | from procurement_record_storage t1 |
| | | left join sales_ledger_product t2 on t2.id = t1.sales_ledger_product_id |
| | | left join purchase_ledger t3 on t3.id = t2.sales_ledger_id |
| | | left join product_model t4 on t4.id = t1.product_model_id |
| | | left join product t5 on t5.id = t4.product_id |
| | | <where> |
| | | 1 = 1 |
| | | <if test="req.supplierName != null and req.supplierName != ''"> |
| | |
| | | </if> |
| | | </where> |
| | | </select> |
| | | |
| | | <select id="list" resultType="com.ruoyi.procurementrecord.dto.ProcurementPageDto"> |
| | | select |
| | | t3.supplier_name, |
| | | t3.purchase_contract_number, |
| | | t2.product_category, |
| | | select t3.supplier_name as supplierName, |
| | | t3.purchase_contract_number as purchaseContractNumber, |
| | | case |
| | | when t2.product_category is null then t5.product_name |
| | | else t2.product_category end as productCategory, |
| | | t1.id, |
| | | t2.specification_model, |
| | | t2.unit, |
| | | case |
| | | when t2.specification_model is null then t4.model |
| | | else t2.specification_model end as specificationModel, |
| | | case |
| | | when t2.unit is null then t4.unit |
| | | else t2.unit end as unit, |
| | | t2.quantity, |
| | | t2.quantity as quantity0, |
| | | t2.tax_rate, |
| | | t2.tax_inclusive_unit_price, |
| | | t2.tax_inclusive_total_price, |
| | | t2.tax_exclusive_total_price, |
| | | t1.inbound_batches, |
| | | t1.inbound_num, |
| | | t1.create_time, |
| | | t2.tax_rate as taxRate, |
| | | t2.tax_inclusive_unit_price as taxInclusiveUnitPrice, |
| | | t2.tax_inclusive_total_price as taxInclusiveTotalPrice, |
| | | t2.tax_exclusive_total_price as taxExclusiveTotalPrice, |
| | | t1.inbound_batches as inboundBatches, |
| | | t1.inbound_num as inboundNum, |
| | | t1.create_time as createTime, |
| | | t1.create_time as time, |
| | | t1.create_by |
| | | t1.create_by as createBy |
| | | from procurement_record_storage t1 |
| | | left join sales_ledger_product t2 on t2.id = t1.sales_ledger_product_id |
| | | left join purchase_ledger t3 on t3.id = t2.sales_ledger_id |
| | | left join product_model t4 on t4.id = t1.product_model_id |
| | | left join product t5 on t5.id = t4.product_id |
| | | </select> |
| | | |
| | | <select id="listPageCopy" resultType="com.ruoyi.procurementrecord.dto.ProcurementPageDtoCopy"> |
| | | select |
| | | t3.supplier_name, |
| | | t3.purchase_contract_number, |
| | | t2.product_category, |
| | | t1.id, |
| | | case when t2.product_category is null then t5.product_name |
| | | else t2.product_category end as productCategory, |
| | | max(t1.id) as id, |
| | | t1.sales_ledger_product_id, |
| | | t1.create_user, |
| | | t2.specification_model, |
| | | t2.unit, |
| | | case when t2.specification_model is null then t4.model |
| | | else t2.specification_model end as specificationModel, |
| | | case when t2.unit is null then t4.unit |
| | | else t2.unit end as unit, |
| | | t2.min_stock, |
| | | t2.tax_rate, |
| | | t2.tax_inclusive_unit_price, |
| | | t2.tax_inclusive_total_price, |
| | | t2.tax_exclusive_total_price, |
| | | t1.inbound_batches, |
| | | group_concat(t1.inbound_batches) as inbound_batches, |
| | | sum(t1.inbound_num) as inboundNum, |
| | | sum(t1.inbound_num) as inboundNum0, |
| | | t1.inbound_num as totalInboundNum, |
| | | t1.create_time, |
| | | t1.update_time, |
| | | sum(t1.inbound_num) as totalInboundNum, |
| | | max(t1.create_time) as create_time, |
| | | max(t1.update_time) as update_time, |
| | | t1.create_by, |
| | | t2.warn_num |
| | | from procurement_record_storage t1 |
| | | left join sales_ledger_product t2 on t2.id = t1.sales_ledger_product_id |
| | | left join purchase_ledger t3 on t3.id = t2.sales_ledger_id |
| | | left join product_model t4 on t4.id = t1.product_model_id |
| | | left join product t5 on t5.id = t4.product_id |
| | | <where> |
| | | 1 = 1 |
| | | <if test="req.supplierName != null and req.supplierName != ''"> |
| | |
| | | and t1.create_time like concat('%',#{req.timeStr},'%') |
| | | </if> |
| | | <if test="req.reportDate != null"> |
| | | and t1.create_time >= #{req.reportDate} and t1.create_time < DATE_ADD(#{req.reportDate}, INTERVAL 1 DAY) |
| | | and t1.create_time >= #{req.reportDate} and t1.create_time < DATE_ADD(#{req.reportDate}, INTERVAL 1 |
| | | DAY) |
| | | </if> |
| | | <if test="req.startMonth != null"> |
| | | and t1.create_time >= #{req.startMonth} |
| | |
| | | and t1.create_time <= #{req.endDate} |
| | | </if> |
| | | </where> |
| | | group by t3.supplier_name,t2.product_category,t2.specification_model |
| | | </select> |
| | | <select id="listCopy" resultType="com.ruoyi.procurementrecord.dto.ProcurementPageDtoCopy"> |
| | | select |
| | | group by |
| | | t3.supplier_name, |
| | | t3.purchase_contract_number, |
| | | t2.product_category, |
| | | productCategory, |
| | | specificationModel, |
| | | unit |
| | | </select> |
| | | |
| | | <select id="listCopy" resultType="com.ruoyi.procurementrecord.dto.ProcurementPageDtoCopy"> |
| | | select t3.supplier_name, |
| | | t3.purchase_contract_number, |
| | | case |
| | | when t2.product_category is null then t5.product_name |
| | | else t2.product_category end as productCategory, |
| | | t1.id, |
| | | t1.sales_ledger_product_id, |
| | | t1.create_user, |
| | | t2.specification_model, |
| | | t2.unit, |
| | | case |
| | | when t2.specification_model is null then t4.model |
| | | else t2.specification_model end as specificationModel, |
| | | case |
| | | when t2.unit is null then t4.unit |
| | | else t2.unit end as unit, |
| | | t2.tax_rate, |
| | | t2.tax_inclusive_unit_price, |
| | | t2.tax_inclusive_total_price, |
| | |
| | | from procurement_record_storage t1 |
| | | left join sales_ledger_product t2 on t2.id = t1.sales_ledger_product_id |
| | | left join purchase_ledger t3 on t3.id = t2.sales_ledger_id |
| | | left join product_model t4 on t4.id = t1.product_model_id |
| | | left join product t5 on t5.id = t4.product_id |
| | | </select> |
| | | </mapper> |
| | |
| | | "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> |
| | | <mapper namespace="com.ruoyi.procurementrecord.mapper.ProcurementRecordOutMapper"> |
| | | |
| | | |
| | | <select id="listPage" resultType="com.ruoyi.procurementrecord.dto.ProcurementRecordOutPageDto"> |
| | | select |
| | | t3.supplier_name, |
| | | t2.product_category, |
| | | t3.supplier_name as supplierName, |
| | | COALESCE(t2.product_category, t6.product_name) as productCategory, |
| | | t1.id, |
| | | t1.code, |
| | | t2.specification_model, |
| | | t2.unit, |
| | | t2.tax_rate, |
| | | t2.tax_inclusive_unit_price, |
| | | t2.tax_inclusive_total_price, |
| | | t2.tax_exclusive_total_price, |
| | | t1.inbound_num, |
| | | t1.create_time, |
| | | t1.create_by, |
| | | t2.warn_num |
| | | COALESCE(t2.specification_model, t5.model) as specificationModel, |
| | | COALESCE(t2.unit, t5.unit) as unit, |
| | | t2.tax_rate as taxRate, |
| | | t2.tax_inclusive_unit_price as taxInclusiveUnitPrice, |
| | | t2.tax_inclusive_total_price as taxInclusiveTotalPrice, |
| | | t2.tax_exclusive_total_price as taxExclusiveTotalPrice, |
| | | t1.inbound_num as inboundNum, |
| | | t1.create_time as createTime, |
| | | t1.create_by as createBy, |
| | | COALESCE(t2.warn_num, t4.warn_num) as warnNum |
| | | from procurement_record_out t1 |
| | | left join sales_ledger_product t2 on t2.id = t1.sales_ledger_product_id |
| | | left join purchase_ledger t3 on t3.id = t2.sales_ledger_id |
| | | left join procurement_record_storage t4 on t4.id = t1.procurement_record_storage_id |
| | | left join product_model t5 on t5.id = t4.product_model_id |
| | | left join product t6 on t6.id = t5.product_id |
| | | <where> |
| | | 1 = 1 |
| | | <if test="req.supplierName != null and req.supplierName != ''"> |
| | |
| | | </if> |
| | | </where> |
| | | </select> |
| | | |
| | | <select id="list" resultType="com.ruoyi.procurementrecord.dto.ProcurementRecordOutPageDto"> |
| | | select |
| | | t3.supplier_name, |
| | | t2.product_category, |
| | | select t3.supplier_name as supplierName, |
| | | COALESCE(t2.product_category, t6.product_name) as productCategory, |
| | | t1.id, |
| | | t2.specification_model, |
| | | t2.unit, |
| | | t2.tax_rate, |
| | | t2.tax_inclusive_unit_price, |
| | | t2.tax_inclusive_total_price, |
| | | t2.tax_exclusive_total_price, |
| | | t1.inbound_num, |
| | | t1.create_time, |
| | | COALESCE(t2.specification_model, t5.model) as specificationModel, |
| | | COALESCE(t2.unit, t5.unit) as unit, |
| | | t2.tax_rate as taxRate, |
| | | t2.tax_inclusive_unit_price as taxInclusiveUnitPrice, |
| | | t2.tax_inclusive_total_price as taxInclusiveTotalPrice, |
| | | t2.tax_exclusive_total_price as taxExclusiveTotalPrice, |
| | | t1.inbound_num as inboundNum, |
| | | t1.create_time as createTime, |
| | | t1.create_time as time, |
| | | t1.create_by |
| | | t1.create_by as createBy |
| | | from procurement_record_out t1 |
| | | left join sales_ledger_product t2 on t2.id = t1.sales_ledger_product_id |
| | | left join purchase_ledger t3 on t3.id = t2.sales_ledger_id |
| | | left join procurement_record_storage t4 on t4.id = t1.procurement_record_storage_id |
| | | left join product_model t5 on t5.id = t4.product_model_id |
| | | left join product t6 on t6.id = t5.product_id |
| | | </select> |
| | | |
| | | </mapper> |