【UPDATE】1.新增同步标准工艺路线定时任务代码 2.从redis中获取BOM数据 3.将工艺路线数据存入redis中 4.从redis中获取工艺路线数据
已修改14个文件
已添加10个文件
1696 ■■■■■ 文件已修改
aps-api/aps-api-system/src/main/java/com/aps/system/api/RemoteJobService.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
aps-api/aps-api-system/src/main/java/com/aps/system/api/factory/RemoteJobFallbackFactory.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
aps-modules/aps-core/src/main/java/com/aps/core/controller/mainPlan/ApsBomHeaderController.java 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
aps-modules/aps-core/src/main/java/com/aps/core/controller/mainPlan/ApsStandardProcessRouteHeaderController.java 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsBom.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
aps-modules/aps-core/src/main/java/com/aps/core/mapper/ApsStandardProcessRouteHeaderMapper.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
aps-modules/aps-core/src/main/java/com/aps/core/service/IApsStandardProcessRouteHeaderService.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsBomServiceImpl.java 22 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsStandardProcessRouteHeaderServiceImpl.java 28 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
aps-modules/aps-core/src/main/resources/mapper/core/ApsStandardProcessRouteHeaderMapper.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
aps-modules/aps-job/src/main/java/com/aps/job/controller/SysJobController.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
aps-modules/aps-job/src/main/java/com/aps/job/domain/ApsStandardProcessRouteHeaderJob.java 193 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
aps-modules/aps-job/src/main/java/com/aps/job/domain/ApsStandardProcessRouteLineJob.java 235 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
aps-modules/aps-job/src/main/java/com/aps/job/mapper/ApsStandardProcessRouteHeaderJobMapper.java 88 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
aps-modules/aps-job/src/main/java/com/aps/job/mapper/ApsStandardProcessRouteLineJobMapper.java 86 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
aps-modules/aps-job/src/main/java/com/aps/job/service/IApsStandardProcessRouteHeaderJobService.java 83 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
aps-modules/aps-job/src/main/java/com/aps/job/service/IApsStandardProcessRouteLineJobService.java 62 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
aps-modules/aps-job/src/main/java/com/aps/job/service/impl/ApsBomHeaderJobServiceImpl.java 25 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
aps-modules/aps-job/src/main/java/com/aps/job/service/impl/ApsMaterialStorageManagementJobServiceImpl.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
aps-modules/aps-job/src/main/java/com/aps/job/service/impl/ApsStandardProcessRouteHeaderJobServiceImpl.java 264 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
aps-modules/aps-job/src/main/java/com/aps/job/service/impl/ApsStandardProcessRouteLineJobServiceImpl.java 97 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
aps-modules/aps-job/src/main/java/com/aps/job/task/RyTask.java 21 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
aps-modules/aps-job/src/main/resources/mapper/job/ApsStandardProcessRouteHeaderJobMapper.xml 173 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
aps-modules/aps-job/src/main/resources/mapper/job/ApsStandardProcessRouteLineJobMapper.xml 192 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
aps-api/aps-api-system/src/main/java/com/aps/system/api/RemoteJobService.java
@@ -25,4 +25,12 @@
    @PostMapping("/job/refreshBomData")
    R<Boolean> refreshBomData(@RequestHeader(SecurityConstants.FROM_SOURCE) String source);
    /**
     * åˆ·æ–°å·¥è‰ºè·¯çº¿å…¨é‡æ•°æ®
     * @param source
     * @return
     */
    @PostMapping("/job/refreshProcessRouteData")
    R<Boolean> refreshProcessRouteData(@RequestHeader(SecurityConstants.FROM_SOURCE) String source);
}
aps-api/aps-api-system/src/main/java/com/aps/system/api/factory/RemoteJobFallbackFactory.java
@@ -20,7 +20,21 @@
    @Override
    public RemoteJobService create(Throwable throwable)
    {
        log.error("任务服务调用失败:{}", throwable.getMessage());
        return source -> R.fail("刷新BOM数据失败:" + throwable.getMessage());
        return new RemoteJobService()
        {
            @Override
            public R<Boolean> refreshBomData(String source)
            {
                return R.fail("刷新全量BOM数据失败:" + throwable.getMessage());
            }
            @Override
            public R<Boolean> refreshProcessRouteData(String source)
            {
                return R.fail("刷新全量工艺路线数据失败:" + throwable.getMessage());
            }
        };
    }
}
aps-modules/aps-core/src/main/java/com/aps/core/controller/mainPlan/ApsBomHeaderController.java
@@ -115,13 +115,15 @@
     */
    @RequiresPermissions("Aps:ApsBomHeader:refreshBomData")
    @PostMapping("/refreshBomData")
    public void refreshBomData()
    public AjaxResult refreshBomData()
    {
        R<Boolean> res = remoteJobService.refreshBomData(SecurityConstants.INNER);
        if (R.isSuccess(res))
        {
            apsBomHeaderService.setBomDataToRedis("");
            return success();
        }
        return error();
    }
    @PostMapping("/setBomDataToRedis")
aps-modules/aps-core/src/main/java/com/aps/core/controller/mainPlan/ApsStandardProcessRouteHeaderController.java
@@ -1,5 +1,7 @@
package com.aps.core.controller.mainPlan;
import com.aps.common.core.constant.SecurityConstants;
import com.aps.common.core.domain.R;
import com.aps.common.core.utils.poi.ExcelUtil;
import com.aps.common.core.web.controller.BaseController;
import com.aps.common.core.web.domain.AjaxResult;
@@ -9,6 +11,7 @@
import com.aps.common.security.annotation.RequiresPermissions;
import com.aps.core.domain.ApsStandardProcessRouteHeader;
import com.aps.core.service.IApsStandardProcessRouteHeaderService;
import com.aps.system.api.RemoteJobService;
import jakarta.servlet.http.HttpServletResponse;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@@ -29,6 +32,9 @@
{
    @Autowired
    private IApsStandardProcessRouteHeaderService apsStandardProcessRouteHeaderService;
    @Autowired
    private RemoteJobService remoteJobService;
    /**
     * æŸ¥è¯¢æ ‡å‡†å·¥è‰ºè·¯çº¿Header列表
@@ -99,4 +105,25 @@
    {
        return toAjax(apsStandardProcessRouteHeaderService.deleteApsStandardProcessRouteHeaderByIds(ids));
    }
    /**
     * åˆ·æ–°å…¨é‡å·¥è‰ºè·¯çº¿æ•°æ®
     */
    @RequiresPermissions("Aps:ApsStandardProcessRouteHeader:refreshProcessRouteData")
    @PostMapping("/refreshProcessRouteData")
    public AjaxResult refreshProcessRouteData()
    {
        R<Boolean> res = remoteJobService.refreshProcessRouteData(SecurityConstants.INNER);
        if (R.isSuccess(res))
        {
            return success();
        }
        return error();
    }
    @PostMapping("/test")
    public void test()
    {
        apsStandardProcessRouteHeaderService.setProcessRouteDataToRedis("FORTUNA");
    }
}
aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsBom.java
@@ -3,7 +3,10 @@
import com.aps.common.core.annotation.Excel;
import com.aps.common.core.web.domain.BaseEntity;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.*;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import java.math.BigDecimal;
import java.util.Date;
@@ -86,4 +89,11 @@
    /** åˆ é™¤æ ‡å¿—(0代表存在 2代表删除) */
    private String delFlag;
    private String mainitemcode;
    private BigDecimal mainstock;
    private String subitemcode;
    private BigDecimal usagenum;
    private BigDecimal substock;
    private String selfmade;
}
aps-modules/aps-core/src/main/java/com/aps/core/mapper/ApsStandardProcessRouteHeaderMapper.java
@@ -1,8 +1,10 @@
package com.aps.core.mapper;
import java.util.List;
import com.alibaba.fastjson2.JSONObject;
import com.aps.core.domain.ApsStandardProcessRouteHeader;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
/**
 * æ ‡å‡†å·¥è‰ºè·¯çº¿HeaderMapper接口
@@ -65,4 +67,12 @@
     * æ ¹æ®å·¥åŽ‚ã€ç‰©æ–™å·æŸ¥è¯¢å·¥è‰ºè·¯çº¿
     * */
    List<ApsStandardProcessRouteHeader>   queryStandardProcessRouteHeaderByPlantAndItemCode(String orgCode, String itemCode);
    /**
     * æŸ¥è¯¢å·¥è‰ºè·¯çº¿æ ‡å‡†å·¥æ—¶æ•°æ®
     * @param orgCode
     * @return
     */
    List<JSONObject> selectProcessRouteStandardTimeData(String orgCode);
}
aps-modules/aps-core/src/main/java/com/aps/core/service/IApsStandardProcessRouteHeaderService.java
@@ -1,7 +1,8 @@
package com.aps.core.service;
import java.util.List;
import com.aps.core.domain.ApsStandardProcessRouteHeader;
import java.util.List;
/**
 * æ ‡å‡†å·¥è‰ºè·¯çº¿HeaderService接口
@@ -58,4 +59,11 @@
     * @return ç»“æžœ
     */
    public int deleteApsStandardProcessRouteHeaderById(Long id);
    /**
     * å°†æ ‡å‡†å·¥è‰ºè·¯çº¿æ ‡å‡†å·¥æ—¶åˆè®¡æ•°é‡æ”¾å…¥redis中
     * @param orgCode
     * @return
     */
    public boolean setProcessRouteDataToRedis(String orgCode);
}
aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsBomServiceImpl.java
@@ -1,16 +1,19 @@
package com.aps.core.service.impl;
import java.util.*;
import com.aps.common.core.utils.DateUtils;
import com.aps.core.domain.ApsBom;
import com.aps.core.domain.ApsBomHeader;
import com.aps.core.mapper.ApsBomHeaderMapper;
import com.aps.core.mapper.ApsBomMapper;
import com.aps.core.service.IApsBomService;
import jakarta.annotation.Resource;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service;
import com.aps.core.mapper.ApsBomMapper;
import com.aps.core.domain.ApsBom;
import com.aps.core.service.IApsBomService;
import java.util.ArrayList;
import java.util.List;
import java.util.Optional;
/**
 * BOM数据管理Service业务层处理
@@ -26,6 +29,10 @@
    @Resource
    private ApsBomHeaderMapper bomHeaderMapper;
    @Autowired
    public RedisTemplate redisTemplate;
    /**
     * æŸ¥è¯¢BOM数据管理
     * 
@@ -117,6 +124,11 @@
            build.setOrgCode(apsBomHeader.getOrgCode());
            bomLineList = apsBomMapper.selectApsBomList(build);
        }
//        JSONArray jsonArray = (JSONArray)redisTemplate.opsForValue().get("BOM:BOM_"+plant+"_"+itemNumber);
//        for (int i = 0; i < jsonArray.size(); i++){
//            ApsBom apsBom = jsonArray.getJSONObject(i).to(ApsBom.class);
//            bomLineList.add(apsBom);
//        }
        return bomLineList;
    }
}
aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsStandardProcessRouteHeaderServiceImpl.java
@@ -1,12 +1,15 @@
package com.aps.core.service.impl;
import java.util.List;
import com.alibaba.fastjson2.JSONObject;
import com.aps.common.core.utils.DateUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.aps.core.mapper.ApsStandardProcessRouteHeaderMapper;
import com.aps.core.domain.ApsStandardProcessRouteHeader;
import com.aps.core.mapper.ApsStandardProcessRouteHeaderMapper;
import com.aps.core.service.IApsStandardProcessRouteHeaderService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service;
import java.util.List;
/**
 * æ ‡å‡†å·¥è‰ºè·¯çº¿HeaderService业务层处理
@@ -19,6 +22,9 @@
{
    @Autowired
    private ApsStandardProcessRouteHeaderMapper apsStandardProcessRouteHeaderMapper;
    @Autowired
    public RedisTemplate redisTemplate;
    /**
     * æŸ¥è¯¢æ ‡å‡†å·¥è‰ºè·¯çº¿Header
@@ -93,4 +99,18 @@
    {
        return apsStandardProcessRouteHeaderMapper.deleteApsStandardProcessRouteHeaderById(id);
    }
    @Override
    public boolean setProcessRouteDataToRedis(String orgCode) {
        try {
            List<JSONObject> res = apsStandardProcessRouteHeaderMapper.selectProcessRouteStandardTimeData(orgCode);
            for (JSONObject jsonObject : res) {
                redisTemplate.opsForValue().set("ROUTE:ROUTE_"+jsonObject.getString("org_code")+"_"+jsonObject.getString("item_code"), jsonObject.getBigDecimal("standardtime"));
            }
            return true;
        } catch (Exception e) {
            e.printStackTrace();
            return false;
        }
    }
}
aps-modules/aps-core/src/main/resources/mapper/core/ApsStandardProcessRouteHeaderMapper.xml
@@ -113,4 +113,15 @@
            and del_flag = '0'
        </where>
    </select>
    <select id="selectProcessRouteStandardTimeData" parameterType="String" resultType="com.alibaba.fastjson2.JSONObject">
        select  hd.item_code,sum(standard_time) as standardTime,hd.org_code
        from aps_standard_process_route_line as ln
                 left join aps_standard_process_route_header as hd on ln.route_id=hd.route_id
        where ln.del_flag='0' and hd.del_flag='0'
        <if test="orgCode != null  and orgCode != ''">
          and hd.org_code = #{orgCode}
        </if>
        group by hd.item_code,hd.org_code
    </select>
</mapper>
aps-modules/aps-job/src/main/java/com/aps/job/controller/SysJobController.java
@@ -1,7 +1,6 @@
package com.aps.job.controller;
import com.aps.common.core.constant.Constants;
import com.aps.common.core.constant.SecurityConstants;
import com.aps.common.core.exception.job.TaskException;
import com.aps.common.core.utils.StringUtils;
import com.aps.common.core.utils.poi.ExcelUtil;
@@ -20,6 +19,7 @@
import jakarta.servlet.http.HttpServletResponse;
import org.quartz.SchedulerException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.web.bind.annotation.*;
import java.math.BigDecimal;
@@ -59,7 +59,14 @@
    private IApsMaterialStorageManagementJobService apsMaterialStorageManagementJobService;
    @Autowired
    private IApsStandardProcessRouteHeaderJobService apsStandardProcessRouteHeaderJobService;
    @Autowired
    private RemoteCoreService remoteCoreService;
    @Autowired
    public RedisTemplate redisTemplate;
    /**
     * æŸ¥è¯¢å®šæ—¶ä»»åŠ¡åˆ—è¡¨
     */
