From d75541110d428f61a9fe3378110248b7dd78e240 Mon Sep 17 00:00:00 2001 From: zhanghl <253316343@qq.com> Date: 星期三, 21 五月 2025 12:31:15 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/dev' into dev --- aps-modules/aps-core/src/main/java/com/aps/core/controller/mainPlan/ApsGasPipelineMoController.java | 4 aps-modules/aps-core/src/main/java/com/aps/core/controller/mainPlan/ApsGasPipelinePredictionController.java | 30 +--- aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsWeldSeamStandard.java | 4 aps-modules/aps-core/src/main/resources/mapper/core/ApsWeldSeamStandardMapper.xml | 4 aps-modules/aps-core/src/main/java/com/aps/core/mapper/ApsMaterialProductGroupManagementMapper.java | 17 ++ aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsGasPipelinePrediction.java | 19 +++ aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsGasPipelinePredictionServiceImpl.java | 82 ++++++++----- aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsMaterialProductGroupManagement.java | 99 +++++++++------- aps-modules/aps-core/src/main/java/com/aps/core/controller/mainPlan/ApsMaterialProductGroupManagementController.java | 4 aps-modules/aps-core/src/main/resources/mapper/core/ApsGasPipelineMoMapper.xml | 1 aps-modules/aps-core/src/main/resources/mapper/core/ApsGasPipelinePredictionMapper.xml | 1 aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsMaterialProductGroupManagementServiceImpl.java | 37 +++++- aps-modules/aps-core/src/main/resources/mapper/core/ApsMaterialProductGroupManagementMapper.xml | 1 aps-modules/aps-core/src/main/java/com/aps/core/mapper/ApsGasPipelinePredictionMapper.java | 21 +++ 14 files changed, 219 insertions(+), 105 deletions(-) diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/controller/mainPlan/ApsGasPipelineMoController.java b/aps-modules/aps-core/src/main/java/com/aps/core/controller/mainPlan/ApsGasPipelineMoController.java index 9c72746..5f836fe 100644 --- a/aps-modules/aps-core/src/main/java/com/aps/core/controller/mainPlan/ApsGasPipelineMoController.java +++ b/aps-modules/aps-core/src/main/java/com/aps/core/controller/mainPlan/ApsGasPipelineMoController.java @@ -53,8 +53,8 @@ @PostMapping("/importData") public AjaxResult importData(MultipartFile file) throws Exception { - int i = apsGasPipelineMoService.batchInsertGasPipelineMo(file); - return toAjax(i); + apsGasPipelineMoService.batchInsertGasPipelineMo(file); + return toAjax(true); } /** diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/controller/mainPlan/ApsGasPipelinePredictionController.java b/aps-modules/aps-core/src/main/java/com/aps/core/controller/mainPlan/ApsGasPipelinePredictionController.java index c045a32..90a9b60 100644 --- a/aps-modules/aps-core/src/main/java/com/aps/core/controller/mainPlan/ApsGasPipelinePredictionController.java +++ b/aps-modules/aps-core/src/main/java/com/aps/core/controller/mainPlan/ApsGasPipelinePredictionController.java @@ -1,30 +1,22 @@ package com.aps.core.controller.mainPlan; -import java.util.List; - +import com.aps.common.core.utils.poi.ExcelUtil; +import com.aps.common.core.web.controller.BaseController; +import com.aps.common.core.web.domain.AjaxResult; import com.aps.common.core.web.page.TableDataInfo; -import com.aps.core.domain.ApsGasPipelineMo; +import com.aps.common.log.annotation.Log; +import com.aps.common.log.enums.BusinessType; +import com.aps.common.security.annotation.RequiresPermissions; import com.aps.core.domain.ApsGasPipelinePrediction; import com.aps.core.service.IApsGasPipelinePredictionService; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; import jakarta.servlet.http.HttpServletResponse; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.PutMapping; -import org.springframework.web.bind.annotation.DeleteMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; -import com.aps.common.log.annotation.Log; -import com.aps.common.log.enums.BusinessType; -import com.aps.common.security.annotation.RequiresPermissions; -import com.aps.common.core.web.controller.BaseController; -import com.aps.common.core.web.domain.AjaxResult; -import com.aps.common.core.utils.poi.ExcelUtil; +import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; + +import java.util.List; /** * 绠¤矾鎵嬪伐姘斾綋棰勬祴鏁版嵁Controller @@ -61,8 +53,8 @@ @PostMapping("/importData") public AjaxResult importData(MultipartFile file) throws Exception { - int i = apsGasPipelinePredictionService.batchInsertApsGasPipelinePrediction(file); - return toAjax(i); + apsGasPipelinePredictionService.batchInsertApsGasPipelinePrediction(file); + return toAjax(true); } /** * 瀵煎嚭绠¤矾鎵嬪伐姘斾綋棰勬祴鏁版嵁鍒楄〃 diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/controller/mainPlan/ApsMaterialProductGroupManagementController.java b/aps-modules/aps-core/src/main/java/com/aps/core/controller/mainPlan/ApsMaterialProductGroupManagementController.java index 347af56..97eefb8 100644 --- a/aps-modules/aps-core/src/main/java/com/aps/core/controller/mainPlan/ApsMaterialProductGroupManagementController.java +++ b/aps-modules/aps-core/src/main/java/com/aps/core/controller/mainPlan/ApsMaterialProductGroupManagementController.java @@ -53,8 +53,8 @@ @PostMapping("/importData") public AjaxResult importData(MultipartFile file) throws Exception { - int i = apsMaterialProductGroupManagementService.batchInsertApsMaterialProductGroupManagement(file); - return toAjax(i); + apsMaterialProductGroupManagementService.batchInsertApsMaterialProductGroupManagement(file); + return toAjax(true); } /** * 瀵煎嚭鐗╂枡浜у搧缁勬暟鎹鐞嗗垪琛� diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsGasPipelinePrediction.java b/aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsGasPipelinePrediction.java index 294c62e..6a23249 100644 --- a/aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsGasPipelinePrediction.java +++ b/aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsGasPipelinePrediction.java @@ -2,13 +2,19 @@ import com.aps.common.core.annotation.Excel; import com.aps.common.core.web.domain.BaseEntity; +import com.baomidou.mybatisplus.annotation.TableField; import com.fasterxml.jackson.annotation.JsonFormat; +import com.fasterxml.jackson.annotation.JsonIgnore; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import org.springframework.data.annotation.Id; import java.math.BigDecimal; import java.sql.Timestamp; +import java.text.SimpleDateFormat; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; /** * 绠¤矾鎵嬪伐姘斾綋棰勬祴鏁版嵁瀵硅薄 aps_gas_pipeline_prediction @@ -49,4 +55,17 @@ @Schema(description = "鏁伴噺") private BigDecimal predictQuantity; + @JsonIgnore + @TableField(exist = false) + private String key; + + @JsonIgnore + public String getKey() { + if (key == null && getPredictDate() != null) { + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM"); + key = getFactory() + "##" + getMaterialCode() + "##" + sdf.format(getPredictDate()); + } + return key; + } + } diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsMaterialProductGroupManagement.java b/aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsMaterialProductGroupManagement.java index da7a861..a51836c 100644 --- a/aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsMaterialProductGroupManagement.java +++ b/aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsMaterialProductGroupManagement.java @@ -1,7 +1,9 @@ package com.aps.core.domain; import com.aps.common.core.web.domain.BaseEntity; +import com.baomidou.mybatisplus.annotation.TableField; import com.fasterxml.jackson.annotation.JsonFormat; +import com.fasterxml.jackson.annotation.JsonIgnore; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import org.apache.commons.lang3.builder.ToStringBuilder; @@ -11,14 +13,13 @@ /** * 鐗╂枡浜у搧缁勬暟鎹鐞嗗璞� aps_material_product_group_management - * + * * @author ruoyi * @date 2025-05-19 */ @Schema(description = "鐗╂枡浜у搧缁勬暟鎹鐞嗗疄浣撶被") @Data -public class ApsMaterialProductGroupManagement extends BaseEntity -{ +public class ApsMaterialProductGroupManagement extends BaseEntity { private static final long serialVersionUID = 1L; @Id @@ -27,104 +28,114 @@ @Schema(description = "ID") private Long id; - /** 閫傜敤宸ュ巶 鍙傝�� aps_factory */ + /** + * 閫傜敤宸ュ巶 鍙傝�� aps_factory + */ @Excel(name = "閫傜敤宸ュ巶 鍙傝�� aps_factory") @Schema(description = "閫傜敤宸ュ巶 鍙傝�� aps_factory") private String factory; - /** 鏂欏彿 */ + /** + * 鏂欏彿 + */ @Excel(name = "鏂欏彿") @Schema(description = "鏂欏彿") private String materialCode; - /** 涓撲笟 鍙傝�� aps_domain */ + /** + * 涓撲笟 鍙傝�� aps_domain + */ @Excel(name = "涓撲笟 鍙傝�� aps_domain") @Schema(description = "涓撲笟 鍙傝�� aps_domain") private String domain; - /** 鏄惁涓轰富闃� 鏄�/鍚� */ + /** + * 鏄惁涓轰富闃� 鏄�/鍚� + */ @Excel(name = "鏄惁涓轰富闃� 鏄�/鍚�") @Schema(description = "鏄惁涓轰富闃� 鏄�/鍚�") private String isMain; - /** 鏂欏彿绫诲埆 鍒堕�犱欢/閲囪喘浠� */ + @JsonIgnore + @TableField(exist = false) + private String key; + + @JsonIgnore + public String getKey() { + if (key == null) { + key = getFactory() + "##" + getMaterialCode(); + } + return key; + } + + /** + * 鏂欏彿绫诲埆 鍒堕�犱欢/閲囪喘浠� + */ @Excel(name = "鏂欏彿绫诲埆 鍒堕�犱欢/閲囪喘浠�") @Schema(description = "鏂欏彿绫诲埆 鍒堕�犱欢/閲囪喘浠�") private String materialType; - public void setId(Long id) - { + public void setId(Long id) { this.id = id; } - public Long getId() - { + public Long getId() { return id; } - public void setFactory(String factory) - { + public void setFactory(String factory) { this.factory = factory; } - public String getFactory() - { + public String getFactory() { return factory; } - public void setMaterialCode(String materialCode) - { + public void setMaterialCode(String materialCode) { this.materialCode = materialCode; } - public String getMaterialCode() - { + public String getMaterialCode() { return materialCode; } - public void setDomain(String domain) - { + public void setDomain(String domain) { this.domain = domain; } - public String getDomain() - { + public String getDomain() { return domain; } - public void setIsMain(String isMain) - { + public void setIsMain(String isMain) { this.isMain = isMain; } - public String getIsMain() - { + public String getIsMain() { return isMain; } - public void setMaterialType(String materialType) - { + public void setMaterialType(String materialType) { this.materialType = materialType; } - public String getMaterialType() - { + public String getMaterialType() { return materialType; } @Override public String toString() { - return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) - .append("id", getId()) - .append("factory", getFactory()) - .append("materialCode", getMaterialCode()) - .append("domain", getDomain()) - .append("createBy", getCreateBy()) - .append("createTime", getCreateTime()) - .append("updateBy", getUpdateBy()) - .append("updateTime", getUpdateTime()) - .append("isMain", getIsMain()) - .append("materialType", getMaterialType()) - .toString(); + return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE) + .append("id", getId()) + .append("factory", getFactory()) + .append("materialCode", getMaterialCode()) + .append("domain", getDomain()) + .append("createBy", getCreateBy()) + .append("createTime", getCreateTime()) + .append("updateBy", getUpdateBy()) + .append("updateTime", getUpdateTime()) + .append("isMain", getIsMain()) + .append("materialType", getMaterialType()) + .toString(); } } diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsWeldSeamStandard.java b/aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsWeldSeamStandard.java index fb3e055..4083ea4 100644 --- a/aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsWeldSeamStandard.java +++ b/aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsWeldSeamStandard.java @@ -49,6 +49,10 @@ /** 鐒婃帴褰㈠紡(hup\lod) */ @Excel(name = "鐒婃帴褰㈠紡") private String type; + + /** 閫傜敤宸ュ巶 */ + @Excel(name = "閫傜敤宸ュ巶") + private String plant; /** 鏄惁鍒犻櫎(0鍚︼紝1鏄�) */ private Integer delFlag; diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/mapper/ApsGasPipelinePredictionMapper.java b/aps-modules/aps-core/src/main/java/com/aps/core/mapper/ApsGasPipelinePredictionMapper.java index c653463..7ca23e2 100644 --- a/aps-modules/aps-core/src/main/java/com/aps/core/mapper/ApsGasPipelinePredictionMapper.java +++ b/aps-modules/aps-core/src/main/java/com/aps/core/mapper/ApsGasPipelinePredictionMapper.java @@ -1,9 +1,15 @@ package com.aps.core.mapper; import com.aps.core.domain.ApsGasPipelinePrediction; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Select; +import org.apache.ibatis.annotations.Update; +import org.jetbrains.annotations.NotNull; import java.util.List; +import java.util.Map; +import java.util.Set; /** * 绠¤矾鎵嬪伐姘斾綋棰勬祴鏁版嵁Mapper鎺ュ彛 @@ -62,4 +68,19 @@ public int deleteApsGasPipelinePredictionByIds(Long[] ids); void deleteAll(); + + @Select(""" + <script> + select id, factory || '##' || material_code || '##' || TO_CHAR(predict_date, 'yyyy-MM') as key + from aps_gas_pipeline_prediction + where 1 = 0 + <if test="!keys.isEmpty()">or factory || '##' || material_code || '##' || TO_CHAR(predict_date, 'yyyy-MM') in + <foreach collection="keys" item="item" open="(" separator="," close=")"> + #{item} + </foreach> + </if> + </script> + """) + List<Map<String, Object>> selectByFacOrMaterial(@NotNull Set<String> keys); + } diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/mapper/ApsMaterialProductGroupManagementMapper.java b/aps-modules/aps-core/src/main/java/com/aps/core/mapper/ApsMaterialProductGroupManagementMapper.java index 44a8536..956dfc5 100644 --- a/aps-modules/aps-core/src/main/java/com/aps/core/mapper/ApsMaterialProductGroupManagementMapper.java +++ b/aps-modules/aps-core/src/main/java/com/aps/core/mapper/ApsMaterialProductGroupManagementMapper.java @@ -2,8 +2,11 @@ import com.aps.core.domain.ApsMaterialProductGroupManagement; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Select; +import org.jetbrains.annotations.NotNull; import java.util.List; +import java.util.Set; /** * 鐗╂枡浜у搧缁勬暟鎹鐞哅apper鎺ュ彛 @@ -62,4 +65,18 @@ public int deleteApsMaterialProductGroupManagementByIds(Long[] ids); void deleteAll(); + + + @Select(""" + <script> + select distinct factory || '##' || material_code from aps_material_product_group_management + where 1 = 0 + <if test="!keys.isEmpty()">or factory || '##' || material_code in + <foreach collection="keys" item="item" open="(" separator="," close=")"> + #{item} + </foreach> + </if> + </script> + """) + Set<String> selectByFacOrMaterial(@NotNull Set<String> keys); } diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsGasPipelinePredictionServiceImpl.java b/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsGasPipelinePredictionServiceImpl.java index cf3d710..3012ee2 100644 --- a/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsGasPipelinePredictionServiceImpl.java +++ b/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsGasPipelinePredictionServiceImpl.java @@ -4,8 +4,10 @@ import com.aps.common.core.utils.DateUtils; import com.aps.common.security.utils.SecurityUtils; import com.aps.core.domain.ApsGasPipelinePrediction; +import com.aps.core.domain.ApsMaterialProductGroupManagement; import com.aps.core.mapper.ApsGasPipelinePredictionMapper; import com.aps.core.service.IApsGasPipelinePredictionService; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import io.micrometer.common.util.StringUtils; import lombok.SneakyThrows; import org.apache.poi.ss.usermodel.Row; @@ -18,93 +20,87 @@ import java.math.BigDecimal; import java.sql.Timestamp; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; +import java.text.SimpleDateFormat; +import java.util.*; +import java.util.concurrent.atomic.AtomicBoolean; +import java.util.stream.Collectors; /** * 绠¤矾鎵嬪伐姘斾綋棰勬祴鏁版嵁Service涓氬姟灞傚鐞� - * + * * @author ruoyi * @date 2025-05-19 */ @Service -public class ApsGasPipelinePredictionServiceImpl implements IApsGasPipelinePredictionService -{ +public class ApsGasPipelinePredictionServiceImpl implements IApsGasPipelinePredictionService { @Autowired private ApsGasPipelinePredictionMapper apsGasPipelinePredictionMapper; /** * 鏌ヨ绠¤矾鎵嬪伐姘斾綋棰勬祴鏁版嵁 - * + * * @param id 绠¤矾鎵嬪伐姘斾綋棰勬祴鏁版嵁涓婚敭 * @return 绠¤矾鎵嬪伐姘斾綋棰勬祴鏁版嵁 */ @Override - public ApsGasPipelinePrediction selectApsGasPipelinePredictionById(Long id) - { + public ApsGasPipelinePrediction selectApsGasPipelinePredictionById(Long id) { return apsGasPipelinePredictionMapper.selectApsGasPipelinePredictionById(id); } /** * 鏌ヨ绠¤矾鎵嬪伐姘斾綋棰勬祴鏁版嵁鍒楄〃 - * + * * @param apsGasPipelinePrediction 绠¤矾鎵嬪伐姘斾綋棰勬祴鏁版嵁 * @return 绠¤矾鎵嬪伐姘斾綋棰勬祴鏁版嵁 */ @Override - public List<ApsGasPipelinePrediction> selectApsGasPipelinePredictionList(ApsGasPipelinePrediction apsGasPipelinePrediction) - { + public List<ApsGasPipelinePrediction> selectApsGasPipelinePredictionList(ApsGasPipelinePrediction apsGasPipelinePrediction) { return apsGasPipelinePredictionMapper.selectApsGasPipelinePredictionList(apsGasPipelinePrediction); } /** * 鏂板绠¤矾鎵嬪伐姘斾綋棰勬祴鏁版嵁 - * + * * @param apsGasPipelinePrediction 绠¤矾鎵嬪伐姘斾綋棰勬祴鏁版嵁 * @return 缁撴灉 */ @Override - public int insertApsGasPipelinePrediction(ApsGasPipelinePrediction apsGasPipelinePrediction) - { + public int insertApsGasPipelinePrediction(ApsGasPipelinePrediction apsGasPipelinePrediction) { apsGasPipelinePrediction.setCreateTime(DateUtils.getNowDate()); return apsGasPipelinePredictionMapper.insertApsGasPipelinePrediction(apsGasPipelinePrediction); } /** * 淇敼绠¤矾鎵嬪伐姘斾綋棰勬祴鏁版嵁 - * + * * @param apsGasPipelinePrediction 绠¤矾鎵嬪伐姘斾綋棰勬祴鏁版嵁 * @return 缁撴灉 */ @Override - public int updateApsGasPipelinePrediction(ApsGasPipelinePrediction apsGasPipelinePrediction) - { + public int updateApsGasPipelinePrediction(ApsGasPipelinePrediction apsGasPipelinePrediction) { apsGasPipelinePrediction.setUpdateTime(DateUtils.getNowDate()); return apsGasPipelinePredictionMapper.updateApsGasPipelinePrediction(apsGasPipelinePrediction); } /** * 鎵归噺鍒犻櫎绠¤矾鎵嬪伐姘斾綋棰勬祴鏁版嵁 - * + * * @param ids 闇�瑕佸垹闄ょ殑绠¤矾鎵嬪伐姘斾綋棰勬祴鏁版嵁涓婚敭 * @return 缁撴灉 */ @Override - public int deleteApsGasPipelinePredictionByIds(Long[] ids) - { + public int deleteApsGasPipelinePredictionByIds(Long[] ids) { return apsGasPipelinePredictionMapper.deleteApsGasPipelinePredictionByIds(ids); } /** * 鍒犻櫎绠¤矾鎵嬪伐姘斾綋棰勬祴鏁版嵁淇℃伅 - * + * * @param id 绠¤矾鎵嬪伐姘斾綋棰勬祴鏁版嵁涓婚敭 * @return 缁撴灉 */ @Override - public int deleteApsGasPipelinePredictionById(Long id) - { + public int deleteApsGasPipelinePredictionById(Long id) { return apsGasPipelinePredictionMapper.deleteApsGasPipelinePredictionById(id); } @@ -117,16 +113,16 @@ int rows = sheet.getLastRowNum(); if (rows > 0) { List<ApsGasPipelinePrediction> list = new ArrayList<>(); - + Set<String> keys = new HashSet<>(); /*鏁版嵁鍒椾粠1寮�濮�*/ - for (int i = 1; i <= rows; i++) { + for (int i = rows; i > 0; --i) { Row row = sheet.getRow(i); - if (row.getCell(0) == null){ + if (row.getCell(0) == null) { continue; } String materialCode = row.getCell(0).getStringCellValue(); - if (StringUtils.isEmpty(materialCode)){ + if (StringUtils.isEmpty(materialCode)) { continue; } String factory = row.getCell(1).getStringCellValue(); @@ -142,12 +138,36 @@ item.setCreateTime(DateUtils.getNowDate()); item.setPredictQuantity(new BigDecimal(quantity)); item.setPredictDate(new Timestamp(date.getTime())); - list.add(item); + if (!keys.contains(item.getKey())) { + keys.add(item.getKey()); + list.add(item); + } } } if (!list.isEmpty()) { - apsGasPipelinePredictionMapper.deleteAll(); - apsGasPipelinePredictionMapper.insert(list); + List<Map<String, Object>> facCodeKey = apsGasPipelinePredictionMapper.selectByFacOrMaterial(keys); + if (!facCodeKey.isEmpty()) { + Iterator<ApsGasPipelinePrediction> it = list.iterator(); + while (it.hasNext()) { + ApsGasPipelinePrediction item = it.next(); + long count = facCodeKey.stream() + .filter(map -> map.get("key").equals(item.getKey())) + .peek(row -> { + item.setId((Long) row.get("id")); + item.setCreateBy(null); + item.setCreateTime(null); + item.setUpdateBy(SecurityUtils.getUsername()); + item.setUpdateTime(new Timestamp(System.currentTimeMillis())); + apsGasPipelinePredictionMapper.updateById(item); + }).count(); + if (count > 0){ + it.remove(); + } + } + } + if (!list.isEmpty()) { + apsGasPipelinePredictionMapper.insert(list); + } } return list.size(); } diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsMaterialProductGroupManagementServiceImpl.java b/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsMaterialProductGroupManagementServiceImpl.java index 5a9c0e1..52ac0a3 100644 --- a/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsMaterialProductGroupManagementServiceImpl.java +++ b/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsMaterialProductGroupManagementServiceImpl.java @@ -2,9 +2,8 @@ import java.math.BigDecimal; import java.sql.Timestamp; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; +import java.util.*; +import java.util.stream.Collectors; import cn.hutool.core.util.IdUtil; import com.aps.common.core.utils.DateUtils; @@ -13,6 +12,7 @@ import com.aps.core.domain.ApsMaterialProductGroupManagement; import com.aps.core.mapper.ApsMaterialProductGroupManagementMapper; import com.aps.core.service.IApsMaterialProductGroupManagementService; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import io.micrometer.common.util.StringUtils; import lombok.SneakyThrows; import org.apache.poi.ss.usermodel.Row; @@ -123,7 +123,8 @@ List<ApsMaterialProductGroupManagement> list = new ArrayList<>(); /*鏁版嵁鍒椾粠1寮�濮�*/ - for (int i = 1; i <= rows; i++) { + Set<String> keys = new HashSet<>(); + for (int i = rows; i > 0; --i) { Row row = sheet.getRow(i); if (row.getCell(0) == null) { continue; @@ -149,11 +150,35 @@ item.setIsMain(isMain); item.setCreateBy(SecurityUtils.getUsername()); item.setCreateTime(DateUtils.getNowDate()); - list.add(item); + if (!keys.contains(item.getKey())) { + keys.add(item.getKey()); + list.add(item); + } } } if (!list.isEmpty()) { - apsMaterialProductGroupManagementMapper.insert(list); + Set<String> facCodeKey = apsMaterialProductGroupManagementMapper.selectByFacOrMaterial(keys); + if (!facCodeKey.isEmpty()) { + Iterator<ApsMaterialProductGroupManagement> it = list.iterator(); + while (it.hasNext()) { + ApsMaterialProductGroupManagement item = it.next(); + if (facCodeKey.contains(item.getKey())) { + LambdaUpdateWrapper<ApsMaterialProductGroupManagement> wrapper = new LambdaUpdateWrapper<>(); + wrapper.eq(ApsMaterialProductGroupManagement::getFactory, item.getFactory()); + wrapper.eq(ApsMaterialProductGroupManagement::getMaterialCode, item.getMaterialCode()); + item.setCreateBy(null); + item.setCreateTime(null); + item.setUpdateBy(SecurityUtils.getUsername()); + item.setUpdateTime(new Timestamp(System.currentTimeMillis())); + apsMaterialProductGroupManagementMapper.update(item, wrapper); + it.remove(); + } + } + } + + if (!list.isEmpty()) { + apsMaterialProductGroupManagementMapper.insert(list); + } } return list.size(); } diff --git a/aps-modules/aps-core/src/main/resources/mapper/core/ApsGasPipelineMoMapper.xml b/aps-modules/aps-core/src/main/resources/mapper/core/ApsGasPipelineMoMapper.xml index 0e1c12b..b9d9b9e 100644 --- a/aps-modules/aps-core/src/main/resources/mapper/core/ApsGasPipelineMoMapper.xml +++ b/aps-modules/aps-core/src/main/resources/mapper/core/ApsGasPipelineMoMapper.xml @@ -30,6 +30,7 @@ <if test="planEnd != null and planEnd != ''"> and plan_end = #{planEnd}</if> <if test="quantity != null and quantity != ''"> and quantity = #{quantity}</if> </where> + order by create_time desc </select> <select id="selectApsGasPipelineMoById" parameterType="Long" resultMap="ApsGasPipelineMoResult"> diff --git a/aps-modules/aps-core/src/main/resources/mapper/core/ApsGasPipelinePredictionMapper.xml b/aps-modules/aps-core/src/main/resources/mapper/core/ApsGasPipelinePredictionMapper.xml index b8c149a..5dd5657 100644 --- a/aps-modules/aps-core/src/main/resources/mapper/core/ApsGasPipelinePredictionMapper.xml +++ b/aps-modules/aps-core/src/main/resources/mapper/core/ApsGasPipelinePredictionMapper.xml @@ -28,6 +28,7 @@ <if test="predictDate != null and predictDate != ''"> and predict_date = #{predictDate}</if> <if test="predictQuantity != null and predictQuantity != ''"> and predict_quantity = #{predictQuantity}</if> </where> + order by create_time desc </select> <select id="selectApsGasPipelinePredictionById" parameterType="Long" resultMap="ApsGasPipelinePredictionResult"> diff --git a/aps-modules/aps-core/src/main/resources/mapper/core/ApsMaterialProductGroupManagementMapper.xml b/aps-modules/aps-core/src/main/resources/mapper/core/ApsMaterialProductGroupManagementMapper.xml index 73a5bd1..1714c80 100644 --- a/aps-modules/aps-core/src/main/resources/mapper/core/ApsMaterialProductGroupManagementMapper.xml +++ b/aps-modules/aps-core/src/main/resources/mapper/core/ApsMaterialProductGroupManagementMapper.xml @@ -30,6 +30,7 @@ <if test="isMain != null and isMain != ''"> and is_main = #{isMain}</if> <if test="materialType != null and materialType != ''"> and material_type = #{materialType}</if> </where> + order by create_time desc </select> <select id="selectApsMaterialProductGroupManagementById" parameterType="Long" resultMap="ApsMaterialProductGroupManagementResult"> diff --git a/aps-modules/aps-core/src/main/resources/mapper/core/ApsWeldSeamStandardMapper.xml b/aps-modules/aps-core/src/main/resources/mapper/core/ApsWeldSeamStandardMapper.xml index bf80750..4cbf684 100644 --- a/aps-modules/aps-core/src/main/resources/mapper/core/ApsWeldSeamStandardMapper.xml +++ b/aps-modules/aps-core/src/main/resources/mapper/core/ApsWeldSeamStandardMapper.xml @@ -12,11 +12,12 @@ <result property="hupQty" column="hup_qty" /> <result property="lodQty" column="lod_qty" /> <result property="type" column="type" /> + <result property="plant" column="plant" /> <result property="delFlag" column="del_flag" /> </resultMap> <sql id="selectApsWeldSeamStandardVo"> - select id, item_code, item_figure, item_figure_version, hup_qty, lod_qty, type, del_flag from aps_weld_seam_standard + select id, item_code, item_figure, item_figure_version, hup_qty, lod_qty, type, plant, del_flag from aps_weld_seam_standard </sql> <select id="selectApsWeldSeamStandardList" parameterType="com.aps.core.domain.ApsWeldSeamStandard" resultMap="ApsWeldSeamStandardResult"> @@ -28,6 +29,7 @@ <if test="hupQty != null "> and hup_qty = #{hupQty}</if> <if test="lodQty != null "> and lod_qty = #{lodQty}</if> <if test="type != null and type != ''"> and type = #{type}</if> + <if test="plant != null and plant != ''"> and plant = #{plant}</if> and del_flag = 0 </where> </select> -- Gitblit v1.9.3