liding
18 小时以前 388bd216d4eb70b367ada95118d1087b45f07ae3
1.煤质部分 2.代入库部分
已修改11个文件
已添加26个文件
1121 ■■■■■ 文件已修改
basic-server/src/main/java/com/ruoyi/basic/controller/CoalFieldController.java 63 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-server/src/main/java/com/ruoyi/basic/controller/CoalPlanController.java 63 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-server/src/main/java/com/ruoyi/basic/controller/CoalValueController.java 54 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-server/src/main/java/com/ruoyi/basic/dto/CoalFieldDto.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-server/src/main/java/com/ruoyi/basic/dto/CoalPlanDto.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-server/src/main/java/com/ruoyi/basic/dto/CoalValueDto.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-server/src/main/java/com/ruoyi/basic/entity/CoalField.java 45 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-server/src/main/java/com/ruoyi/basic/entity/CoalPlan.java 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-server/src/main/java/com/ruoyi/basic/entity/CoalValue.java 46 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-server/src/main/java/com/ruoyi/basic/mapper/CoalFieldMapper.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-server/src/main/java/com/ruoyi/basic/mapper/CoalPlanMapper.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-server/src/main/java/com/ruoyi/basic/mapper/CoalValueMapper.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-server/src/main/java/com/ruoyi/basic/service/CoalFieldService.java 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-server/src/main/java/com/ruoyi/basic/service/CoalPlanService.java 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-server/src/main/java/com/ruoyi/basic/service/CoalValueService.java 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-server/src/main/java/com/ruoyi/basic/service/impl/CoalFieldServiceImpl.java 107 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-server/src/main/java/com/ruoyi/basic/service/impl/CoalInfoServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-server/src/main/java/com/ruoyi/basic/service/impl/CoalPlanServiceImpl.java 68 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-server/src/main/java/com/ruoyi/basic/service/impl/CoalValueServiceImpl.java 74 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-server/src/main/resources/db/migration/postgresql/V20250606163300__create_table_coal_field.sql 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-server/src/main/resources/db/migration/postgresql/V20250606170900__create_table_coal_plan.sql 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-server/src/main/resources/db/migration/postgresql/V20250606171000__create_table_coal_value.sql 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-server/src/main/resources/mapper/CoalFieldMapper.xml 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-server/src/main/resources/mapper/CoalPlanMapper.xml 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-server/src/main/resources/mapper/CoalValueMapper.xml 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
main-business/pom.xml 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
main-business/src/main/java/com/ruoyi/business/controller/OfficialInventoryController.java 40 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
main-business/src/main/java/com/ruoyi/business/controller/PendingInventoryController.java 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
main-business/src/main/java/com/ruoyi/business/dto/OfficialInventoryDto.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
main-business/src/main/java/com/ruoyi/business/dto/PendingInventoryDto.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
main-business/src/main/java/com/ruoyi/business/entity/PendingInventory.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
main-business/src/main/java/com/ruoyi/business/service/OfficialInventoryService.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
main-business/src/main/java/com/ruoyi/business/service/PendingInventoryService.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
main-business/src/main/java/com/ruoyi/business/service/impl/OfficialInventoryServiceImpl.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
main-business/src/main/java/com/ruoyi/business/service/impl/PendingInventoryServiceImpl.java 51 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
main-business/src/main/java/com/ruoyi/business/service/impl/PurchaseRegistrationServiceImpl.java 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
main-business/src/main/resources/mapper/PendingInventoryMapper.xml 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-server/src/main/java/com/ruoyi/basic/controller/CoalFieldController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,63 @@
package com.ruoyi.basic.controller;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.basic.dto.CoalFieldDto;
import com.ruoyi.basic.entity.CoalField;
import com.ruoyi.basic.service.CoalFieldService;
import com.ruoyi.common.core.domain.R;
import lombok.AllArgsConstructor;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
 * <p>
 * ç…¤è´¨ç»´æŠ¤å­—段 å‰ç«¯æŽ§åˆ¶å™¨
 * </p>
 *
 * @author ruoyi
 * @since 2025-06-09
 */
@RestController
@AllArgsConstructor
@RequestMapping("/coalField")
public class CoalFieldController {
    private CoalFieldService coalFieldService;
    /**
     * ç…¤è´¨ç»´æŠ¤å­—段查询
     */
    @GetMapping("/list")
    public R<IPage<CoalField>> list(Page page, CoalFieldDto coalFieldDto) {
        IPage<CoalField> list = coalFieldService.selectCoalFieldList(page, coalFieldDto);
        return R.ok(list);
    }
    /**
     * All煤质维护字段查询 è¿”回
     */
    @GetMapping("/coalFieldList")
    public R<List<CoalField>> coalFieldList(CoalFieldDto coalFieldDto) {
        return R.ok(coalFieldService.selectAllList(coalFieldDto));
    }
    /**
     * ç…¤è´¨ç»´æŠ¤å­—段新增修改
     */
    @PostMapping("/addOrEditCoalField")
    public R addOrEditCoalField(@RequestBody CoalFieldDto coalFieldDto) {
        return R.ok(coalFieldService.addOrEditCoalField(coalFieldDto));
    }
    /**
     * ç…¤è´¨ç»´æŠ¤å­—段删除
     */
    @DeleteMapping("/delCoalInfo")
    public R remove(@RequestBody Long[] ids) {
        return R.ok(coalFieldService.delCoalFieldByIds(ids));
    }
}
basic-server/src/main/java/com/ruoyi/basic/controller/CoalPlanController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,63 @@
package com.ruoyi.basic.controller;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.basic.dto.CoalPlanDto;
import com.ruoyi.basic.entity.CoalPlan;
import com.ruoyi.basic.service.CoalPlanService;
import com.ruoyi.common.core.domain.R;
import lombok.AllArgsConstructor;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
 * <p>
 * ç…¤è´¨æ–¹æ¡ˆ å‰ç«¯æŽ§åˆ¶å™¨
 * </p>
 *
 * @author ruoyi
 * @since 2025-06-09
 */