@@ -210,12 +217,21 @@
        return apsBomHeaderJobService.syncBomDataJob(1, 1000, "", "");
    }
    @PostMapping("/refreshProcessRouteData")
    public Boolean refreshProcessRouteData() throws SchedulerException, TaskException
    {
        return apsStandardProcessRouteHeaderJobService.syncProcessRouteDataJob(1, 1000, "", "");
    }
    @PutMapping("/test")
    public void test(@RequestBody SysJob job) throws Exception
    {
        System.out.println("start");
        apsStandardProcessRouteHeaderJobService.syncProcessRouteData(159, 1000, "", "");
        //获取Redis缓存中的BOM数据
//        JSONArray jsonArray = (JSONArray)redisTemplate.opsForValue().get("BOM:BOM_FORTUNA_A6501-001080");
        //将BOM数据存进Redis中
        remoteCoreService.setBomDataToRedis(SecurityConstants.INNER);
//        remoteCoreService.setBomDataToRedis(SecurityConstants.INNER);
        //同步物料库存数据
//        apsMaterialStorageManagementJobService.syncApsMaterialStorageData(1, 1000, "", "");
        //同步BOM数据
aps-modules/aps-job/src/main/java/com/aps/job/domain/ApsStandardProcessRouteHeaderJob.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,193 @@
package com.aps.job.domain;
import com.aps.common.core.annotation.Excel;
import com.aps.common.core.web.domain.BaseEntity;
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 java.math.BigDecimal;
import java.util.Date;
/**
 * æ ‡å‡†å·¥è‰ºè·¯çº¿Header对象 aps_standard_process_route_header_job
 *
 * @author hjy
 * @date 2025-05-09
 */
@Schema(description = "标准工艺路线Header实体类")
public class ApsStandardProcessRouteHeaderJob extends BaseEntity
{
    private static final long serialVersionUID = 1L;
    /** $column.columnComment */
    @Schema(description = "$column.columnComment")
    private Long id;
    /** å·¥è‰ºè·¯çº¿ID */
    @Excel(name = "工艺路线ID")
    @Schema(description = "工艺路线ID")
    private String routeId;
    /** å·¥è‰ºè·¯çº¿ç‰ˆæœ¬ */
    @Excel(name = "工艺路线版本")
    @Schema(description = "工艺路线版本")
    private String version;
    /** ç”Ÿæ•ˆæ—¥æœŸ */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "生效日期", width = 30, dateFormat = "yyyy-MM-dd")
    @Schema(description = "生效日期")
    private Date startDate;
    /** å¤±æ•ˆæ—¥æœŸ */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "失效日期", width = 30, dateFormat = "yyyy-MM-dd")
    @Schema(description = "失效日期")
    private Date endDate;
    /** é€‚用工厂 */
    @Excel(name = "适用工厂")
    @Schema(description = "适用工厂")
    private String orgCode;
    /** æ˜¯å¦åˆ é™¤ï¼Œ0有效 1删除 */
    @Schema(description = "是否删除,0有效 1删除")
    private String delFlag;
    /** ç‰©æ–™å· */
    @Excel(name = "物料号")
    @Schema(description = "物料号")
    private String itemCode;
    /** å›¾å· */
    @Excel(name = "图号")
    @Schema(description = "图号")
    private String drawingNumber;
    /** å·¥åºæ€»å·¥æ—¶ */
    @Excel(name = "工序总工时")
    @Schema(description = "工序总工时")
    private BigDecimal processAllTime;
    public void setId(Long id)
    {
        this.id = id;
    }
    public Long getId()
    {
        return id;
    }
    public void setRouteId(String routeId)
    {
        this.routeId = routeId;
    }
    public String getRouteId()
    {
        return routeId;
    }
    public void setVersion(String version)
    {
        this.version = version;
    }
    public String getVersion()
    {
        return version;
    }
    public void setStartDate(Date startDate)
    {
        this.startDate = startDate;
    }
    public Date getStartDate()
    {
        return startDate;
    }
    public void setEndDate(Date endDate)
    {
        this.endDate = endDate;
    }
    public Date getEndDate()
    {
        return endDate;
    }
    public void setOrgCode(String orgCode)
    {
        this.orgCode = orgCode;
    }
    public String getOrgCode()
    {
        return orgCode;
    }
    public void setDelFlag(String delFlag)
    {
        this.delFlag = delFlag;
    }
    public String getDelFlag()
    {
        return delFlag;
    }
    public void setItemCode(String itemCode)
    {
        this.itemCode = itemCode;
    }
    public String getItemCode()
    {
        return itemCode;
    }
    public void setDrawingNumber(String drawingNumber)
    {
        this.drawingNumber = drawingNumber;
    }
    public String getDrawingNumber()
    {
        return drawingNumber;
    }
    public void setProcessAllTime(BigDecimal processAllTime)
    {
        this.processAllTime = processAllTime;
    }
    public BigDecimal getProcessAllTime()
    {
        return processAllTime;
    }
    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("routeId", getRouteId())
            .append("version", getVersion())
            .append("startDate", getStartDate())
            .append("endDate", getEndDate())
            .append("orgCode", getOrgCode())
            .append("delFlag", getDelFlag())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .append("itemCode", getItemCode())
            .append("drawingNumber", getDrawingNumber())
            .append("processAllTime", getProcessAllTime())
            .toString();
    }
}
aps-modules/aps-job/src/main/java/com/aps/job/domain/ApsStandardProcessRouteLineJob.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,235 @@
package com.aps.job.domain;
import com.aps.common.core.annotation.Excel;
import com.aps.common.core.web.domain.BaseEntity;
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 java.math.BigDecimal;
import java.util.Date;
/**
 * æ ‡å‡†å·¥è‰ºè·¯çº¿Line对象 aps_standard_process_route_line_job
 *
 * @author hjy
 * @date 2025-05-09
 */
