sfd
2025-05-23 8c6327da1e57033a8d331d11e7f2e81496f1d6b5
修改导入导出规则
已修改17个文件
已添加1个文件
690 ■■■■ 文件已修改
aps-common/aps-common-security/src/main/java/com/aps/common/security/utils/DictUtils.java 65 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
aps-modules/aps-core/src/main/java/com/aps/core/controller/basicData/ApsGasPipelineCapacityPlanController.java 40 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
aps-modules/aps-core/src/main/java/com/aps/core/controller/mainPlan/ApsGasPipelineMoController.java 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
aps-modules/aps-core/src/main/java/com/aps/core/controller/mainPlan/ApsGasPipelinePredictionController.java 27 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsGasPipelineMo.java 59 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsGasPipelinePrediction.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsStandardProcess.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
aps-modules/aps-core/src/main/java/com/aps/core/mapper/ApsShopMapper.java 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
aps-modules/aps-core/src/main/java/com/aps/core/mapper/ApsStandardProcessMapper.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
aps-modules/aps-core/src/main/java/com/aps/core/service/IApsShopService.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsGasPipelineMoServiceImpl.java 65 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsGasPipelinePredictionServiceImpl.java 112 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsMaterialProductGroupManagementServiceImpl.java 157 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsShopServiceImpl.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsStandardProcessServiceImpl.java 64 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
aps-modules/aps-core/src/main/resources/templates/标准工序数据模板v1.0.xlsx 补丁 | 查看 | 原始文档 | blame | 历史
aps-modules/aps-core/src/main/resources/templates/气体工单数据模板v1.0.xlsx 补丁 | 查看 | 原始文档 | blame | 历史
aps-modules/aps-core/src/main/resources/templates/气体预测数据模板v1.0.xlsx 补丁 | 查看 | 原始文档 | blame | 历史
aps-common/aps-common-security/src/main/java/com/aps/common/security/utils/DictUtils.java
@@ -1,43 +1,43 @@
package com.aps.common.security.utils;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
import java.util.Objects;
import com.alibaba.fastjson2.JSONArray;
import com.aps.common.core.constant.CacheConstants;
import com.aps.common.core.utils.SpringUtils;
import com.aps.common.core.utils.StringUtils;
import com.aps.common.redis.service.RedisService;
import com.aps.system.api.domain.SysDictData;
import org.springframework.util.CollectionUtils;
/**
 * å­—典工具类
 *
 *
 * @author ruoyi
 */
