liding
3 天以前 ca4cb71983041c4614cc9c4a740c1be535787777
1.待入库 2.正式库 3.生产加工
已修改7个文件
已添加23个文件
891 ■■■■■ 文件已修改
basic-server/src/main/java/com/ruoyi/basic/controller/CoalInfoController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-server/src/main/java/com/ruoyi/basic/controller/CoalQualityController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-server/src/main/java/com/ruoyi/basic/controller/CustomerController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-server/src/main/java/com/ruoyi/basic/controller/SupplyController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
main-business/src/main/java/com/ruoyi/business/controller/OfficialInventoryController.java 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
main-business/src/main/java/com/ruoyi/business/controller/PendingInventoryController.java 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
main-business/src/main/java/com/ruoyi/business/controller/ProductionController.java 52 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
main-business/src/main/java/com/ruoyi/business/controller/PurchaseRegistrationController.java 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
main-business/src/main/java/com/ruoyi/business/dto/ProductionDto.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
main-business/src/main/java/com/ruoyi/business/dto/PurchaseRegistrationDto.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
main-business/src/main/java/com/ruoyi/business/entity/OfficialInventory.java 80 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
main-business/src/main/java/com/ruoyi/business/entity/PendingInventory.java 75 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
main-business/src/main/java/com/ruoyi/business/entity/Production.java 85 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
main-business/src/main/java/com/ruoyi/business/mapper/OfficialInventoryMapper.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
main-business/src/main/java/com/ruoyi/business/mapper/PendingInventoryMapper.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
main-business/src/main/java/com/ruoyi/business/mapper/ProductionMapper.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
main-business/src/main/java/com/ruoyi/business/service/OfficialInventoryService.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
main-business/src/main/java/com/ruoyi/business/service/PendingInventoryService.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
main-business/src/main/java/com/ruoyi/business/service/ProductionService.java 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
main-business/src/main/java/com/ruoyi/business/service/PurchaseRegistrationService.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
main-business/src/main/java/com/ruoyi/business/service/impl/OfficialInventoryServiceImpl.java 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
main-business/src/main/java/com/ruoyi/business/service/impl/PendingInventoryServiceImpl.java 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
main-business/src/main/java/com/ruoyi/business/service/impl/ProductionServiceImpl.java 63 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
main-business/src/main/java/com/ruoyi/business/service/impl/PurchaseRegistrationServiceImpl.java 46 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
main-business/src/main/resources/db/migration/postgresql/V20250604101800__create_table_production.sql 45 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
main-business/src/main/resources/db/migration/postgresql/V20250604104500__create_table_pending_inventory.sql 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
main-business/src/main/resources/db/migration/postgresql/V20250604111200__create_table_official_inventory.sql 43 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
main-business/src/main/resources/mapper/OfficialInventoryMapper.xml 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
main-business/src/main/resources/mapper/PendingInventoryMapper.xml 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
main-business/src/main/resources/mapper/ProductionMapper.xml 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-server/src/main/java/com/ruoyi/basic/controller/CoalInfoController.java
@@ -20,7 +20,7 @@
@RestController
@AllArgsConstructor
@RequestMapping("/basic/coalInfo")
@RequestMapping("/coalInfo")
public class CoalInfoController {
    private CoalInfoService coalInfoService;
basic-server/src/main/java/com/ruoyi/basic/controller/CoalQualityController.java
@@ -20,7 +20,7 @@
@RestController
@AllArgsConstructor
@RequestMapping("/basic/coalQuality")
@RequestMapping("/coalQuality")
public class CoalQualityController {
    private CoalQualityService coalQualityService;
basic-server/src/main/java/com/ruoyi/basic/controller/CustomerController.java
@@ -15,7 +15,7 @@
@RestController
@AllArgsConstructor
@RequestMapping("/basic/customer")
@RequestMapping("/customer")
public class CustomerController {
}
basic-server/src/main/java/com/ruoyi/basic/controller/SupplyController.java
@@ -20,7 +20,7 @@
@RestController
@AllArgsConstructor
@RequestMapping("/basic/supply")
@RequestMapping("/supply")
public class SupplyController {
    private SupplyService supplyService;
main-business/src/main/java/com/ruoyi/business/controller/OfficialInventoryController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,21 @@
package com.ruoyi.business.controller;
import org.springframework.web.bind.annotation.RequestMapping;
import lombok.AllArgsConstructor;
    import org.springframework.web.bind.annotation.RestController;
/**
* <p>
    * æ­£å¼åº“存表 å‰ç«¯æŽ§åˆ¶å™¨
    * </p>
*
* @author ruoyi
* @since 2025-06-04
*/
@RestController
@AllArgsConstructor
@RequestMapping("/business/officialInventory")
        public class OfficialInventoryController {
    }
main-business/src/main/java/com/ruoyi/business/controller/PendingInventoryController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,21 @@
package com.ruoyi.business.controller;
import org.springframework.web.bind.annotation.RequestMapping;
import lombok.AllArgsConstructor;
import org.springframework.web.bind.annotation.RestController;
/**
 * <p>
 * å¾…入库表 å‰ç«¯æŽ§åˆ¶å™¨
 * </p>
 *
 * @author ruoyi
 * @since 2025-06-04
 */
@RestController
@AllArgsConstructor
@RequestMapping("/business/pendingInventory")
public class PendingInventoryController {
}
main-business/src/main/java/com/ruoyi/business/controller/ProductionController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,52 @@
package com.ruoyi.business.controller;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.business.dto.ProductionDto;
import com.ruoyi.business.entity.Production;
import com.ruoyi.business.service.ProductionService;
import com.ruoyi.common.core.domain.R;
import lombok.AllArgsConstructor;
import org.springframework.web.bind.annotation.*;
/**
 * <p>
 * ç”Ÿäº§æ˜Žç»†è¡¨ å‰ç«¯æŽ§åˆ¶å™¨
 * </p>
 *
 * @author ruoyi
 * @since 2025-06-04
 */
@RestController
@AllArgsConstructor
@RequestMapping("/production")
public class ProductionController {
    private ProductionService productionService;
    /**
     * æŸ¥è¯¢
     */
    @GetMapping("/list")
    public R<IPage<Production>> list(Page page, ProductionDto productionDto) {
        IPage<Production> list = productionService.selectProductionList(page,productionDto);
        return R.ok(list);
    }
    /**
     * æ–°å¢žä¿®æ”¹
     */
    @PostMapping("/addOrEditProduction")
    public R addOrEditProduction(@RequestBody ProductionDto productionDto) {
        return R.ok(productionService.addOrEditProduction(productionDto));
    }
    /**
     * åˆ é™¤
     */
    @DeleteMapping("/delProduction")
    public R remove(@RequestBody Long[] ids) {
        return R.ok(productionService.delByIds(ids));
    }
}
main-business/src/main/java/com/ruoyi/business/controller/PurchaseRegistrationController.java
@@ -1,8 +1,13 @@
package com.ruoyi.business.controller;
import org.springframework.web.bind.annotation.RequestMapping;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.business.dto.PurchaseRegistrationDto;
import com.ruoyi.business.entity.PurchaseRegistration;
import com.ruoyi.business.service.PurchaseRegistrationService;
import com.ruoyi.common.core.domain.R;
import lombok.AllArgsConstructor;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
/**
 * <p>
@@ -15,7 +20,34 @@
@RestController
@AllArgsConstructor
@RequestMapping("/business/purchaseRegistration")
@RequestMapping("/purchaseRegistration")
public class PurchaseRegistrationController {
    private PurchaseRegistrationService purchaseRegistrationService;
    /**
     * æŸ¥è¯¢
     */
    @GetMapping("/list")
    public R<IPage<PurchaseRegistration>> list(Page page, PurchaseRegistrationDto purchaseRegistrationDto) {
        IPage<PurchaseRegistration> list = purchaseRegistrationService.selectPurchaseRegistrationList(page,purchaseRegistrationDto);
        return R.ok(list);
    }
    /**
     * æ–°å¢žä¿®æ”¹
     */
    @PostMapping("/addOrEditPR")
    public R addOrEditSupply(@RequestBody PurchaseRegistrationDto purchaseRegistrationDto) {
        return R.ok(purchaseRegistrationService.addOrEditPR(purchaseRegistrationDto));
    }
    /**
     * åˆ é™¤
     */
    @DeleteMapping("/delPR")
    public R remove(@RequestBody Long[] ids) {
        return R.ok(purchaseRegistrationService.delByIds(ids));
    }
}
main-business/src/main/java/com/ruoyi/business/dto/ProductionDto.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
package com.ruoyi.business.dto;
import com.ruoyi.business.entity.Production;
import lombok.Data;
@Data
public class ProductionDto extends Production {
}
main-business/src/main/java/com/ruoyi/business/dto/PurchaseRegistrationDto.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
package com.ruoyi.business.dto;
import com.ruoyi.business.entity.PurchaseRegistration;
import lombok.Data;
@Data
public class PurchaseRegistrationDto extends PurchaseRegistration {
}
main-business/src/main/java/com/ruoyi/business/entity/OfficialInventory.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,80 @@
package com.ruoyi.business.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.ruoyi.common.core.domain.MyBaseEntity;
import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
/**
 * æ­£å¼åº“存表 å®žä½“ç±»
 *
 * @author ruoyi
 * @date 2025-06-04
 */
@Data
@TableName("official_inventory")
public class OfficialInventory extends MyBaseEntity {
    private static final long serialVersionUID = 1L;
    /**
     * ä¸»é”®ID
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;
    /**
     * ä¾›è´§å•†åç§°
     */
    @TableField(value = "supplier_name")
    private String supplierName;
    /**
     * ç…¤ç§
     */
    @TableField(value = "coal_type")
    private String coalType;
    /**
     * å•位
     */
    @TableField(value = "unit")
    private String unit;
    /**
     * åº“存数量
     */
    @TableField(value = "inventory_quantity")
    private BigDecimal inventoryQuantity;
    /**
     * å•价(含税)
     */
    @TableField(value = "price_including_tax")
    private BigDecimal priceIncludingTax;
    /**
     * æ€»ä»·ï¼ˆå«ç¨Žï¼‰
     */
    @TableField(value = "total_price_including_tax")
    private BigDecimal totalPriceIncludingTax;
    /**
     * æˆæœ¬å•ä»·
     */
    @TableField(value = "cost_per_unit")
    private BigDecimal costPerUnit;
    /**
     * å¾…补库
     */
    @TableField(value = "pending_replenishment")
    private BigDecimal pendingReplenishment;
    /**
     * ç™»è®°äººid
     */
    @TableField(value = "registrant_id")
    private String registrantId;
    /**
     * ç™»è®°æ—¥æœŸ
     */
    @TableField(value = "registration_date")
    private Date registrationDate;
}
main-business/src/main/java/com/ruoyi/business/entity/PendingInventory.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,75 @@
package com.ruoyi.business.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.ruoyi.common.core.domain.MyBaseEntity;
import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
/**
 * å¾…入库表 å®žä½“ç±»
 *
 * @author ruoyi
 * @date 2025-06-04
 */
@Data
@TableName("pending_inventory")
public class PendingInventory extends MyBaseEntity {
    private static final long serialVersionUID = 1L;
    /**
     * ä¸»é”®ID
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;
    /**
     * ä¾›è´§å•†åç§°
     */
    @TableField(value = "supplier_name")
    private String supplierName;
    /**
     * ç…¤ç§
     */
    @TableField(value = "coal_type")
    private String coalType;
    /**
     * å•位
     */
    @TableField(value = "unit")
    private String unit;
    /**
     * åº“存数量
     */
    @TableField(value = "inventory_quantity")
    private BigDecimal inventoryQuantity;
    /**
     * å•价(含税)
     */
    @TableField(value = "price_including_tax")
    private BigDecimal priceIncludingTax;
    /**
     * æ€»ä»·ï¼ˆå«ç¨Žï¼‰
     */
    @TableField(value = "total_price_including_tax")
    private BigDecimal totalPriceIncludingTax;
    /**
     * æˆæœ¬å•ä»·
     */
    @TableField(value = "cost_per_unit")
    private BigDecimal costPerUnit;
    /**
     * ç™»è®°äºº
     */
    @TableField(value = "registrant")
    private String registrant;
    /**
     * ç™»è®°æ—¶é—´
     */
    @TableField(value = "registration_time")
    private Date registrationTime;
}
main-business/src/main/java/com/ruoyi/business/entity/Production.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,85 @@
package com.ruoyi.business.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.ruoyi.common.core.domain.MyBaseEntity;
import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
/**
 * ç”Ÿäº§æ˜Žç»†è¡¨ å®žä½“ç±»
 *
 * @author ruoyi
 * @date 2025-06-04
 */
@Data
@TableName("production")
public class Production extends MyBaseEntity {
    private static final long serialVersionUID = 1L;
    /**
     * ä¸»é”®ID
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;
    /**
     * ç…¤ç§ID
     */
    @TableField(value = "coal_id")
    private Long coalId;
    /**
     * ç…¤ç§
     */
    @TableField(value = "coal")
    private String coal;
    /**
     * çƒ­å€¼
     */
    @TableField(value = "calorific_value")
    private Integer calorificValue;
    /**
     * ç”Ÿäº§æ•°é‡
     */
    @TableField(value = "production_quantity")
    private Integer productionQuantity;
    /**
     * äººå·¥æˆæœ¬
     */
    @TableField(value = "labor_cost")
    private BigDecimal laborCost;
    /**
     * èƒ½è€—成本
     */
    @TableField(value = "energy_consumption_cost")
    private BigDecimal energyConsumptionCost;
    /**
     * è®¾å¤‡æŠ˜æ—§
     */
    @TableField(value = "equipment_depreciation")
    private BigDecimal equipmentDepreciation;
    /**
     * é‡‡è´­å•ä»·
     */
    @TableField(value = "purchase_price")
    private BigDecimal purchasePrice;
    /**
     * æ€»æˆæœ¬
     */
    @TableField(value = "total_cost")
    private BigDecimal totalCost;
    /**
     * ç”Ÿäº§äºº
     */
    @TableField(value = "producer")
    private String producer;
    /**
     * ç”Ÿäº§æ—¥æœŸ
     */
    @TableField(value = "production_date")
    private Date productionDate;
}
main-business/src/main/java/com/ruoyi/business/mapper/OfficialInventoryMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,18 @@
package com.ruoyi.business.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ruoyi.business.entity.OfficialInventory;
import org.apache.ibatis.annotations.Mapper;
/**
 * <p>
 * æ­£å¼åº“存表 Mapper æŽ¥å£
 * </p>
 *
 * @author ruoyi
 * @since 2025-06-04
 */
@Mapper
public interface OfficialInventoryMapper extends BaseMapper<OfficialInventory> {
}
main-business/src/main/java/com/ruoyi/business/mapper/PendingInventoryMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,18 @@
package com.ruoyi.business.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ruoyi.business.entity.PendingInventory;
import org.apache.ibatis.annotations.Mapper;
/**
 * <p>
 * å¾…入库表 Mapper æŽ¥å£
 * </p>
 *
 * @author ruoyi
 * @since 2025-06-04
 */
@Mapper
public interface PendingInventoryMapper extends BaseMapper<PendingInventory> {
}
main-business/src/main/java/com/ruoyi/business/mapper/ProductionMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,18 @@
package com.ruoyi.business.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ruoyi.business.entity.Production;
import org.apache.ibatis.annotations.Mapper;
/**
 * <p>
 * ç”Ÿäº§æ˜Žç»†è¡¨ Mapper æŽ¥å£
 * </p>
 *
 * @author ruoyi
 * @since 2025-06-04
 */
@Mapper
public interface ProductionMapper extends BaseMapper<Production> {
}
main-business/src/main/java/com/ruoyi/business/service/OfficialInventoryService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,16 @@
package com.ruoyi.business.service;
import com.ruoyi.business.entity.OfficialInventory;
import com.baomidou.mybatisplus.extension.service.IService;
/**
 * <p>
 * æ­£å¼åº“存表 æœåŠ¡ç±»
 * </p>
 *
 * @author ruoyi
 * @since 2025-06-04
 */
public interface OfficialInventoryService extends IService<OfficialInventory> {
}
main-business/src/main/java/com/ruoyi/business/service/PendingInventoryService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,16 @@
package com.ruoyi.business.service;
import com.ruoyi.business.entity.PendingInventory;
import com.baomidou.mybatisplus.extension.service.IService;
/**
 * <p>
 * å¾…入库表 æœåŠ¡ç±»
 * </p>
 *
 * @author ruoyi
 * @since 2025-06-04
 */
public interface PendingInventoryService extends IService<PendingInventory> {
}
main-business/src/main/java/com/ruoyi/business/service/ProductionService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,24 @@
package com.ruoyi.business.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.business.dto.ProductionDto;
import com.ruoyi.business.entity.Production;
import com.baomidou.mybatisplus.extension.service.IService;
/**
 * <p>
 * ç”Ÿäº§æ˜Žç»†è¡¨ æœåŠ¡ç±»
 * </p>
 *
 * @author ruoyi
 * @since 2025-06-04
 */
public interface ProductionService extends IService<Production> {
    IPage<Production> selectProductionList(Page page, ProductionDto productionDto);
    int addOrEditProduction(ProductionDto productionDto);
    int delByIds(Long[] ids);
}
main-business/src/main/java/com/ruoyi/business/service/PurchaseRegistrationService.java
@@ -1,5 +1,8 @@
package com.ruoyi.business.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.business.dto.PurchaseRegistrationDto;
import com.ruoyi.business.entity.PurchaseRegistration;
import com.baomidou.mybatisplus.extension.service.IService;
@@ -13,4 +16,9 @@
 */
public interface PurchaseRegistrationService extends IService<PurchaseRegistration> {
    IPage<PurchaseRegistration> selectPurchaseRegistrationList(Page page, PurchaseRegistrationDto purchaseRegistrationDto);
    int addOrEditPR(PurchaseRegistrationDto purchaseRegistrationDto);
    int delByIds(Long[] ids);
}
main-business/src/main/java/com/ruoyi/business/service/impl/OfficialInventoryServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,22 @@
package com.ruoyi.business.service.impl;
import com.ruoyi.business.entity.OfficialInventory;
import com.ruoyi.business.mapper.OfficialInventoryMapper;
import com.ruoyi.business.service.OfficialInventoryService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
import lombok.RequiredArgsConstructor;
/**
 * <p>
 * æ­£å¼åº“存表 æœåŠ¡å®žçŽ°ç±»
 * </p>
 *
 * @author ruoyi
 * @since 2025-06-04
 */
@Service
@RequiredArgsConstructor
public class OfficialInventoryServiceImpl extends ServiceImpl<OfficialInventoryMapper, OfficialInventory> implements OfficialInventoryService {
}
main-business/src/main/java/com/ruoyi/business/service/impl/PendingInventoryServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,22 @@
package com.ruoyi.business.service.impl;
import com.ruoyi.business.entity.PendingInventory;
import com.ruoyi.business.mapper.PendingInventoryMapper;
import com.ruoyi.business.service.PendingInventoryService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
import lombok.RequiredArgsConstructor;
/**
 * <p>
 * å¾…入库表 æœåŠ¡å®žçŽ°ç±»
 * </p>
 *
 * @author ruoyi
 * @since 2025-06-04
 */
@Service
@RequiredArgsConstructor
public class PendingInventoryServiceImpl extends ServiceImpl<PendingInventoryMapper, PendingInventory> implements PendingInventoryService {
}
main-business/src/main/java/com/ruoyi/business/service/impl/ProductionServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,63 @@
package com.ruoyi.business.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.business.dto.ProductionDto;
import com.ruoyi.business.entity.Production;
import com.ruoyi.business.mapper.ProductionMapper;
import com.ruoyi.business.service.ProductionService;
import com.ruoyi.common.utils.bean.BeanUtils;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import java.util.Objects;
/**
 * <p>
 * ç”Ÿäº§æ˜Žç»†è¡¨ æœåŠ¡å®žçŽ°ç±»
 * </p>
 *
 * @author ruoyi
 * @since 2025-06-04
 */
@Service
@RequiredArgsConstructor
public class ProductionServiceImpl extends ServiceImpl<ProductionMapper, Production> implements ProductionService {
    private ProductionMapper productionMapper;
    @Override
    public IPage<Production> selectProductionList(Page page, ProductionDto productionDto) {
        LambdaQueryWrapper<Production> queryWrapper = new LambdaQueryWrapper<>();
        queryWrapper.orderByDesc(Production::getCreateTime);
        return productionMapper.selectPage(page, queryWrapper);
    }
    @Override
    public int addOrEditProduction(ProductionDto productionDto) {
        Production production = new Production();
        BeanUtils.copyProperties(productionDto, production);
        if (Objects.isNull(productionDto.getId())) {
            return productionMapper.insert(production);
        } else {
            return productionMapper.updateById(production);
        }
    }
    @Override
    public int delByIds(Long[] ids) {
        // æ£€æŸ¥å‚æ•°
        if (ids == null || ids.length == 0) {
            return 0;
        }
        // æž„造更新条件
        UpdateWrapper<Production> updateWrapper = new UpdateWrapper<>();
        updateWrapper.in("id", ids)
                .set("deleted", 1);  // è®¾ç½® deleted ä¸º 1 è¡¨ç¤ºå·²åˆ é™¤
        // æ‰§è¡Œæ‰¹é‡é€»è¾‘删除
        return productionMapper.update(null, updateWrapper);
    }
}
main-business/src/main/java/com/ruoyi/business/service/impl/PurchaseRegistrationServiceImpl.java
@@ -1,11 +1,19 @@
package com.ruoyi.business.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.business.dto.PurchaseRegistrationDto;
import com.ruoyi.business.entity.PurchaseRegistration;
import com.ruoyi.business.mapper.PurchaseRegistrationMapper;
import com.ruoyi.business.service.PurchaseRegistrationService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
import com.ruoyi.common.utils.bean.BeanUtils;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import java.util.Objects;
/**
 * <p>
@@ -19,4 +27,38 @@
@RequiredArgsConstructor
public class PurchaseRegistrationServiceImpl extends ServiceImpl<PurchaseRegistrationMapper, PurchaseRegistration> implements PurchaseRegistrationService {
    private final PurchaseRegistrationMapper purchaseRegistrationMapper;
    @Override
    public IPage<PurchaseRegistration> selectPurchaseRegistrationList(Page page, PurchaseRegistrationDto purchaseRegistrationDto) {
        LambdaQueryWrapper<PurchaseRegistration> queryWrapper = new LambdaQueryWrapper<>();
        queryWrapper.orderByDesc(PurchaseRegistration::getCreateTime);
        return purchaseRegistrationMapper.selectPage(page, queryWrapper);
    }
    @Override
    public int addOrEditPR(PurchaseRegistrationDto purchaseRegistrationDto) {
        PurchaseRegistration purchaseRegistration = new PurchaseRegistration();
        BeanUtils.copyProperties(purchaseRegistrationDto,purchaseRegistration);
        if (Objects.isNull(purchaseRegistrationDto.getId())) {
            return purchaseRegistrationMapper.insert(purchaseRegistration);
        } else {
            return purchaseRegistrationMapper.updateById(purchaseRegistration);
        }
    }
    @Override
    public int delByIds(Long[] ids) {
        // æ£€æŸ¥å‚æ•°
        if (ids == null || ids.length == 0) {
            return 0;
        }
        // æž„造更新条件
        UpdateWrapper<PurchaseRegistration> updateWrapper = new UpdateWrapper<>();
        updateWrapper.in("id", ids)
                .set("deleted", 1);  // è®¾ç½® deleted ä¸º 1 è¡¨ç¤ºå·²åˆ é™¤
        // æ‰§è¡Œæ‰¹é‡é€»è¾‘删除
        return purchaseRegistrationMapper.update(null, updateWrapper);
    }
}
main-business/src/main/resources/db/migration/postgresql/V20250604101800__create_table_production.sql
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,45 @@
-- åˆ›å»ºç”Ÿäº§æ˜Žç»†è¡¨
CREATE TABLE production
(
    id                      BIGSERIAL PRIMARY KEY,                              -- ä¸»é”®ID
    coal_id                 BIGINT         NOT NULL  DEFAULT 0,                 -- ç…¤ç§ID
    coal                    VARCHAR(50)    NOT NULL,                            -- ç…¤ç§
    calorific_value         INT            NOT NULL,                            -- çƒ­å€¼
    production_quantity     INT            NOT NULL,                            -- ç”Ÿäº§æ•°é‡
    labor_cost              DECIMAL(10, 2) NOT NULL,                            -- äººå·¥æˆæœ¬
    energy_consumption_cost DECIMAL(10, 2) NOT NULL,                            -- èƒ½è€—成本
    equipment_depreciation  DECIMAL(10, 2) NOT NULL,                            -- è®¾å¤‡æŠ˜æ—§
    purchase_price          DECIMAL(10, 2) NOT NULL,                            -- é‡‡è´­å•ä»·
    total_cost              DECIMAL(10, 2) NOT NULL,                            -- æ€»æˆæœ¬
    producer                VARCHAR(50),                                        -- ç”Ÿäº§äºº
    production_date         DATE,                                               -- ç”Ÿäº§æ—¥æœŸ
    deleted                 INT            NOT NULL  DEFAULT 0,                 -- è½¯åˆ é™¤æ ‡å¿—:0=未删除,1=已删除
    create_by               VARCHAR(255),                                       -- åˆ›å»ºäººç”¨æˆ·å
    create_time             TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP, -- åˆ›å»ºæ—¶é—´ï¼Œé»˜è®¤å½“前时间
    update_by               VARCHAR(255),                                       -- æœ€åŽæ›´æ–°äººç”¨æˆ·å
    update_time             TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP  -- æœ€åŽæ›´æ–°æ—¶é—´ï¼Œé»˜è®¤å½“前时间
);
-- æ·»åŠ è¡¨æ³¨é‡Š
COMMENT ON TABLE production IS '生产明细表';
-- æ·»åŠ å­—æ®µæ³¨é‡Š
COMMENT ON COLUMN production.id IS '主键ID';
COMMENT ON COLUMN production.coal_id IS '煤种ID';
COMMENT ON COLUMN production.coal IS '煤种';
COMMENT ON COLUMN production.calorific_value IS '热值';
COMMENT ON COLUMN production.production_quantity IS '生产数量';
COMMENT ON COLUMN production.labor_cost IS '人工成本';
COMMENT ON COLUMN production.energy_consumption_cost IS '能耗成本';
COMMENT ON COLUMN production.equipment_depreciation IS '设备折旧';
COMMENT ON COLUMN production.purchase_price IS '采购单价';
COMMENT ON COLUMN production.total_cost IS '总成本';
COMMENT ON COLUMN production.producer IS '生产人';
COMMENT ON COLUMN production.production_date IS '生产日期';
COMMENT ON COLUMN production.deleted IS '软删除标志,0=未删除,1=已删除';
COMMENT ON COLUMN production.create_by IS '创建该记录的用户';
COMMENT ON COLUMN production.create_time IS '记录创建时间';
COMMENT ON COLUMN production.update_by IS '最后修改该记录的用户';
COMMENT ON COLUMN production.update_time IS '记录最后更新时间';
main-business/src/main/resources/db/migration/postgresql/V20250604104500__create_table_pending_inventory.sql
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,41 @@
-- åˆ›å»ºå¾…入库表
CREATE TABLE pending_inventory
(
    id                        SERIAL PRIMARY KEY,                                 -- ä¸»é”®ID
    supplier_name             VARCHAR(255)   NOT NULL,                            -- ä¾›è´§å•†åç§°
    coal_type                 VARCHAR(50)    NOT NULL,                            -- ç…¤ç§
    unit                      VARCHAR(50)    NOT NULL,                            -- å•位
    inventory_quantity        DECIMAL(10, 2) NOT NULL,                            -- åº“存数量
    price_including_tax       DECIMAL(10, 2) NOT NULL,                            -- å•价(含税)
    total_price_including_tax DECIMAL(10, 2) NOT NULL,                            -- æ€»ä»·ï¼ˆå«ç¨Žï¼‰
    cost_per_unit             DECIMAL(10, 2) NOT NULL,                            -- æˆæœ¬å•ä»·
    registrant                VARCHAR(50)    NOT NULL,                            -- ç™»è®°äºº
    registration_time         TIMESTAMP      NOT NULL  DEFAULT CURRENT_TIMESTAMP, -- ç™»è®°æ—¶é—´
    deleted                   INT            NOT NULL  DEFAULT 0,                 -- è½¯åˆ é™¤æ ‡å¿—:0=未删除,1=已删除
    create_by                 VARCHAR(255),                                       -- åˆ›å»ºäººç”¨æˆ·å
    create_time               TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP, -- åˆ›å»ºæ—¶é—´ï¼Œé»˜è®¤å½“前时间
    update_by                 VARCHAR(255),                                       -- æœ€åŽæ›´æ–°äººç”¨æˆ·å
    update_time               TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP  -- æœ€åŽæ›´æ–°æ—¶é—´ï¼Œé»˜è®¤å½“前时间
);
-- æ·»åŠ è¡¨æ³¨é‡Š
COMMENT ON TABLE pending_inventory IS '待入库表';
-- æ·»åŠ å­—æ®µæ³¨é‡Š
COMMENT ON COLUMN pending_inventory.id IS '主键ID';
COMMENT ON COLUMN pending_inventory.supplier_name IS '供货商名称';
COMMENT ON COLUMN pending_inventory.coal_type IS '煤种';
COMMENT ON COLUMN pending_inventory.unit IS '单位';
COMMENT ON COLUMN pending_inventory.inventory_quantity IS '库存数量';
COMMENT ON COLUMN pending_inventory.price_including_tax IS '单价(含税)';
COMMENT ON COLUMN pending_inventory.total_price_including_tax IS '总价(含税)';
COMMENT ON COLUMN pending_inventory.cost_per_unit IS '成本单价';
COMMENT ON COLUMN pending_inventory.registrant IS '登记人';
COMMENT ON COLUMN pending_inventory.registration_time IS '登记时间';
COMMENT ON COLUMN pending_inventory.deleted IS '软删除标志,0=未删除,1=已删除';
COMMENT ON COLUMN pending_inventory.create_by IS '创建该记录的用户';
COMMENT ON COLUMN pending_inventory.create_time IS '记录创建时间';
COMMENT ON COLUMN pending_inventory.update_by IS '最后修改该记录的用户';
COMMENT ON COLUMN pending_inventory.update_time IS '记录最后更新时间';
main-business/src/main/resources/db/migration/postgresql/V20250604111200__create_table_official_inventory.sql
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,43 @@
-- åˆ›å»ºæ­£å¼åº“表
CREATE TABLE official_inventory
(
    id                         SERIAL PRIMARY KEY,                                 -- ä¸»é”®ID
    supplier_name              VARCHAR(255)   NOT NULL,                            -- ä¾›è´§å•†åç§°
    coal_type                  VARCHAR(50)    NOT NULL,                            -- ç…¤ç§
    unit                       VARCHAR(50)    NOT NULL,                            -- å•位
    inventory_quantity         DECIMAL(10, 2) NOT NULL,                            -- åº“存数量
    price_including_tax        DECIMAL(10, 2) NOT NULL,                            -- å•价(含税)
    total_price_including_tax  DECIMAL(10, 2) NOT NULL,                            -- æ€»ä»·ï¼ˆå«ç¨Žï¼‰
    cost_per_unit              DECIMAL(10, 2) NOT NULL,                            -- æˆæœ¬å•ä»·
    pending_replenishment      DECIMAL(10, 2) NOT NULL,                            -- å¾…补库
    registrant_id              VARCHAR(50)    NOT NULL,                            -- ç™»è®°äººid
    registration_date          TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP,
    deleted                    INT            NOT NULL  DEFAULT 0,                 -- è½¯åˆ é™¤æ ‡å¿—:0=未删除,1=已删除
    create_by                  VARCHAR(255),                                       -- åˆ›å»ºäººç”¨æˆ·å
    create_time                TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP, -- åˆ›å»ºæ—¶é—´ï¼Œé»˜è®¤å½“前时间
    update_by                  VARCHAR(255),                                       -- æœ€åŽæ›´æ–°äººç”¨æˆ·å
    update_time                TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP  -- æœ€åŽæ›´æ–°æ—¶é—´ï¼Œé»˜è®¤å½“前时间-- ç™»è®°æ—¥æœŸ
);
-- æ·»åŠ è¡¨æ³¨é‡Š
COMMENT ON TABLE official_inventory IS '正式库存表';
-- æ·»åŠ å­—æ®µæ³¨é‡Š
COMMENT ON COLUMN official_inventory.id IS '主键ID';
COMMENT ON COLUMN official_inventory.supplier_name IS '供货商名称';
COMMENT ON COLUMN official_inventory.coal_type IS '煤种';
COMMENT ON COLUMN official_inventory.unit IS '单位';
COMMENT ON COLUMN official_inventory.inventory_quantity IS '库存数量';
COMMENT ON COLUMN official_inventory.price_including_tax IS '单价(含税)';
COMMENT ON COLUMN official_inventory.total_price_including_tax IS '总价(含税)';
COMMENT ON COLUMN official_inventory.cost_per_unit IS '成本单价';
COMMENT ON COLUMN official_inventory.pending_replenishment IS '待补库';
COMMENT ON COLUMN official_inventory.registrant_id IS '登记人id';
COMMENT ON COLUMN official_inventory.registration_date IS '登记日期';
COMMENT ON COLUMN official_inventory.deleted IS '软删除标志,0=未删除,1=已删除';
COMMENT ON COLUMN official_inventory.create_by IS '创建该记录的用户';
COMMENT ON COLUMN official_inventory.create_time IS '记录创建时间';
COMMENT ON COLUMN official_inventory.update_by IS '最后修改该记录的用户';
COMMENT ON COLUMN official_inventory.update_time IS '记录最后更新时间';
main-business/src/main/resources/mapper/OfficialInventoryMapper.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,35 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ruoyi.business.mapper.OfficialInventoryMapper">
        <!-- é€šç”¨æŸ¥è¯¢æ˜ å°„结果 -->
        <resultMap id="BaseResultMap" type="com.ruoyi.business.entity.OfficialInventory">
                    <id column="id" property="id" />
                <result column="deleted" property="deleted" />
                <result column="create_by" property="createBy" />
                <result column="create_time" property="createTime" />
                <result column="update_by" property="updateBy" />
                <result column="update_time" property="updateTime" />
                    <result column="supplier_name" property="supplierName" />
                    <result column="coal_type" property="coalType" />
                    <result column="unit" property="unit" />
                    <result column="inventory_quantity" property="inventoryQuantity" />
                    <result column="price_including_tax" property="priceIncludingTax" />
                    <result column="total_price_including_tax" property="totalPriceIncludingTax" />
                    <result column="cost_per_unit" property="costPerUnit" />
                    <result column="pending_replenishment" property="pendingReplenishment" />
                    <result column="registrant_id" property="registrantId" />
                    <result column="registration_date" property="registrationDate" />
        </resultMap>
        <!-- é€šç”¨æŸ¥è¯¢ç»“果列 -->
        <sql id="Base_Column_List">
                deleted,
                create_by,
                create_time,
                update_by,
                update_time,
            id, supplier_name, coal_type, unit, inventory_quantity, price_including_tax, total_price_including_tax, cost_per_unit, pending_replenishment, registrant_id, registration_date
        </sql>
</mapper>
main-business/src/main/resources/mapper/PendingInventoryMapper.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,34 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ruoyi.business.mapper.PendingInventoryMapper">
        <!-- é€šç”¨æŸ¥è¯¢æ˜ å°„结果 -->
        <resultMap id="BaseResultMap" type="com.ruoyi.business.entity.PendingInventory">
                    <id column="id" property="id" />
                <result column="deleted" property="deleted" />
                <result column="create_by" property="createBy" />
                <result column="create_time" property="createTime" />
                <result column="update_by" property="updateBy" />
                <result column="update_time" property="updateTime" />
                    <result column="supplier_name" property="supplierName" />
                    <result column="coal_type" property="coalType" />
                    <result column="unit" property="unit" />
                    <result column="inventory_quantity" property="inventoryQuantity" />
                    <result column="price_including_tax" property="priceIncludingTax" />
                    <result column="total_price_including_tax" property="totalPriceIncludingTax" />
                    <result column="cost_per_unit" property="costPerUnit" />
                    <result column="registrant" property="registrant" />
                    <result column="registration_time" property="registrationTime" />
        </resultMap>
        <!-- é€šç”¨æŸ¥è¯¢ç»“果列 -->
        <sql id="Base_Column_List">
                deleted,
                create_by,
                create_time,
                update_by,
                update_time,
            id, supplier_name, coal_type, unit, inventory_quantity, price_including_tax, total_price_including_tax, cost_per_unit, registrant, registration_time
        </sql>
</mapper>
main-business/src/main/resources/mapper/ProductionMapper.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,26 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ruoyi.business.mapper.ProductionMapper">
        <!-- é€šç”¨æŸ¥è¯¢æ˜ å°„结果 -->
        <resultMap id="BaseResultMap" type="com.ruoyi.business.entity.Production">
                    <id column="id" property="id" />
                    <result column="coal_id" property="coalId" />
                    <result column="coal" property="coal" />
                    <result column="calorific_value" property="calorificValue" />
                    <result column="production_quantity" property="productionQuantity" />
                    <result column="labor_cost" property="laborCost" />
                    <result column="energy_consumption_cost" property="energyConsumptionCost" />
                    <result column="equipment_depreciation" property="equipmentDepreciation" />
                    <result column="purchase_price" property="purchasePrice" />
                    <result column="total_cost" property="totalCost" />
                    <result column="producer" property="producer" />
                    <result column="production_date" property="productionDate" />
        </resultMap>
        <!-- é€šç”¨æŸ¥è¯¢ç»“果列 -->
        <sql id="Base_Column_List">
            id, coal_id, coal, calorific_value, production_quantity, labor_cost, energy_consumption_cost, equipment_depreciation, purchase_price, total_cost, producer, production_date
        </sql>
</mapper>