@Schema(description = "标准工艺路线Line实体类")
public class ApsStandardProcessRouteLineJob extends BaseEntity
{
    private static final long serialVersionUID = 1L;
    /** $column.columnComment */
    @Schema(description = "$column.columnComment")
    private Long id;
    /** å·¥è‰ºè·¯çº¿ID */
    @Excel(name = "工艺路线ID")
    @Schema(description = "工艺路线ID")
    private String routeId;
    /** å·¥åºåºå· */
    @Excel(name = "工序序号")
    @Schema(description = "工序序号")
    private String routeNum;
    /** å·¥åºåç§° */
    @Excel(name = "工序名称")
    @Schema(description = "工序名称")
    private String routeName;
    /** ç”Ÿæ•ˆæ—¥æœŸ */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "生效日期", width = 30, dateFormat = "yyyy-MM-dd")
    @Schema(description = "生效日期")
    private Date startDate;
    /** å¤±æ•ˆæ—¥æœŸ */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "失效日期", width = 30, dateFormat = "yyyy-MM-dd")
    @Schema(description = "失效日期")
    private Date endDate;
    /** é€‚用工厂 */
    @Excel(name = "适用工厂")
    @Schema(description = "适用工厂")
    private String orgCode;
    /** é€‚用车间 */
    @Excel(name = "适用车间")
    @Schema(description = "适用车间")
    private String shopCode;
    /** äº§èƒ½æ¨¡åž‹ */
    @Excel(name = "产能模型")
    @Schema(description = "产能模型")
    private String productivityModel;
    /** è®¾è®¡äº§èƒ½ */
    @Excel(name = "设计产能")
    @Schema(description = "设计产能")
    private BigDecimal designCapacity;
    /** æ˜¯å¦åˆ é™¤ï¼Œ0有效 1删除 */
    @Schema(description = "是否删除,0有效 1删除")
    private String delFlag;
    /** å·¥åºç¼–码 */
    @Excel(name = "工序编码")
    @Schema(description = "工序编码")
    private String routeCode;
    /** æ ‡å‡†å·¥æ—¶ */
    @Excel(name = "标准工时")
    @Schema(description = "标准工时")
    private BigDecimal standardTime;
    public String getRouteCode() {
        return routeCode;
    }
    public void setRouteCode(String routeCode) {
        this.routeCode = routeCode;
    }
    public BigDecimal getStandardTime() {
        return standardTime;
    }
    public void setStandardTime(BigDecimal standardTime) {
        this.standardTime = standardTime;
    }
    public void setId(Long id)
    {
        this.id = id;
    }
    public Long getId()
    {
        return id;
    }
    public void setRouteId(String routeId)
    {
        this.routeId = routeId;
    }
    public String getRouteId()
    {
        return routeId;
    }
    public void setRouteNum(String routeNum)
    {
        this.routeNum = routeNum;
    }
    public String getRouteNum()
    {
        return routeNum;
    }
    public void setRouteName(String routeName)
    {
        this.routeName = routeName;
    }
    public String getRouteName()
    {
        return routeName;
    }
    public void setStartDate(Date startDate)
    {
        this.startDate = startDate;
    }
    public Date getStartDate()
    {
        return startDate;
    }
    public void setEndDate(Date endDate)
    {
        this.endDate = endDate;
    }
    public Date getEndDate()
    {
        return endDate;
    }
    public void setOrgCode(String orgCode)
    {
        this.orgCode = orgCode;
    }
    public String getOrgCode()
    {
        return orgCode;
    }
    public void setShopCode(String shopCode)
    {
        this.shopCode = shopCode;
    }
    public String getShopCode()
    {
        return shopCode;
    }
    public void setProductivityModel(String productivityModel)
    {
        this.productivityModel = productivityModel;
    }
    public String getProductivityModel()
    {
        return productivityModel;
    }
    public void setDesignCapacity(BigDecimal designCapacity)
    {
        this.designCapacity = designCapacity;
    }
    public BigDecimal getDesignCapacity()
    {
        return designCapacity;
    }
    public void setDelFlag(String delFlag)
    {
        this.delFlag = delFlag;
    }
    public String getDelFlag()
    {
        return delFlag;
    }
    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("routeId", getRouteId())
            .append("routeNum", getRouteNum())
            .append("routeName", getRouteName())
            .append("startDate", getStartDate())
            .append("endDate", getEndDate())
            .append("createTime", getCreateTime())
            .append("orgCode", getOrgCode())
            .append("shopCode", getShopCode())
            .append("productivityModel", getProductivityModel())
            .append("designCapacity", getDesignCapacity())
            .append("delFlag", getDelFlag())
            .append("createBy", getCreateBy())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .toString();
    }
}
aps-modules/aps-job/src/main/java/com/aps/job/mapper/ApsStandardProcessRouteHeaderJobMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,88 @@
package com.aps.job.mapper;
import com.aps.job.domain.ApsStandardProcessRouteHeaderJob;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
 * æ ‡å‡†å·¥è‰ºè·¯çº¿HeaderMapper接口
 *
 * @author hjy
 * @date 2025-05-09
 */
public interface ApsStandardProcessRouteHeaderJobMapper
{
    /**
     * æŸ¥è¯¢æ ‡å‡†å·¥è‰ºè·¯çº¿Header
     *
     * @param id æ ‡å‡†å·¥è‰ºè·¯çº¿Header主键
     * @return æ ‡å‡†å·¥è‰ºè·¯çº¿Header
     */
    public ApsStandardProcessRouteHeaderJob selectApsStandardProcessRouteHeaderJobById(Long id);
    /**
     * æŸ¥è¯¢æ ‡å‡†å·¥è‰ºè·¯çº¿Header列表
     *
     * @param apsStandardProcessRouteHeaderJob æ ‡å‡†å·¥è‰ºè·¯çº¿Header
     * @return æ ‡å‡†å·¥è‰ºè·¯çº¿Header集合
     */
    public List<ApsStandardProcessRouteHeaderJob> selectApsStandardProcessRouteHeaderJobList(ApsStandardProcessRouteHeaderJob apsStandardProcessRouteHeaderJob);
    /**
     * æ–°å¢žæ ‡å‡†å·¥è‰ºè·¯çº¿Header
     *
     * @param apsStandardProcessRouteHeaderJob æ ‡å‡†å·¥è‰ºè·¯çº¿Header
     * @return ç»“æžœ
     */
    public int insertApsStandardProcessRouteHeaderJob(ApsStandardProcessRouteHeaderJob apsStandardProcessRouteHeaderJob);
    /**
     * ä¿®æ”¹æ ‡å‡†å·¥è‰ºè·¯çº¿Header
     *
     * @param apsStandardProcessRouteHeaderJob æ ‡å‡†å·¥è‰ºè·¯çº¿Header
     * @return ç»“æžœ
     */
    public int updateApsStandardProcessRouteHeaderJob(ApsStandardProcessRouteHeaderJob apsStandardProcessRouteHeaderJob);
    /**
     * åˆ é™¤æ ‡å‡†å·¥è‰ºè·¯çº¿Header
     *
     * @param id æ ‡å‡†å·¥è‰ºè·¯çº¿Header主键
     * @return ç»“æžœ
     */
    public int deleteApsStandardProcessRouteHeaderJobById(Long id);
    /**
     * æ‰¹é‡åˆ é™¤æ ‡å‡†å·¥è‰ºè·¯çº¿Header
     *
     * @param ids éœ€è¦åˆ é™¤çš„æ•°æ®ä¸»é”®é›†åˆ
     * @return ç»“æžœ
     */
    public int deleteApsStandardProcessRouteHeaderJobByIds(Long[] ids);
    /**
     * æ‰¹é‡æ’入工艺路线 Header数据
     * @param list
     * @return
     */
    public int insertProcessRouteHeaderBatch(@Param("list") List<ApsStandardProcessRouteHeaderJob> list);
    /**
     * æ‰¹é‡æ’入工艺路线 Header数据到业务表
     * @return
     */
    public void insertIntoProcessRouteHeader();
    /**
     * åˆ é™¤å·¥è‰ºè·¯çº¿ Header数据
     * @return
     */
    public void deleteProcessRouteHeader();
    /**
     * åˆ é™¤ä¸­é—´è¡¨å·¥è‰ºè·¯çº¿ Header数据
     */
    public void deleteProcessRouteHeaderJob();
}
aps-modules/aps-job/src/main/java/com/aps/job/mapper/ApsStandardProcessRouteLineJobMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,86 @@
package com.aps.job.mapper;
import com.aps.job.domain.ApsStandardProcessRouteLineJob;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
 * æ ‡å‡†å·¥è‰ºè·¯çº¿LineMapper接口
 *
 * @author hjy
 * @date 2025-05-09
 */