public class DictUtils
{
public class DictUtils {
    /**
     * è®¾ç½®å­—典缓存
     *
     * @param key å‚æ•°é”®
     *
     * @param key       å‚æ•°é”®
     * @param dictDatas å­—典数据列表
     */
    public static void setDictCache(String key, List<SysDictData> dictDatas)
    {
    public static void setDictCache(String key, List<SysDictData> dictDatas) {
        SpringUtils.getBean(RedisService.class).setCacheObject(getCacheKey(key), dictDatas);
    }
    /**
     * èŽ·å–å­—å…¸ç¼“å­˜
     *
     *
     * @param key å‚æ•°é”®
     * @return dictDatas å­—典数据列表
     */
    public static List<SysDictData> getDictCache(String key)
    {
    public static List<SysDictData> getDictCache(String key) {
        JSONArray arrayCache = SpringUtils.getBean(RedisService.class).getCacheObject(getCacheKey(key));
        if (StringUtils.isNotNull(arrayCache))
        {
        if (StringUtils.isNotNull(arrayCache)) {
            return arrayCache.toList(SysDictData.class);
        }
        return null;
@@ -45,31 +45,56 @@
    /**
     * åˆ é™¤æŒ‡å®šå­—典缓存
     *
     *
     * @param key å­—典键
     */
    public static void removeDictCache(String key)
    {
    public static void removeDictCache(String key) {
        SpringUtils.getBean(RedisService.class).deleteObject(getCacheKey(key));
    }
    /**
     * æ¸…空字典缓存
     */
    public static void clearDictCache()
    {
    public static void clearDictCache() {
        Collection<String> keys = SpringUtils.getBean(RedisService.class).keys(CacheConstants.SYS_DICT_KEY + "*");
        SpringUtils.getBean(RedisService.class).deleteObject(keys);
    }
    /**
     * è®¾ç½®cache key
     *
     *
     * @param configKey å‚æ•°é”®
     * @return ç¼“存键key
     */
    public static String getCacheKey(String configKey)
    {
    public static String getCacheKey(String configKey) {
        return CacheConstants.SYS_DICT_KEY + configKey;
    }
    public static interface CacheValue{
        String get(String label);
    }
    /**
     * æ ¹æ®å­—典类型和字典标签获取字典值
     *
     * @param dictType
     * @return
     */
    public static CacheValue getCacheValue(String dictType) {
        List<SysDictData> cacheData = StringUtils.isEmpty(dictType) ? Collections.emptyList() : getDictCache(dictType);
        return label -> {
            if (CollectionUtils.isEmpty(cacheData)){
                return null;
            }
            if(StringUtils.isEmpty(label)){
                return null;
            }
            return cacheData.stream().filter(item -> Objects.equals(item.getDictLabel(), label))
                    .findFirst()
                    .map(SysDictData::getDictValue)
                    .orElse(null);
        };
    }
}
aps-modules/aps-core/src/main/java/com/aps/core/controller/basicData/ApsGasPipelineCapacityPlanController.java
@@ -10,8 +10,10 @@
import com.aps.common.security.annotation.RequiresPermissions;
import com.aps.common.security.utils.SecurityUtils;
import com.aps.core.domain.ApsGasPipelineCapacityPlan;
import com.aps.core.domain.ApsShop;
import com.aps.core.domain.ApsStandardProcess;
import com.aps.core.service.IApsGasPipelineCapacityPlanService;
import com.aps.core.service.IApsShopService;
import com.aps.core.service.IApsStandardProcessService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
@@ -20,6 +22,7 @@
import org.springframework.web.bind.annotation.*;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import java.util.Objects;
@@ -40,6 +43,9 @@
    @Autowired
    private IApsStandardProcessService apsStandardProcessService;
    @Autowired
    private IApsShopService apsShopService;
    /**
     * æŸ¥è¯¢æ°”体管路产能规划列表
     */
@@ -53,20 +59,30 @@
        apsStandardProcess.setMajor(apsGasPipelineCapacityPlan.getMajor());
        apsStandardProcess.setPlant(apsGasPipelineCapacityPlan.getOrgCode());
        List<ApsStandardProcess> processList = apsStandardProcessService.selectApsStandardProcessListAll(apsStandardProcess);
        List<ApsShop> apsShops = apsShopService.findShopByFactory(apsGasPipelineCapacityPlan.getOrgCode());
        if (list.isEmpty()) {
            for (ApsStandardProcess apsStandardProcessTemp : processList) {
                ApsGasPipelineCapacityPlan apsGasPipelineCapacityPlanTemp = new ApsGasPipelineCapacityPlan();
                apsGasPipelineCapacityPlanTemp.setProcessName(apsStandardProcessTemp.getProcessName());
                apsGasPipelineCapacityPlanTemp.setOrgCode(apsStandardProcessTemp.getPlant());
                apsGasPipelineCapacityPlanTemp.setWorkshop(apsStandardProcessTemp.getWorkShop());
                apsGasPipelineCapacityPlanTemp.setWorkshop(apsShops.stream()
                        .filter(shop -> Objects.equals(shop.getShopName(), apsStandardProcessTemp.getWorkShop()))
                        .map(ApsShop::getShopCode)
                        .findFirst()
                        .orElse(null));
                list.add(apsGasPipelineCapacityPlanTemp);
            }
        } else {
            list.forEach(item -> {
                processList.stream().filter(p -> Objects.equals(p.getPlant(), item.getOrgCode()))
                        .filter(p -> Objects.equals(p.getProcessName(), item.getProcessName()))
            list.forEach(capacityPlan -> {
                processList.stream().filter(p -> Objects.equals(p.getPlant(), capacityPlan.getOrgCode()))
                        .filter(p -> Objects.equals(p.getMajor(), capacityPlan.getMajor()))
                        .filter(p -> p.getWorkShop() != null)
                        .findFirst().ifPresent(p -> {
                            item.setWorkshop(p.getWorkShop());
                            capacityPlan.setWorkshop(apsShops.stream()
                                    .filter(shop -> Objects.equals(shop.getShopCode(), p.getWorkShop()))
                                    .map(ApsShop::getShopName)
                                    .findFirst()
                                    .orElse(null));
                        });
            });
        }
@@ -84,15 +100,19 @@
                    newProcess.add(apsStandardProcessTemp);
                }
            }
            for (ApsStandardProcess processName : newProcess) {
            for (ApsStandardProcess process : newProcess) {
                ApsGasPipelineCapacityPlan apsGasPipelineCapacityPlanTemp = new ApsGasPipelineCapacityPlan();
                apsGasPipelineCapacityPlanTemp.setProcessName(processName.getProcessName());
                apsGasPipelineCapacityPlanTemp.setOrgCode(processName.getPlant());
                apsGasPipelineCapacityPlanTemp.setWorkshop(processName.getWorkShop());
                apsGasPipelineCapacityPlanTemp.setProcessName(process.getProcessName());
                apsGasPipelineCapacityPlanTemp.setOrgCode(process.getPlant());
                apsGasPipelineCapacityPlanTemp.setWorkshop(apsShops.stream()
                        .filter(shop -> Objects.equals(shop.getShopName(), process.getWorkShop()))
                        .map(ApsShop::getShopCode)
                        .findFirst()
                        .orElse(null));
                list.add(apsGasPipelineCapacityPlanTemp);
            }
        }
        list.sort((a, b) -> a.getProcessName().compareTo(b.getProcessName()));
        list.sort(Comparator.comparing(ApsGasPipelineCapacityPlan::getProcessName));
        return getDataTable(list);
    }
aps-modules/aps-core/src/main/java/com/aps/core/controller/mainPlan/ApsGasPipelineMoController.java
@@ -7,13 +7,19 @@
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.security.utils.DictUtils;
import com.aps.core.domain.ApsGasPipelineMo;
import com.aps.core.service.IApsGasPipelineMoService;
import com.aps.system.api.domain.SysDictData;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.servlet.http.HttpServletResponse;
import lombok.SneakyThrows;
import org.apache.commons.io.IOUtils;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.ss.usermodel.WorkbookFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.io.ByteArrayResource;
import org.springframework.http.HttpHeaders;
@@ -21,6 +27,8 @@
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.net.URLEncoder;
import java.nio.charset.StandardCharsets;
import java.util.List;
@@ -56,7 +64,7 @@
    @Operation(summary = "导入管路手工气体工单数据", description = "批量导入")
    @Log(title = "导入管路手工气体工单数据", businessType = BusinessType.IMPORT)
    @RequiresPermissions("gasPipeline:mo:import")
//    @RequiresPermissions("gasPipeline:mo:import")
    @PostMapping("/importData")
    public AjaxResult importData(MultipartFile file) throws Exception {
@@ -135,6 +143,20 @@
    @GetMapping("/template")
    public ResponseEntity<ByteArrayResource> exportTemplate() {
        byte[] file = IOUtils.resourceToByteArray("/templates/气体工单数据模板v1.0.xlsx");
        Workbook workbook = WorkbookFactory.create(new ByteArrayInputStream(file));
        Sheet sheet = workbook.getSheet("字典-生产基地");
        List<SysDictData> sysDictDataList = DictUtils.getDictCache("aps_factory");
        if (sysDictDataList != null) {
            for (int i = 0; i < sysDictDataList.size(); i++) {
                Row row = sheet.createRow(i + 1);
                row.createCell(0).setCellValue(sysDictDataList.get(i).getDictValue());
                row.createCell(1).setCellValue(sysDictDataList.get(i).getDictLabel());
            }
            ByteArrayOutputStream baos = new ByteArrayOutputStream();
            workbook.write(baos);
            file = baos.toByteArray();
        }
        workbook.close();
        ByteArrayResource resource = new ByteArrayResource(file);
        return ResponseEntity.ok()
                .header("Access-Control-Expose-Headers", HttpHeaders.CONTENT_DISPOSITION)
aps-modules/aps-core/src/main/java/com/aps/core/controller/mainPlan/ApsGasPipelinePredictionController.java
@@ -7,23 +7,28 @@
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.security.utils.DictUtils;
import com.aps.core.domain.ApsGasPipelinePrediction;
import com.aps.core.domain.ApsMaterialProductGroupManagement;
import com.aps.core.service.IApsGasPipelinePredictionService;
import com.aps.system.api.domain.SysDictData;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.servlet.http.HttpServletResponse;
import lombok.SneakyThrows;
import org.apache.commons.io.IOUtils;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.ss.usermodel.WorkbookFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.io.ByteArrayResource;
import org.springframework.http.HttpHeaders;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import java.io.InputStream;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.net.URLEncoder;
import java.nio.charset.StandardCharsets;
import java.util.List;
@@ -57,7 +62,7 @@
    @Operation(summary = "导入手工气体预测数据", description = "批量导入")
    @Log(title = "导入手工气体预测数据", businessType = BusinessType.IMPORT)
    @RequiresPermissions("gasPipeline:prediction:import")
//    @RequiresPermissions("gasPipeline:prediction:import")
    @PostMapping("/importData")
    public AjaxResult importData(MultipartFile file) throws Exception {
@@ -75,6 +80,20 @@
    @GetMapping("/template")
    public ResponseEntity<ByteArrayResource> exportTemplate() {
        byte[] file = IOUtils.resourceToByteArray("/templates/气体预测数据模板v1.0.xlsx");
        Workbook workbook = WorkbookFactory.create(new ByteArrayInputStream(file));
        Sheet sheet = workbook.getSheet("字典-生产基地");
        List<SysDictData> sysDictDataList = DictUtils.getDictCache("aps_factory");
        if (sysDictDataList != null) {
            for (int i = 0; i < sysDictDataList.size(); i++) {
                Row row = sheet.createRow(i + 1);
                row.createCell(0).setCellValue(sysDictDataList.get(i).getDictValue());
                row.createCell(1).setCellValue(sysDictDataList.get(i).getDictLabel());
            }
            ByteArrayOutputStream baos = new ByteArrayOutputStream();
            workbook.write(baos);
            file = baos.toByteArray();
        }
        workbook.close();
        ByteArrayResource resource = new ByteArrayResource(file);
        return ResponseEntity.ok()
                .header("Access-Control-Expose-Headers", HttpHeaders.CONTENT_DISPOSITION)
aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsGasPipelineMo.java
@@ -11,6 +11,7 @@
import java.math.BigDecimal;
import java.sql.Timestamp;
import java.util.Date;
/**
 * ç®¡è·¯æ‰‹å·¥æ°”体工单数据对象 aps_gas_pipeline_mo
@@ -49,66 +50,10 @@
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "计划完工日期", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    @Schema(description = "计划完工日期")
    private Timestamp planEnd;
    private Date planEnd;
    /** æ•°é‡ */
    @Excel(name = "数量")
    @Schema(description = "数量")
    private BigDecimal quantity;
    public void setId(Long id)
    {
        this.id = id;
    }
    public Long getId()
    {
        return id;
    }
    public void setMo(String mo)
    {
        this.mo = mo;
    }
    public String getMo()
    {
        return mo;
    }
    public void setFactory(String factory)
    {
        this.factory = factory;
    }
    public String getFactory()
    {
        return factory;
    }
    public void setMaterialCode(String materialCode)
    {
        this.materialCode = materialCode;
    }
    public String getMaterialCode()
    {
        return materialCode;
    }
    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("mo", getMo())
            .append("factory", getFactory())
            .append("materialCode", getMaterialCode())
            .append("planEnd", getPlanEnd())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .toString();
    }
}
aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsGasPipelinePrediction.java
@@ -12,6 +12,7 @@
import java.math.BigDecimal;
import java.sql.Timestamp;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
@@ -48,7 +49,7 @@
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "预测日期", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    @Schema(description = "预测日期")
    private Timestamp predictDate;
    private Date predictDate;
    /** æ•°é‡ */
    @Excel(name = "数量")
aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsStandardProcess.java
@@ -2,9 +2,13 @@
import com.aps.common.core.annotation.Excel;
import com.aps.common.core.web.domain.BaseEntity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import org.springframework.data.annotation.Id;
import java.math.BigDecimal;
@@ -20,6 +24,10 @@
{
    private static final long serialVersionUID = 1L;
    @Id
    @TableId(type = IdType.AUTO)
    /** ä¸»é”®id */
    @JsonFormat(shape = JsonFormat.Shape.STRING)
    /** ä¸»é”®id */
    @Schema(description = "主键id", type = "Long")
    private Long id;
aps-modules/aps-core/src/main/java/com/aps/core/mapper/ApsShopMapper.java
@@ -1,8 +1,13 @@
package com.aps.core.mapper;
import java.util.List;
import java.util.Set;
import com.aps.core.domain.ApsShop;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;
import org.jetbrains.annotations.NotNull;
/**
 * è½¦é—´Mapper接口
@@ -11,7 +16,7 @@
 * @date 2025-04-14
 */
@Mapper
public interface ApsShopMapper
public interface ApsShopMapper extends BaseMapper<ApsShop>
{
    /**
     * æŸ¥è¯¢è½¦é—´
@@ -60,4 +65,32 @@
     * @return ç»“æžœ
     */
    public int deleteApsShopByIds(String[] ids);
    @Select("""
        <script>
            select * from aps_shop where 1 = 0
            <if test="!codes.isEmpty()"> or shop_name in
                <foreach collection="names" item="item" open="(" separator="," close=")">
                    #{item}
                </foreach>
            </if>
        </script>
    """)
    List<ApsShop> selectApsByName(@NotNull Set<String> names);
    @Select("select * from aps_shop where plant_code = #{orgCode}")
    List<ApsShop> selectApsByFactory(String orgCode);
    @Select("""
        <script>
            select * from aps_shop where 1 = 0
            <if test="!codes.isEmpty()"> or shop_code in
                <foreach collection="codes" item="item" open="(" separator="," close=")">
                    #{item}
                </foreach>
            </if>
        </script>
    """)
    List<ApsShop> selectByCodes(Set<String> codes);
}
aps-modules/aps-core/src/main/java/com/aps/core/mapper/ApsStandardProcessMapper.java
@@ -1,6 +1,7 @@
package com.aps.core.mapper;
import com.aps.core.domain.ApsStandardProcess;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import java.util.List;
@@ -10,7 +11,7 @@
 * @author hjy
 * @date 2025-04-23
 */
public interface ApsStandardProcessMapper
public interface ApsStandardProcessMapper extends BaseMapper<ApsStandardProcess>
{
    /**
     * æŸ¥è¯¢æ ‡å‡†å·¥åº
aps-modules/aps-core/src/main/java/com/aps/core/service/IApsShopService.java
@@ -1,7 +1,10 @@
package com.aps.core.service;
import java.util.List;
import java.util.Set;
import com.aps.core.domain.ApsShop;
import org.jetbrains.annotations.NotNull;
/**
 * è½¦é—´Service接口
@@ -58,4 +61,10 @@
     * @return ç»“æžœ
     */
    public int deleteApsShopById(String id);
    List<ApsShop> findAllShops();
    List<ApsShop> findShopByFactory(String orgCode);
    List<ApsShop> findShopByCodes(@NotNull Set<String> collect);
}
aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsGasPipelineMoServiceImpl.java
@@ -2,25 +2,18 @@
import cn.hutool.core.util.IdUtil;
import com.aps.common.core.utils.DateUtils;
import com.aps.common.core.utils.poi.ExcelUtil;
import com.aps.common.security.utils.DictUtils;
import com.aps.common.security.utils.SecurityUtils;
import com.aps.core.domain.ApsGasPipelineMo;
import com.aps.core.mapper.ApsGasPipelineMoMapper;
import com.aps.core.service.IApsGasPipelineMoService;
import io.micrometer.common.util.StringUtils;
import lombok.SneakyThrows;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.ss.usermodel.WorkbookFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.multipart.MultipartFile;
import java.math.BigDecimal;
import java.sql.Timestamp;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
/**
@@ -108,49 +101,21 @@
    @Transactional(rollbackFor = Exception.class)
    @Override
    public int batchInsertGasPipelineMo(MultipartFile file) {
        Workbook workbook = WorkbookFactory.create(file.getInputStream());
        Sheet sheet = workbook.getSheetAt(0);
        int rows = sheet.getLastRowNum();
        if (rows > 0) {
            List<ApsGasPipelineMo> list = new ArrayList<>();
        ExcelUtil<ApsGasPipelineMo> util = new ExcelUtil<>(ApsGasPipelineMo.class);
        List<ApsGasPipelineMo> tempList = util.importExcel(file.getInputStream());
        DictUtils.CacheValue cacheValue = DictUtils.getCacheValue("aps_factory");
        tempList.forEach(apsGasPipelineMo -> {
            apsGasPipelineMo.setId(IdUtil.getSnowflakeNextId());
            apsGasPipelineMo.setFactory(cacheValue.get(apsGasPipelineMo.getFactory()));
            apsGasPipelineMo.setCreateBy(SecurityUtils.getUsername());
            apsGasPipelineMo.setCreateTime(DateUtils.getNowDate());
        });
            /*数据列从1开始*/
            for (int i = 1; i <= rows; i++) {
                Row row = sheet.getRow(i);
                if (row.getCell(0) == null){
                    continue;
                }
                String mo = row.getCell(0).getStringCellValue();
                if (StringUtils.isEmpty(mo)){
                    continue;
                }
                String factory = row.getCell(1).getStringCellValue();
                String materialNum = row.getCell(2).getStringCellValue();
                double quantity = row.getCell(3).getNumericCellValue();
                Date planEnd = row.getCell(4).getDateCellValue();
                if (StringUtils.isNotBlank(factory) &&
                    StringUtils.isNotBlank(materialNum) &&
                    planEnd != null) {
                    ApsGasPipelineMo apsGasPipelineMo = new ApsGasPipelineMo();
                    apsGasPipelineMo.setMo(mo);
                    apsGasPipelineMo.setMaterialCode(materialNum);
                    apsGasPipelineMo.setId(IdUtil.getSnowflakeNextId());
                    apsGasPipelineMo.setFactory(factory);
                    apsGasPipelineMo.setCreateBy(SecurityUtils.getUsername());
                    apsGasPipelineMo.setCreateTime(DateUtils.getNowDate());
                    apsGasPipelineMo.setQuantity(new BigDecimal(quantity));
                    apsGasPipelineMo.setPlanEnd(new Timestamp(planEnd.getTime()));
                    list.add(apsGasPipelineMo);
                }
            }
            if (!list.isEmpty()) {
                apsGasPipelineMoMapper.deleteAll();
                apsGasPipelineMoMapper.insert(list);
            }
            return list.size();
        if (!tempList.isEmpty()) {
            apsGasPipelineMoMapper.deleteAll();
            apsGasPipelineMoMapper.insert(tempList);
        }
        return 0;
        return tempList.size();
    }
}
aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsGasPipelinePredictionServiceImpl.java
@@ -2,27 +2,19 @@
import cn.hutool.core.util.IdUtil;
import com.aps.common.core.utils.DateUtils;
import com.aps.common.core.utils.poi.ExcelUtil;
import com.aps.common.security.utils.DictUtils;
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;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.ss.usermodel.WorkbookFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;
import java.math.BigDecimal;
import java.sql.Timestamp;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.concurrent.atomic.AtomicBoolean;
import java.util.stream.Collectors;
/**
@@ -107,72 +99,54 @@
    @SneakyThrows
    @Override
    public int batchInsertApsGasPipelinePrediction(MultipartFile file) {
        Workbook workbook = WorkbookFactory.create(file.getInputStream());
        Sheet sheet = workbook.getSheetAt(0);
        int rows = sheet.getLastRowNum();
        if (rows > 0) {
            List<ApsGasPipelinePrediction> list = new ArrayList<>();
            Set<String> keys = new HashSet<>();
            /*数据行从1开始*/
            for (int i = rows; i > 0; --i) {
                Row row = sheet.getRow(i);
                if (row.getCell(0) == null) {
                    continue;
                }
        ExcelUtil<ApsGasPipelinePrediction> util = new ExcelUtil<>(ApsGasPipelinePrediction.class);
        List<ApsGasPipelinePrediction> list = util.importExcel(file.getInputStream());
        DictUtils.CacheValue cacheValue = DictUtils.getCacheValue("aps_factory");
        Set<String> keys = new HashSet<>();
        list.forEach(item -> {
            item.setId(IdUtil.getSnowflakeNextId());
            item.setFactory(cacheValue.get(item.getFactory()));
            item.setCreateBy(SecurityUtils.getUsername());
            item.setCreateTime(DateUtils.getNowDate());
        });
        Collections.reverse(list);
        list = list.stream().filter(item -> {
            item.setKey(null);
            if (!keys.contains(item.getKey())) {
                keys.add(item.getKey());
                return true;
            }
            return false;
        }).collect(Collectors.toList());
                String materialCode = row.getCell(0).getStringCellValue();
                if (StringUtils.isEmpty(materialCode)) {
                    continue;
                }
                String factory = row.getCell(1).getStringCellValue();
                double quantity = row.getCell(2).getNumericCellValue();
                Date date = row.getCell(3).getDateCellValue();
                if (StringUtils.isNotBlank(factory) &&
                    date != null) {
                    ApsGasPipelinePrediction item = new ApsGasPipelinePrediction();
                    item.setId(IdUtil.getSnowflakeNextId());
                    item.setFactory(factory);
                    item.setMaterialCode(materialCode);
                    item.setCreateBy(SecurityUtils.getUsername());
                    item.setCreateTime(DateUtils.getNowDate());
                    item.setPredictQuantity(new BigDecimal(quantity));
                    item.setPredictDate(new Timestamp(date.getTime()));
                    if (!keys.contains(item.getKey())) {
                        keys.add(item.getKey());
                        list.add(item);
        if (!list.isEmpty()) {
            List<Map<String, Object>> facCodeKey = apsGasPipelinePredictionMapper.selectByFacOrMaterial(keys);
            if (!facCodeKey.isEmpty()) {
                Iterator<ApsGasPipelinePrediction> it = list.iterator();
                while (it.hasNext()) {
                    ApsGasPipelinePrediction item = it.next();
                    int count = 0;
                    for (Map<String, Object> map : facCodeKey) {
                        if (map.get("key").equals(item.getKey())) {
                            item.setId((Long) map.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()) {
                List<Map<String, Object>> facCodeKey = apsGasPipelinePredictionMapper.selectByFacOrMaterial(keys);
                if (!facCodeKey.isEmpty()) {
                    Iterator<ApsGasPipelinePrediction> it = list.iterator();
                    while (it.hasNext()) {
                        ApsGasPipelinePrediction item = it.next();
                        int count = 0;
                        for (Map<String, Object> map : facCodeKey) {
                            if (map.get("key").equals(item.getKey())) {
                                item.setId((Long) map.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);
                }
                apsGasPipelinePredictionMapper.insert(list);
            }
            return list.size();
        }
        return 0;
        return list.size();
    }
}
aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsMaterialProductGroupManagementServiceImpl.java
@@ -1,73 +1,64 @@
package com.aps.core.service.impl;
import java.math.BigDecimal;
import java.sql.Timestamp;
import java.util.*;
import java.util.stream.Collectors;
import cn.hutool.core.util.IdUtil;
import com.aps.common.core.utils.DateUtils;
import com.aps.common.core.utils.poi.ExcelUtil;
import com.aps.common.security.utils.DictUtils;
import com.aps.common.security.utils.SecurityUtils;
import com.aps.core.domain.ApsGasPipelinePrediction;
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;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.ss.usermodel.WorkbookFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;
import java.sql.Timestamp;
import java.util.*;
import java.util.stream.Collectors;
/**
 * ç‰©æ–™äº§å“ç»„数据管理Service业务层处理
 *
 *
 * @author ruoyi
 * @date 2025-05-19
 */
@Service
public class ApsMaterialProductGroupManagementServiceImpl implements IApsMaterialProductGroupManagementService
{
public class ApsMaterialProductGroupManagementServiceImpl implements IApsMaterialProductGroupManagementService {
    @Autowired
    private ApsMaterialProductGroupManagementMapper apsMaterialProductGroupManagementMapper;
    /**
     * æŸ¥è¯¢ç‰©æ–™äº§å“ç»„数据管理
     *
     *
     * @param id ç‰©æ–™äº§å“ç»„数据管理主键
     * @return ç‰©æ–™äº§å“ç»„数据管理
     */
    @Override
    public ApsMaterialProductGroupManagement selectApsMaterialProductGroupManagementById(Long id)
    {
    public ApsMaterialProductGroupManagement selectApsMaterialProductGroupManagementById(Long id) {
        return apsMaterialProductGroupManagementMapper.selectApsMaterialProductGroupManagementById(id);
    }
    /**
     * æŸ¥è¯¢ç‰©æ–™äº§å“ç»„数据管理列表
     *
     *
     * @param apsMaterialProductGroupManagement ç‰©æ–™äº§å“ç»„数据管理
     * @return ç‰©æ–™äº§å“ç»„数据管理
     */
    @Override
    public List<ApsMaterialProductGroupManagement> selectApsMaterialProductGroupManagementList(ApsMaterialProductGroupManagement apsMaterialProductGroupManagement)
    {
    public List<ApsMaterialProductGroupManagement> selectApsMaterialProductGroupManagementList(ApsMaterialProductGroupManagement apsMaterialProductGroupManagement) {
        return apsMaterialProductGroupManagementMapper.selectApsMaterialProductGroupManagementList(apsMaterialProductGroupManagement);
    }
    /**
     * æ–°å¢žç‰©æ–™äº§å“ç»„数据管理
     *
     *
     * @param apsMaterialProductGroupManagement ç‰©æ–™äº§å“ç»„数据管理
     * @return ç»“æžœ
     */
    @Override
    public int insertApsMaterialProductGroupManagement(ApsMaterialProductGroupManagement apsMaterialProductGroupManagement)
    {
    public int insertApsMaterialProductGroupManagement(ApsMaterialProductGroupManagement apsMaterialProductGroupManagement) {
        apsMaterialProductGroupManagement.setId(IdUtil.getSnowflakeNextId());
        apsMaterialProductGroupManagement.setCreateBy(SecurityUtils.getUsername());
        apsMaterialProductGroupManagement.setCreateTime(DateUtils.getNowDate());
@@ -76,13 +67,12 @@
    /**
     * ä¿®æ”¹ç‰©æ–™äº§å“ç»„数据管理
     *
     *
     * @param apsMaterialProductGroupManagement ç‰©æ–™äº§å“ç»„数据管理
     * @return ç»“æžœ
     */
    @Override
    public int updateApsMaterialProductGroupManagement(ApsMaterialProductGroupManagement apsMaterialProductGroupManagement)
    {
    public int updateApsMaterialProductGroupManagement(ApsMaterialProductGroupManagement apsMaterialProductGroupManagement) {
        apsMaterialProductGroupManagement.setUpdateTime(DateUtils.getNowDate());
        apsMaterialProductGroupManagement.setUpdateBy(SecurityUtils.getUsername());
        return apsMaterialProductGroupManagementMapper.updateApsMaterialProductGroupManagement(apsMaterialProductGroupManagement);
@@ -90,98 +80,79 @@
    /**
     * æ‰¹é‡åˆ é™¤ç‰©æ–™äº§å“ç»„数据管理
     *
     *
     * @param ids éœ€è¦åˆ é™¤çš„物料产品组数据管理主键
     * @return ç»“æžœ
     */
    @Override
    public int deleteApsMaterialProductGroupManagementByIds(Long[] ids)
    {
    public int deleteApsMaterialProductGroupManagementByIds(Long[] ids) {
        return apsMaterialProductGroupManagementMapper.deleteApsMaterialProductGroupManagementByIds(ids);
    }
    /**
     * åˆ é™¤ç‰©æ–™äº§å“ç»„数据管理信息
     *
     *
     * @param id ç‰©æ–™äº§å“ç»„数据管理主键
     * @return ç»“æžœ
     */
    @Override
    public int deleteApsMaterialProductGroupManagementById(Long id)
    {
    public int deleteApsMaterialProductGroupManagementById(Long id) {
        return apsMaterialProductGroupManagementMapper.deleteApsMaterialProductGroupManagementById(id);
    }
    @SneakyThrows
    @Override
    public int batchInsertApsMaterialProductGroupManagement(MultipartFile file) {
        Workbook workbook = WorkbookFactory.create(file.getInputStream());
        Sheet sheet = workbook.getSheetAt(0);
        int rows = sheet.getLastRowNum();
        if (rows > 0) {
            List<ApsMaterialProductGroupManagement> list = new ArrayList<>();
            /*数据行从1开始*/
            Set<String> keys = new HashSet<>();
            for (int i = rows; i > 0; --i) {
                Row row = sheet.getRow(i);
                if (row.getCell(0) == null) {
                    continue;
                }
                String materialCode = row.getCell(0).getStringCellValue();
                if (StringUtils.isEmpty(materialCode)){
                    continue;
                }
                String materialType = row.getCell(1).getStringCellValue();
                String domain = row.getCell(2).getStringCellValue();
                String isMain = row.getCell(3).getStringCellValue();
                String factory = row.getCell(4).getStringCellValue();
                if (StringUtils.isNotBlank(materialType) &&
                    StringUtils.isNotBlank(domain) &&
                    StringUtils.isNotBlank(isMain) &&
                    StringUtils.isNotBlank(factory)) {
                    ApsMaterialProductGroupManagement item = new ApsMaterialProductGroupManagement();
                    item.setId(IdUtil.getSnowflakeNextId());
                    item.setFactory(factory);
                    item.setDomain(domain);
                    item.setMaterialType(materialType);
                    item.setMaterialCode(materialCode);
                    item.setIsMain(isMain);
                    item.setCreateBy(SecurityUtils.getUsername());
                    item.setCreateTime(DateUtils.getNowDate());
        ExcelUtil<ApsMaterialProductGroupManagement> util = new ExcelUtil<>(ApsMaterialProductGroupManagement.class);
        List<ApsMaterialProductGroupManagement> list = util.importExcel(file.getInputStream());
        DictUtils.CacheValue cacheValue = DictUtils.getCacheValue("aps_factory");
        DictUtils.CacheValue cacheDomain = DictUtils.getCacheValue("aps_domain");
        Set<String> keys = new HashSet<>();
        list.forEach(item -> {
            item.setId(IdUtil.getSnowflakeNextId());
            item.setDomain(cacheDomain.get(item.getDomain()));
            item.setFactory(cacheValue.get(item.getFactory()));
            item.setCreateBy(SecurityUtils.getUsername());
            item.setCreateTime(DateUtils.getNowDate());
        });
        Collections.reverse(list);
        list = list.stream()
                .filter(item -> {
                    item.setKey(null);
                    if (!keys.contains(item.getKey())) {
                        keys.add(item.getKey());
                        list.add(item);
                        return true;
                    }
                }
            }
            if (!list.isEmpty()) {
                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();
                        }
                    }
                }
                    return false;
                })
                .collect(Collectors.toList());
                if (!list.isEmpty()) {
                    apsMaterialProductGroupManagementMapper.insert(list);
        if (!list.isEmpty()) {
            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.setId(null);
                        item.setUpdateBy(SecurityUtils.getUsername());
                        item.setUpdateTime(new Timestamp(System.currentTimeMillis()));
                        apsMaterialProductGroupManagementMapper.update(item, wrapper);
                        it.remove();
                    }
                }
            }
            return list.size();
            if (!list.isEmpty()) {
                apsMaterialProductGroupManagementMapper.insert(list);
            }
        }
        return 0;
        return list.size();
    }
}
aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsShopServiceImpl.java
@@ -1,9 +1,13 @@
package com.aps.core.service.impl;
import java.util.List;
import java.util.Set;
import com.aps.common.core.utils.DateUtils;
import com.aps.common.core.utils.uuid.IdUtils;
import com.aps.common.security.utils.SecurityUtils;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import org.jetbrains.annotations.NotNull;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.aps.core.mapper.ApsShopMapper;
@@ -97,4 +101,19 @@
    {
        return apsShopMapper.deleteApsShopById(id);
    }
    @Override
    public List<ApsShop> findAllShops() {
        return apsShopMapper.selectList(new QueryWrapper<>());
    }
    @Override
    public List<ApsShop> findShopByFactory(String orgCode) {
        return apsShopMapper.selectApsByFactory(orgCode);
    }
    @Override
    public List<ApsShop> findShopByCodes(@NotNull Set<String> codes) {
        return apsShopMapper.selectByCodes(codes);
    }
}
aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsStandardProcessServiceImpl.java
@@ -1,60 +1,65 @@
package com.aps.core.service.impl;
import com.aps.common.core.utils.DateUtils;
import com.aps.common.core.utils.StringUtils;
import com.aps.common.security.utils.DictUtils;
import com.aps.common.security.utils.SecurityUtils;
import com.aps.core.domain.ApsShop;
import com.aps.core.domain.ApsStandardProcess;
import com.aps.core.mapper.ApsShopMapper;
import com.aps.core.mapper.ApsStandardProcessMapper;
import com.aps.core.service.IApsStandardProcessService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
/**
 * æ ‡å‡†å·¥åºService业务层处理
 *
 *
 * @author hjy
 * @date 2025-04-23
 */
@Service
public class ApsStandardProcessServiceImpl implements IApsStandardProcessService
{
public class ApsStandardProcessServiceImpl implements IApsStandardProcessService {
    @Autowired
    private ApsStandardProcessMapper apsStandardProcessMapper;
    @Autowired
    private ApsShopMapper apsShopMapper;
    /**
     * æŸ¥è¯¢æ ‡å‡†å·¥åº
     *
     *
     * @param id æ ‡å‡†å·¥åºä¸»é”®
     * @return æ ‡å‡†å·¥åº
     */
    @Override
    public ApsStandardProcess selectApsStandardProcessById(Long id)
    {
    public ApsStandardProcess selectApsStandardProcessById(Long id) {
        return apsStandardProcessMapper.selectApsStandardProcessById(id);
    }
    /**
     * æŸ¥è¯¢æ ‡å‡†å·¥åºåˆ—表
     *
     *
     * @param apsStandardProcess æ ‡å‡†å·¥åº
     * @return æ ‡å‡†å·¥åº
     */
    @Override
    public List<ApsStandardProcess> selectApsStandardProcessList(ApsStandardProcess apsStandardProcess)
    {
    public List<ApsStandardProcess> selectApsStandardProcessList(ApsStandardProcess apsStandardProcess) {
        return apsStandardProcessMapper.selectApsStandardProcessList(apsStandardProcess);
    }
    /**
     * æ–°å¢žæ ‡å‡†å·¥åº
     *
     *
     * @param apsStandardProcess æ ‡å‡†å·¥åº
     * @return ç»“æžœ
     */
    @Override
    public int insertApsStandardProcess(ApsStandardProcess apsStandardProcess)
    {
    public int insertApsStandardProcess(ApsStandardProcess apsStandardProcess) {
        apsStandardProcess.setCreateTime(DateUtils.getNowDate());
        apsStandardProcess.setCreateBy(SecurityUtils.getUsername());
        return apsStandardProcessMapper.insertApsStandardProcess(apsStandardProcess);
@@ -62,13 +67,12 @@
    /**
     * ä¿®æ”¹æ ‡å‡†å·¥åº
     *
     *
     * @param apsStandardProcess æ ‡å‡†å·¥åº
     * @return ç»“æžœ
     */
    @Override
    public int updateApsStandardProcess(ApsStandardProcess apsStandardProcess)
    {
    public int updateApsStandardProcess(ApsStandardProcess apsStandardProcess) {
        apsStandardProcess.setUpdateTime(DateUtils.getNowDate());
        apsStandardProcess.setUpdateBy(SecurityUtils.getUsername());
        return apsStandardProcessMapper.updateApsStandardProcess(apsStandardProcess);
@@ -76,30 +80,29 @@
    /**
     * æ‰¹é‡åˆ é™¤æ ‡å‡†å·¥åº
     *
     *
     * @param ids éœ€è¦åˆ é™¤çš„æ ‡å‡†å·¥åºä¸»é”®
     * @return ç»“æžœ
     */
    @Override
    public int deleteApsStandardProcessByIds(Long[] ids)
    {
    public int deleteApsStandardProcessByIds(Long[] ids) {
        return apsStandardProcessMapper.deleteApsStandardProcessByIds(ids);
    }
    /**
     * åˆ é™¤æ ‡å‡†å·¥åºä¿¡æ¯
     *
     *
     * @param id æ ‡å‡†å·¥åºä¸»é”®
     * @return ç»“æžœ
     */
    @Override
    public int deleteApsStandardProcessById(Long id)
    {
    public int deleteApsStandardProcessById(Long id) {
        return apsStandardProcessMapper.deleteApsStandardProcessById(id);
    }
    /**
     * å¯¼å…¥æ•°æ®
     *
     * @param tempList
     * @return true/false
     */
@@ -107,11 +110,26 @@
    public boolean importData(List<ApsStandardProcess> tempList) {
        try {
            if (!tempList.isEmpty()) {
                tempList.forEach(temp->{
                DictUtils.CacheValue cacheFactory = DictUtils.getCacheValue("aps_factory");
                DictUtils.CacheValue cacheDomain = DictUtils.getCacheValue("aps_domain");
                List<ApsShop> shops = apsShopMapper.selectApsByName(tempList.stream()
                        .map(ApsStandardProcess::getWorkShop)
                        .filter(StringUtils::isNotEmpty)
                        .collect(Collectors.toSet()));
                tempList.forEach(temp -> {
                    temp.setCreateBy(SecurityUtils.getUsername());
                    temp.setCreateTime(DateUtils.getNowDate());
                    apsStandardProcessMapper.insertApsStandardProcess(temp);
                    temp.setMajor(cacheDomain.get(temp.getMajor()));
                    temp.setPlant(cacheFactory.get(temp.getPlant()));
                    temp.setWorkShop(shops.stream()
                            .filter(shop -> Objects.equals(shop.getShopName(), temp.getWorkShop()))
                            .filter(shop -> Objects.equals(shop.getPlantCode(), temp.getPlant()))
                            .map(ApsShop::getShopCode)
                            .findFirst()
                            .orElse(null));
                });
                apsStandardProcessMapper.insert(tempList);
            }
        } catch (Exception e) {
            e.printStackTrace();
aps-modules/aps-core/src/main/resources/templates/±ê×¼¹¤ÐòÊý¾ÝÄ£°åv1.0.xlsx
Binary files differ
aps-modules/aps-core/src/main/resources/templates/ÆøÌ幤µ¥Êý¾ÝÄ£°åv1.0.xlsx
Binary files differ
aps-modules/aps-core/src/main/resources/templates/ÆøÌåÔ¤²âÊý¾ÝÄ£°åv1.0.xlsx
Binary files differ