@RestController
@AllArgsConstructor
@RequestMapping("/coalPlan")
public class CoalPlanController {
    private CoalPlanService coalPlanService;
    /**
     * ç…¤è´¨æ–¹æ¡ˆæŸ¥è¯¢
     */
    @GetMapping("/list")
    public R<IPage<CoalPlan>> list(Page page, CoalPlanDto coalPlanDto) {
        IPage<CoalPlan> list = coalPlanService.selectCoalFieldList(page, coalPlanDto);
        return R.ok(list);
    }
    /**
     * All煤质方案查询 è¿”回
     */
    @GetMapping("/coalPlanList")
    public R<List<CoalPlan>> coalPlanList() {
        return R.ok(coalPlanService.selectAllList());
    }
    /**
     * ç…¤è´¨æ–¹æ¡ˆæ–°å¢žä¿®æ”¹
     */
    @PostMapping("/addOrEditCoalPlan")
    public R addOrEditCoalPlan(@RequestBody CoalPlanDto coalPlanDto) {
        return R.ok(coalPlanService.addOrEditCoalPlan(coalPlanDto));
    }
    /**
     * ç…¤è´¨æ–¹æ¡ˆå­—段删除
     */
    @DeleteMapping("/delCoalPlan")
    public R remove(@RequestBody Long[] ids) {
        return R.ok(coalPlanService.delCoalPlanByIds(ids));
    }
}
basic-server/src/main/java/com/ruoyi/basic/controller/CoalValueController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,54 @@
package com.ruoyi.basic.controller;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.basic.dto.CoalValueDto;
import com.ruoyi.basic.entity.CoalValue;
import com.ruoyi.basic.service.CoalValueService;
import com.ruoyi.common.core.domain.R;
import lombok.AllArgsConstructor;
import org.springframework.web.bind.annotation.*;
/**
 * <p>
 * ç…¤è´¨ä¿¡æ¯è¡¨ï¼Œè®°å½•煤炭质量检测相关数据 å‰ç«¯æŽ§åˆ¶å™¨
 * </p>
 *
 * @author ruoyi
 * @since 2025-06-09
 */
@RestController
@AllArgsConstructor
@RequestMapping("/basic/coalValue")
public class CoalValueController {
    private CoalValueService coalValueService;
    /**
     * ç…¤è´¨æ–¹æ¡ˆæŸ¥è¯¢
     */
    @GetMapping("/list")
    public R<IPage<CoalValue>> list(Page page, CoalValueDto coalValueDto) {
        IPage<CoalValue> list = coalValueService.selectCoalFieldList(page, coalValueDto);
        return R.ok(list);
    }
    /**
     * ç…¤è´¨æ–¹æ¡ˆå€¼æ–°å¢žä¿®æ”¹
     */
    @PostMapping("/addOrEditCoalValue")
    public R addOrEditCoalValue(@RequestBody CoalValueDto coalValueDto) {
        return R.ok(coalValueService.addOrEditCoalValue(coalValueDto));
    }
    /**
     * ç…¤è´¨æ–¹æ¡ˆå­—段删除
     */
    @DeleteMapping("/delCoalValue")
    public R remove(@RequestBody Long[] ids) {
        return R.ok(coalValueService.delCoalValueByIds(ids));
    }
}
basic-server/src/main/java/com/ruoyi/basic/dto/CoalFieldDto.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
package com.ruoyi.basic.dto;
import com.ruoyi.basic.entity.CoalField;
import lombok.Data;
@Data
public class CoalFieldDto extends CoalField {
}
basic-server/src/main/java/com/ruoyi/basic/dto/CoalPlanDto.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
package com.ruoyi.basic.dto;
import com.ruoyi.basic.entity.CoalPlan;
import lombok.Data;
@Data
public class CoalPlanDto extends CoalPlan {
}
basic-server/src/main/java/com/ruoyi/basic/dto/CoalValueDto.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,13 @@
package com.ruoyi.basic.dto;
import com.ruoyi.basic.entity.CoalValue;
import lombok.Data;
import java.util.List;
import java.util.Map;
@Data
public class CoalValueDto extends CoalValue {
    private List<Map<String, String>> fieldValue;
}
basic-server/src/main/java/com/ruoyi/basic/entity/CoalField.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,45 @@
package com.ruoyi.basic.entity;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import com.ruoyi.common.core.domain.MyBaseEntity;
/**
 * ç…¤è´¨ä¿¡æ¯è¡¨ï¼Œè®°å½•煤炭质量检测相关数据 å®žä½“ç±»
 *
 * @author ruoyi
 * @date 2025-06-09
 */
@Data
@TableName("coal_field")
public class CoalField extends MyBaseEntity {
    private static final long serialVersionUID = 1L;
    /**
     * ä¸»é”®ID
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;
    /**
     * å­—段
     */
    @TableField(value = "fields")
    private String fields;
    /**
     * å­—段名
     */
    @TableField(value = "field_name")
    private String fieldName;
    /**
     * å­—段名数字
     */
    @TableField(value = "field_name")
    private String fieldNumber;
    /**
     * å­—段描述
     */
    @TableField(value = "field_description")
    private String fieldDescription;
}
basic-server/src/main/java/com/ruoyi/basic/entity/CoalPlan.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,40 @@
package com.ruoyi.basic.entity;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import com.ruoyi.common.core.domain.MyBaseEntity;
/**
 * ç…¤è´¨ä¿¡æ¯è¡¨ï¼Œè®°å½•煤炭质量检测相关数据 å®žä½“ç±»
 *
 * @author ruoyi
 * @date 2025-06-09
 */