public interface ApsStandardProcessRouteLineJobMapper
{
    /**
     * æŸ¥è¯¢æ ‡å‡†å·¥è‰ºè·¯çº¿Line
     *
     * @param id æ ‡å‡†å·¥è‰ºè·¯çº¿Line主键
     * @return æ ‡å‡†å·¥è‰ºè·¯çº¿Line
     */
    public ApsStandardProcessRouteLineJob selectApsStandardProcessRouteLineJobById(Long id);
    /**
     * æŸ¥è¯¢æ ‡å‡†å·¥è‰ºè·¯çº¿Line列表
     *
     * @param apsStandardProcessRouteLineJob æ ‡å‡†å·¥è‰ºè·¯çº¿Line
     * @return æ ‡å‡†å·¥è‰ºè·¯çº¿Line集合
     */
    public List<ApsStandardProcessRouteLineJob> selectApsStandardProcessRouteLineJobList(ApsStandardProcessRouteLineJob apsStandardProcessRouteLineJob);
    /**
     * æ–°å¢žæ ‡å‡†å·¥è‰ºè·¯çº¿Line
     *
     * @param apsStandardProcessRouteLineJob æ ‡å‡†å·¥è‰ºè·¯çº¿Line
     * @return ç»“æžœ
     */
    public int insertApsStandardProcessRouteLineJob(ApsStandardProcessRouteLineJob apsStandardProcessRouteLineJob);
    /**
     * ä¿®æ”¹æ ‡å‡†å·¥è‰ºè·¯çº¿Line
     *
     * @param apsStandardProcessRouteLineJob æ ‡å‡†å·¥è‰ºè·¯çº¿Line
     * @return ç»“æžœ
     */
    public int updateApsStandardProcessRouteLineJob(ApsStandardProcessRouteLineJob apsStandardProcessRouteLineJob);
    /**
     * åˆ é™¤æ ‡å‡†å·¥è‰ºè·¯çº¿Line
     *
     * @param id æ ‡å‡†å·¥è‰ºè·¯çº¿Line主键
     * @return ç»“æžœ
     */
    public int deleteApsStandardProcessRouteLineJobById(Long id);
    /**
     * æ‰¹é‡åˆ é™¤æ ‡å‡†å·¥è‰ºè·¯çº¿Line
     *
     * @param ids éœ€è¦åˆ é™¤çš„æ•°æ®ä¸»é”®é›†åˆ
     * @return ç»“æžœ
     */
    public int deleteApsStandardProcessRouteLineJobByIds(Long[] ids);
    /**
     * æ‰¹é‡æ’入工艺路线 Line数据管理
     * @param list
     * @return
     */
    public int insertProcessRouteLineBatch(@Param("list") List<ApsStandardProcessRouteLineJob> list);
    /**
     * æ‰¹é‡æ’入工艺路线 Line数据管理到业务表
     * @return
     */
    public void insertIntoProcessRouteLine();
    /**
     * åˆ é™¤å·¥è‰ºè·¯çº¿ Line数据
     */
    public void deleteProcessRouteLine() ;
    /**
     * åˆ é™¤ä¸­é—´è¡¨å·¥è‰ºè·¯çº¿ Line数据
     */
    public void deleteProcessRouteLineJob() ;
}
aps-modules/aps-job/src/main/java/com/aps/job/service/IApsStandardProcessRouteHeaderJobService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,83 @@
package com.aps.job.service;
import com.aps.job.domain.ApsStandardProcessRouteHeaderJob;
import java.util.List;
/**
 * æ ‡å‡†å·¥è‰ºè·¯çº¿HeaderService接口
 *
 * @author hjy
 * @date 2025-05-09
 */
public interface IApsStandardProcessRouteHeaderJobService
{
    /**
     * æŸ¥è¯¢æ ‡å‡†å·¥è‰ºè·¯çº¿Header
     *
     * @param id æ ‡å‡†å·¥è‰ºè·¯çº¿Header主键
     * @return æ ‡å‡†å·¥è‰ºè·¯çº¿Header
     */
    public ApsStandardProcessRouteHeaderJob selectApsStandardProcessRouteHeaderJobById(Long id);
    /**
     * æŸ¥è¯¢æ ‡å‡†å·¥è‰ºè·¯çº¿Header列表
     *
     * @param apsStandardProcessRouteHeaderJob æ ‡å‡†å·¥è‰ºè·¯çº¿Header
     * @return æ ‡å‡†å·¥è‰ºè·¯çº¿Header集合
     */
    public List<ApsStandardProcessRouteHeaderJob> selectApsStandardProcessRouteHeaderJobList(ApsStandardProcessRouteHeaderJob apsStandardProcessRouteHeaderJob);
    /**
     * æ–°å¢žæ ‡å‡†å·¥è‰ºè·¯çº¿Header
     *
     * @param apsStandardProcessRouteHeaderJob æ ‡å‡†å·¥è‰ºè·¯çº¿Header
     * @return ç»“æžœ
     */
    public int insertApsStandardProcessRouteHeaderJob(ApsStandardProcessRouteHeaderJob apsStandardProcessRouteHeaderJob);
    /**
     * ä¿®æ”¹æ ‡å‡†å·¥è‰ºè·¯çº¿Header
     *
     * @param apsStandardProcessRouteHeaderJob æ ‡å‡†å·¥è‰ºè·¯çº¿Header
     * @return ç»“æžœ
     */
    public int updateApsStandardProcessRouteHeaderJob(ApsStandardProcessRouteHeaderJob apsStandardProcessRouteHeaderJob);
    /**
     * æ‰¹é‡åˆ é™¤æ ‡å‡†å·¥è‰ºè·¯çº¿Header
     *
     * @param ids éœ€è¦åˆ é™¤çš„æ ‡å‡†å·¥è‰ºè·¯çº¿Header主键集合
     * @return ç»“æžœ
     */
    public int deleteApsStandardProcessRouteHeaderJobByIds(Long[] ids);
    /**
     * åˆ é™¤æ ‡å‡†å·¥è‰ºè·¯çº¿Header信息
     *
     * @param id æ ‡å‡†å·¥è‰ºè·¯çº¿Header主键
     * @return ç»“æžœ
     */
    public int deleteApsStandardProcessRouteHeaderJobById(Long id);
    /**
     * åŒæ­¥å·¥è‰ºè·¯çº¿æ•°æ®
     * @param pageIndex
     * @param pageSize
     * @param orgCode
     * @param itemCodeList
     * @return
     */
    public boolean syncProcessRouteData(Integer pageIndex, Integer pageSize, String orgCode, String itemCodeList);
    /**
     * åŒæ­¥å·¥è‰ºè·¯çº¿æ•°æ®å®šæ—¶ä»»åŠ¡
     * @param pageIndex
     * @param pageSize
     * @param orgCode
     * @param itemCodeList
     * @return
     */
    public boolean syncProcessRouteDataJob(Integer pageIndex, Integer pageSize, String orgCode, String itemCodeList);
}
aps-modules/aps-job/src/main/java/com/aps/job/service/IApsStandardProcessRouteLineJobService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,62 @@
package com.aps.job.service;
import com.aps.job.domain.ApsStandardProcessRouteLineJob;
import java.util.List;
/**
 * æ ‡å‡†å·¥è‰ºè·¯çº¿LineService接口
 *
 * @author hjy
 * @date 2025-05-09
 */
