hongjli
2025-05-22 32d81c4489b3fb27aeae1a16af0c400d0d215991
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
package com.aps.core.service.impl;
 
import com.alibaba.fastjson2.JSONObject;
import com.aps.common.core.utils.DateUtils;
import com.aps.core.domain.ApsStandardProcessRouteHeader;
import com.aps.core.mapper.ApsStandardProcessRouteHeaderMapper;
import com.aps.core.service.IApsStandardProcessRouteHeaderService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service;
 
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
 
/**
 * 标准工艺路线HeaderService业务层处理
 * 
 * @author zhl
 * @date 2025-05-06
 */
@Service
@Slf4j
public class ApsStandardProcessRouteHeaderServiceImpl implements IApsStandardProcessRouteHeaderService 
{
    @Autowired
    private ApsStandardProcessRouteHeaderMapper apsStandardProcessRouteHeaderMapper;
 
    @Autowired
    public RedisTemplate redisTemplate;
 
    /**
     * 查询标准工艺路线Header
     * 
     * @param id 标准工艺路线Header主键
     * @return 标准工艺路线Header
     */
    @Override
    public ApsStandardProcessRouteHeader selectApsStandardProcessRouteHeaderById(Long id)
    {
        return apsStandardProcessRouteHeaderMapper.selectApsStandardProcessRouteHeaderById(id);
    }
 
    /**
     * 查询标准工艺路线Header列表
     * 
     * @param apsStandardProcessRouteHeader 标准工艺路线Header
     * @return 标准工艺路线Header
     */
    @Override
    public List<ApsStandardProcessRouteHeader> selectApsStandardProcessRouteHeaderList(ApsStandardProcessRouteHeader apsStandardProcessRouteHeader)
    {
        return apsStandardProcessRouteHeaderMapper.selectApsStandardProcessRouteHeaderList(apsStandardProcessRouteHeader);
    }
 
    /**
     * 新增标准工艺路线Header
     * 
     * @param apsStandardProcessRouteHeader 标准工艺路线Header
     * @return 结果
     */
    @Override
    public int insertApsStandardProcessRouteHeader(ApsStandardProcessRouteHeader apsStandardProcessRouteHeader)
    {
        apsStandardProcessRouteHeader.setCreateTime(DateUtils.getNowDate());
        return apsStandardProcessRouteHeaderMapper.insertApsStandardProcessRouteHeader(apsStandardProcessRouteHeader);
    }
 
    /**
     * 修改标准工艺路线Header
     * 
     * @param apsStandardProcessRouteHeader 标准工艺路线Header
     * @return 结果
     */
    @Override
    public int updateApsStandardProcessRouteHeader(ApsStandardProcessRouteHeader apsStandardProcessRouteHeader)
    {
        apsStandardProcessRouteHeader.setUpdateTime(DateUtils.getNowDate());
        return apsStandardProcessRouteHeaderMapper.updateApsStandardProcessRouteHeader(apsStandardProcessRouteHeader);
    }
 
    /**
     * 批量删除标准工艺路线Header
     * 
     * @param ids 需要删除的标准工艺路线Header主键
     * @return 结果
     */
    @Override
    public int deleteApsStandardProcessRouteHeaderByIds(Long[] ids)
    {
        return apsStandardProcessRouteHeaderMapper.deleteApsStandardProcessRouteHeaderByIds(ids);
    }
 
    /**
     * 删除标准工艺路线Header信息
     * 
     * @param id 标准工艺路线Header主键
     * @return 结果
     */
    @Override
    public int deleteApsStandardProcessRouteHeaderById(Long id)
    {
        return apsStandardProcessRouteHeaderMapper.deleteApsStandardProcessRouteHeaderById(id);
    }
 
    @Override
    public boolean setProcessRouteDataToRedis(String orgCode) {
        try {
            log.info("开始同步标准工艺路线数据至Redis");
            Set<String> keys = redisTemplate.keys("ROUTE:ROUTE_*");
            if (keys != null && !keys.isEmpty()) {
                redisTemplate.delete(keys);
            }
            List<JSONObject> res = apsStandardProcessRouteHeaderMapper.selectProcessRouteStandardTimeData(orgCode);
            Map<String, Object> bulkData = new HashMap<>();
            for (JSONObject jsonObject : res) {
                bulkData.put("ROUTE:ROUTE_"+jsonObject.getString("org_code")+"_"+jsonObject.getString("item_code"), jsonObject.getBigDecimal("standardtime"));
            }
            redisTemplate.opsForValue().multiSet(bulkData);
            log.info("完成同步标准工艺路线数据至Redis");
            return true;
        } catch (Exception e) {
            e.printStackTrace();
            log.error("同步标准工艺路线数据至Redis失败"+e.getMessage());
            return false;
        }
    }
}