lxw
2022-09-08 02a01ec276fa3673cb31a37f0ed5e9ef2cf0f43b
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
131
package com.whyc.service;
 
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.whyc.dto.Response;
import com.whyc.mapper.ProductHistoryMapper;
import com.whyc.mapper.ProductMapper;
import com.whyc.pojo.Product;
import com.whyc.pojo.ProductHistory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
 
import java.awt.print.PrinterJob;
import java.util.List;
 
@Service
public class ProductHistoryService {
    @Autowired(required = false)
    private ProductHistoryMapper mapper;
    @Autowired(required = false)
    private ProductMapper productMapper;
 
 
 
 
    //产品详情查看版本信息
    public Response getProductVersion(String parentCode,String customCode) {
        QueryWrapper wrapper=new QueryWrapper();
        wrapper.eq("parent_code",parentCode);
        wrapper.eq("custom_code",customCode);
        wrapper.orderByDesc("version_time");
        List<ProductHistory> list=mapper.selectList(wrapper);
        return new Response().setII(1,list.size()>0,list,"返回产品版信息");
    }
 
    /**新增追加的版本并将原先的版本的启用设置为未启用*/
    public void insertAndUpdateEnabled(ProductHistory productHistory) {
        UpdateWrapper<ProductHistory> update = Wrappers.update();
        update.set("enabled",0).eq("parent_code",productHistory.getParentCode())
                .eq("custom_code",productHistory.getCustomCode()).eq("enabled",1);
        mapper.update(null,update);
 
        mapper.insert(productHistory);
    }
 
    public void updateEnabledStatus(String parentCode, String customCode, int status) {
        int anotherStatus = 0;
        if(status==0){
            anotherStatus=1;
        }else{
            anotherStatus=0;
        }
        UpdateWrapper<ProductHistory> update = Wrappers.update();
        update.set("enabled",status).eq("parent_code",parentCode)
                .eq("custom_code",customCode).eq("enabled",anotherStatus);
        mapper.update(null,update);
    }
 
    public ProductHistory getEnabledByParentCodeAndCustomCode(String parentCode, String customCode) {
        QueryWrapper<ProductHistory> query = Wrappers.query();
        query.eq("parent_code",parentCode).eq("custom_code",customCode).eq("enabled",1)
                .last(" limit 1");
        return mapper.selectOne(query);
    }
 
    public ProductHistory getLatestVersion(String parentCode, String customCode) {
        QueryWrapper<ProductHistory> query = Wrappers.query();
        query.eq("parent_code",parentCode).eq("custom_code",customCode).orderByDesc("version").last(" limit 1");
        return mapper.selectOne(query);
    }
    //历史版本可用性设定
    public Response setpHistoryEnable(String parentCode, String customCode, int version, int enabled) {
        UpdateWrapper wrapper=new UpdateWrapper();
        wrapper.eq("parent_code",parentCode);
        wrapper.eq("custom_code",customCode);
 
        int flag=0;
        if(enabled==1){
            //先将所有的锁定
            wrapper.set("enabled",0);
            flag=mapper.update(null,wrapper);
            //再将选中的设为可用
            wrapper.eq("version",version);
            wrapper.set("enabled",1);
            flag=mapper.update(null,wrapper);
            if(flag>0){
                QueryWrapper qWrapper=new QueryWrapper();
                qWrapper.eq("parent_code",parentCode);
                qWrapper.eq("custom_code",customCode);
                //将选中的版本的历史信息查询出来
                qWrapper.eq("version",version);
                ProductHistory pHistory=mapper.selectOne(qWrapper);
                //prodcut中删除旧的产品信息
                UpdateWrapper deleteWrapper=new UpdateWrapper();
                deleteWrapper.eq("parent_code",parentCode);
                deleteWrapper.eq("custom_code",customCode);
                productMapper.delete(deleteWrapper);
                //再在product中查询设定可用的pHistory
                if(pHistory!=null){
                    Product product=new Product();
                    product.setParentCode(pHistory.getParentCode());
                    product.setParentName(pHistory.getParentName());
                    product.setParentModel(pHistory.getParentModel());
                    product.setCustomCode(pHistory.getCustomCode());
                    product.setCreateTime(pHistory.getCreateTime());
                    product.setVersionTime(pHistory.getVersionTime());
                    product.setVersion(pHistory.getVersion());
                    productMapper.insert(product);
                }
            }
        }else{
            wrapper.eq("version",version);
            wrapper.set("enabled",0);
            flag=mapper.update(null,wrapper);
            if(flag>0){
                //prodcut中删除旧的产品信息
                UpdateWrapper deleteWrapper=new UpdateWrapper();
                deleteWrapper.eq("parent_code",parentCode);
                deleteWrapper.eq("custom_code",customCode);
                productMapper.delete(deleteWrapper);
            }
 
        }
        return new Response().set(1,flag>0,"历史版本可用性设定");
    }
 
    public void insert(ProductHistory his) {
        mapper.insert(his);
    }
}