public interface IApsStandardProcessRouteLineJobService
{
    /**
     * æŸ¥è¯¢æ ‡å‡†å·¥è‰ºè·¯çº¿Line
     *
     * @param id æ ‡å‡†å·¥è‰ºè·¯çº¿Line主键
     * @return æ ‡å‡†å·¥è‰ºè·¯çº¿Line
     */
    public ApsStandardProcessRouteLineJob selectApsStandardProcessRouteLineJobById(Long id);
    /**
     * æŸ¥è¯¢æ ‡å‡†å·¥è‰ºè·¯çº¿Line列表
     *
     * @param apsStandardProcessRouteLineJob æ ‡å‡†å·¥è‰ºè·¯çº¿Line
     * @return æ ‡å‡†å·¥è‰ºè·¯çº¿Line集合
     */
    public List<ApsStandardProcessRouteLineJob> selectApsStandardProcessRouteLineJobList(ApsStandardProcessRouteLineJob apsStandardProcessRouteLineJob);
    /**
     * æ–°å¢žæ ‡å‡†å·¥è‰ºè·¯çº¿Line
     *
     * @param apsStandardProcessRouteLineJob æ ‡å‡†å·¥è‰ºè·¯çº¿Line
     * @return ç»“æžœ
     */
    public int insertApsStandardProcessRouteLineJob(ApsStandardProcessRouteLineJob apsStandardProcessRouteLineJob);
    /**
     * ä¿®æ”¹æ ‡å‡†å·¥è‰ºè·¯çº¿Line
     *
     * @param apsStandardProcessRouteLineJob æ ‡å‡†å·¥è‰ºè·¯çº¿Line
     * @return ç»“æžœ
     */
    public int updateApsStandardProcessRouteLineJob(ApsStandardProcessRouteLineJob apsStandardProcessRouteLineJob);
    /**
     * æ‰¹é‡åˆ é™¤æ ‡å‡†å·¥è‰ºè·¯çº¿Line
     *
     * @param ids éœ€è¦åˆ é™¤çš„æ ‡å‡†å·¥è‰ºè·¯çº¿Line主键集合
     * @return ç»“æžœ
     */
    public int deleteApsStandardProcessRouteLineJobByIds(Long[] ids);
    /**
     * åˆ é™¤æ ‡å‡†å·¥è‰ºè·¯çº¿Line信息
     *
     * @param id æ ‡å‡†å·¥è‰ºè·¯çº¿Line主键
     * @return ç»“æžœ
     */
    public int deleteApsStandardProcessRouteLineJobById(Long id);
}
aps-modules/aps-job/src/main/java/com/aps/job/service/impl/ApsBomHeaderJobServiceImpl.java
@@ -5,6 +5,7 @@
import com.alibaba.fastjson.JSONObject;
import com.aps.common.core.utils.DateUtils;
import com.aps.common.core.utils.StringUtils;
import com.aps.common.core.utils.uuid.IdUtils;
import com.aps.job.domain.ApsBomHeaderJob;
import com.aps.job.domain.ApsBomLineJob;
import com.aps.job.domain.ApsWorkOrderJobLog;
@@ -125,14 +126,19 @@
    @Override
    public boolean syncBomData(Integer pageIndex, Integer pageSize, String orgCode, String itemCodeList) {
        JSONObject requestBody = new JSONObject();
        ResponseEntity<String> response = null;
        ApsWorkOrderJobLog jobLog = new ApsWorkOrderJobLog();
        String batchNum = "";
        try {
            // è®¾ç½®è¯·æ±‚头
            HttpHeaders headers = new HttpHeaders();
            headers.setContentType(MediaType.APPLICATION_JSON);
            // è®¾ç½®è¯·æ±‚体
            while (true) {
                ApsWorkOrderJobLog jobLog = new ApsWorkOrderJobLog();
                JSONObject requestBody = new JSONObject();
                batchNum = IdUtils.fastSimpleUUID();
                jobLog = new ApsWorkOrderJobLog();
                requestBody = new JSONObject();
                requestBody.put("PageIndex", pageIndex);
                requestBody.put("PageSize", pageSize);
                if(!StringUtils.isEmpty(orgCode)){
@@ -141,7 +147,7 @@
                // åˆ›å»ºHttpEntity对象
                HttpEntity<String> request = new HttpEntity<>(requestBody.toJSONString(), headers);
                // å‘送POST请求
                ResponseEntity<String> response = restTemplate.postForEntity(getBomUrl, request, String.class);
                response = restTemplate.postForEntity(getBomUrl, request, String.class);
                JSONObject responseBodyJson = JSONObject.parseObject(response.getBody());
                if (response.getStatusCode().is2xxSuccessful() && "200".equals(responseBodyJson.getString("status"))) {
                    JSONArray jsonArray = responseBodyJson.getJSONArray("data");
@@ -160,6 +166,7 @@
                            insertBomHeader.setStartDate(DateUtils.parseDate(bomHeader.getString("HEffectiveDate")));
                            insertBomHeader.setEndDate(DateUtils.parseDate(bomHeader.getString("HDisableDate")));
                            insertBomHeader.setOrgCode(bomHeader.getString("HOrgName").contains("沈阳")?"FORTUNE":bomHeader.getString("HOrgName").contains("南通")?"FORTUNA":bomHeader.getString("HOrgName").contains("北京")?"FORTUBE":bomHeader.getString("HOrgName"));
                            insertBomHeader.setCreateBy(batchNum);
                            headerList.add(insertBomHeader);
                            for(Object line : bomLines){
                                JSONObject lineJson = (JSONObject) line;
@@ -173,6 +180,7 @@
                                bomLine.setStartDate(DateUtils.parseDate(lineJson.getString("LEffectiveDate")));
                                bomLine.setEndDate(DateUtils.parseDate(lineJson.getString("LDisableDate")));
                                bomLine.setOrgCode(lineJson.getString("LOrgName").contains("沈阳")?"FORTUNE":lineJson.getString("LOrgName").contains("南通")?"FORTUNA":lineJson.getString("LOrgName").contains("北京")?"FORTUBE":lineJson.getString("LOrgName"));
                                bomLine.setCreateBy(batchNum);
                                lineList.add(bomLine);
                            }
                        }
@@ -198,6 +206,7 @@
                        jobLog.setCreateTime(DateUtils.getNowDate());
                        jobLog.setBizType("bom");
                        jobLog.setResult("header:"+headerList.size() + " line:"+lineList.size());
                        jobLog.setCreateBy(batchNum);
                        jobLogMapper.insertApsWorkOrderJobLog(jobLog);
                        pageIndex++;
                    }else{
@@ -211,12 +220,22 @@
                    jobLog.setCreateTime(DateUtils.getNowDate());
                    jobLog.setBizType("bom");
                    jobLog.setResult("error");
                    jobLog.setCreateBy(batchNum);
                    jobLogMapper.insertApsWorkOrderJobLog(jobLog);
                    break;
                }
            }
        }catch (Exception e){
            e.printStackTrace();
            jobLog.setRequestData(requestBody.toJSONString());
            jobLog.setResponseData(response.getBody());
            jobLog.setPageNum(Long.valueOf(pageIndex));
            jobLog.setPageCount(Long.valueOf(pageSize));
            jobLog.setCreateTime(DateUtils.getNowDate());
            jobLog.setBizType("bom");
            jobLog.setResult("error");
            jobLog.setCreateBy(batchNum);
            jobLogMapper.insertApsWorkOrderJobLog(jobLog);
            return false;
        }
        return true;
aps-modules/aps-job/src/main/java/com/aps/job/service/impl/ApsMaterialStorageManagementJobServiceImpl.java
@@ -5,6 +5,7 @@
import com.alibaba.fastjson.JSONObject;
import com.aps.common.core.utils.DateUtils;
import com.aps.common.core.utils.StringUtils;
import com.aps.common.core.utils.uuid.IdUtils;
import com.aps.job.domain.ApsMaterialStorageManagementJob;
import com.aps.job.domain.ApsWorkOrderJobLog;
import com.aps.job.mapper.ApsMaterialStorageManagementJobMapper;
@@ -123,12 +124,14 @@
        JSONObject requestBody = new JSONObject();
        ResponseEntity<String> response = null;
        ApsWorkOrderJobLog jobLog = new ApsWorkOrderJobLog();
        String batchNum = "";
        try {
            // è®¾ç½®è¯·æ±‚头
            HttpHeaders headers = new HttpHeaders();
            headers.setContentType(MediaType.APPLICATION_JSON);
            // è®¾ç½®è¯·æ±‚体
            while (true) {
                batchNum = IdUtils.fastSimpleUUID();
                jobLog = new ApsWorkOrderJobLog();
                requestBody = new JSONObject();
                requestBody.put("PageIndex", pageIndex);
@@ -152,6 +155,7 @@
                            materialStorage.setItemNumber(storage.getString("ItemCode"));
                            materialStorage.setNum(storage.getBigDecimal("StoreQty"));
                            materialStorage.setApplicableFactories(storage.getString("OrgCode"));
                            materialStorage.setCreateBy(batchNum);
                            storageList.add(materialStorage);
                        }
                        List<ApsMaterialStorageManagementJob> temp = new ArrayList<>();
@@ -168,6 +172,7 @@
                        jobLog.setCreateTime(DateUtils.getNowDate());
                        jobLog.setBizType("storage");
                        jobLog.setResult("storage:"+storageList.size());
                        jobLog.setCreateBy(batchNum);
                        jobLogMapper.insertApsWorkOrderJobLog(jobLog);
                        pageIndex++;
                    }else{
@@ -181,6 +186,7 @@
                    jobLog.setCreateTime(DateUtils.getNowDate());
                    jobLog.setBizType("storage");
                    jobLog.setResult("error");
                    jobLog.setCreateBy(batchNum);
                    jobLogMapper.insertApsWorkOrderJobLog(jobLog);
                    break;
                }
@@ -194,6 +200,7 @@
            jobLog.setCreateTime(DateUtils.getNowDate());
            jobLog.setBizType("storage");
            jobLog.setResult("error");
            jobLog.setCreateBy(batchNum);
            jobLogMapper.insertApsWorkOrderJobLog(jobLog);
            return false;
        }
aps-modules/aps-job/src/main/java/com/aps/job/service/impl/ApsStandardProcessRouteHeaderJobServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,264 @@
package com.aps.job.service.impl;
import cn.hutool.core.util.IdUtil;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.aps.common.core.utils.DateUtils;
import com.aps.common.core.utils.StringUtils;
import com.aps.common.core.utils.uuid.IdUtils;
import com.aps.job.domain.ApsStandardProcessRouteHeaderJob;
import com.aps.job.domain.ApsStandardProcessRouteLineJob;
import com.aps.job.domain.ApsWorkOrderJobLog;
import com.aps.job.mapper.ApsStandardProcessRouteHeaderJobMapper;
import com.aps.job.mapper.ApsStandardProcessRouteLineJobMapper;
import com.aps.job.mapper.ApsWorkOrderJobLogMapper;
import com.aps.job.service.IApsStandardProcessRouteHeaderJobService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.http.HttpEntity;
import org.springframework.http.HttpHeaders;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.client.RestTemplate;
import java.util.ArrayList;
import java.util.List;
/**
 * æ ‡å‡†å·¥è‰ºè·¯çº¿HeaderService业务层处理
 *
 * @author hjy
 * @date 2025-05-09
 */
