QuotaPastBiz.java
5.51 KB
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
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
package com.cjs.cms.biz.quota;
import java.io.File;
import java.net.URI;
import java.util.List;
import java.util.Map;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import com.cjs.cms.action.user.fund.UserBalanceAction;
import com.cjs.cms.dao.quota.OtcHolderDao;
import com.cjs.cms.dao.quota.OtcStockRealDao;
import com.cjs.cms.dao.quota.QuotaConfigDao;
import com.cjs.cms.dao.quota.QuotaPastDao;
import com.cjs.cms.dao.quota.QuotaUserDao;
import com.cjs.cms.dao.quota.QuotaUserRecordDao;
import com.cjs.cms.model.quota.OtcStockRealInfo;
import com.cjs.cms.model.quota.QuotaConfigInfo;
import com.cjs.cms.model.quota.QuotaPastInfo;
import com.cjs.cms.model.quota.QuotaUserInfo;
import com.cjs.cms.model.quota.QuotaUserRecordInfo;
import com.cjs.cms.model.user.UserInfo;
import com.cjs.cms.util.file.FileUtil;
import com.cjs.cms.util.lang.DateEnum;
import com.cjs.cms.util.lang.DateUtil;
import com.cjs.cms.util.poi.ExcelConfig;
import com.cjs.cms.util.poi.ExcelUtil;
import com.cjs.cms.util.web.ActionUtil;
/**
* 清除过期额度和持仓
* @author 安逸
*
*/
@Service
public class QuotaPastBiz {
@Value("${download.export}")
private String exportPath;
@Autowired
private QuotaConfigDao quotaConfig;
@Autowired
private OtcStockRealDao otcStockRealDao;
@Autowired
private OtcHolderDao otcHolderDao;
@Autowired
private QuotaPastDao quotaPastDao;
@Autowired
private QuotaUserDao quotaUserDao;
@Autowired
private QuotaUserRecordDao quotaUserRecordDao;
Logger log = LogManager.getLogger();
/**
* 清除过期额度
*/
@Transactional
public void toCancleQuota(Map<String, Object> params) {
UserInfo userInfo = ActionUtil.getUser();
List<QuotaConfigInfo> quotaPast = quotaConfig.queryQuotaPast();
for (QuotaConfigInfo quotaConfigInfo : quotaPast) {
List<QuotaUserInfo> quotaUserInfo = quotaUserDao
.queryQuotaByotcCode(quotaConfigInfo.getOtcCode());
for (QuotaUserInfo quInfo : quotaUserInfo) {
//发生额度
int quota = quInfo.getQuota();
//托管额度变更记录
QuotaUserRecordInfo recored = new QuotaUserRecordInfo();
recored.setUserId(quInfo.getUserId());
recored.setOtcCode(quInfo.getOtcCode());
recored.setOtcName(quInfo.getOtcName());
recored.setQuota(-quota);
recored.setPostQuota(0);
recored.setSource(10);
recored.setCreateBy(userInfo.getTruename());
quotaUserRecordDao.insert(recored);
}
//清空额度
quotaConfig.updateCanceledQuota(quotaConfigInfo.getId());
params.put("otcCode", quotaConfigInfo.getOtcCode());
quotaUserDao.emptyQuota(params);
}
}
/**
* 记录过期持仓到过期持仓记录表
*/
public void toAddQuotaPast() {
//已过期额度的藏品
List<QuotaConfigInfo> quotaConfiges = quotaConfig.queryPositionPast();
for (QuotaConfigInfo quotaConfigInfo : quotaConfiges) {
//用户已过期的持仓
List<OtcStockRealInfo> otcStock = otcStockRealDao.search(quotaConfigInfo.getOtcCode());
for (OtcStockRealInfo otcStockRealInfo : otcStock) {
//加入已过期持仓记录表
QuotaPastInfo quotaPast = new QuotaPastInfo();
quotaPast.setOtcCode(otcStockRealInfo.getOtcCode());
String otcAccount = otcHolderDao.queryOtcAccount(otcStockRealInfo.getFundAccount());
quotaPast.setOtcAccount(otcAccount);
quotaPast.setOtcName(otcStockRealInfo.getOtcName());
quotaPast.setUserId(otcStockRealInfo.getFundAccount());
quotaPast.setTradeEndDate(quotaConfigInfo.getTradeEndDate());
quotaPast.setEnableAmount(otcStockRealInfo.getEnableAmount());
quotaPastDao.addQuotaPast(quotaPast);
}
quotaConfig.updateCanceledPosition(quotaConfigInfo.getId());
}
}
/**
* 生成excel表,清除持仓
*/
@Transactional
public File export(Map<String, Object> params) throws Exception {
String filename = "待清除过期持仓文件_" + DateUtil.getNow(DateEnum.UNSIGNED_DATE_TIME);
filename = FileUtil.makeMonthDir(exportPath) + filename + ".xlsx";
File targetFile = new File(filename);
ExcelConfig config = new ExcelConfig();
URI template = UserBalanceAction.class.getResource("/excel/quota_past.xlsx").toURI();
List<Map<String, Object>> list = quotaPastDao.search(params);
for (Map<String, Object> map : list) {
map.put("market", "O1");
map.put("non_circulation", "0");
map.put("manage_type", "0");
map.put("enable_amount", "-" + (map.get("enable_amount")));
}
//改变已导出的持仓状态
quotaPastDao.updateStatus(params);
// 先生成Excel文件
config.setSourceTemplate(new File(template));
config.setTargetFile(targetFile);
config.setData(list);
new ExcelUtil(config).writeExcel();
return targetFile;
}
}