@Data
@TableName("coal_plan")
public class CoalPlan extends MyBaseEntity {
    private static final long serialVersionUID = 1L;
    /**
     * ä¸»é”®ID
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;
    /**
     * ç…¤è´¨æ–¹æ¡ˆ
     */
    @TableField(value = "plan")
    private String plan;
    /**
     * ç…¤è´¨æ–¹æ¡ˆå­—段
     */
    @TableField(value = "coal_fields")
    private String coalFields;
    /**
     * ç…¤è´¨æ–¹æ¡ˆå­—段
     */
    @TableField(value = "scheme_desc")
    private String schemeDesc;
}
basic-server/src/main/java/com/ruoyi/basic/entity/CoalValue.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,46 @@
package com.ruoyi.basic.entity;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import com.ruoyi.common.core.domain.MyBaseEntity;
/**
 * ç…¤è´¨æ–¹æ¡ˆå­—段值 å®žä½“ç±»
 *
 * @author ruoyi
 * @date 2025-06-09
 */
@Data
@TableName("coal_value")
public class CoalValue extends MyBaseEntity {
    private static final long serialVersionUID = 1L;
    /**
     * ä¸»é”®ID
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;
    /**
     * å…³è”采购入库主键ID
     */
    @TableField(value = "plan_id")
    private Long planId;
    /**
     * å­—段值
     */
    @TableField(value = "coal_value")
    private String coalValue;
    /**
     * å­—段
     */
    @TableField(value = "fields")
    private String fields;
    /**
     * å­—段名
     */
    @TableField(value = "field_name")
    private String fieldName;
}
basic-server/src/main/java/com/ruoyi/basic/mapper/CoalFieldMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,18 @@
package com.ruoyi.basic.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ruoyi.basic.entity.CoalField;
import org.apache.ibatis.annotations.Mapper;
/**
 * <p>
 * ç…¤è´¨ä¿¡æ¯è¡¨ï¼Œè®°å½•煤炭质量检测相关数据 Mapper æŽ¥å£
 * </p>
 *
 * @author ruoyi
 * @since 2025-06-09
 */
@Mapper
public interface CoalFieldMapper extends BaseMapper<CoalField> {
}
basic-server/src/main/java/com/ruoyi/basic/mapper/CoalPlanMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,18 @@
package com.ruoyi.basic.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ruoyi.basic.entity.CoalPlan;
import org.apache.ibatis.annotations.Mapper;
/**
 * <p>
 * ç…¤è´¨ä¿¡æ¯è¡¨ï¼Œè®°å½•煤炭质量检测相关数据 Mapper æŽ¥å£
 * </p>
 *
 * @author ruoyi
 * @since 2025-06-09
 */
@Mapper
public interface CoalPlanMapper extends BaseMapper<CoalPlan> {
}
basic-server/src/main/java/com/ruoyi/basic/mapper/CoalValueMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,18 @@
package com.ruoyi.basic.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ruoyi.basic.entity.CoalValue;
import org.apache.ibatis.annotations.Mapper;
/**
 * <p>
 * ç…¤è´¨ä¿¡æ¯è¡¨ï¼Œè®°å½•煤炭质量检测相关数据 Mapper æŽ¥å£
 * </p>
 *
 * @author ruoyi
 * @since 2025-06-09
 */
@Mapper
public interface CoalValueMapper extends BaseMapper<CoalValue> {
}
basic-server/src/main/java/com/ruoyi/basic/service/CoalFieldService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,28 @@
package com.ruoyi.basic.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.basic.dto.CoalFieldDto;
import com.ruoyi.basic.entity.CoalField;
import com.baomidou.mybatisplus.extension.service.IService;
import java.util.List;
/**
 * <p>
 * ç…¤è´¨ä¿¡æ¯è¡¨ï¼Œè®°å½•煤炭质量检测相关数据 æœåŠ¡ç±»
 * </p>
 *
 * @author ruoyi
 * @since 2025-06-09
 */
public interface CoalFieldService extends IService<CoalField> {
    IPage<CoalField> selectCoalFieldList(Page page, CoalFieldDto coalFieldDto);
    int addOrEditCoalField(CoalFieldDto coalFieldDto);
    int delCoalFieldByIds(Long[] ids);
    List<CoalField> selectAllList(CoalFieldDto coalFieldDto);
}
basic-server/src/main/java/com/ruoyi/basic/service/CoalPlanService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,28 @@
package com.ruoyi.basic.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.basic.dto.CoalPlanDto;
import com.ruoyi.basic.entity.CoalPlan;
import com.baomidou.mybatisplus.extension.service.IService;
import java.util.List;
/**
 * <p>
 * ç…¤è´¨ä¿¡æ¯è¡¨ï¼Œè®°å½•煤炭质量检测相关数据 æœåŠ¡ç±»
 * </p>
 *
 * @author ruoyi
 * @since 2025-06-09
 */
public interface CoalPlanService extends IService<CoalPlan> {
    IPage<CoalPlan> selectCoalFieldList(Page page, CoalPlanDto coalPlanDto);
    int addOrEditCoalPlan(CoalPlanDto coalPlanDto);
    int delCoalPlanByIds(Long[] ids);
    List<CoalPlan> selectAllList();
}
basic-server/src/main/java/com/ruoyi/basic/service/CoalValueService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,24 @@
package com.ruoyi.basic.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.basic.dto.CoalValueDto;
import com.ruoyi.basic.entity.CoalValue;
/**
 * <p>
 * ç…¤è´¨ä¿¡æ¯è¡¨ï¼Œè®°å½•煤炭质量检测相关数据 æœåŠ¡ç±»
 * </p>
 *
 * @author ruoyi
 * @since 2025-06-09
 */