@Service
public class ApsStandardProcessRouteHeaderJobServiceImpl implements IApsStandardProcessRouteHeaderJobService
{
    @Autowired
    private ApsStandardProcessRouteHeaderJobMapper apsStandardProcessRouteHeaderJobMapper;
    @Autowired
    private ApsStandardProcessRouteLineJobMapper apsStandardProcessRouteLineJobMapper;
    @Value("${u9.processRouteUrl}")
    private String getProcessRouteUrl;
    @Autowired
    private ApsWorkOrderJobLogMapper jobLogMapper;
    @Autowired
    private RestTemplate restTemplate;
    /**
     * æŸ¥è¯¢æ ‡å‡†å·¥è‰ºè·¯çº¿Header
     *
     * @param id æ ‡å‡†å·¥è‰ºè·¯çº¿Header主键
     * @return æ ‡å‡†å·¥è‰ºè·¯çº¿Header
     */
    @Override
    public ApsStandardProcessRouteHeaderJob selectApsStandardProcessRouteHeaderJobById(Long id)
    {
        return apsStandardProcessRouteHeaderJobMapper.selectApsStandardProcessRouteHeaderJobById(id);
    }
    /**
     * æŸ¥è¯¢æ ‡å‡†å·¥è‰ºè·¯çº¿Header列表
     *
     * @param apsStandardProcessRouteHeaderJob æ ‡å‡†å·¥è‰ºè·¯çº¿Header
     * @return æ ‡å‡†å·¥è‰ºè·¯çº¿Header
     */
    @Override
    public List<ApsStandardProcessRouteHeaderJob> selectApsStandardProcessRouteHeaderJobList(ApsStandardProcessRouteHeaderJob apsStandardProcessRouteHeaderJob)
    {
        return apsStandardProcessRouteHeaderJobMapper.selectApsStandardProcessRouteHeaderJobList(apsStandardProcessRouteHeaderJob);
    }
    /**
     * æ–°å¢žæ ‡å‡†å·¥è‰ºè·¯çº¿Header
     *
     * @param apsStandardProcessRouteHeaderJob æ ‡å‡†å·¥è‰ºè·¯çº¿Header
     * @return ç»“æžœ
     */
    @Override
    public int insertApsStandardProcessRouteHeaderJob(ApsStandardProcessRouteHeaderJob apsStandardProcessRouteHeaderJob)
    {
        apsStandardProcessRouteHeaderJob.setCreateTime(DateUtils.getNowDate());
        return apsStandardProcessRouteHeaderJobMapper.insertApsStandardProcessRouteHeaderJob(apsStandardProcessRouteHeaderJob);
    }
    /**
     * ä¿®æ”¹æ ‡å‡†å·¥è‰ºè·¯çº¿Header
     *
     * @param apsStandardProcessRouteHeaderJob æ ‡å‡†å·¥è‰ºè·¯çº¿Header
     * @return ç»“æžœ
     */
    @Override
    public int updateApsStandardProcessRouteHeaderJob(ApsStandardProcessRouteHeaderJob apsStandardProcessRouteHeaderJob)
    {
        apsStandardProcessRouteHeaderJob.setUpdateTime(DateUtils.getNowDate());
        return apsStandardProcessRouteHeaderJobMapper.updateApsStandardProcessRouteHeaderJob(apsStandardProcessRouteHeaderJob);
    }
    /**
     * æ‰¹é‡åˆ é™¤æ ‡å‡†å·¥è‰ºè·¯çº¿Header
     *
     * @param ids éœ€è¦åˆ é™¤çš„æ ‡å‡†å·¥è‰ºè·¯çº¿Header主键
     * @return ç»“æžœ
     */
    @Override
    public int deleteApsStandardProcessRouteHeaderJobByIds(Long[] ids)
    {
        return apsStandardProcessRouteHeaderJobMapper.deleteApsStandardProcessRouteHeaderJobByIds(ids);
    }
    /**
     * åˆ é™¤æ ‡å‡†å·¥è‰ºè·¯çº¿Header信息
     *
     * @param id æ ‡å‡†å·¥è‰ºè·¯çº¿Header主键
     * @return ç»“æžœ
     */
    @Override
    public int deleteApsStandardProcessRouteHeaderJobById(Long id)
    {
        return apsStandardProcessRouteHeaderJobMapper.deleteApsStandardProcessRouteHeaderJobById(id);
    }
    @Override
    public boolean syncProcessRouteData(Integer pageIndex, Integer pageSize, String orgCode, String itemCodeList) {
        JSONObject requestBody = new JSONObject();
        ResponseEntity<String> response = null;
        ApsWorkOrderJobLog jobLog = new ApsWorkOrderJobLog();
        String batchNum = "";
        try {
            // è®¾ç½®è¯·æ±‚头
            HttpHeaders headers = new HttpHeaders();
            headers.setContentType(MediaType.APPLICATION_JSON);
            // è®¾ç½®è¯·æ±‚体
            while (true) {
                batchNum = IdUtils.fastSimpleUUID();
                jobLog = new ApsWorkOrderJobLog();
                requestBody = new JSONObject();
                requestBody.put("PageIndex", pageIndex);
                requestBody.put("PageSize", pageSize);
                if(!StringUtils.isEmpty(orgCode)){
                    requestBody.put("OrgCode", orgCode);
                }
                // åˆ›å»ºHttpEntity对象
                HttpEntity<String> request = new HttpEntity<>(requestBody.toJSONString(), headers);
                // å‘送POST请求
                response = restTemplate.postForEntity(getProcessRouteUrl, request, String.class);
                JSONObject responseBodyJson = JSONObject.parseObject(response.getBody());
                if (response.getStatusCode().is2xxSuccessful() && "200".equals(responseBodyJson.getString("status"))) {
                    JSONArray jsonArray = responseBodyJson.getJSONArray("data");
                    if (!jsonArray.isEmpty()) {
                        List<ApsStandardProcessRouteHeaderJob> headerList = new ArrayList<>();
                        List<ApsStandardProcessRouteLineJob> lineList = new ArrayList<>();
                        for (Object o : jsonArray) {
                            //o对象中的属性赋值给ApsBomHeaderJob对象
                            JSONObject routeHeader = (JSONObject) o;
                            JSONArray routeLines = routeHeader.getJSONArray("RoutingLines");
                            ApsStandardProcessRouteHeaderJob insertRouteHeader = new ApsStandardProcessRouteHeaderJob();
                            insertRouteHeader.setId(IdUtil.getSnowflakeNextId());
                            insertRouteHeader.setRouteId(routeHeader.getString("HID"));
                            insertRouteHeader.setItemCode(routeHeader.getString("HItemCode"));
                            insertRouteHeader.setVersion(routeHeader.getString("RoutingVersionCode"));
                            insertRouteHeader.setStartDate(DateUtils.parseDate(routeHeader.getString("HEffectiveDate")));
                            insertRouteHeader.setEndDate(DateUtils.parseDate(routeHeader.getString("HDisableDate")));
                            insertRouteHeader.setOrgCode(routeHeader.getString("HOrgCode"));
                            insertRouteHeader.setCreateBy(batchNum);
                            headerList.add(insertRouteHeader);
                            for(Object line : routeLines){
                                JSONObject lineJson = (JSONObject) line;
                                ApsStandardProcessRouteLineJob routeLine = new ApsStandardProcessRouteLineJob();
                                routeLine.setId(IdUtil.getSnowflakeNextId());
                                routeLine.setRouteId(lineJson.getString("HID"));
                                routeLine.setRouteNum(lineJson.getString("Sequence"));
                                routeLine.setRouteName(lineJson.getString("WorkCenterName"));
                                routeLine.setRouteCode(lineJson.getString("WorkCenterCode"));
                                routeLine.setStartDate(DateUtils.parseDate(lineJson.getString("LEffectiveDate")));
                                routeLine.setEndDate(DateUtils.parseDate(lineJson.getString("LDisableDate")));
                                routeLine.setOrgCode(lineJson.getString("LOrgCode"));
                                routeLine.setStandardTime(lineJson.getBigDecimal("StandardTime"));
                                routeLine.setCreateBy(batchNum);
                                lineList.add(routeLine);
                            }
                        }
                        List<ApsStandardProcessRouteHeaderJob> temp1 = new ArrayList<>();
                        for(int i=0;i<headerList.size();i++){
                            temp1.add(headerList.get(i));
                            if(temp1.size()>=20){
                                apsStandardProcessRouteHeaderJobMapper.insertProcessRouteHeaderBatch(temp1);
                                temp1 = new ArrayList<>();
                            }
                        }
                        List<ApsStandardProcessRouteLineJob> temp2 = new ArrayList<>();
                        for(int j=0;j<lineList.size();j++){
                            temp2.add(lineList.get(j));
                            if(temp2.size()>=20){
                                apsStandardProcessRouteLineJobMapper.insertProcessRouteLineBatch(temp2);
                                temp2 = new ArrayList<>();
                            }
                        }
                        jobLog.setRequestData(requestBody.toJSONString());
                        jobLog.setPageNum(Long.valueOf(pageIndex));
                        jobLog.setPageCount(Long.valueOf(pageSize));
                        jobLog.setCreateTime(DateUtils.getNowDate());
                        jobLog.setBizType("processRoute");
                        jobLog.setResult("header:"+headerList.size() + " line:"+lineList.size());
                        jobLog.setCreateBy(batchNum);
                        jobLogMapper.insertApsWorkOrderJobLog(jobLog);
                        pageIndex++;
                    }else{
                        break;
                    }
                }else{
                    jobLog.setRequestData(requestBody.toJSONString());
                    jobLog.setResponseData(response.getBody());
                    jobLog.setPageNum(Long.valueOf(pageIndex));
                    jobLog.setPageCount(Long.valueOf(pageSize));
                    jobLog.setCreateTime(DateUtils.getNowDate());
                    jobLog.setBizType("processRoute");
                    jobLog.setResult("error");
                    jobLog.setCreateBy(batchNum);
                    jobLogMapper.insertApsWorkOrderJobLog(jobLog);
                    break;
                }
            }
        }catch (Exception e){
            e.printStackTrace();
            jobLog.setRequestData(requestBody.toJSONString());
            jobLog.setResponseData(response.getBody());
            jobLog.setPageNum(Long.valueOf(pageIndex));
            jobLog.setPageCount(Long.valueOf(pageSize));
            jobLog.setCreateTime(DateUtils.getNowDate());
            jobLog.setBizType("processRoute");
            jobLog.setResult("error");
            jobLog.setCreateBy(batchNum);
            jobLogMapper.insertApsWorkOrderJobLog(jobLog);
            return false;
        }
        return true;
    }
    @Transactional(rollbackFor = Exception.class)
    @Override
    public boolean syncProcessRouteDataJob(Integer pageIndex, Integer pageSize, String orgCode, String itemCodeList) {
        try {
            apsStandardProcessRouteHeaderJobMapper.deleteProcessRouteHeaderJob();
            apsStandardProcessRouteLineJobMapper.deleteProcessRouteLineJob();
            boolean res = syncProcessRouteData(pageIndex, pageSize, orgCode, itemCodeList);
            if(!res){
                return false;
            }
            apsStandardProcessRouteHeaderJobMapper.deleteProcessRouteHeader();
            apsStandardProcessRouteLineJobMapper.deleteProcessRouteLine();
            apsStandardProcessRouteHeaderJobMapper.insertIntoProcessRouteHeader();
            apsStandardProcessRouteLineJobMapper.insertIntoProcessRouteLine();
        } catch (Exception e) {
            e.printStackTrace();
            throw new RuntimeException(e);
        }
        return true;
    }
}
aps-modules/aps-job/src/main/java/com/aps/job/service/impl/ApsStandardProcessRouteLineJobServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,97 @@
package com.aps.job.service.impl;
import com.aps.common.core.utils.DateUtils;
import com.aps.job.domain.ApsStandardProcessRouteLineJob;
import com.aps.job.mapper.ApsStandardProcessRouteLineJobMapper;
import com.aps.job.service.IApsStandardProcessRouteLineJobService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
/**
 * æ ‡å‡†å·¥è‰ºè·¯çº¿LineService业务层处理
 *
 * @author hjy
 * @date 2025-05-09
 */
