提交 | 用户 | age
|
d3ae0a
|
1 |
package com.yc.MaintenanceFee.controller; |
X |
2 |
|
|
3 |
import com.yc.MaintenanceFee.entiy.PayInfo; |
|
4 |
import com.yc.MaintenanceFee.entiy.PayLog; |
|
5 |
import com.yc.MaintenanceFee.entiy.Receipt; |
|
6 |
import com.yc.MaintenanceFee.service.*; |
|
7 |
import com.yc.MaintenanceFee.utils.BackMsg; |
dff633
|
8 |
import com.yc.MaintenanceFee.utils.PayCallBackUtil; |
35f116
|
9 |
import com.yc.entity.DataSourceEntity; |
6e94d5
|
10 |
import com.yc.exception.ApplicationException; |
35f116
|
11 |
import com.yc.multiData.MultiDataSource; |
d3ae0a
|
12 |
import com.yc.multiData.SpObserver; |
X |
13 |
import com.yc.service.grid.GridServiceIfc; |
74e060
|
14 |
import com.yc.service.impl.DBHelper; |
d3ae0a
|
15 |
import com.yc.utils.SessionKey; |
X |
16 |
import org.apache.commons.lang3.StringUtils; |
|
17 |
import org.springframework.beans.factory.annotation.Autowired; |
|
18 |
import org.springframework.web.bind.annotation.RequestMapping; |
|
19 |
import org.springframework.web.bind.annotation.RequestMethod; |
|
20 |
import org.springframework.web.bind.annotation.RestController; |
dff633
|
21 |
|
d3ae0a
|
22 |
import javax.servlet.http.HttpServletRequest; |
X |
23 |
import javax.servlet.http.HttpServletResponse; |
|
24 |
import javax.servlet.http.HttpSession; |
|
25 |
import java.time.LocalDateTime; |
|
26 |
import java.time.format.DateTimeFormatter; |
|
27 |
import java.util.*; |
|
28 |
|
|
29 |
/** |
|
30 |
* 生成维护费界面。显示维护费单号和生成收款单 |
|
31 |
* |
|
32 |
* @USER: xinyb_ |
|
33 |
* @DATE: 2021-11-10 17:40 |
|
34 |
*/ |
|
35 |
@RestController |
|
36 |
@RequestMapping("/Maintain") |
|
37 |
public class MaintainController { |
|
38 |
@Autowired |
|
39 |
private PayInfoService payInfoService; |
|
40 |
|
|
41 |
@Autowired |
|
42 |
private PayLogService payLogService; |
|
43 |
|
|
44 |
@Autowired |
|
45 |
GridServiceIfc grid; |
|
46 |
|
|
47 |
@Autowired |
|
48 |
ReceiptService receiptService; |
35f116
|
49 |
@Autowired |
X |
50 |
MaintainService maintainService; |
d3ae0a
|
51 |
|
X |
52 |
private static final String DBID = "_338"; |
|
53 |
|
|
54 |
/** |
|
55 |
* 获取对应客户订单所有数据,用于页面显示 |
|
56 |
* |
|
57 |
* @param request |
|
58 |
* @return |
|
59 |
*/ |
|
60 |
@RequestMapping(value = "/Cost.do", method = RequestMethod.GET) |
|
61 |
public BackMsg getCost(HttpServletRequest request) { |
|
62 |
BackMsg msg = new BackMsg(); |
|
63 |
try { |
|
64 |
HttpSession session = request.getSession(); |
|
65 |
SpObserver.setDBtoInstance(DBID); |
|
66 |
//通过session携带dbId查询表得到相对应的客户编号 |
|
67 |
String dbId = (String) session.getAttribute(SessionKey.DATA_BASE_ID); |
|
68 |
//根据cltCode查询所有维护费用数据 |
74e060
|
69 |
List<PayInfo> info = payInfoService.queryListByCltCode(dbId); |
X |
70 |
if (info != null && info.size() > 0) { |
|
71 |
List<String> doc = new ArrayList<>(); |
|
72 |
for (PayInfo i : info) { |
|
73 |
doc.add(i.getDocCode()); |
|
74 |
} |
|
75 |
msg.setCltCode(info.get(0).getCltCode()); |
|
76 |
List<Map<String, Object>> d = receiptService.getReceiptStatus(String.join(",", doc)); |
|
77 |
if (d != null && d.size() > 0) { |
|
78 |
for (PayInfo f : info) { |
|
79 |
for (Map<String, Object> m : d) { |
|
80 |
if (f.getDocCode().equals(DBHelper.getValue(m,"soDocCode"))) { |
6e94d5
|
81 |
f.setDocStatus(DBHelper.getValueInt(m, "docStatus")); |
74e060
|
82 |
f.setSkCode(DBHelper.getValue(m,"docCode")); |
d3ae0a
|
83 |
} |
X |
84 |
} |
|
85 |
} |
|
86 |
} |
74e060
|
87 |
msg.setOk(info); |
X |
88 |
} else { |
|
89 |
msg.setCltCode(payInfoService.queryCltCodeByDbId(dbId)); |
|
90 |
msg.setOk(null); |
d3ae0a
|
91 |
} |
X |
92 |
} catch (Exception e) { |
|
93 |
msg.setError(e.getCause() != null ? e.getCause().getMessage() : e.getMessage()); |
|
94 |
} finally { |
|
95 |
SpObserver.setDBtoInstance(); |
|
96 |
} |
|
97 |
return msg; |
|
98 |
} |
|
99 |
|
|
100 |
/** |
|
101 |
* 生成一张收款单信息 |
|
102 |
* |
|
103 |
* @param whCode |
|
104 |
* @param request |
|
105 |
* @param response |
|
106 |
* @return |
|
107 |
*/ |
|
108 |
@RequestMapping("/skCreate.do") |
dff633
|
109 |
public BackMsg getSKCode(String whCode, String cltCode, HttpServletRequest request, HttpServletResponse response) { |
d3ae0a
|
110 |
BackMsg msg = new BackMsg(); |
X |
111 |
try { |
|
112 |
if (StringUtils.isBlank(whCode)) { |
|
113 |
msg.setError("维护费单号不能为空!"); |
|
114 |
return msg; |
|
115 |
} |
dff633
|
116 |
|
X |
117 |
Integer feeId = PayCallBackUtil.chargeMaintenanceFee(request); |
|
118 |
DataSourceEntity data = MultiDataSource.getDataSourceMap(feeId + "");//获取对应数据源设置的维护费账户 |
6e94d5
|
119 |
if(data.getMaintenanceFeeToDbId()==null){ |
X |
120 |
msg.setError("【收取维护费所属公司】不能为空,请在【快捷->维护系统设置】中录入"); |
d3ae0a
|
121 |
return msg; |
X |
122 |
} |
35f116
|
123 |
SpObserver.setDBtoInstance(DBID); |
dff633
|
124 |
String skCode = maintainService.createSKCode(whCode, data.getMaintenanceFeeAcctCode()); |
35f116
|
125 |
if (!StringUtils.isBlank(skCode)) { |
d3ae0a
|
126 |
try { |
X |
127 |
//生成日志 |
|
128 |
PayLog log = new PayLog(); |
|
129 |
log.setRefDoccode(skCode); |
|
130 |
log.setMerchantID(cltCode); |
35f116
|
131 |
log.setRefformid(150101); |
X |
132 |
log.setRefformtype(496); |
d3ae0a
|
133 |
log.setInsertTime(new Date()); |
74e060
|
134 |
log.setBatchNo(0); |
d3ae0a
|
135 |
log.setStatus("0"); |
X |
136 |
log.setMerchantRemarks("维护费生成信息。生成了收款单:" + skCode + ",未支付。"); |
|
137 |
//使用自定义的格式 |
|
138 |
DateTimeFormatter df = DateTimeFormatter.ofPattern("y/M/d-H:m:s"); |
|
139 |
//要格式化的时间日期对象,只能用LocalDateTime。只涉及到日期也可以用LocalDate类,只涉及时间也可以用LocalTime类 |
|
140 |
LocalDateTime ldt = LocalDateTime.now(); |
|
141 |
String[] d = df.format(ldt).split("-"); |
|
142 |
log.setHostDate(d[0]); |
|
143 |
log.setHostTime(d[1]); |
|
144 |
log.setNotifyType((String) request.getSession().getAttribute(SessionKey.DATA_BASE_ID)); |
|
145 |
payLogService.saveOrUpdatePayLog(log); |
|
146 |
} catch (Exception e) { |
|
147 |
skCode = skCode; |
|
148 |
} |
|
149 |
msg.setOk(skCode);//返回收款单号 |
|
150 |
} else { |
35f116
|
151 |
msg.setError("收款单创建失败:" + skCode); |
d3ae0a
|
152 |
} |
X |
153 |
} catch (Exception e) { |
|
154 |
msg.setError(e.getCause() != null ? e.getCause().getMessage() : e.getMessage()); |
|
155 |
} finally { |
|
156 |
SpObserver.setDBtoInstance(); |
|
157 |
} |
|
158 |
return msg; |
|
159 |
} |
|
160 |
|
|
161 |
/** |
|
162 |
* 查询收款单信息 |
|
163 |
* |
|
164 |
* @param skCode |
|
165 |
* @param request |
|
166 |
* @return |
|
167 |
*/ |
|
168 |
@RequestMapping("/skSelect.do") |
|
169 |
public BackMsg getSKSelect(String skCode, HttpServletRequest request) { |
|
170 |
BackMsg msg = new BackMsg(); |
|
171 |
try { |
|
172 |
if (StringUtils.isBlank(skCode)) { |
|
173 |
msg.setError("收款单单号不能为空!"); |
|
174 |
return msg; |
|
175 |
} |
|
176 |
SpObserver.setDBtoInstance(DBID); |
|
177 |
Receipt receipt = receiptService.QueryReceipt(skCode, 0); |
74e060
|
178 |
if (receipt != null && !StringUtils.isBlank(receipt.getDocCode())) { |
X |
179 |
String dbId = (String) request.getSession().getAttribute(SessionKey.DATA_BASE_ID); |
4257cf
|
180 |
//获取收款人 |
X |
181 |
receipt.setPayee(PayCallBackUtil.getReceivingCompany(dbId)); |
6e94d5
|
182 |
if (receipt.getIsPaid() == 1) { |
X |
183 |
msg.setOkEd(receipt,"已支付成功,不能重复支付。"); |
|
184 |
return msg; |
|
185 |
} |
|
186 |
if (receipt.getDocStatus() == -200) { |
|
187 |
msg.setOkEd(receipt,"订单已被取消,支付失败。"); |
|
188 |
return msg; |
|
189 |
} |
|
190 |
if (receipt.getDocStatus() != 0) { |
|
191 |
msg.setOkEd(receipt,"订单不是待支付状态,支付失败。"); |
|
192 |
return msg; |
|
193 |
} |
4257cf
|
194 |
} |
d3ae0a
|
195 |
msg.setOk(receipt); |
X |
196 |
} catch (Exception e) { |
|
197 |
msg.setError(e.getCause() != null ? e.getCause().getMessage() : e.getMessage()); |
|
198 |
} finally { |
|
199 |
SpObserver.setDBtoInstance(); |
|
200 |
} |
|
201 |
return msg; |
|
202 |
} |
|
203 |
|
|
204 |
/** |
|
205 |
* 取消支付,关闭收款单 |
|
206 |
* |
|
207 |
* @param skCode |
|
208 |
* @param request |
|
209 |
* @return |
|
210 |
*/ |
|
211 |
// @RequestMapping("/skClose.do") |
|
212 |
// public BackMsg delSKCode(String skCode, HttpServletRequest request) { |
|
213 |
// BackMsg msg = new BackMsg(); |
|
214 |
// try { |
|
215 |
// if (StringUtils.isBlank(skCode)) { |
|
216 |
// msg.setError("收款单单号不能为空!"); |
|
217 |
// return msg; |
|
218 |
// } |
|
219 |
// SpObserver.setDBtoInstance(DBID); |
|
220 |
// receiptService.cancelReceipt(skCode); |
|
221 |
// PayLog log = new PayLog(); |
|
222 |
// log.setStatus("-200"); |
|
223 |
// log.setRefDoccode(skCode); |
|
224 |
// log.setMerchantRemarks("维护费取消信息。取消收款单:" + skCode + ",不能再进行支付操作!"); |
|
225 |
// payLogService.saveOrUpdatePayLog(log); |
|
226 |
// msg.setOk("收款单:" + skCode + ",已失效!"); |
|
227 |
// } catch (Exception e) { |
|
228 |
// msg.setError(e.getCause() != null ? e.getCause().getMessage() : e.getMessage()); |
|
229 |
// } finally { |
|
230 |
// SpObserver.setDBtoInstance(); |
|
231 |
// } |
|
232 |
// return msg; |
|
233 |
// } |
|
234 |
|
|
235 |
/** |
|
236 |
* 根据不同的收款单状态查询收款单集合 |
|
237 |
* |
|
238 |
* @param cltCode |
|
239 |
* @param docStatus |
|
240 |
* @param request |
|
241 |
* @param response |
|
242 |
* @return |
|
243 |
*/ |
|
244 |
@RequestMapping("/toBePaid.do") |
|
245 |
public BackMsg getToBePaid(String cltCode, Integer docStatus, HttpServletRequest request, HttpServletResponse response) { |
|
246 |
BackMsg msg = new BackMsg(); |
|
247 |
try { |
|
248 |
if (StringUtils.isBlank(cltCode)) { |
74e060
|
249 |
// msg.setError("客户编号不能为空!"); |
X |
250 |
msg.setOk(null); |
d3ae0a
|
251 |
return msg; |
X |
252 |
} |
|
253 |
if (docStatus == null) { |
74e060
|
254 |
// msg.setError("输入查询的状态值"); |
X |
255 |
msg.setOk(null); |
d3ae0a
|
256 |
return msg; |
X |
257 |
} |
|
258 |
SpObserver.setDBtoInstance(DBID); |
|
259 |
List<Receipt> receipts = receiptService.selectReceipt(cltCode, docStatus); |
|
260 |
msg.setOk(receipts); |
|
261 |
} catch (Exception e) { |
|
262 |
msg.setError(e.getCause() != null ? e.getCause().getMessage() : e.getMessage()); |
|
263 |
} finally { |
|
264 |
SpObserver.setDBtoInstance(); |
|
265 |
} |
|
266 |
return msg; |
|
267 |
} |
dff633
|
268 |
|
X |
269 |
/** |
|
270 |
* 支付后更新推送信息 |
74e060
|
271 |
* |
dff633
|
272 |
* @param skCode |
X |
273 |
* @param request |
|
274 |
* @return |
|
275 |
*/ |
|
276 |
@RequestMapping("/updateMessage.do") |
|
277 |
public BackMsg getUpdateMessage(String skCode, HttpServletRequest request) { |
|
278 |
BackMsg msg = new BackMsg(); |
|
279 |
List<String> list = null; |
74e060
|
280 |
String dbId = (String) request.getSession().getAttribute(SessionKey.DATA_BASE_ID); |
dff633
|
281 |
try { |
X |
282 |
SpObserver.setDBtoInstance(DBID); |
|
283 |
list = maintainService.selectWHCode(skCode); |
|
284 |
msg.setOk(maintainService.selectMaintainCunt(dbId)); |
|
285 |
} catch (Exception e) { |
|
286 |
msg.setError(e.getCause() != null ? e.getCause().getMessage() : e.getMessage()); |
|
287 |
} finally { |
|
288 |
SpObserver.setDBtoInstance(); |
|
289 |
} |
|
290 |
try { |
|
291 |
SpObserver.setDBtoInstance("_" + dbId); |
|
292 |
if (list != null && list.size() > 0) { |
74e060
|
293 |
maintainService.updateMessage(String.join(",", list)); |
dff633
|
294 |
} |
74e060
|
295 |
} finally { |
dff633
|
296 |
SpObserver.setDBtoInstance(); |
X |
297 |
} |
|
298 |
return msg; |
|
299 |
} |
|
300 |
|
|
301 |
/** |
|
302 |
* 维护费提醒信息数量 |
|
303 |
* |
|
304 |
* @param request |
|
305 |
* @return |
|
306 |
*/ |
|
307 |
@RequestMapping("remind.do") |
|
308 |
public BackMsg getRemind(HttpServletRequest request) { |
|
309 |
BackMsg msg = new BackMsg(); |
|
310 |
try { |
|
311 |
DataSourceEntity data = MultiDataSource.getDataSourceMap(request); |
|
312 |
SpObserver.setDBtoInstance(DBID); |
|
313 |
msg.setOk(maintainService.selectMaintainCunt(data.getDbId() + "")); |
|
314 |
} catch (Exception e) { |
|
315 |
msg.setError(e.getCause() != null ? e.getCause().getMessage() : e.getMessage()); |
|
316 |
} finally { |
|
317 |
SpObserver.setDBtoInstance(); |
|
318 |
} |
|
319 |
return msg; |
|
320 |
} |
d3ae0a
|
321 |
} |