From c0efb2e8358f4e7ee0774c340afd453c3d0c2471 Mon Sep 17 00:00:00 2001 From: liding <756868258@qq.com> Date: 星期二, 10 六月 2025 17:19:03 +0800 Subject: [PATCH] 1.待入库煤质维护入正式库 2.电子档案tree --- main-business/src/main/java/com/ruoyi/business/controller/PendingInventoryController.java | 15 + main-business/src/main/java/com/ruoyi/business/controller/OfficialInventoryController.java | 5 main-business/src/main/resources/db/migration/postgresql/V20250610161313__create_table_archive.sql | 29 ++ main-business/src/main/java/com/ruoyi/business/dto/TreeDto.java | 8 basic-server/src/main/java/com/ruoyi/basic/vo/CoalFieldVo.java | 12 + main-business/src/main/java/com/ruoyi/business/service/PendingInventoryService.java | 2 main-business/src/main/java/com/ruoyi/business/vo/TreeVo.java | 14 + basic-server/src/main/java/com/ruoyi/basic/entity/CoalField.java | 5 basic-server/src/main/java/com/ruoyi/basic/service/impl/CoalValueServiceImpl.java | 41 ---- main-business/src/main/java/com/ruoyi/business/dto/ArchiveDto.java | 10 + basic-server/src/main/java/com/ruoyi/basic/controller/CoalValueController.java | 17 - main-business/src/main/resources/db/migration/postgresql/V20250604111200__create_table_official_inventory.sql | 2 basic-server/src/main/java/com/ruoyi/basic/service/CoalPlanService.java | 3 main-business/src/main/java/com/ruoyi/business/dto/OfficialInventoryDto.java | 5 main-business/src/main/java/com/ruoyi/business/service/OfficialInventoryService.java | 2 main-business/src/main/resources/db/migration/postgresql/V20250610161314__create_table_file.sql | 37 +++ basic-server/src/main/java/com/ruoyi/basic/controller/CoalPlanController.java | 9 basic-server/src/main/java/com/ruoyi/basic/entity/CoalPlan.java | 6 basic-server/src/main/java/com/ruoyi/basic/service/impl/CoalInfoServiceImpl.java | 4 basic-server/src/main/java/com/ruoyi/basic/service/impl/CoalPlanServiceImpl.java | 31 +++ main-business/src/main/java/com/ruoyi/business/entity/PendingInventory.java | 4 basic-server/src/main/java/com/ruoyi/basic/service/CoalValueService.java | 3 basic-server/src/main/java/com/ruoyi/basic/entity/CoalValue.java | 13 + basic-server/src/main/java/com/ruoyi/basic/dto/CoalInfoDto.java | 2 main-business/src/main/java/com/ruoyi/business/service/impl/PurchaseRegistrationServiceImpl.java | 7 main-business/src/main/resources/db/migration/postgresql/V20250604104500__create_table_pending_inventory.sql | 2 main-business/src/main/resources/db/migration/postgresql/V20250610161312__create_table_tree.sql | 27 ++ main-business/src/main/java/com/ruoyi/business/service/impl/PendingInventoryServiceImpl.java | 79 +++++++ basic-server/src/main/java/com/ruoyi/basic/dto/CoalFieldDto.java | 2 ruoyi-common/src/main/java/com/ruoyi/common/core/domain/MyBaseEntity.java | 1 main-business/src/main/java/com/ruoyi/business/service/impl/OfficialInventoryServiceImpl.java | 77 +++++++ /dev/null | 35 --- basic-server/src/main/java/com/ruoyi/basic/service/impl/CoalFieldServiceImpl.java | 4 main-business/src/main/java/com/ruoyi/business/dto/PendingInventoryDto.java | 22 ++ basic-server/src/main/java/com/ruoyi/basic/dto/CoalPlanDto.java | 6 main-business/src/main/java/com/ruoyi/business/entity/OfficialInventory.java | 11 36 files changed, 419 insertions(+), 133 deletions(-) diff --git a/basic-server/src/main/java/com/ruoyi/basic/controller/CoalPlanController.java b/basic-server/src/main/java/com/ruoyi/basic/controller/CoalPlanController.java index 363eb06..9cee78e 100644 --- a/basic-server/src/main/java/com/ruoyi/basic/controller/CoalPlanController.java +++ b/basic-server/src/main/java/com/ruoyi/basic/controller/CoalPlanController.java @@ -5,6 +5,7 @@ import com.ruoyi.basic.dto.CoalPlanDto; import com.ruoyi.basic.entity.CoalPlan; import com.ruoyi.basic.service.CoalPlanService; +import com.ruoyi.basic.vo.CoalFieldVo; import com.ruoyi.common.core.domain.R; import lombok.AllArgsConstructor; import org.springframework.web.bind.annotation.*; @@ -45,6 +46,14 @@ } /** + * 鏍规嵁id鏌ヨ鐓よ川鏂规鏌ヨ 杩斿洖 + */ + @GetMapping("/coalPlanById") + public R<List<CoalFieldVo>> coalPlanById(CoalPlanDto coalPlanDto) { + return R.ok(coalPlanService.selectCoalPlanById(coalPlanDto.getId())); + } + + /** * 鐓よ川鏂规鏂板淇敼 */ @PostMapping("/addOrEditCoalPlan") diff --git a/basic-server/src/main/java/com/ruoyi/basic/controller/CoalQualityController.java b/basic-server/src/main/java/com/ruoyi/basic/controller/CoalQualityController.java deleted file mode 100644 index 4e15628..0000000 --- a/basic-server/src/main/java/com/ruoyi/basic/controller/CoalQualityController.java +++ /dev/null @@ -1,52 +0,0 @@ -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.CoalQualityDto; -import com.ruoyi.basic.entity.CoalQuality; -import com.ruoyi.basic.service.CoalQualityService; -import com.ruoyi.common.core.domain.R; -import lombok.AllArgsConstructor; -import org.springframework.web.bind.annotation.*; - -/** - * <p> - * 鐓よ川淇℃伅琛紝璁板綍鐓ょ偔璐ㄩ噺妫�娴嬬浉鍏虫暟鎹� 鍓嶇鎺у埗鍣� - * </p> - * - * @author ruoyi - * @since 2025-06-03 - */ - -@RestController -@AllArgsConstructor -@RequestMapping("/coalQuality") -public class CoalQualityController { - - private CoalQualityService coalQualityService; - - /** - * 鏌ヨ - */ - @GetMapping("/list") - public R<IPage<CoalQuality>> list(Page page, CoalQualityDto coalQualityDto) { - IPage<CoalQuality> list = coalQualityService.selectCoalQualityList(page,coalQualityDto); - return R.ok(list); - } - - /** - * 鏂板淇敼 - */ - @PostMapping("/addOrEditCoalQuality") - public R addOrEditCoalQuality(@RequestBody CoalQualityDto coalQualityDto) { - return R.ok(coalQualityService.addOrEditCoalQuality(coalQualityDto)); - } - - /** - * 鍒犻櫎 - */ - @DeleteMapping("/delCoalQuality") - public R remove(@RequestBody Long[] ids) { - return R.ok(coalQualityService.delCoalQualityByIds(ids)); - } -} diff --git a/basic-server/src/main/java/com/ruoyi/basic/controller/CoalValueController.java b/basic-server/src/main/java/com/ruoyi/basic/controller/CoalValueController.java index 0a30a4c..de36558 100644 --- a/basic-server/src/main/java/com/ruoyi/basic/controller/CoalValueController.java +++ b/basic-server/src/main/java/com/ruoyi/basic/controller/CoalValueController.java @@ -34,21 +34,4 @@ 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)); - } - } diff --git a/basic-server/src/main/java/com/ruoyi/basic/dto/CoalFieldDto.java b/basic-server/src/main/java/com/ruoyi/basic/dto/CoalFieldDto.java index 6defeca..6824305 100644 --- a/basic-server/src/main/java/com/ruoyi/basic/dto/CoalFieldDto.java +++ b/basic-server/src/main/java/com/ruoyi/basic/dto/CoalFieldDto.java @@ -5,4 +5,6 @@ @Data public class CoalFieldDto extends CoalField { + + private String searchAll; } diff --git a/basic-server/src/main/java/com/ruoyi/basic/dto/CoalInfoDto.java b/basic-server/src/main/java/com/ruoyi/basic/dto/CoalInfoDto.java index 89da04b..2217739 100644 --- a/basic-server/src/main/java/com/ruoyi/basic/dto/CoalInfoDto.java +++ b/basic-server/src/main/java/com/ruoyi/basic/dto/CoalInfoDto.java @@ -5,4 +5,6 @@ @Data public class CoalInfoDto extends CoalInfo { + + private String searchAll; } diff --git a/basic-server/src/main/java/com/ruoyi/basic/dto/CoalPlanDto.java b/basic-server/src/main/java/com/ruoyi/basic/dto/CoalPlanDto.java index 7282531..27f0302 100644 --- a/basic-server/src/main/java/com/ruoyi/basic/dto/CoalPlanDto.java +++ b/basic-server/src/main/java/com/ruoyi/basic/dto/CoalPlanDto.java @@ -3,6 +3,12 @@ import com.ruoyi.basic.entity.CoalPlan; import lombok.Data; +import java.util.List; + @Data public class CoalPlanDto extends CoalPlan { + + private List<String> fields; + + private String searchAll; } diff --git a/basic-server/src/main/java/com/ruoyi/basic/dto/CoalQualityDto.java b/basic-server/src/main/java/com/ruoyi/basic/dto/CoalQualityDto.java deleted file mode 100644 index ea6ff9a..0000000 --- a/basic-server/src/main/java/com/ruoyi/basic/dto/CoalQualityDto.java +++ /dev/null @@ -1,8 +0,0 @@ -package com.ruoyi.basic.dto; - -import com.ruoyi.basic.entity.CoalQuality; -import lombok.Data; - -@Data -public class CoalQualityDto extends CoalQuality { -} diff --git a/basic-server/src/main/java/com/ruoyi/basic/entity/CoalField.java b/basic-server/src/main/java/com/ruoyi/basic/entity/CoalField.java index 567a88b..6897630 100644 --- a/basic-server/src/main/java/com/ruoyi/basic/entity/CoalField.java +++ b/basic-server/src/main/java/com/ruoyi/basic/entity/CoalField.java @@ -33,11 +33,6 @@ private String fieldName; /** - * 瀛楁鍚嶆暟瀛� - */ - @TableField(value = "field_name") - private String fieldNumber; - /** * 瀛楁鎻忚堪 */ @TableField(value = "field_description") diff --git a/basic-server/src/main/java/com/ruoyi/basic/entity/CoalPlan.java b/basic-server/src/main/java/com/ruoyi/basic/entity/CoalPlan.java index 0c097ff..958edbc 100644 --- a/basic-server/src/main/java/com/ruoyi/basic/entity/CoalPlan.java +++ b/basic-server/src/main/java/com/ruoyi/basic/entity/CoalPlan.java @@ -27,6 +27,12 @@ @TableField(value = "plan") private String plan; /** + * 鐓よ川鏂规瀛楁id + */ + @TableField(value = "field_ids") + private String fieldIds; + + /** * 鐓よ川鏂规瀛楁 */ @TableField(value = "coal_fields") diff --git a/basic-server/src/main/java/com/ruoyi/basic/entity/CoalQuality.java b/basic-server/src/main/java/com/ruoyi/basic/entity/CoalQuality.java deleted file mode 100644 index b3c1fd5..0000000 --- a/basic-server/src/main/java/com/ruoyi/basic/entity/CoalQuality.java +++ /dev/null @@ -1,79 +0,0 @@ -package com.ruoyi.basic.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; - -/** - * 鐓よ川淇℃伅琛紝璁板綍鐓ょ偔璐ㄩ噺妫�娴嬬浉鍏虫暟鎹� 瀹炰綋绫� - * - * @author ruoyi - * @date 2025-06-03 - */ -@Data -@TableName("coal_quality") -public class CoalQuality 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 = "total_moisture") - private BigDecimal totalMoisture; - /** - * 鍒嗘瀽姘村惈閲忕櫨鍒嗘瘮 (%) - */ - @TableField(value = "analysis_moisture") - private BigDecimal analysisMoisture; - /** - * 鎸ュ彂鍒嗙櫨鍒嗘瘮 (%) - */ - @TableField(value = "volatile_matter") - private BigDecimal volatileMatter; - /** - * 鍥哄畾纰崇櫨鍒嗘瘮 (%) - */ - @TableField(value = "fixed_carbon") - private BigDecimal fixedCarbon; - /** - * 浣庝綅鍙戠儹閲忥紙鍗曚綅锛氬崈鍗�/鍗冨厠锛� - */ - @TableField(value = "lower_heat_value") - private BigDecimal lowerHeatValue; - /** - * 楂樹綅鍙戠儹閲忥紙鍗曚綅锛氬崈鍗�/鍗冨厠锛� - */ - @TableField(value = "higher_heat_value") - private BigDecimal higherHeatValue; - /** - * 鐏板垎鐧惧垎姣� (%) - */ - @TableField(value = "ash_content") - private BigDecimal ashContent; - /** - * 纭惈閲忕櫨鍒嗘瘮 (%) - */ - @TableField(value = "sulfur_content") - private BigDecimal sulfurContent; -} \ No newline at end of file diff --git a/basic-server/src/main/java/com/ruoyi/basic/entity/CoalValue.java b/basic-server/src/main/java/com/ruoyi/basic/entity/CoalValue.java index 84b2a8c..f52bd3a 100644 --- a/basic-server/src/main/java/com/ruoyi/basic/entity/CoalValue.java +++ b/basic-server/src/main/java/com/ruoyi/basic/entity/CoalValue.java @@ -1,8 +1,13 @@ package com.ruoyi.basic.entity; -import com.baomidou.mybatisplus.annotation.*; -import lombok.Data; +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.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.deser.std.NumberDeserializers; import com.ruoyi.common.core.domain.MyBaseEntity; +import lombok.Data; /** * 鐓よ川鏂规瀛楁鍊� 瀹炰綋绫� @@ -12,7 +17,8 @@ */ @Data @TableName("coal_value") -public class CoalValue extends MyBaseEntity { +public class +CoalValue extends MyBaseEntity { private static final long serialVersionUID = 1L; @@ -20,6 +26,7 @@ * 涓婚敭ID */ @TableId(value = "id", type = IdType.AUTO) + @JsonDeserialize(using = NumberDeserializers.LongDeserializer.class) private Long id; /** diff --git a/basic-server/src/main/java/com/ruoyi/basic/mapper/CoalQualityMapper.java b/basic-server/src/main/java/com/ruoyi/basic/mapper/CoalQualityMapper.java deleted file mode 100644 index 2c973f4..0000000 --- a/basic-server/src/main/java/com/ruoyi/basic/mapper/CoalQualityMapper.java +++ /dev/null @@ -1,18 +0,0 @@ -package com.ruoyi.basic.mapper; - -import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.ruoyi.basic.entity.CoalQuality; -import org.apache.ibatis.annotations.Mapper; - -/** - * <p> - * 鐓よ川淇℃伅琛紝璁板綍鐓ょ偔璐ㄩ噺妫�娴嬬浉鍏虫暟鎹� Mapper 鎺ュ彛 - * </p> - * - * @author ruoyi - * @since 2025-06-03 - */ -@Mapper -public interface CoalQualityMapper extends BaseMapper<CoalQuality> { - -} diff --git a/basic-server/src/main/java/com/ruoyi/basic/service/CoalPlanService.java b/basic-server/src/main/java/com/ruoyi/basic/service/CoalPlanService.java index 0ff8f37..a52f24b 100644 --- a/basic-server/src/main/java/com/ruoyi/basic/service/CoalPlanService.java +++ b/basic-server/src/main/java/com/ruoyi/basic/service/CoalPlanService.java @@ -5,6 +5,7 @@ import com.ruoyi.basic.dto.CoalPlanDto; import com.ruoyi.basic.entity.CoalPlan; import com.baomidou.mybatisplus.extension.service.IService; +import com.ruoyi.basic.vo.CoalFieldVo; import java.util.List; @@ -25,4 +26,6 @@ int delCoalPlanByIds(Long[] ids); List<CoalPlan> selectAllList(); + + List<CoalFieldVo> selectCoalPlanById(Long id); } diff --git a/basic-server/src/main/java/com/ruoyi/basic/service/CoalQualityService.java b/basic-server/src/main/java/com/ruoyi/basic/service/CoalQualityService.java deleted file mode 100644 index 4988504..0000000 --- a/basic-server/src/main/java/com/ruoyi/basic/service/CoalQualityService.java +++ /dev/null @@ -1,24 +0,0 @@ -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.CoalQualityDto; -import com.ruoyi.basic.entity.CoalQuality; -import com.baomidou.mybatisplus.extension.service.IService; - -/** - * <p> - * 鐓よ川淇℃伅琛紝璁板綍鐓ょ偔璐ㄩ噺妫�娴嬬浉鍏虫暟鎹� 鏈嶅姟绫� - * </p> - * - * @author ruoyi - * @since 2025-06-03 - */ -public interface CoalQualityService extends IService<CoalQuality> { - - IPage<CoalQuality> selectCoalQualityList(Page page, CoalQualityDto coalQualityDto); - - int addOrEditCoalQuality(CoalQualityDto coalQualityDto); - - int delCoalQualityByIds(Long[] ids); -} diff --git a/basic-server/src/main/java/com/ruoyi/basic/service/CoalValueService.java b/basic-server/src/main/java/com/ruoyi/basic/service/CoalValueService.java index 205c205..b42eff2 100644 --- a/basic-server/src/main/java/com/ruoyi/basic/service/CoalValueService.java +++ b/basic-server/src/main/java/com/ruoyi/basic/service/CoalValueService.java @@ -18,7 +18,4 @@ IPage<CoalValue> selectCoalFieldList(Page page, CoalValueDto coalValueDto); - int addOrEditCoalValue(CoalValueDto coalValueDto); - - int delCoalValueByIds(Long[] ids); } diff --git a/basic-server/src/main/java/com/ruoyi/basic/service/impl/CoalFieldServiceImpl.java b/basic-server/src/main/java/com/ruoyi/basic/service/impl/CoalFieldServiceImpl.java index e01e082..67a6c5e 100644 --- a/basic-server/src/main/java/com/ruoyi/basic/service/impl/CoalFieldServiceImpl.java +++ b/basic-server/src/main/java/com/ruoyi/basic/service/impl/CoalFieldServiceImpl.java @@ -39,8 +39,8 @@ @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()); + if (StringUtils.hasText(coalFieldDto.getSearchAll())) { + queryWrapper.like(CoalField::getFieldName, coalFieldDto.getSearchAll()); } queryWrapper.orderByDesc(CoalField::getCreateTime); return coalFieldMapper.selectPage(page, queryWrapper); diff --git a/basic-server/src/main/java/com/ruoyi/basic/service/impl/CoalInfoServiceImpl.java b/basic-server/src/main/java/com/ruoyi/basic/service/impl/CoalInfoServiceImpl.java index a4ffd27..750e6b1 100644 --- a/basic-server/src/main/java/com/ruoyi/basic/service/impl/CoalInfoServiceImpl.java +++ b/basic-server/src/main/java/com/ruoyi/basic/service/impl/CoalInfoServiceImpl.java @@ -35,8 +35,8 @@ @Override public IPage<CoalInfo> selectCoalInfoList(Page page, CoalInfoDto coalInfoDto) { LambdaQueryWrapper<CoalInfo> queryWrapper = new LambdaQueryWrapper<>(); - if (StringUtils.hasText(coalInfoDto.getCoal())) { - queryWrapper.like(CoalInfo::getCoal,coalInfoDto.getCoal()); + if (StringUtils.hasText(coalInfoDto.getSearchAll())) { + queryWrapper.like(CoalInfo::getCoal,coalInfoDto.getSearchAll()); } queryWrapper.orderByDesc(CoalInfo::getCreateTime); return coalInfoMapper.selectPage(page, queryWrapper); diff --git a/basic-server/src/main/java/com/ruoyi/basic/service/impl/CoalPlanServiceImpl.java b/basic-server/src/main/java/com/ruoyi/basic/service/impl/CoalPlanServiceImpl.java index 7c6e7f5..5aa8eaa 100644 --- a/basic-server/src/main/java/com/ruoyi/basic/service/impl/CoalPlanServiceImpl.java +++ b/basic-server/src/main/java/com/ruoyi/basic/service/impl/CoalPlanServiceImpl.java @@ -6,15 +6,21 @@ 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.CoalField; import com.ruoyi.basic.entity.CoalPlan; +import com.ruoyi.basic.mapper.CoalFieldMapper; import com.ruoyi.basic.mapper.CoalPlanMapper; import com.ruoyi.basic.service.CoalPlanService; +import com.ruoyi.basic.vo.CoalFieldVo; +import com.ruoyi.common.utils.StringUtils; import com.ruoyi.common.utils.bean.BeanUtils; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; +import java.util.Arrays; import java.util.List; import java.util.Objects; +import java.util.stream.Collectors; /** * <p> @@ -30,10 +36,15 @@ private final CoalPlanMapper coalPlanMapper; + private final CoalFieldMapper coalFieldMapper; + @Override public IPage<CoalPlan> selectCoalFieldList(Page page, CoalPlanDto coalPlanDto) { LambdaQueryWrapper<CoalPlan> queryWrapper = new LambdaQueryWrapper<>(); - return coalPlanMapper.selectPage(page,queryWrapper); + if (StringUtils.hasText(coalPlanDto.getSearchAll())){ + queryWrapper.like(CoalPlan::getPlan,coalPlanDto.getSearchAll()); + } + return coalPlanMapper.selectPage(page, queryWrapper); } @Override @@ -65,4 +76,22 @@ public List<CoalPlan> selectAllList() { return coalPlanMapper.selectList(null); } + + @Override + public List<CoalFieldVo> selectCoalPlanById(Long id) { + CoalPlan coalPlan = coalPlanMapper.selectById(id); + LambdaQueryWrapper<CoalField> coalFieldLambdaQueryWrapper = new LambdaQueryWrapper<>(); + List<Long> ids = Arrays.stream(coalPlan.getFieldIds().split(",")).map(String::trim).map(Long::parseLong).collect(Collectors.toList()); + coalFieldLambdaQueryWrapper.in(CoalField::getId, ids); + List<CoalField> coalFields = coalFieldMapper.selectList(coalFieldLambdaQueryWrapper); + return coalFields.stream() + .map(coalField -> { + CoalFieldVo dto = new CoalFieldVo(); + dto.setId(coalField.getId()); + dto.setFields(coalField.getFields()); + dto.setFieldName(coalField.getFieldName()); + return dto; + }) + .collect(Collectors.toList()); + } } diff --git a/basic-server/src/main/java/com/ruoyi/basic/service/impl/CoalQualityServiceImpl.java b/basic-server/src/main/java/com/ruoyi/basic/service/impl/CoalQualityServiceImpl.java deleted file mode 100644 index 25ba17b..0000000 --- a/basic-server/src/main/java/com/ruoyi/basic/service/impl/CoalQualityServiceImpl.java +++ /dev/null @@ -1,63 +0,0 @@ -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.CoalQualityDto; -import com.ruoyi.basic.entity.CoalQuality; -import com.ruoyi.basic.mapper.CoalQualityMapper; -import com.ruoyi.basic.service.CoalQualityService; -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-03 - */ -@Service -@RequiredArgsConstructor -public class CoalQualityServiceImpl extends ServiceImpl<CoalQualityMapper, CoalQuality> implements CoalQualityService { - - private final CoalQualityMapper coalQualityMapper; - - @Override - public IPage<CoalQuality> selectCoalQualityList(Page page, CoalQualityDto coalQualityDto) { - LambdaQueryWrapper<CoalQuality> queryWrapper = new LambdaQueryWrapper<>(); - queryWrapper.orderByDesc(CoalQuality::getCreateTime); - return coalQualityMapper.selectPage(page, queryWrapper); - } - - @Override - public int addOrEditCoalQuality(CoalQualityDto coalQualityDto) { - CoalQuality coalQuality = new CoalQuality(); - BeanUtils.copyProperties(coalQualityDto, coalQuality); - if (Objects.isNull(coalQualityDto.getId())) { - return coalQualityMapper.insert(coalQuality); - } else { - return coalQualityMapper.updateById(coalQuality); - } - } - - @Override - public int delCoalQualityByIds(Long[] ids) { - // 妫�鏌ュ弬鏁� - if (ids == null || ids.length == 0) { - return 0; - } - // 鏋勯�犳洿鏂版潯浠� - UpdateWrapper<CoalQuality> updateWrapper = new UpdateWrapper<>(); - updateWrapper.in("id", ids) - .set("deleted", 1); // 璁剧疆 deleted 涓� 1 琛ㄧず宸插垹闄� - // 鎵ц鎵归噺閫昏緫鍒犻櫎 - return coalQualityMapper.update(null, updateWrapper); - } -} diff --git a/basic-server/src/main/java/com/ruoyi/basic/service/impl/CoalValueServiceImpl.java b/basic-server/src/main/java/com/ruoyi/basic/service/impl/CoalValueServiceImpl.java index b5e4eb4..e922076 100644 --- a/basic-server/src/main/java/com/ruoyi/basic/service/impl/CoalValueServiceImpl.java +++ b/basic-server/src/main/java/com/ruoyi/basic/service/impl/CoalValueServiceImpl.java @@ -5,18 +5,11 @@ 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> @@ -32,43 +25,9 @@ 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; } } diff --git a/basic-server/src/main/java/com/ruoyi/basic/vo/CoalFieldVo.java b/basic-server/src/main/java/com/ruoyi/basic/vo/CoalFieldVo.java new file mode 100644 index 0000000..b322924 --- /dev/null +++ b/basic-server/src/main/java/com/ruoyi/basic/vo/CoalFieldVo.java @@ -0,0 +1,12 @@ +package com.ruoyi.basic.vo; + +import lombok.Data; + +@Data +public class CoalFieldVo { + + private Long id; + private String fields; + private String fieldName; + +} diff --git a/basic-server/src/main/resources/db/migration/postgresql/V20250603151801__create_table_coal_quality.sql b/basic-server/src/main/resources/db/migration/postgresql/V20250603151801__create_table_coal_quality.sql deleted file mode 100644 index 7ba1669..0000000 --- a/basic-server/src/main/resources/db/migration/postgresql/V20250603151801__create_table_coal_quality.sql +++ /dev/null @@ -1,44 +0,0 @@ --- 鍒涘缓鐓よ川淇℃伅琛� -CREATE TABLE coal_quality -( - id BIGSERIAL PRIMARY KEY, -- 涓婚敭ID锛岃嚜鍔ㄩ�掑 - - coal_id bigint DEFAULT 0 NOT NULL, - coal VARCHAR(255) NOT NULL, -- 鐓ょ绫诲瀷锛屼笉鍏佽涓虹┖ - - total_moisture DECIMAL(10, 2), -- 鍏ㄦ按鍚噺 (%) - analysis_moisture DECIMAL(10, 2), -- 鍒嗘瀽姘村惈閲� (%) - volatile_matter DECIMAL(10, 2), -- 鎸ュ彂鍒� (%) - fixed_carbon DECIMAL(10, 2), -- 鍥哄畾纰� (%) - lower_heat_value DECIMAL(10, 2), -- 浣庝綅鍙戠儹閲� (kcal/kg) - higher_heat_value DECIMAL(10, 2), -- 楂樹綅鍙戠儹閲� (kcal/kg) - ash_content DECIMAL(10, 2), -- 鐏板垎 (%) - sulfur_content DECIMAL(10, 2), -- 纭惈閲� (%) - - 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_quality IS '鐓よ川淇℃伅琛紝璁板綍鐓ょ偔璐ㄩ噺妫�娴嬬浉鍏虫暟鎹�'; - --- 瀛楁娉ㄩ噴 -COMMENT ON COLUMN coal_quality.id IS '涓婚敭ID'; -COMMENT ON COLUMN coal_quality.coal_id IS '鐓ょ绫诲瀷id'; -COMMENT ON COLUMN coal_quality.coal IS '鐓ょ绫诲瀷'; -COMMENT ON COLUMN coal_quality.total_moisture IS '鍏ㄦ按鍚噺鐧惧垎姣� (%)'; -COMMENT ON COLUMN coal_quality.analysis_moisture IS '鍒嗘瀽姘村惈閲忕櫨鍒嗘瘮 (%)'; -COMMENT ON COLUMN coal_quality.volatile_matter IS '鎸ュ彂鍒嗙櫨鍒嗘瘮 (%)'; -COMMENT ON COLUMN coal_quality.fixed_carbon IS '鍥哄畾纰崇櫨鍒嗘瘮 (%)'; -COMMENT ON COLUMN coal_quality.lower_heat_value IS '浣庝綅鍙戠儹閲忥紙鍗曚綅锛氬崈鍗�/鍗冨厠锛�'; -COMMENT ON COLUMN coal_quality.higher_heat_value IS '楂樹綅鍙戠儹閲忥紙鍗曚綅锛氬崈鍗�/鍗冨厠锛�'; -COMMENT ON COLUMN coal_quality.ash_content IS '鐏板垎鐧惧垎姣� (%)'; -COMMENT ON COLUMN coal_quality.sulfur_content IS '纭惈閲忕櫨鍒嗘瘮 (%)'; -COMMENT ON COLUMN coal_quality.deleted IS '杞垹闄ゆ爣蹇楋紝0=鏈垹闄わ紝1=宸插垹闄�'; -COMMENT ON COLUMN coal_quality.create_by IS '鍒涘缓璇ヨ褰曠殑鐢ㄦ埛'; -COMMENT ON COLUMN coal_quality.create_time IS '璁板綍鍒涘缓鏃堕棿'; -COMMENT ON COLUMN coal_quality.update_by IS '鏈�鍚庝慨鏀硅璁板綍鐨勭敤鎴�'; -COMMENT ON COLUMN coal_quality.update_time IS '璁板綍鏈�鍚庢洿鏂版椂闂�'; \ No newline at end of file diff --git a/basic-server/src/main/resources/mapper/CoalQualityMapper.xml b/basic-server/src/main/resources/mapper/CoalQualityMapper.xml deleted file mode 100644 index 8b9da03..0000000 --- a/basic-server/src/main/resources/mapper/CoalQualityMapper.xml +++ /dev/null @@ -1,35 +0,0 @@ -<?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.CoalQualityMapper"> - - <!-- 閫氱敤鏌ヨ鏄犲皠缁撴灉 --> - <resultMap id="BaseResultMap" type="com.ruoyi.basic.entity.CoalQuality"> - <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="coal_id" property="coalId" /> - <result column="coal" property="coal" /> - <result column="total_moisture" property="totalMoisture" /> - <result column="analysis_moisture" property="analysisMoisture" /> - <result column="volatile_matter" property="volatileMatter" /> - <result column="fixed_carbon" property="fixedCarbon" /> - <result column="lower_heat_value" property="lowerHeatValue" /> - <result column="higher_heat_value" property="higherHeatValue" /> - <result column="ash_content" property="ashContent" /> - <result column="sulfur_content" property="sulfurContent" /> - </resultMap> - - <!-- 閫氱敤鏌ヨ缁撴灉鍒� --> - <sql id="Base_Column_List"> - deleted, - create_by, - create_time, - update_by, - update_time, - id, coal_id, coal, total_moisture, analysis_moisture, volatile_matter, fixed_carbon, lower_heat_value, higher_heat_value, ash_content, sulfur_content - </sql> - -</mapper> \ No newline at end of file diff --git a/main-business/src/main/java/com/ruoyi/business/controller/OfficialInventoryController.java b/main-business/src/main/java/com/ruoyi/business/controller/OfficialInventoryController.java index b9cac2d..9dedce7 100644 --- a/main-business/src/main/java/com/ruoyi/business/controller/OfficialInventoryController.java +++ b/main-business/src/main/java/com/ruoyi/business/controller/OfficialInventoryController.java @@ -3,7 +3,6 @@ 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; @@ -31,8 +30,8 @@ * 姝e紡搴撳簱琛ㄦ煡璇� */ @GetMapping("/list") - public R<IPage<OfficialInventory>> list(Page page, OfficialInventoryDto officialInventoryDto) { - IPage<OfficialInventory> list = officialInventoryService.selectOfficialInventoryList(page,officialInventoryDto); + public R<IPage<OfficialInventoryDto>> list(Page page, OfficialInventoryDto officialInventoryDto) { + IPage<OfficialInventoryDto> list = officialInventoryService.selectOfficialInventoryList(page,officialInventoryDto); return R.ok(list); } diff --git a/main-business/src/main/java/com/ruoyi/business/controller/PendingInventoryController.java b/main-business/src/main/java/com/ruoyi/business/controller/PendingInventoryController.java index 0968c40..979fe45 100644 --- a/main-business/src/main/java/com/ruoyi/business/controller/PendingInventoryController.java +++ b/main-business/src/main/java/com/ruoyi/business/controller/PendingInventoryController.java @@ -23,25 +23,34 @@ @RequestMapping("/pendingInventory") public class PendingInventoryController { - private PendingInventoryService pendingInventoryService; + private PendingInventoryService pendingInventoryService; /** * 寰呭叆搴撹〃鏌ヨ */ @GetMapping("/list") public R<IPage<PendingInventory>> list(Page page, PendingInventoryDto pendingInventoryDto) { - IPage<PendingInventory> list = pendingInventoryService.selectPendingInventoryList(page,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)); } + + /** + * 寰呭叆搴撶叅璐ㄦ柟妗堝�间慨鏀逛繚瀛� + */ + @PostMapping("/addOrEditCoalValue") + public R addOrEditCoalValue(@RequestBody PendingInventoryDto pendingInventoryDto) { + return R.ok(pendingInventoryService.addOrEditCoalValue(pendingInventoryDto)); + } + /** * 鍒犻櫎 */ diff --git a/main-business/src/main/java/com/ruoyi/business/dto/ArchiveDto.java b/main-business/src/main/java/com/ruoyi/business/dto/ArchiveDto.java new file mode 100644 index 0000000..e8b57e2 --- /dev/null +++ b/main-business/src/main/java/com/ruoyi/business/dto/ArchiveDto.java @@ -0,0 +1,10 @@ +package com.ruoyi.business.dto; + +import com.ruoyi.business.entity.Archive; +import lombok.Data; + +@Data +public class ArchiveDto extends Archive { + + private Long treeId; +} diff --git a/main-business/src/main/java/com/ruoyi/business/dto/OfficialInventoryDto.java b/main-business/src/main/java/com/ruoyi/business/dto/OfficialInventoryDto.java index 9d668b7..0e386e9 100644 --- a/main-business/src/main/java/com/ruoyi/business/dto/OfficialInventoryDto.java +++ b/main-business/src/main/java/com/ruoyi/business/dto/OfficialInventoryDto.java @@ -3,6 +3,11 @@ import com.ruoyi.business.entity.OfficialInventory; import lombok.Data; +import java.util.List; +import java.util.Map; + @Data public class OfficialInventoryDto extends OfficialInventory { + + private List<Map<String, String>> fields; } diff --git a/main-business/src/main/java/com/ruoyi/business/dto/PendingInventoryDto.java b/main-business/src/main/java/com/ruoyi/business/dto/PendingInventoryDto.java index 01a78a7..2d46d36 100644 --- a/main-business/src/main/java/com/ruoyi/business/dto/PendingInventoryDto.java +++ b/main-business/src/main/java/com/ruoyi/business/dto/PendingInventoryDto.java @@ -1,8 +1,30 @@ package com.ruoyi.business.dto; +import com.fasterxml.jackson.annotation.JsonProperty; import com.ruoyi.business.entity.PendingInventory; import lombok.Data; +import java.util.List; +import java.util.Map; + @Data public class PendingInventoryDto extends PendingInventory { + + @JsonProperty("pId") + private Long pId; + + private List<Map<String, String>> fieldValue; + + /** + * 瀛楁鍊� + */ + private String coalValue; + /** + * 瀛楁 + */ + private String fields; + /** + * 瀛楁鍚� + */ + private String fieldName; } diff --git a/main-business/src/main/java/com/ruoyi/business/dto/TreeDto.java b/main-business/src/main/java/com/ruoyi/business/dto/TreeDto.java new file mode 100644 index 0000000..3fb3800 --- /dev/null +++ b/main-business/src/main/java/com/ruoyi/business/dto/TreeDto.java @@ -0,0 +1,8 @@ +package com.ruoyi.business.dto; + +import com.ruoyi.business.entity.Tree; +import lombok.Data; + +@Data +public class TreeDto extends Tree { +} diff --git a/main-business/src/main/java/com/ruoyi/business/entity/OfficialInventory.java b/main-business/src/main/java/com/ruoyi/business/entity/OfficialInventory.java index d965baf..e97889f 100644 --- a/main-business/src/main/java/com/ruoyi/business/entity/OfficialInventory.java +++ b/main-business/src/main/java/com/ruoyi/business/entity/OfficialInventory.java @@ -26,7 +26,12 @@ * 涓婚敭ID */ @TableId(value = "id", type = IdType.AUTO) - private Integer id; + private Long id; + /** + * 寰呭叆搴搃d + */ + @TableField(value = "pending_id") + private Long pendingId; /** * 渚涜揣鍟嗗悕绉� */ @@ -35,8 +40,8 @@ /** * 鐓ょ */ - @TableField(value = "coal_type") - private String coalType; + @TableField(value = "coal") + private String coal; /** * 鍗曚綅 */ diff --git a/main-business/src/main/java/com/ruoyi/business/entity/PendingInventory.java b/main-business/src/main/java/com/ruoyi/business/entity/PendingInventory.java index c30d533..9fe9ca2 100644 --- a/main-business/src/main/java/com/ruoyi/business/entity/PendingInventory.java +++ b/main-business/src/main/java/com/ruoyi/business/entity/PendingInventory.java @@ -20,13 +20,11 @@ @TableName("pending_inventory") public class PendingInventory extends MyBaseEntity { - private static final long serialVersionUID = 1L; - /** * 涓婚敭ID */ @TableId(value = "id", type = IdType.AUTO) - private Integer id; + private Long id; /** * 渚涜揣鍟嗗悕绉� */ diff --git a/main-business/src/main/java/com/ruoyi/business/service/OfficialInventoryService.java b/main-business/src/main/java/com/ruoyi/business/service/OfficialInventoryService.java index 4d7a915..9b4e444 100644 --- a/main-business/src/main/java/com/ruoyi/business/service/OfficialInventoryService.java +++ b/main-business/src/main/java/com/ruoyi/business/service/OfficialInventoryService.java @@ -16,5 +16,5 @@ */ public interface OfficialInventoryService extends IService<OfficialInventory> { - IPage<OfficialInventory> selectOfficialInventoryList(Page page, OfficialInventoryDto officialInventoryDto); + IPage<OfficialInventoryDto> selectOfficialInventoryList(Page page, OfficialInventoryDto officialInventoryDto); } diff --git a/main-business/src/main/java/com/ruoyi/business/service/PendingInventoryService.java b/main-business/src/main/java/com/ruoyi/business/service/PendingInventoryService.java index 1d12d25..5423545 100644 --- a/main-business/src/main/java/com/ruoyi/business/service/PendingInventoryService.java +++ b/main-business/src/main/java/com/ruoyi/business/service/PendingInventoryService.java @@ -21,4 +21,6 @@ int addOrEditPending(PendingInventoryDto pendingInventoryDto); int delByIds(Long[] ids); + + int addOrEditCoalValue(PendingInventoryDto pendingInventoryDto); } diff --git a/main-business/src/main/java/com/ruoyi/business/service/impl/OfficialInventoryServiceImpl.java b/main-business/src/main/java/com/ruoyi/business/service/impl/OfficialInventoryServiceImpl.java index fdc9186..7be4276 100644 --- a/main-business/src/main/java/com/ruoyi/business/service/impl/OfficialInventoryServiceImpl.java +++ b/main-business/src/main/java/com/ruoyi/business/service/impl/OfficialInventoryServiceImpl.java @@ -3,13 +3,25 @@ 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.entity.CoalField; +import com.ruoyi.basic.entity.CoalValue; +import com.ruoyi.basic.mapper.CoalFieldMapper; +import com.ruoyi.basic.mapper.CoalValueMapper; import com.ruoyi.business.dto.OfficialInventoryDto; import com.ruoyi.business.entity.OfficialInventory; import com.ruoyi.business.mapper.OfficialInventoryMapper; +import com.ruoyi.business.mapper.PendingInventoryMapper; import com.ruoyi.business.service.OfficialInventoryService; -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.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; /** * <p> @@ -25,9 +37,66 @@ private final OfficialInventoryMapper officialInventoryMapper; + private final CoalValueMapper coalValueMapper; + + private final CoalFieldMapper coalFieldMapper; + + private final PendingInventoryMapper pendingInventoryMapper; + @Override - public IPage<OfficialInventory> selectOfficialInventoryList(Page page, OfficialInventoryDto officialInventoryDto) { + public IPage<OfficialInventoryDto> selectOfficialInventoryList(Page page, OfficialInventoryDto officialInventoryDto) { + + // 鍏堟煡鍑哄師濮嬫暟鎹紙OfficialInventory锛� LambdaQueryWrapper<OfficialInventory> queryWrapper = new LambdaQueryWrapper<>(); - return officialInventoryMapper.selectPage(page, queryWrapper); + IPage<OfficialInventory> entityPage = officialInventoryMapper.selectPage(page, queryWrapper); + + // 鍒涘缓涓�涓柊鐨� Dto 鍒嗛〉缁撴灉 + IPage<OfficialInventoryDto> dtoPage = new Page<>(); + BeanUtils.copyProperties(entityPage, dtoPage); + + List<OfficialInventoryDto> dtoList = new ArrayList<>(); + + // 鏌ヨ鎵�鏈夊彲鐢ㄥ瓧娈碉紙CoalField锛� + List<CoalField> coalFields = coalFieldMapper.selectList(null); + List<String> allFieldNames = coalFields.stream() + .map(CoalField::getFields) + .distinct() + .collect(Collectors.toList()); + + // 閬嶅巻姣忔潯璁板綍锛岃繘琛岃浆鎹㈠苟濉厖 fields + for (OfficialInventory entity : entityPage.getRecords()) { + OfficialInventoryDto dto = new OfficialInventoryDto(); + BeanUtils.copyProperties(entity, dto); + + Long pendingId = entity.getPendingId(); + + // 鏌ヨ璇� pendingId 瀵瑰簲鐨� CoalValue 鏁版嵁 + List<CoalValue> coalValues = coalValueMapper.selectList( + new LambdaQueryWrapper<CoalValue>().eq(CoalValue::getPlanId, pendingId) + ); + + // 鏋勫缓 Map<fieldName, value> + Map<String, String> fieldValueMap = coalValues.stream() + .collect(Collectors.toMap( + CoalValue::getFields, + CoalValue::getCoalValue, + (existing, replacement) -> existing // 閲嶅瀛楁淇濈暀绗竴涓� + )); + + // 鏋勯�犳渶缁� fields 鍒楄〃锛屽寘鍚墍鏈夊瓧娈靛悕锛屽苟璁剧疆榛樿鍊� "-" + List<Map<String, String>> fields = new ArrayList<>(); + for (String field : allFieldNames) { + Map<String, String> fieldMap = new HashMap<>(); + fieldMap.put(field, fieldValueMap.getOrDefault(field, "-")); + fields.add(fieldMap); + } + + // 璁剧疆鍒� DTO 涓� + dto.setFields(fields); + dtoList.add(dto); + } + + dtoPage.setRecords(dtoList); // 璁剧疆杞崲鍚庣殑 DtoList + return dtoPage; } } diff --git a/main-business/src/main/java/com/ruoyi/business/service/impl/PendingInventoryServiceImpl.java b/main-business/src/main/java/com/ruoyi/business/service/impl/PendingInventoryServiceImpl.java index ac74173..adbc5e9 100644 --- a/main-business/src/main/java/com/ruoyi/business/service/impl/PendingInventoryServiceImpl.java +++ b/main-business/src/main/java/com/ruoyi/business/service/impl/PendingInventoryServiceImpl.java @@ -3,19 +3,31 @@ 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.core.toolkit.CollectionUtils; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +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.business.dto.PendingInventoryDto; +import com.ruoyi.business.entity.OfficialInventory; import com.ruoyi.business.entity.PendingInventory; +import com.ruoyi.business.mapper.OfficialInventoryMapper; import com.ruoyi.business.mapper.PendingInventoryMapper; import com.ruoyi.business.service.PendingInventoryService; +import com.ruoyi.common.exception.base.BaseException; import com.ruoyi.common.utils.bean.BeanUtils; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import java.math.BigDecimal; +import java.util.List; +import java.util.Map; import java.util.Objects; +import java.util.Set; +import java.util.stream.Collectors; /** * <p> @@ -30,6 +42,8 @@ public class PendingInventoryServiceImpl extends ServiceImpl<PendingInventoryMapper, PendingInventory> implements PendingInventoryService { private final PendingInventoryMapper pendingInventoryMapper; + + private final OfficialInventoryMapper officialInventoryMapper; private final CoalValueMapper coalValueMapper; @@ -66,4 +80,69 @@ // 鎵ц鎵归噺閫昏緫鍒犻櫎 return pendingInventoryMapper.update(null, updateWrapper); } + + @Transactional + @Override + public int addOrEditCoalValue(PendingInventoryDto pendingInventoryDto) { + // Step 1: 鍒犻櫎鍘熸湁 planId 鐩稿叧鏁版嵁 + coalValueMapper.delete(new LambdaQueryWrapper<CoalValue>() + .eq(CoalValue::getPlanId, pendingInventoryDto.getPId())); + // Step 2: 鏋勫缓鍩虹 CoalValue 瀵硅薄 + CoalValue coalValue = new CoalValue(); + BeanUtils.copyProperties(coalValue, pendingInventoryDto); + coalValue.setPlanId(pendingInventoryDto.getPId()); + List<Map<String, String>> fieldValue = pendingInventoryDto.getFieldValue(); + if (CollectionUtils.isEmpty(fieldValue)) { + throw new BaseException("瀛楁鍊间笉鑳戒负绌�"); + } + // Step 3: 鎻愬墠鑾峰彇鎵�鏈� field -> CoalField 鏄犲皠锛岄伩鍏嶉噸澶嶆煡搴� + Set<String> allFields = fieldValue.stream() + .flatMap(map -> map.keySet().stream()) + .collect(Collectors.toSet()); + List<CoalField> coalFields = coalFieldMapper.selectList( + new LambdaQueryWrapper<CoalField>().in(CoalField::getFields, allFields)); + Map<String, String> fieldMap = coalFields.stream() + .collect(Collectors.toMap( + CoalField::getFields, + CoalField::getFieldName)); + // Step 4: 鎵归噺鎻掑叆 + int i = 0; + for (Map<String, String> fieldMapEntry : fieldValue) { + for (Map.Entry<String, String> entry : fieldMapEntry.entrySet()) { + String key = entry.getKey(); + String value = entry.getValue(); + String fieldName = fieldMap.get(key); + if (fieldName == null) { + throw new BaseException("瀛楁鍚嶄笉瀛樺湪"); + } + coalValue.setId(null); // 娓呯┖ id锛岀‘淇濇瘡娆¢兘鏄柊璁板綍 + coalValue.setCoalValue(value); + coalValue.setFields(key); + coalValue.setFieldName(fieldName); + i = coalValueMapper.insert(coalValue); + } + } + if (i > 0) { + BigDecimal quantity = pendingInventoryDto.getInventoryQuantity(); + PendingInventory pendingInventory = pendingInventoryMapper.selectById(pendingInventoryDto.getPId()); + if (pendingInventory == null) { + throw new BaseException("寰呭叆搴撹褰曚笉瀛樺湪"); + } + BigDecimal left = pendingInventory.getInventoryQuantity().subtract(quantity); + if (left.compareTo(BigDecimal.ZERO) > 0) { + pendingInventory.setInventoryQuantity(left); + pendingInventoryMapper.updateById(pendingInventory); + } else { + pendingInventoryMapper.deleteById(pendingInventoryDto.getPId()); + } + officialInventoryMapper.delete(new LambdaQueryWrapper<OfficialInventory>().eq(OfficialInventory::getPendingId, pendingInventoryDto.getPId())); + OfficialInventory officialInventory = new OfficialInventory(); + BeanUtils.copyProperties(pendingInventory, officialInventory); + officialInventory.setId(null); + officialInventory.setPendingId(pendingInventoryDto.getPId()); + officialInventory.setInventoryQuantity(quantity); + officialInventoryMapper.insert(officialInventory); + } + return i; + } } diff --git a/main-business/src/main/java/com/ruoyi/business/service/impl/PurchaseRegistrationServiceImpl.java b/main-business/src/main/java/com/ruoyi/business/service/impl/PurchaseRegistrationServiceImpl.java index 54b2b7b..ec9edcf 100644 --- a/main-business/src/main/java/com/ruoyi/business/service/impl/PurchaseRegistrationServiceImpl.java +++ b/main-business/src/main/java/com/ruoyi/business/service/impl/PurchaseRegistrationServiceImpl.java @@ -17,6 +17,7 @@ import org.springframework.transaction.annotation.Transactional; import org.springframework.util.Assert; +import java.math.BigDecimal; import java.util.Objects; /** @@ -52,7 +53,6 @@ // 鍒涘缓閲囪喘鐧昏瀹炰綋骞跺鍒跺睘鎬� PurchaseRegistration purchaseRegistration = new PurchaseRegistration(); BeanUtils.copyProperties(purchaseRegistrationDto, purchaseRegistration); - if (Objects.isNull(purchaseRegistrationDto.getId())) { // 鏂板閲囪喘鐧昏 int insertCount = purchaseRegistrationMapper.insert(purchaseRegistration); @@ -79,9 +79,8 @@ BeanUtils.copyProperties(purchaseRegistration, pendingInventory); // 璁剧疆寰呭叆搴撹褰曠壒鏈夌殑灞炴�э紙濡傛灉鏈夛級 - // pendingInventory.setStatus(InventoryStatus.PENDING); - // pendingInventory.setCreateTime(LocalDateTime.now()); - + pendingInventory.setInventoryQuantity(purchaseRegistration.getPurchaseQuantity()); + pendingInventory.setCostPerUnit(new BigDecimal(22)); return pendingInventory; } diff --git a/main-business/src/main/java/com/ruoyi/business/vo/TreeVo.java b/main-business/src/main/java/com/ruoyi/business/vo/TreeVo.java new file mode 100644 index 0000000..c4eacda --- /dev/null +++ b/main-business/src/main/java/com/ruoyi/business/vo/TreeVo.java @@ -0,0 +1,14 @@ +package com.ruoyi.business.vo; + +import lombok.Data; + +import java.util.List; + +@Data +public class TreeVo { + private Long id; + private Long parentId; + private String name; + private String label; // 鐢ㄤ簬鏍戝舰缁撴瀯鐨勬樉绀哄悕绉� + private List<TreeVo> children; +} diff --git a/main-business/src/main/resources/db/migration/postgresql/V20250604104500__create_table_pending_inventory.sql b/main-business/src/main/resources/db/migration/postgresql/V20250604104500__create_table_pending_inventory.sql index 1acb79e..9ee25e8 100644 --- a/main-business/src/main/resources/db/migration/postgresql/V20250604104500__create_table_pending_inventory.sql +++ b/main-business/src/main/resources/db/migration/postgresql/V20250604104500__create_table_pending_inventory.sql @@ -1,7 +1,7 @@ -- 鍒涘缓寰呭叆搴撹〃 CREATE TABLE pending_inventory ( - id SERIAL PRIMARY KEY, -- 涓婚敭ID + id BIGSERIAL PRIMARY KEY, -- 涓婚敭ID supplier_name VARCHAR(255) NOT NULL, -- 渚涜揣鍟嗗悕绉� coal_type VARCHAR(50) NOT NULL, -- 鐓ょ unit VARCHAR(50) NOT NULL, -- 鍗曚綅 diff --git a/main-business/src/main/resources/db/migration/postgresql/V20250604111200__create_table_official_inventory.sql b/main-business/src/main/resources/db/migration/postgresql/V20250604111200__create_table_official_inventory.sql index 80587a1..3df2c94 100644 --- a/main-business/src/main/resources/db/migration/postgresql/V20250604111200__create_table_official_inventory.sql +++ b/main-business/src/main/resources/db/migration/postgresql/V20250604111200__create_table_official_inventory.sql @@ -1,7 +1,7 @@ -- 鍒涘缓姝e紡搴撹〃 CREATE TABLE official_inventory ( - id SERIAL PRIMARY KEY, -- 涓婚敭ID + id BIGSERIAL PRIMARY KEY, -- 涓婚敭ID supplier_name VARCHAR(255) NOT NULL, -- 渚涜揣鍟嗗悕绉� coal_type VARCHAR(50) NOT NULL, -- 鐓ょ unit VARCHAR(50) NOT NULL, -- 鍗曚綅 diff --git a/main-business/src/main/resources/db/migration/postgresql/V20250610161312__create_table_tree.sql b/main-business/src/main/resources/db/migration/postgresql/V20250610161312__create_table_tree.sql new file mode 100644 index 0000000..ac435ff --- /dev/null +++ b/main-business/src/main/resources/db/migration/postgresql/V20250610161312__create_table_tree.sql @@ -0,0 +1,27 @@ +-- 鍒涘缓妗f琛� +CREATE TABLE tree +( + id BIGSERIAL PRIMARY KEY, -- 涓婚敭ID锛岃嚜鍔ㄩ�掑 + + name VARCHAR(255) NOT NULL, -- 鍚嶇О + parent_id BIGINT, -- 鐖秈d + + 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 tree IS '妗f淇℃伅琛紝璁板綍绯荤粺涓悇绫绘。妗堢殑鍩烘湰淇℃伅'; + +-- 瀛楁娉ㄩ噴 +COMMENT ON COLUMN tree.id IS '涓婚敭ID'; + + +COMMENT ON COLUMN tree.deleted IS '杞垹闄ゆ爣蹇楋紝0=鏈垹闄わ紝1=宸插垹闄�'; +COMMENT ON COLUMN tree.create_by IS '鍒涘缓璇ヨ褰曠殑鐢ㄦ埛'; +COMMENT ON COLUMN tree.create_time IS '璁板綍鍒涘缓鏃堕棿'; +COMMENT ON COLUMN tree.update_by IS '鏈�鍚庝慨鏀硅璁板綍鐨勭敤鎴�'; +COMMENT ON COLUMN tree.update_time IS '璁板綍鏈�鍚庢洿鏂版椂闂�'; \ No newline at end of file diff --git a/main-business/src/main/resources/db/migration/postgresql/V20250610161313__create_table_archive.sql b/main-business/src/main/resources/db/migration/postgresql/V20250610161313__create_table_archive.sql new file mode 100644 index 0000000..f820f42 --- /dev/null +++ b/main-business/src/main/resources/db/migration/postgresql/V20250610161313__create_table_archive.sql @@ -0,0 +1,29 @@ +-- 鍒涘缓妗f琛� +CREATE TABLE archive +( + id BIGSERIAL PRIMARY KEY, -- 涓婚敭ID锛岃嚜鍔ㄩ�掑 + + name VARCHAR(255) NOT NULL, -- 妗f鍚嶇О + type VARCHAR(255) NOT NULL, -- 妗f绫诲瀷锛堝锛氬悎鍚屻�佹姤鍛娿�佽瘉浠剁瓑锛� + status VARCHAR(50) 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 archive IS '妗f淇℃伅琛紝璁板綍绯荤粺涓悇绫绘。妗堢殑鍩烘湰淇℃伅'; + +-- 瀛楁娉ㄩ噴 +COMMENT ON COLUMN archive.id IS '涓婚敭ID'; +COMMENT ON COLUMN archive.name IS '妗f鍚嶇О'; +COMMENT ON COLUMN archive.type IS '妗f绫诲瀷锛屼緥濡傦細鍚堝悓銆佹姤鍛娿�佽瘉浠剁瓑'; +COMMENT ON COLUMN archive.status IS '妗f鐘舵�侊紝渚嬪锛氭湁鏁堛�佽繃鏈熴�佷綔搴�'; +COMMENT ON COLUMN archive.deleted IS '杞垹闄ゆ爣蹇楋紝0=鏈垹闄わ紝1=宸插垹闄�'; +COMMENT ON COLUMN archive.create_by IS '鍒涘缓璇ヨ褰曠殑鐢ㄦ埛'; +COMMENT ON COLUMN archive.create_time IS '璁板綍鍒涘缓鏃堕棿'; +COMMENT ON COLUMN archive.update_by IS '鏈�鍚庝慨鏀硅璁板綍鐨勭敤鎴�'; +COMMENT ON COLUMN archive.update_time IS '璁板綍鏈�鍚庢洿鏂版椂闂�'; \ No newline at end of file diff --git a/main-business/src/main/resources/db/migration/postgresql/V20250610161314__create_table_file.sql b/main-business/src/main/resources/db/migration/postgresql/V20250610161314__create_table_file.sql new file mode 100644 index 0000000..4eb5921 --- /dev/null +++ b/main-business/src/main/resources/db/migration/postgresql/V20250610161314__create_table_file.sql @@ -0,0 +1,37 @@ +-- 鍒涘缓鏂囦欢琛� +CREATE TABLE file +( + id BIGSERIAL PRIMARY KEY, -- 涓婚敭ID锛岃嚜鍔ㄩ�掑 + + archive_id BIGINT, -- 鍏宠仈妗f琛� archive.id锛堝彲閫夛級 + original_name VARCHAR(255) NOT NULL, -- 鍘熷鏂囦欢鍚嶏紙鐢ㄦ埛涓婁紶鏃剁殑鍚嶇О锛� + preview_url TEXT, -- 棰勮鍦板潃 + file_name VARCHAR(255) NOT NULL, -- 瀛樺偍绯荤粺涓殑鍞竴鏂囦欢鍚嶏紙濡� uuid.png锛� + file_path TEXT NOT NULL, -- 鏂囦欢瀛樺偍璺緞鎴朥RL + file_type VARCHAR(50), -- 鏂囦欢绫诲瀷锛堝锛歩mage/png, application/pdf锛� + file_size VARCHAR(50), -- 鏂囦欢澶у皬锛堝崟浣嶏細瀛楄妭锛� + + create_time TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP, -- 涓婁紶鏃堕棿锛岄粯璁ゅ綋鍓嶆椂闂� + update_time TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP, -- 鏈�鍚庢洿鏂版椂闂达紝榛樿褰撳墠鏃堕棿 + create_by VARCHAR(255), -- 涓婁紶浜虹敤鎴峰悕 + update_by VARCHAR(255), -- 鏈�鍚庝慨鏀逛汉鐢ㄦ埛鍚� + deleted INT NOT NULL DEFAULT 0 -- 杞垹闄ゆ爣蹇楋細0=鏈垹闄わ紝1=宸插垹闄� +); + +-- 琛ㄦ敞閲� +COMMENT ON TABLE file IS '涓婁紶鏂囦欢鐨勫熀鏈俊鎭�'; + +-- 瀛楁娉ㄩ噴 +COMMENT ON COLUMN file.id IS '涓婚敭ID'; +COMMENT ON COLUMN file.archive_id IS '鍏宠仈鐨勬。妗圛D锛屽閿紩鐢� archive.id'; +COMMENT ON COLUMN file.original_name IS '鍘熷鏂囦欢鍚嶏紙鐢ㄦ埛涓婁紶鏃剁殑鍚嶇О锛�'; +COMMENT ON COLUMN file.preview_url IS '棰勮鍦板潃'; +COMMENT ON COLUMN file.file_name IS '绯荤粺瀛樺偍鐨勫敮涓�鏂囦欢鍚�'; +COMMENT ON COLUMN file.file_path IS '鏂囦欢鍦ㄦ湇鍔″櫒涓婄殑瀛樺偍璺緞鎴栬闂甎RL'; +COMMENT ON COLUMN file.file_type IS '鏂囦欢MIME绫诲瀷锛屼緥濡� image/png銆乤pplication/pdf'; +COMMENT ON COLUMN file.file_size IS '鏂囦欢澶у皬锛屽崟浣嶄负瀛楄妭'; +COMMENT ON COLUMN file.create_time IS '鏂囦欢涓婁紶鏃堕棿'; +COMMENT ON COLUMN file.update_time IS '鏂囦欢鏈�鍚庢洿鏂版椂闂�'; +COMMENT ON COLUMN file.create_by IS '涓婁紶璇ユ枃浠剁殑鐢ㄦ埛'; +COMMENT ON COLUMN file.update_by IS '鏈�鍚庝慨鏀硅鏂囦欢鐨勭敤鎴�'; +COMMENT ON COLUMN file.deleted IS '杞垹闄ゆ爣蹇楋紝0=鏈垹闄わ紝1=宸插垹闄�'; \ No newline at end of file diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/MyBaseEntity.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/MyBaseEntity.java index 48c60f6..e819ecb 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/MyBaseEntity.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/MyBaseEntity.java @@ -7,7 +7,6 @@ import lombok.Data; import java.io.Serializable; -import java.time.LocalDateTime; import java.time.OffsetDateTime; @Data -- Gitblit v1.9.3