@Service
public class ApsStandardProcessRouteLineJobServiceImpl implements IApsStandardProcessRouteLineJobService
{
    @Autowired
    private ApsStandardProcessRouteLineJobMapper apsStandardProcessRouteLineJobMapper;
    /**
     * æŸ¥è¯¢æ ‡å‡†å·¥è‰ºè·¯çº¿Line
     *
     * @param id æ ‡å‡†å·¥è‰ºè·¯çº¿Line主键
     * @return æ ‡å‡†å·¥è‰ºè·¯çº¿Line
     */
    @Override
    public ApsStandardProcessRouteLineJob selectApsStandardProcessRouteLineJobById(Long id)
    {
        return apsStandardProcessRouteLineJobMapper.selectApsStandardProcessRouteLineJobById(id);
    }
    /**
     * æŸ¥è¯¢æ ‡å‡†å·¥è‰ºè·¯çº¿Line列表
     *
     * @param apsStandardProcessRouteLineJob æ ‡å‡†å·¥è‰ºè·¯çº¿Line
     * @return æ ‡å‡†å·¥è‰ºè·¯çº¿Line
     */
    @Override
    public List<ApsStandardProcessRouteLineJob> selectApsStandardProcessRouteLineJobList(ApsStandardProcessRouteLineJob apsStandardProcessRouteLineJob)
    {
        return apsStandardProcessRouteLineJobMapper.selectApsStandardProcessRouteLineJobList(apsStandardProcessRouteLineJob);
    }
    /**
     * æ–°å¢žæ ‡å‡†å·¥è‰ºè·¯çº¿Line
     *
     * @param apsStandardProcessRouteLineJob æ ‡å‡†å·¥è‰ºè·¯çº¿Line
     * @return ç»“æžœ
     */
    @Override
    public int insertApsStandardProcessRouteLineJob(ApsStandardProcessRouteLineJob apsStandardProcessRouteLineJob)
    {
        apsStandardProcessRouteLineJob.setCreateTime(DateUtils.getNowDate());
        return apsStandardProcessRouteLineJobMapper.insertApsStandardProcessRouteLineJob(apsStandardProcessRouteLineJob);
    }
    /**
     * ä¿®æ”¹æ ‡å‡†å·¥è‰ºè·¯çº¿Line
     *
     * @param apsStandardProcessRouteLineJob æ ‡å‡†å·¥è‰ºè·¯çº¿Line
     * @return ç»“æžœ
     */
    @Override
    public int updateApsStandardProcessRouteLineJob(ApsStandardProcessRouteLineJob apsStandardProcessRouteLineJob)
    {
        apsStandardProcessRouteLineJob.setUpdateTime(DateUtils.getNowDate());
        return apsStandardProcessRouteLineJobMapper.updateApsStandardProcessRouteLineJob(apsStandardProcessRouteLineJob);
    }
    /**
     * æ‰¹é‡åˆ é™¤æ ‡å‡†å·¥è‰ºè·¯çº¿Line
     *
     * @param ids éœ€è¦åˆ é™¤çš„æ ‡å‡†å·¥è‰ºè·¯çº¿Line主键
     * @return ç»“æžœ
     */
    @Override
    public int deleteApsStandardProcessRouteLineJobByIds(Long[] ids)
    {
        return apsStandardProcessRouteLineJobMapper.deleteApsStandardProcessRouteLineJobByIds(ids);
    }
    /**
     * åˆ é™¤æ ‡å‡†å·¥è‰ºè·¯çº¿Line信息
     *
     * @param id æ ‡å‡†å·¥è‰ºè·¯çº¿Line主键
     * @return ç»“æžœ
     */
    @Override
    public int deleteApsStandardProcessRouteLineJobById(Long id)
    {
        return apsStandardProcessRouteLineJobMapper.deleteApsStandardProcessRouteLineJobById(id);
    }
}
aps-modules/aps-job/src/main/java/com/aps/job/task/RyTask.java
@@ -3,10 +3,7 @@
import com.aps.common.core.constant.SecurityConstants;
import com.aps.common.core.utils.StringUtils;
import com.aps.job.param.ApsWorkOrderJobParam;
import com.aps.job.service.IApsBomHeaderJobService;
import com.aps.job.service.IApsMaterialStorageManagementJobService;
import com.aps.job.service.IApsWorkOrderJobService;
import com.aps.job.service.IApsWorkOrderProcessService;
import com.aps.job.service.*;
import com.aps.system.api.RemoteCoreService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@@ -39,6 +36,9 @@
    @Autowired
    private IApsMaterialStorageManagementJobService apsMaterialStorageManagementJobService;
    @Autowired
    private IApsStandardProcessRouteHeaderJobService apsStandardProcessRouteHeaderJobService;
    public void ryMultipleParams(String s, Boolean b, Long l, Double d, Integer i)
    {
@@ -165,4 +165,17 @@
    {
        apsMaterialStorageManagementJobService.syncApsMaterialStorageDataJob(pageIndex, pageSize, orgCode, itemCodeList);
    }
    /**
     * åŒæ­¥å…¨é‡å·¥è‰ºè·¯çº¿æ•°æ®å®šæ—¶ä»»åŠ¡
     */
    public void syncProcessRouteJob(Integer pageIndex, Integer pageSize, String orgCode, String itemCodeList)
    {
        boolean res =  apsStandardProcessRouteHeaderJobService.syncProcessRouteDataJob(pageIndex, pageSize, orgCode, itemCodeList);
//        if(res){
//            remoteCoreService.setBomDataToRedis(SecurityConstants.INNER);
//        }
    }
}
aps-modules/aps-job/src/main/resources/mapper/job/ApsStandardProcessRouteHeaderJobMapper.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,173 @@
<?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.aps.job.mapper.ApsStandardProcessRouteHeaderJobMapper">
    <resultMap type="ApsStandardProcessRouteHeaderJob" id="ApsStandardProcessRouteHeaderJobResult">
        <result property="id"    column="id"    />
        <result property="routeId"    column="route_id"    />
        <result property="version"    column="version"    />
        <result property="startDate"    column="start_date"    />
        <result property="endDate"    column="end_date"    />
        <result property="orgCode"    column="org_code"    />
        <result property="delFlag"    column="del_flag"    />
        <result property="createBy"    column="create_by"    />
        <result property="createTime"    column="create_time"    />
        <result property="updateBy"    column="update_by"    />
        <result property="updateTime"    column="update_time"    />
        <result property="itemCode"    column="item_code"    />
        <result property="drawingNumber"    column="drawing_number"    />
        <result property="processAllTime"    column="process_all_time"    />
    </resultMap>
    <sql id="selectApsStandardProcessRouteHeaderJobVo">
        select id, route_id, version, start_date, end_date, org_code, del_flag, create_by, create_time, update_by, update_time, item_code, drawing_number, process_all_time from aps_standard_process_route_header_job
    </sql>
    <select id="selectApsStandardProcessRouteHeaderJobList" parameterType="ApsStandardProcessRouteHeaderJob" resultMap="ApsStandardProcessRouteHeaderJobResult">
        <include refid="selectApsStandardProcessRouteHeaderJobVo"/>
        <where>
            <if test="routeId != null  and routeId != ''"> and route_id = #{routeId}</if>
            <if test="version != null  and version != ''"> and version = #{version}</if>
            <if test="startDate != null "> and start_date = #{startDate}</if>
            <if test="endDate != null "> and end_date = #{endDate}</if>
            <if test="orgCode != null  and orgCode != ''"> and org_code = #{orgCode}</if>
            <if test="itemCode != null  and itemCode != ''"> and item_code = #{itemCode}</if>
            <if test="drawingNumber != null  and drawingNumber != ''"> and drawing_number = #{drawingNumber}</if>
            <if test="processAllTime != null "> and process_all_time = #{processAllTime}</if>
        </where>
    </select>
    <select id="selectApsStandardProcessRouteHeaderJobById" parameterType="Long" resultMap="ApsStandardProcessRouteHeaderJobResult">
        <include refid="selectApsStandardProcessRouteHeaderJobVo"/>
        where id = #{id}
    </select>
    <insert id="insertApsStandardProcessRouteHeaderJob" parameterType="ApsStandardProcessRouteHeaderJob">
        insert into aps_standard_process_route_header_job
        <trim prefix="(" suffix=")" suffixOverrides=",">
            <if test="id != null">id,</if>
            <if test="routeId != null">route_id,</if>
            <if test="version != null">version,</if>
            <if test="startDate != null">start_date,</if>
            <if test="endDate != null">end_date,</if>
            <if test="orgCode != null">org_code,</if>
            <if test="delFlag != null">del_flag,</if>
            <if test="createBy != null">create_by,</if>
            <if test="createTime != null">create_time,</if>
            <if test="updateBy != null">update_by,</if>
            <if test="updateTime != null">update_time,</if>
            <if test="itemCode != null">item_code,</if>
            <if test="drawingNumber != null">drawing_number,</if>
            <if test="processAllTime != null">process_all_time,</if>
         </trim>
        <trim prefix="values (" suffix=")" suffixOverrides=",">
            <if test="id != null">#{id},</if>
            <if test="routeId != null">#{routeId},</if>
            <if test="version != null">#{version},</if>
            <if test="startDate != null">#{startDate},</if>
            <if test="endDate != null">#{endDate},</if>
            <if test="orgCode != null">#{orgCode},</if>
            <if test="delFlag != null">#{delFlag},</if>
            <if test="createBy != null">#{createBy},</if>
            <if test="createTime != null">#{createTime},</if>
            <if test="updateBy != null">#{updateBy},</if>
            <if test="updateTime != null">#{updateTime},</if>
            <if test="itemCode != null">#{itemCode},</if>
            <if test="drawingNumber != null">#{drawingNumber},</if>
            <if test="processAllTime != null">#{processAllTime},</if>
         </trim>
    </insert>
    <update id="updateApsStandardProcessRouteHeaderJob" parameterType="ApsStandardProcessRouteHeaderJob">
        update aps_standard_process_route_header_job
        <trim prefix="SET" suffixOverrides=",">
            <if test="routeId != null">route_id = #{routeId},</if>
            <if test="version != null">version = #{version},</if>
            <if test="startDate != null">start_date = #{startDate},</if>
            <if test="endDate != null">end_date = #{endDate},</if>
            <if test="orgCode != null">org_code = #{orgCode},</if>
            <if test="delFlag != null">del_flag = #{delFlag},</if>
            <if test="createBy != null">create_by = #{createBy},</if>
            <if test="createTime != null">create_time = #{createTime},</if>
            <if test="updateBy != null">update_by = #{updateBy},</if>
            <if test="updateTime != null">update_time = #{updateTime},</if>
            <if test="itemCode != null">item_code = #{itemCode},</if>
            <if test="drawingNumber != null">drawing_number = #{drawingNumber},</if>
            <if test="processAllTime != null">process_all_time = #{processAllTime},</if>
        </trim>
        where id = #{id}
    </update>
    <delete id="deleteApsStandardProcessRouteHeaderJobById" parameterType="Long">
        delete from aps_standard_process_route_header_job where id = #{id}
    </delete>
    <delete id="deleteApsStandardProcessRouteHeaderJobByIds" parameterType="String">
        delete from aps_standard_process_route_header_job where id in
        <foreach item="id" collection="array" open="(" separator="," close=")">
            #{id}
        </foreach>
    </delete>
    <insert id="insertProcessRouteHeaderBatch">
        INSERT INTO aps_standard_process_route_header_job (
        id,
        route_id,
        item_code,
        version,
        start_date,
        end_date,
        org_code,
        create_time
        ) VALUES
        <foreach collection="list" item="item" separator=",">
            (
            #{item.id},
            #{item.routeId},
            #{item.itemCode},
            #{item.version},
            #{item.startDate},
            #{item.endDate},
            #{item.orgCode},
            now()
            )
        </foreach>
    </insert>
    <!-- æ’入数据到 aps_bom_header -->
    <insert id="insertIntoProcessRouteHeader">
        INSERT INTO aps_standard_process_route_header (
            id,
            route_id,
            item_code,
            version,
            start_date,
            end_date,
            org_code,
            create_time
        )
        SELECT
            id,
            route_id,
            item_code,
            version,
            start_date,
            end_date,
            org_code,
            now()
        FROM aps_standard_process_route_header_job
    </insert>
    <!-- åˆ é™¤ aps_standard_process_route_header è¡¨ä¸­çš„æ•°æ® -->
    <delete id="deleteProcessRouteHeader">
        DELETE FROM aps_standard_process_route_header
    </delete>
    <!-- åˆ é™¤ aps_standard_process_route_header_job è¡¨ä¸­çš„æ•°æ® -->
    <delete id="deleteProcessRouteHeaderJob">
        DELETE FROM aps_standard_process_route_header_job
    </delete>
