czt
2025-05-29 753abfcaf090f79a4226693c2829a2d47b422058
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
package com.fzzy.igds.sys.pr;
 
import com.bstek.dorado.annotation.DataProvider;
import com.bstek.dorado.annotation.DataResolver;
import com.bstek.dorado.annotation.Expose;
import com.bstek.dorado.data.provider.Page;
import com.fzzy.igds.dzhwk.domain.DepotStatusConfirm;
import com.fzzy.igds.sys.DepotStatusConfirmService;
import com.fzzy.igds.sys.DepotStoreService;
import com.fzzy.igds.util.ContextUtil;
import com.ruoyi.common.utils.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable;
import org.springframework.data.domain.Sort;
import org.springframework.data.jpa.domain.Specification;
import org.springframework.stereotype.Component;
 
import javax.annotation.Resource;
import javax.persistence.criteria.CriteriaBuilder;
import javax.persistence.criteria.CriteriaQuery;
import javax.persistence.criteria.Predicate;
import javax.persistence.criteria.Root;
import java.util.*;
 
 
/**
 * 封仓确认单
 */
@Component
public class DepotStatusConfirmPR {
 
    @Resource
    private DepotStatusConfirmService statusConfirmService;
    @Resource
    private DepotStoreService depotStoreService;
 
    /**
     * depotStatusConfirmPR#pageDepotStatusConfirm
     *
     * @param page
     * @param param
     * @throws Exception
     */
    @DataProvider
    public void pageDepotStatusConfirm(Page<DepotStatusConfirm> page, Map<String, Object> param) {
        if (null == param) {
            param = new HashMap<>();
        }
        Map<String, Object> finalParam = param;
 
        //多参数分页查询
        Pageable pageable = PageRequest.of(page.getPageNo() - 1, page.getPageSize(), Sort.Direction.ASC, DepotStatusConfirm.SORT_PROP);
        Specification<DepotStatusConfirm> specification = new Specification<DepotStatusConfirm>() {
            private static final long serialVersionUID = 1L;
 
            public Predicate toPredicate(Root<DepotStatusConfirm> root, CriteriaQuery<?> query, CriteriaBuilder cb) {
                List<Predicate> predicates = new ArrayList<Predicate>(); //所有的断言
 
                Predicate predicate1 = cb.equal(root.get("companyId"), ContextUtil.getCompanyId());
                predicates.add(predicate1);
 
                Predicate predicate2 = cb.equal(root.get("deptId"), ContextUtil.subDeptId(null));
                predicates.add(predicate2);
 
                String key = (String) finalParam.get("depotId");
                if (StringUtils.isNotEmpty(key)) {
                    Predicate predicate3 = cb.equal(root.get("depotId"), key);
                    predicates.add(predicate3);
                }
                key = (String) finalParam.get("depotStatus");
                if (StringUtils.isNotEmpty(key)) {
                    Predicate predicate4 = cb.equal(root.get("depotStatus"), key);
                    predicates.add(predicate4);
                }
                Date start = (Date) finalParam.get("start");
                if (null != start) {
                    Predicate predicate5 = cb.greaterThan(root.get("updateDate"), start);
                    predicates.add(predicate5);
                }
 
                Date end = (Date) finalParam.get("end");
                if (null != end) {
                    Predicate predicate6 = cb.lessThan(root.get("updateDate"), end);
                    predicates.add(predicate6);
                }
                return cb.and(predicates.toArray(new Predicate[0]));
            }
        };
        org.springframework.data.domain.Page<DepotStatusConfirm> japPage = statusConfirmService.findAll(specification, pageable);
        page.setEntityCount((int) japPage.getTotalElements());
        page.setEntities(japPage.getContent());
    }
 
    /**
     * depotStatusConfirmPR#saveData 新增或者修改
     *
     * @param data
     */
    @DataResolver
    public void saveData(DepotStatusConfirm data) {
        DepotStatusConfirm depotStatusConfirm = new DepotStatusConfirm();
        BeanUtils.copyProperties(data, depotStatusConfirm);
        statusConfirmService.saveOrUpdate(depotStatusConfirm);
 
        //增加最新库存
        depotStoreService.depotStoreStatus(depotStatusConfirm);
    }
 
    /**
     * depotStatusConfirmPR#delData
     *
     * @param data
     * @return
     */
    @Expose
    public void delData(DepotStatusConfirm data) {
        DepotStatusConfirm depotStatusConfirm = new DepotStatusConfirm();
        BeanUtils.copyProperties(data, depotStatusConfirm);
        statusConfirmService.delData(depotStatusConfirm);
    }
 
}