public interface CoalValueService extends IService<CoalValue> {
    IPage<CoalValue> selectCoalFieldList(Page page, CoalValueDto coalValueDto);
    int addOrEditCoalValue(CoalValueDto coalValueDto);
    int delCoalValueByIds(Long[] ids);
}
basic-server/src/main/java/com/ruoyi/basic/service/impl/CoalFieldServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,107 @@
package com.ruoyi.basic.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.basic.dto.CoalFieldDto;
import com.ruoyi.basic.entity.CoalField;
import com.ruoyi.basic.mapper.CoalFieldMapper;
import com.ruoyi.basic.service.CoalFieldService;
import com.ruoyi.common.utils.bean.BeanUtils;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.util.StringUtils;
import java.util.List;
import java.util.Objects;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
 * <p>
 * ç…¤è´¨ä¿¡æ¯è¡¨ï¼Œè®°å½•煤炭质量检测相关数据 æœåŠ¡å®žçŽ°ç±»
 * </p>
 *
 * @author ruoyi
 * @since 2025-06-09
 */
@Service
@RequiredArgsConstructor
public class CoalFieldServiceImpl extends ServiceImpl<CoalFieldMapper, CoalField> implements CoalFieldService {
    private final CoalFieldMapper coalFieldMapper;
    // æ­£åˆ™è¡¨è¾¾å¼ï¼šåŒ¹é… "fieldXX" æ ¼å¼ï¼ŒXX ä¸ºä¸¤ä½æ•°å­—
    private static final Pattern FIELD_PATTERN = Pattern.compile("^field(\\d{2})$");
    @Override
    public IPage<CoalField> selectCoalFieldList(Page page, CoalFieldDto coalFieldDto) {
        LambdaQueryWrapper<CoalField> queryWrapper = new LambdaQueryWrapper<>();
        if (StringUtils.hasText(coalFieldDto.getFieldName())) {
            queryWrapper.like(CoalField::getFieldName, coalFieldDto.getFieldName());
        }
        queryWrapper.orderByDesc(CoalField::getCreateTime);
        return coalFieldMapper.selectPage(page, queryWrapper);
    }
    @Override
    public int addOrEditCoalField(CoalFieldDto coalFieldDto) {
        CoalField coalField = new CoalField();
        BeanUtils.copyProperties(coalFieldDto, coalField);
        if (Objects.isNull(coalFieldDto.getId())) {
            // æ–°å¢žæ“ä½œï¼šç”Ÿæˆå”¯ä¸€çš„ fieldXX ç¼–号
            String nextFieldNumber = generateNextFieldNumber();
            coalField.setFields(nextFieldNumber);
            return coalFieldMapper.insert(coalField);
        } else {
            // æ›´æ–°æ“ä½œï¼šä¸ä¿®æ”¹ fieldNumber
            return coalFieldMapper.updateById(coalField);
        }
    }
    @Override
    public int delCoalFieldByIds(Long[] ids) {
        // æ£€æŸ¥å‚æ•°
        if (ids == null || ids.length == 0) {
            return 0;
        }
        // æž„造更新条件
        UpdateWrapper<CoalField> updateWrapper = new UpdateWrapper<>();
        updateWrapper.in("id", ids)
                .set("deleted", 1);  // è®¾ç½® deleted ä¸º 1 è¡¨ç¤ºå·²åˆ é™¤
        // æ‰§è¡Œæ‰¹é‡é€»è¾‘删除
        return coalFieldMapper.update(null, updateWrapper);
    }
    @Override
    public List<CoalField> selectAllList(CoalFieldDto coalFieldDto) {
        return coalFieldMapper.selectList(null);
    }
    private String generateNextFieldNumber() {
        // èŽ·å–æ‰€æœ‰å·²å­˜åœ¨çš„ CoalField è®°å½•,包括已删除的
        LambdaQueryWrapper<CoalField> queryWrapper = new LambdaQueryWrapper<>();
        queryWrapper.in(CoalField::getDeleted, 0, 1);
        List<CoalField> existingFields = coalFieldMapper.selectList(queryWrapper);
        // æå–并解析所有已存在的 fieldXX ç¼–号
        int maxNumber = 0;
        for (CoalField field : existingFields) {
            String fields = field.getFields();
            if (fields != null) {
                Matcher matcher = FIELD_PATTERN.matcher(fields);
                if (matcher.matches()) {
                    String numberPart = matcher.group(1);
                    int currentNumber = Integer.parseInt(numberPart);
                    maxNumber = Math.max(maxNumber, currentNumber);
                }
            }
        }
        // ç”Ÿæˆä¸‹ä¸€ä¸ªç¼–号(格式为两位数字,不足补零)
        int nextNumber = maxNumber + 1;
        return String.format("field%02d", nextNumber);
    }
}
basic-server/src/main/java/com/ruoyi/basic/service/impl/CoalInfoServiceImpl.java
@@ -48,7 +48,7 @@
        BeanUtils.copyProperties(coalInfoDto, coalInfo);
        coalInfo.setMaintainerId(SecurityUtils.getUserId());
        coalInfo.setMaintenanceDate(DateUtils.getNowDate());
        if (Objects.isNull(coalInfo.getId())) {
        if (Objects.isNull(coalInfoDto.getId())) {
            return coalInfoMapper.insert(coalInfo);
        } else {
            return coalInfoMapper.updateById(coalInfo);
basic-server/src/main/java/com/ruoyi/basic/service/impl/CoalPlanServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,68 @@
package com.ruoyi.basic.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.basic.dto.CoalPlanDto;
import com.ruoyi.basic.entity.CoalPlan;
import com.ruoyi.basic.mapper.CoalPlanMapper;
import com.ruoyi.basic.service.CoalPlanService;
import com.ruoyi.common.utils.bean.BeanUtils;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Objects;
/**
 * <p>
 * ç…¤è´¨ä¿¡æ¯è¡¨ï¼Œè®°å½•煤炭质量检测相关数据 æœåŠ¡å®žçŽ°ç±»
 * </p>
 *
 * @author ruoyi
 * @since 2025-06-09
 */
@Service
@RequiredArgsConstructor
public class CoalPlanServiceImpl extends ServiceImpl<CoalPlanMapper, CoalPlan> implements CoalPlanService {
    private final CoalPlanMapper coalPlanMapper;
    @Override
    public IPage<CoalPlan> selectCoalFieldList(Page page, CoalPlanDto coalPlanDto) {
        LambdaQueryWrapper<CoalPlan> queryWrapper = new LambdaQueryWrapper<>();
        return coalPlanMapper.selectPage(page,queryWrapper);
    }
    @Override
    public int addOrEditCoalPlan(CoalPlanDto coalPlanDto) {
        CoalPlan coalPlan = new CoalPlan();
        BeanUtils.copyProperties(coalPlanDto, coalPlan);
        if (Objects.isNull(coalPlanDto.getId())) {
            return coalPlanMapper.insert(coalPlan);
        } else {
            return coalPlanMapper.updateById(coalPlan);
        }
    }
    @Override
    public int delCoalPlanByIds(Long[] ids) {
        // æ£€æŸ¥å‚æ•°
        if (ids == null || ids.length == 0) {
            return 0;
        }
        // æž„造更新条件
        UpdateWrapper<CoalPlan> updateWrapper = new UpdateWrapper<>();
        updateWrapper.in("id", ids)
                .set("deleted", 1);  // è®¾ç½® deleted ä¸º 1 è¡¨ç¤ºå·²åˆ é™¤
        // æ‰§è¡Œæ‰¹é‡é€»è¾‘删除
        return coalPlanMapper.update(null, updateWrapper);
    }
    @Override
    public List<CoalPlan> selectAllList() {
        return coalPlanMapper.selectList(null);
    }
}
basic-server/src/main/java/com/ruoyi/basic/service/impl/CoalValueServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,74 @@
package com.ruoyi.basic.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
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.basic.dto.CoalValueDto;
import com.ruoyi.basic.entity.CoalField;
import com.ruoyi.basic.entity.CoalValue;
import com.ruoyi.basic.mapper.CoalFieldMapper;
import com.ruoyi.basic.mapper.CoalValueMapper;
import com.ruoyi.basic.service.CoalValueService;
import com.ruoyi.common.utils.bean.BeanUtils;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Map;
import java.util.Objects;
/**
 * <p>
 * ç…¤è´¨ä¿¡æ¯è¡¨ï¼Œè®°å½•煤炭质量检测相关数据 æœåŠ¡å®žçŽ°ç±»
 * </p>
 *
 * @author ruoyi
 * @since 2025-06-09
 */
@Service
@RequiredArgsConstructor
public class CoalValueServiceImpl extends ServiceImpl<CoalValueMapper, CoalValue> implements CoalValueService {
    private final CoalValueMapper coalValueMapper;
    private final CoalFieldMapper coalFieldMapper;
    @Override
    public IPage<CoalValue> selectCoalFieldList(Page page, CoalValueDto coalValueDto) {
        LambdaQueryWrapper<CoalValue> queryWrapper = new LambdaQueryWrapper<>();
        return coalValueMapper.selectPage(page, queryWrapper);
    }
    @Override
    public int addOrEditCoalValue(CoalValueDto coalValueDto) {
        CoalValue coalValue = new CoalValue();
        BeanUtils.copyProperties(coalValueDto, coalValue);
        coalValue.setPlanId(coalValueDto.getPlanId());
        int i = 0;
        if (Objects.isNull(coalValueDto.getId())) {
            List<Map<String, String>> fieldValue = coalValueDto.getFieldValue();
            for (Map<String, String> field : fieldValue) {
                for (Map.Entry<String, String> entry : field.entrySet()) {
                    String key = entry.getKey();   // èŽ·å– key,这里会得到 "field01"
                    String value = entry.getValue(); // èŽ·å– value,这里会得到 "99"
                    LambdaQueryWrapper<CoalField> queryWrapper = new LambdaQueryWrapper<>();
                    CoalField coalField = coalFieldMapper.selectOne(queryWrapper.eq(CoalField::getFields, key));
                    coalValue.setCoalValue(value);
                    coalValue.setFields(coalField.getFields());
                    coalValue.setFieldName(coalField.getFieldName());
                    coalValue.setId(null);
                    i = coalValueMapper.insert(coalValue);
                }
            }
            return i;
        } else {
            return coalValueMapper.updateById(coalValue);
        }
    }
    @Override
    public int delCoalValueByIds(Long[] ids) {
        return 0;
    }
}
basic-server/src/main/resources/db/migration/postgresql/V20250606163300__create_table_coal_field.sql
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,28 @@
-- åˆ›å»ºç…¤è´¨ä¿¡æ¯è¡¨
CREATE TABLE coal_field
(
    id                BIGSERIAL PRIMARY KEY,                              -- ä¸»é”®ID,自动递增
    fields            VARCHAR(255) NOT NULL,                              --煤质字段
    field_name        VARCHAR(255) NOT NULL,                              -- ç…¤è´¨æè¿°
    field_description VARCHAR(255) NOT NULL,                              -- ç…¤è´¨æè¿°
    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 coal_field IS '煤质信息表,记录煤炭质量检测相关数据';
-- å­—段注释
COMMENT ON COLUMN coal_field.id IS '主键ID';
COMMENT ON COLUMN coal_field.fields IS '煤种类型id';
COMMENT ON COLUMN coal_field.field_name IS '煤种类型';
COMMENT ON COLUMN coal_field.deleted IS '软删除标志,0=未删除,1=已删除';
COMMENT ON COLUMN coal_field.create_by IS '创建该记录的用户';
COMMENT ON COLUMN coal_field.create_time IS '记录创建时间';
COMMENT ON COLUMN coal_field.update_by IS '最后修改该记录的用户';
COMMENT ON COLUMN coal_field.update_time IS '记录最后更新时间';
basic-server/src/main/resources/db/migration/postgresql/V20250606170900__create_table_coal_plan.sql
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,27 @@
-- åˆ›å»ºç…¤è´¨ä¿¡æ¯è¡¨
CREATE TABLE coal_plan
(
    id          BIGSERIAL PRIMARY KEY,                              -- ä¸»é”®ID,自动递增
    plan        VARCHAR(255) NOT NULL,                              --煤质方案
    coal_fields BIGINT       NOT NULL,                              -- ç…¤è´¨æ–¹æ¡ˆå­—段
    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 coal_plan IS '煤质信息表,记录煤炭质量检测相关数据';
-- å­—段注释
COMMENT ON COLUMN coal_plan.id IS '主键ID';
COMMENT ON COLUMN coal_plan.plan IS '煤质方案';
COMMENT ON COLUMN coal_plan.coal_fields IS '煤质方案字段';
COMMENT ON COLUMN coal_plan.deleted IS '软删除标志,0=未删除,1=已删除';
COMMENT ON COLUMN coal_plan.create_by IS '创建该记录的用户';
COMMENT ON COLUMN coal_plan.create_time IS '记录创建时间';
COMMENT ON COLUMN coal_plan.update_by IS '最后修改该记录的用户';
COMMENT ON COLUMN coal_plan.update_time IS '记录最后更新时间';
basic-server/src/main/resources/db/migration/postgresql/V20250606171000__create_table_coal_value.sql
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,31 @@
-- åˆ›å»ºç…¤è´¨ä¿¡æ¯è¡¨
CREATE TABLE coal_value
(
    id          BIGSERIAL PRIMARY KEY,                              -- ä¸»é”®ID,自动递增
    plan_id     VARCHAR(255) NOT NULL,                              --关联煤质方案主键ID
    coal_value  VARCHAR(255) NOT NULL,                              -- å­—段值
    fields      VARCHAR(255) NOT NULL,                              -- å­—段
    field_name  VARCHAR(255) NOT NULL,                              -- å­—段名
    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 coal_value IS '煤质信息表,记录煤炭质量检测相关数据';
-- å­—段注释
COMMENT ON COLUMN coal_value.id IS '主键ID';
COMMENT ON COLUMN coal_value.plan_id IS '关联煤质方案主键ID';
COMMENT ON COLUMN coal_value.coal_value IS '字段值';
COMMENT ON COLUMN coal_value.fields IS '字段';
COMMENT ON COLUMN coal_value.field_name IS '字段名';
COMMENT ON COLUMN coal_value.deleted IS '软删除标志,0=未删除,1=已删除';
COMMENT ON COLUMN coal_value.create_by IS '创建该记录的用户';
COMMENT ON COLUMN coal_value.create_time IS '记录创建时间';
COMMENT ON COLUMN coal_value.update_by IS '最后修改该记录的用户';
COMMENT ON COLUMN coal_value.update_time IS '记录最后更新时间';
basic-server/src/main/resources/mapper/CoalFieldMapper.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,28 @@
<?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.basic.mapper.CoalFieldMapper">
    <!-- é€šç”¨æŸ¥è¯¢æ˜ å°„结果 -->
    <resultMap id="BaseResultMap" type="com.ruoyi.basic.entity.CoalField">
        <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="fields" property="fields"/>
        <result column="field_name" property="fieldName"/>
        <result column="field_description" property="fieldDescription"/>
    </resultMap>
    <!-- é€šç”¨æŸ¥è¯¢ç»“果列 -->
    <sql id="Base_Column_List">
        deleted,
                create_by,
                create_time,
                update_by,
                update_time,
            id, fields, field_name, field_description
    </sql>
</mapper>
basic-server/src/main/resources/mapper/CoalPlanMapper.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,28 @@
<?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.basic.mapper.CoalPlanMapper">
        <!-- é€šç”¨æŸ¥è¯¢æ˜ å°„结果 -->
        <resultMap id="BaseResultMap" type="com.ruoyi.basic.entity.CoalPlan">
                    <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="plan" property="plan" />
                    <result column="coal_field_id" property="coalFieldId" />
                    <result column="field_names" property="fieldNames" />
        </resultMap>
        <!-- é€šç”¨æŸ¥è¯¢ç»“果列 -->
        <sql id="Base_Column_List">
                deleted,
                create_by,
                create_time,
                update_by,
                update_time,
            id, plan, coal_field_id, field_names
        </sql>
</mapper>
basic-server/src/main/resources/mapper/CoalValueMapper.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,28 @@
<?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.basic.mapper.CoalValueMapper">
        <!-- é€šç”¨æŸ¥è¯¢æ˜ å°„结果 -->
        <resultMap id="BaseResultMap" type="com.ruoyi.basic.entity.CoalValue">
                    <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="fields" property="fields" />
                    <result column="field_name" property="fieldName" />
                    <result column="field_value" property="fieldValue" />
        </resultMap>
        <!-- é€šç”¨æŸ¥è¯¢ç»“果列 -->
        <sql id="Base_Column_List">
                deleted,
                create_by,
                create_time,
                update_by,
                update_time,
            id, fields, field_name, field_value
        </sql>
</mapper>
main-business/pom.xml
@@ -40,6 +40,10 @@
            <groupId>org.flywaydb</groupId>
            <artifactId>flyway-database-postgresql</artifactId>
        </dependency>
        <dependency>
            <groupId>com.ruoyi</groupId>
            <artifactId>basic-server</artifactId>
        </dependency>
    </dependencies>
    <properties>
main-business/src/main/java/com/ruoyi/business/controller/OfficialInventoryController.java
@@ -1,21 +1,39 @@
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.OfficialInventoryDto;
import com.ruoyi.business.entity.OfficialInventory;
import com.ruoyi.business.service.OfficialInventoryService;
import com.ruoyi.common.core.domain.R;
import lombok.AllArgsConstructor;
    import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* <p>
    * æ­£å¼åº“存表 å‰ç«¯æŽ§åˆ¶å™¨
    * </p>
*
* @author ruoyi
* @since 2025-06-04
*/
 * <p>
 * æ­£å¼åº“存表 å‰ç«¯æŽ§åˆ¶å™¨
 * </p>
 *
 * @author ruoyi
 * @since 2025-06-04
 */
@RestController
@AllArgsConstructor
@RequestMapping("/business/officialInventory")
        public class OfficialInventoryController {
@RequestMapping("/officialInventory")
public class OfficialInventoryController {
    private OfficialInventoryService officialInventoryService;
    /**
     * æ­£å¼åº“库表查询
     */
    @GetMapping("/list")
    public R<IPage<OfficialInventory>> list(Page page, OfficialInventoryDto officialInventoryDto) {
        IPage<OfficialInventory> list = officialInventoryService.selectOfficialInventoryList(page,officialInventoryDto);
        return R.ok(list);
    }
}
main-business/src/main/java/com/ruoyi/business/controller/PendingInventoryController.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.PendingInventoryDto;
import com.ruoyi.business.entity.PendingInventory;
import com.ruoyi.business.service.PendingInventoryService;
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/pendingInventory")
@RequestMapping("/pendingInventory")
public class PendingInventoryController {
        private PendingInventoryService pendingInventoryService;
    /**
     * å¾…入库表查询
     */
    @GetMapping("/list")
    public R<IPage<PendingInventory>> list(Page page, PendingInventoryDto pendingInventoryDto) {
        IPage<PendingInventory> list = pendingInventoryService.selectPendingInventoryList(page,pendingInventoryDto);
        return R.ok(list);
    }
    /**
     * æ–°å¢žä¿®æ”¹
     */
    @PostMapping("/addOrEditPending")
    public R addOrEditPending(@RequestBody PendingInventoryDto pendingInventoryDto) {
        return R.ok(pendingInventoryService.addOrEditPending(pendingInventoryDto));
    }
    /**
     * åˆ é™¤
     */
    @DeleteMapping("/delPending")
    public R remove(@RequestBody Long[] ids) {
        return R.ok(pendingInventoryService.delByIds(ids));
    }
}
main-business/src/main/java/com/ruoyi/business/dto/OfficialInventoryDto.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
package com.ruoyi.business.dto;
import com.ruoyi.business.entity.OfficialInventory;
import lombok.Data;
@Data
public class OfficialInventoryDto extends OfficialInventory {
}
main-business/src/main/java/com/ruoyi/business/dto/PendingInventoryDto.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
package com.ruoyi.business.dto;
import com.ruoyi.business.entity.PendingInventory;
import lombok.Data;
@Data
public class PendingInventoryDto extends PendingInventory {
}
main-business/src/main/java/com/ruoyi/business/entity/PendingInventory.java
@@ -35,8 +35,8 @@
    /**
     * ç…¤ç§
     */
    @TableField(value = "coal_type")
    private String coalType;
    @TableField(value = "coal")
    private String coal;
    /**
     * å•位
     */
@@ -65,8 +65,8 @@
    /**
     * ç™»è®°äºº
     */
    @TableField(value = "registrant")
    private String registrant;
    @TableField(value = "registrant_id")
    private String registrantId;
    /**
     * ç™»è®°æ—¶é—´
     */
main-business/src/main/java/com/ruoyi/business/service/OfficialInventoryService.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.OfficialInventoryDto;
import com.ruoyi.business.entity.OfficialInventory;
import com.baomidou.mybatisplus.extension.service.IService;
@@ -13,4 +16,5 @@
 */
public interface OfficialInventoryService extends IService<OfficialInventory> {
    IPage<OfficialInventory> selectOfficialInventoryList(Page page, OfficialInventoryDto officialInventoryDto);
}
main-business/src/main/java/com/ruoyi/business/service/PendingInventoryService.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.PendingInventoryDto;
import com.ruoyi.business.entity.PendingInventory;
import com.baomidou.mybatisplus.extension.service.IService;
@@ -13,4 +16,9 @@
 */
public interface PendingInventoryService extends IService<PendingInventory> {
    IPage<PendingInventory> selectPendingInventoryList(Page page, PendingInventoryDto pendingInventoryDto);
    int addOrEditPending(PendingInventoryDto pendingInventoryDto);
    int delByIds(Long[] ids);
}
main-business/src/main/java/com/ruoyi/business/service/impl/OfficialInventoryServiceImpl.java
@@ -1,5 +1,9 @@
package com.ruoyi.business.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.business.dto.OfficialInventoryDto;
import com.ruoyi.business.entity.OfficialInventory;
import com.ruoyi.business.mapper.OfficialInventoryMapper;
import com.ruoyi.business.service.OfficialInventoryService;
@@ -19,4 +23,11 @@
@RequiredArgsConstructor
public class OfficialInventoryServiceImpl extends ServiceImpl<OfficialInventoryMapper, OfficialInventory> implements OfficialInventoryService {
    private final OfficialInventoryMapper officialInventoryMapper;
    @Override
    public IPage<OfficialInventory> selectOfficialInventoryList(Page page, OfficialInventoryDto officialInventoryDto) {
        LambdaQueryWrapper<OfficialInventory> queryWrapper = new LambdaQueryWrapper<>();
        return officialInventoryMapper.selectPage(page, queryWrapper);
    }
}
main-business/src/main/java/com/ruoyi/business/service/impl/PendingInventoryServiceImpl.java
@@ -1,11 +1,21 @@
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.basic.mapper.CoalFieldMapper;
import com.ruoyi.basic.mapper.CoalValueMapper;
import com.ruoyi.business.dto.PendingInventoryDto;
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 com.ruoyi.common.utils.bean.BeanUtils;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import java.util.Objects;
/**
 * <p>
@@ -19,4 +29,41 @@
@RequiredArgsConstructor
public class PendingInventoryServiceImpl extends ServiceImpl<PendingInventoryMapper, PendingInventory> implements PendingInventoryService {
    private final PendingInventoryMapper pendingInventoryMapper;
    private final CoalValueMapper coalValueMapper;
    private final CoalFieldMapper coalFieldMapper;
    @Override
    public IPage<PendingInventory> selectPendingInventoryList(Page page, PendingInventoryDto pendingInventoryDto) {
        LambdaQueryWrapper<PendingInventory> queryWrapper = new LambdaQueryWrapper<>();
        queryWrapper.orderByDesc(PendingInventory::getCreateTime);
        return pendingInventoryMapper.selectPage(page, queryWrapper);
    }
    @Override
    public int addOrEditPending(PendingInventoryDto pendingInventoryDto) {
        PendingInventory pendingInventory = new PendingInventory();
        BeanUtils.copyProperties(pendingInventoryDto, pendingInventory);
        if (Objects.isNull(pendingInventoryDto.getId())) {
            return pendingInventoryMapper.insert(pendingInventory);
        } else {
            return pendingInventoryMapper.updateById(pendingInventory);
        }
    }
    @Override
    public int delByIds(Long[] ids) {
        // æ£€æŸ¥å‚æ•°
        if (ids == null || ids.length == 0) {
            return 0;
        }
        // æž„造更新条件
        UpdateWrapper<PendingInventory> updateWrapper = new UpdateWrapper<>();
        updateWrapper.in("id", ids)
                .set("deleted", 1);  // è®¾ç½® deleted ä¸º 1 è¡¨ç¤ºå·²åˆ é™¤
        // æ‰§è¡Œæ‰¹é‡é€»è¾‘删除
        return pendingInventoryMapper.update(null, updateWrapper);
    }
}
main-business/src/main/java/com/ruoyi/business/service/impl/PurchaseRegistrationServiceImpl.java
@@ -6,12 +6,16 @@
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.PendingInventory;
import com.ruoyi.business.entity.PurchaseRegistration;
import com.ruoyi.business.mapper.PendingInventoryMapper;
import com.ruoyi.business.mapper.PurchaseRegistrationMapper;
import com.ruoyi.business.service.PurchaseRegistrationService;
import com.ruoyi.common.utils.bean.BeanUtils;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.Assert;
import java.util.Objects;
@@ -30,6 +34,8 @@
    private final PurchaseRegistrationMapper purchaseRegistrationMapper;
    private final PendingInventoryMapper pendingInventoryMapper;
    @Override
    public IPage<PurchaseRegistration> selectPurchaseRegistrationList(Page page, PurchaseRegistrationDto purchaseRegistrationDto) {
        LambdaQueryWrapper<PurchaseRegistration> queryWrapper = new LambdaQueryWrapper<>();
@@ -38,17 +44,47 @@
    }
    @Override
    @Transactional(rollbackFor = Exception.class)
    public int addOrEditPR(PurchaseRegistrationDto purchaseRegistrationDto) {
        // å‚数校验
        Assert.notNull(purchaseRegistrationDto, "采购登记信息不能为空");
        // åˆ›å»ºé‡‡è´­ç™»è®°å®žä½“并复制属性
        PurchaseRegistration purchaseRegistration = new PurchaseRegistration();
        BeanUtils.copyProperties(purchaseRegistrationDto,purchaseRegistration);
        BeanUtils.copyProperties(purchaseRegistrationDto, purchaseRegistration);
        if (Objects.isNull(purchaseRegistrationDto.getId())) {
            return purchaseRegistrationMapper.insert(purchaseRegistration);
            // æ–°å¢žé‡‡è´­ç™»è®°
            int insertCount = purchaseRegistrationMapper.insert(purchaseRegistration);
            if (insertCount > 0) {
                // é‡‡è´­ç™»è®°æˆåŠŸï¼ŒåŒæ­¥åˆ›å»ºå¾…å…¥åº“è®°å½•
                PendingInventory pendingInventory = createPendingInventory(purchaseRegistration);
                return pendingInventoryMapper.insert(pendingInventory);
            }
            return insertCount;
        } else {
            // æ›´æ–°é‡‡è´­ç™»è®°
            return purchaseRegistrationMapper.updateById(purchaseRegistration);
        }
    }
    /**
     * æ ¹æ®é‡‡è´­ç™»è®°ä¿¡æ¯åˆ›å»ºå¾…入库记录
     * @param purchaseRegistration é‡‡è´­ç™»è®°å®žä½“
     * @return å¾…入库实体
     */
    private PendingInventory createPendingInventory(PurchaseRegistration purchaseRegistration) {
        PendingInventory pendingInventory = new PendingInventory();
        // å¤åˆ¶åŸºæœ¬å±žæ€§
        BeanUtils.copyProperties(purchaseRegistration, pendingInventory);
        // è®¾ç½®å¾…入库记录特有的属性(如果有)
        // pendingInventory.setStatus(InventoryStatus.PENDING);
        // pendingInventory.setCreateTime(LocalDateTime.now());
        return pendingInventory;
    }
    @Override
    public int delByIds(Long[] ids) {
        // æ£€æŸ¥å‚æ•°
main-business/src/main/resources/mapper/PendingInventoryMapper.xml
@@ -11,13 +11,13 @@
                <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="coal" property="coal" />
                    <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="registrant_id" property="registrantId" />
                    <result column="registration_time" property="registrationTime" />
        </resultMap>