</mapper>
aps-modules/aps-job/src/main/resources/mapper/job/ApsStandardProcessRouteLineJobMapper.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,192 @@
<?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.aps.job.mapper.ApsStandardProcessRouteLineJobMapper">
    <resultMap type="ApsStandardProcessRouteLineJob" id="ApsStandardProcessRouteLineJobResult">
        <result property="id"    column="id"    />
        <result property="routeId"    column="route_id"    />
        <result property="routeNum"    column="route_num"    />
        <result property="routeName"    column="route_name"    />
        <result property="startDate"    column="start_date"    />
        <result property="endDate"    column="end_date"    />
        <result property="createTime"    column="create_time"    />
        <result property="orgCode"    column="org_code"    />
        <result property="shopCode"    column="shop_code"    />
        <result property="productivityModel"    column="productivity_model"    />
        <result property="designCapacity"    column="design_capacity"    />
        <result property="delFlag"    column="del_flag"    />
        <result property="createBy"    column="create_by"    />
        <result property="updateBy"    column="update_by"    />
        <result property="updateTime"    column="update_time"    />
        <result property="routeCode"    column="route_code"    />
        <result property="standardTime"    column="standard_time"    />
    </resultMap>
    <sql id="selectApsStandardProcessRouteLineJobVo">
        select id, route_id, route_num, route_name, start_date, end_date, create_time, org_code, shop_code, productivity_model, design_capacity, del_flag, create_by, update_by, update_time, route_code, standard_time from aps_standard_process_route_line_job
    </sql>
    <select id="selectApsStandardProcessRouteLineJobList" parameterType="ApsStandardProcessRouteLineJob" resultMap="ApsStandardProcessRouteLineJobResult">
        <include refid="selectApsStandardProcessRouteLineJobVo"/>
        <where>
            <if test="routeId != null  and routeId != ''"> and route_id = #{routeId}</if>
            <if test="routeNum != null  and routeNum != ''"> and route_num = #{routeNum}</if>
            <if test="routeName != null  and routeName != ''"> and route_name like concat('%', #{routeName}, '%')</if>
            <if test="startDate != null "> and start_date = #{startDate}</if>
            <if test="endDate != null "> and end_date = #{endDate}</if>
            <if test="orgCode != null  and orgCode != ''"> and org_code = #{orgCode}</if>
            <if test="shopCode != null  and shopCode != ''"> and shop_code = #{shopCode}</if>
            <if test="productivityModel != null  and productivityModel != ''"> and productivity_model = #{productivityModel}</if>
            <if test="designCapacity != null "> and design_capacity = #{designCapacity}</if>
        </where>
    </select>
    <select id="selectApsStandardProcessRouteLineJobById" parameterType="Long" resultMap="ApsStandardProcessRouteLineJobResult">
        <include refid="selectApsStandardProcessRouteLineJobVo"/>
        where id = #{id}
    </select>
    <insert id="insertApsStandardProcessRouteLineJob" parameterType="ApsStandardProcessRouteLineJob">
        insert into aps_standard_process_route_line_job
        <trim prefix="(" suffix=")" suffixOverrides=",">
            <if test="id != null">id,</if>
            <if test="routeId != null">route_id,</if>
            <if test="routeNum != null">route_num,</if>
            <if test="routeName != null">route_name,</if>
            <if test="startDate != null">start_date,</if>
            <if test="endDate != null">end_date,</if>
            <if test="createTime != null">create_time,</if>
            <if test="orgCode != null">org_code,</if>
            <if test="shopCode != null">shop_code,</if>
            <if test="productivityModel != null">productivity_model,</if>
            <if test="designCapacity != null">design_capacity,</if>
            <if test="delFlag != null">del_flag,</if>
            <if test="createBy != null">create_by,</if>
            <if test="updateBy != null">update_by,</if>
            <if test="updateTime != null">update_time,</if>
         </trim>
        <trim prefix="values (" suffix=")" suffixOverrides=",">
            <if test="id != null">#{id},</if>
            <if test="routeId != null">#{routeId},</if>
            <if test="routeNum != null">#{routeNum},</if>
            <if test="routeName != null">#{routeName},</if>
            <if test="startDate != null">#{startDate},</if>
            <if test="endDate != null">#{endDate},</if>
            <if test="createTime != null">#{createTime},</if>
            <if test="orgCode != null">#{orgCode},</if>
            <if test="shopCode != null">#{shopCode},</if>
            <if test="productivityModel != null">#{productivityModel},</if>
            <if test="designCapacity != null">#{designCapacity},</if>
            <if test="delFlag != null">#{delFlag},</if>
            <if test="createBy != null">#{createBy},</if>
            <if test="updateBy != null">#{updateBy},</if>
            <if test="updateTime != null">#{updateTime},</if>
         </trim>
    </insert>
    <update id="updateApsStandardProcessRouteLineJob" parameterType="ApsStandardProcessRouteLineJob">
        update aps_standard_process_route_line_job
        <trim prefix="SET" suffixOverrides=",">
            <if test="routeId != null">route_id = #{routeId},</if>
            <if test="routeNum != null">route_num = #{routeNum},</if>
            <if test="routeName != null">route_name = #{routeName},</if>
            <if test="startDate != null">start_date = #{startDate},</if>
            <if test="endDate != null">end_date = #{endDate},</if>
            <if test="createTime != null">create_time = #{createTime},</if>
            <if test="orgCode != null">org_code = #{orgCode},</if>
            <if test="shopCode != null">shop_code = #{shopCode},</if>
            <if test="productivityModel != null">productivity_model = #{productivityModel},</if>
            <if test="designCapacity != null">design_capacity = #{designCapacity},</if>
            <if test="delFlag != null">del_flag = #{delFlag},</if>
            <if test="createBy != null">create_by = #{createBy},</if>
            <if test="updateBy != null">update_by = #{updateBy},</if>
            <if test="updateTime != null">update_time = #{updateTime},</if>
        </trim>
        where id = #{id}
    </update>
    <delete id="deleteApsStandardProcessRouteLineJobById" parameterType="Long">
        delete from aps_standard_process_route_line_job where id = #{id}
    </delete>
    <delete id="deleteApsStandardProcessRouteLineJobByIds" parameterType="String">
        delete from aps_standard_process_route_line_job where id in
        <foreach item="id" collection="array" open="(" separator="," close=")">
            #{id}
        </foreach>
    </delete>
    <insert id="insertProcessRouteLineBatch">
        INSERT INTO aps_standard_process_route_line_job (
        id,
        route_id,
        route_num,
        route_name,
        route_code,
        start_date,
        end_date,
        org_code,
        shop_code,
        standard_time,
        create_time
        ) VALUES
        <foreach collection="list" item="item" separator=",">
            (
            #{item.id},
            #{item.routeId},
            #{item.routeNum},
            #{item.routeName},
            #{item.routeCode},
            #{item.startDate},
            #{item.endDate},
            #{item.orgCode},
            #{item.shopCode},
            #{item.standardTime},
            now()
            )
        </foreach>
    </insert>
    <!-- æ’入数据到 aps_bom_header -->
    <insert id="insertIntoProcessRouteLine">
        INSERT INTO aps_standard_process_route_line (
            id,
            route_id,
            route_num,
            route_name,
            route_code,
            start_date,
            end_date,
            org_code,
            shop_code,
            standard_time,
            create_time
        )
        SELECT
            id,
            route_id,
            route_num,
            route_name,
            route_code,
            start_date,
            end_date,
            org_code,
            shop_code,
            standard_time,
            now()
        FROM aps_standard_process_route_line_job
    </insert>
    <!-- åˆ é™¤ aps_standard_process_route_line è¡¨ä¸­çš„æ•°æ® -->
    <delete id="deleteProcessRouteLine">
        DELETE FROM aps_standard_process_route_line
    </delete>
    <!-- åˆ é™¤ aps_standard_process_route_line_job è¡¨ä¸­çš„æ•°æ® -->
    <delete id="deleteProcessRouteLineJob">
        DELETE FROM aps_standard_process_route_line_job
    </delete>
</mapper>