InsPlyIncomeController.java 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419
  1. package com.ydtech.modules.fnc.controller;
  2. import com.ydtech.core.page.HttpResult;
  3. import com.ydtech.modules.base.controller.BaseController;
  4. import com.ydtech.modules.fnc.entity.InsPlyIncome;
  5. import com.ydtech.modules.fnc.entity.SettlementDocumentaryFeesEntity;
  6. import com.ydtech.modules.fnc.service.ImportAsyncService;
  7. import com.ydtech.modules.fnc.service.InsPlyIncomeService;
  8. import com.ydtech.modules.fnc.vo.InsPlyIncomeVo;
  9. import com.ydtech.modules.inv.model.dto.InsBxNoPlyIncomeExcelDto;
  10. import com.ydtech.modules.inv.model.dto.InsBxOtherExcelDto;
  11. import com.ydtech.modules.inv.model.dto.InsBxPlyIncomeExcelDto;
  12. import com.ydtech.modules.inv.model.dto.InsNoBxOtherExcelDto;
  13. import com.ydtech.modules.order.entity.BasePageResult;
  14. import com.ydtech.utils.SnowFlakeUtil;
  15. import com.ydtech.utils.StringUtils;
  16. import com.ydtech.utils.excel.ExcelEasypoiUtils;
  17. import io.swagger.annotations.*;
  18. import org.springframework.beans.factory.annotation.Autowired;
  19. import org.springframework.util.CollectionUtils;
  20. import org.springframework.web.bind.annotation.*;
  21. import org.springframework.web.multipart.MultipartFile;
  22. import javax.servlet.http.HttpServletRequest;
  23. import javax.servlet.http.HttpServletResponse;
  24. import javax.validation.Valid;
  25. import java.io.IOException;
  26. import java.time.Period;
  27. import java.util.HashMap;
  28. import java.util.List;
  29. /**
  30. * <p>
  31. * 保司结算手续费 前端控制器
  32. * </p>
  33. *
  34. * @author gws
  35. * @since 2024-01-05
  36. */
  37. @RestController
  38. @Api(tags = "保司费用")
  39. @RequestMapping("/fnc/plyFee")
  40. public class InsPlyIncomeController extends BaseController {
  41. @Autowired
  42. private InsPlyIncomeService insPlyIncomeService;
  43. @Autowired
  44. private ImportAsyncService importAsyncService;
  45. /**
  46. * @return
  47. */
  48. @PostMapping("/queryPage")
  49. @ApiOperation(value = "[1]保司费用查询")
  50. public HttpResult<BasePageResult<InsPlyIncome>> queryPage(@RequestBody @Valid InsPlyIncomeVo insPlyIncomeVo) {
  51. if (StringUtils.isNullOrEmpty(insPlyIncomeVo.getCompanyId())
  52. && StringUtils.isNullOrEmpty(insPlyIncomeVo.getStartDate())
  53. && StringUtils.isNullOrEmpty(insPlyIncomeVo.getEndDate())
  54. && StringUtils.isNullOrEmpty(insPlyIncomeVo.getLicenseno())
  55. ) {
  56. return HttpResult.error("查询条件不能全为空!");
  57. }
  58. if (!StringUtils.isNullOrEmpty(insPlyIncomeVo.getStartDate())
  59. && !StringUtils.isNullOrEmpty(insPlyIncomeVo.getEndDate())
  60. && Period.between(insPlyIncomeVo.getStartDate(), insPlyIncomeVo.getEndDate()).getDays() > 100
  61. ) {
  62. return HttpResult.error("查询时间区间不能超过3个月!");
  63. }
  64. if (StringUtils.isNullOrEmpty(insPlyIncomeVo.getDeptId())) {
  65. insPlyIncomeVo.setDeptId(getDeptId());
  66. }
  67. HttpResult<BasePageResult<InsPlyIncome>> result = insPlyIncomeService.queryplyIncome(insPlyIncomeVo);
  68. return result;
  69. }
  70. @PostMapping("/query")
  71. @ApiOperation(value = "[1]保司费用查询new")
  72. public HttpResult<BasePageResult<InsPlyIncome>> query(@RequestBody @Valid InsPlyIncomeVo insPlyIncomeVo) {
  73. HttpResult<BasePageResult<InsPlyIncome>> result = insPlyIncomeService.queryNew(insPlyIncomeVo);
  74. return result;
  75. }
  76. @PostMapping("/totalAmount")
  77. @ApiModelProperty(value = "平台手续费合计金额")
  78. public HttpResult<HashMap<String, Object>> totalAmount(@RequestBody @Valid InsPlyIncomeVo insPlyIncomeVo) {
  79. if (!CollectionUtils.isEmpty(insPlyIncomeVo.getSelectIds())) {
  80. HashMap<String, Object> result = insPlyIncomeService.totalAmount(insPlyIncomeVo.getSelectIds());
  81. return HttpResult.ok(result);
  82. } else {
  83. return HttpResult.ok();
  84. }
  85. }
  86. @PostMapping("/totalPinAmount")
  87. @ApiModelProperty(value = "平台结算未结算接口")
  88. public HttpResult<List<InsPlyIncome>> totalPinAmount(@RequestBody @Valid InsPlyIncomeVo insPlyIncomeVo) {
  89. List<InsPlyIncome> result = insPlyIncomeService.totalPinAmount(insPlyIncomeVo);
  90. return HttpResult.ok(result);
  91. }
  92. @PostMapping("/bxTotalAmount")
  93. @ApiModelProperty(value = "保险手续费合计")
  94. public HttpResult<InsPlyIncome> bxTotalPinAmount(@RequestBody @Valid InsPlyIncomeVo insPlyIncomeVo) {
  95. InsPlyIncome result = insPlyIncomeService.bxTotalAmount(insPlyIncomeVo);
  96. return HttpResult.ok(result);
  97. }
  98. @PostMapping("/ptTotalAmount")
  99. @ApiModelProperty(value = "平台手续费合计")
  100. public HttpResult<InsPlyIncome> ptTotalAmount(@RequestBody @Valid InsPlyIncomeVo insPlyIncomeVo) {
  101. InsPlyIncome result = insPlyIncomeService.ptTotalAmount(insPlyIncomeVo);
  102. return HttpResult.ok(result);
  103. }
  104. @PutMapping("/balance")
  105. @ApiModelProperty(value = "结算手续费")
  106. public HttpResult<Object> balance(@RequestBody InsPlyIncomeVo insPlyIncomeVo) {
  107. insPlyIncomeService.uodateBalance(insPlyIncomeVo);
  108. return HttpResult.ok("手续费结算成功");
  109. }
  110. @PostMapping("/totalQuery")
  111. @ApiOperation(value = "跟单费总数")
  112. public HttpResult<BasePageResult<InsPlyIncome>> totalQuery(@RequestBody @Valid InsPlyIncomeVo insPlyIncomeVo) {
  113. HttpResult<BasePageResult<InsPlyIncome>> result = insPlyIncomeService.totalQuery(insPlyIncomeVo);
  114. return result;
  115. }
  116. @PutMapping("/batchInvoic")
  117. @ApiModelProperty(value = "开票跟单费")
  118. public HttpResult<Object> batchInvoic(@RequestBody InsPlyIncomeVo insPlyIncomeVo) {
  119. return insPlyIncomeService.batchInvoic(insPlyIncomeVo);
  120. }
  121. @PutMapping("/singleInvoic")
  122. @ApiModelProperty(value = "批量开票跟单费")
  123. public HttpResult<Object> singleInvoic(@RequestBody InsPlyIncomeVo insPlyIncomeVo) {
  124. return insPlyIncomeService.singleInvoic(insPlyIncomeVo);
  125. }
  126. @PutMapping("/batchBalance")
  127. @ApiModelProperty(value = "批量结算跟单费")
  128. public HttpResult<Object> batchBalance(@RequestBody InsPlyIncomeVo insPlyIncomeVo) {
  129. return insPlyIncomeService.batchBalance(insPlyIncomeVo);
  130. }
  131. @PutMapping("/batchSumBalance")
  132. @ApiModelProperty(value = "批次批量結算")
  133. public HttpResult<Object> batchSumBalance(@RequestBody InsPlyIncomeVo insPlyIncomeVo) {
  134. return insPlyIncomeService.batchSumBalance(insPlyIncomeVo);
  135. }
  136. @PutMapping("/batchPinBalance")
  137. @ApiModelProperty(value = "平台批量结算")
  138. public HttpResult<Object> batchPinBalance(@RequestBody InsPlyIncomeVo insPlyIncomeVo) {
  139. return insPlyIncomeService.batchPinBalance(insPlyIncomeVo);
  140. }
  141. @PutMapping("/reconciliation")
  142. @ApiModelProperty(value = "对账")
  143. public HttpResult<Object> reconciliation(@RequestBody InsPlyIncomeVo insPlyIncomeVo) {
  144. return insPlyIncomeService.reconciliation(insPlyIncomeVo);
  145. }
  146. @PostMapping("/NonSettlementQuery")
  147. @ApiOperation(value = "非跟单查询")
  148. public HttpResult<BasePageResult<InsPlyIncome>> NonSettlementQuery(@Valid @RequestBody InsPlyIncomeVo insPlyIncomeVo) {
  149. HttpResult<BasePageResult<InsPlyIncome>> result = insPlyIncomeService.nonSettlementQuery(insPlyIncomeVo);
  150. return result;
  151. }
  152. @PostMapping("/NonSettldetail")
  153. @ApiOperation(value = "非跟单明细查询")
  154. public HttpResult<List<InsPlyIncome>> NonSettldetail(@Valid @RequestBody InsPlyIncomeVo insPlyIncomeVo) {
  155. return insPlyIncomeService.nonSettldetail(insPlyIncomeVo);
  156. }
  157. @PostMapping("/importData")
  158. @ApiOperation(value = "手续费导入(excel)")
  159. @ApiImplicitParams({
  160. @ApiImplicitParam(name = "file", value = "excel文件", required = true, dataType = "__file")
  161. })
  162. public HttpResult importData(@RequestParam MultipartFile multipartFile) {
  163. HashMap<String, Object> result = insPlyIncomeService.importData(multipartFile);
  164. return HttpResult.ok(result);
  165. }
  166. @PostMapping("/bxImportData")
  167. @ApiOperation(value = "保险手续费导入(excel)")
  168. @ApiImplicitParams({
  169. @ApiImplicitParam(name = "file", value = "excel文件", required = true, dataType = "__file")
  170. })
  171. public HttpResult<String> bxImportData(@RequestParam MultipartFile multipartFile, @RequestParam("isNotCar") String isNotCar) {
  172. try {
  173. List<InsBxPlyIncomeExcelDto> dtoList = ExcelEasypoiUtils.importExcel(multipartFile, InsBxPlyIncomeExcelDto.class, 0, 1, 1);
  174. if (CollectionUtils.isEmpty(dtoList)) {
  175. return HttpResult.error("导入数据为空");
  176. }
  177. String taskId = String.valueOf(new SnowFlakeUtil().nextId());
  178. importAsyncService.importasync(dtoList, isNotCar, taskId);
  179. return HttpResult.ok(taskId);
  180. } catch (IOException e) {
  181. throw new RuntimeException(e);
  182. }
  183. }
  184. @PostMapping("/bxImportNoData")
  185. @ApiOperation(value = "保险非车手续费导入(excel)")
  186. @ApiImplicitParams({
  187. @ApiImplicitParam(name = "file", value = "excel文件", required = true, dataType = "__file")
  188. })
  189. public HttpResult<String> bxImportNoData(@RequestParam MultipartFile multipartFile, @RequestParam("isNotCar") String isNotCar) {
  190. try {
  191. List<InsBxNoPlyIncomeExcelDto> dtoList = ExcelEasypoiUtils.importExcel(multipartFile, InsBxNoPlyIncomeExcelDto.class, 0, 1, 1);
  192. String taskId = String.valueOf(new SnowFlakeUtil().nextId());
  193. importAsyncService.bxImportNoData(dtoList, multipartFile, taskId);
  194. return HttpResult.ok(taskId);
  195. } catch (IOException e) {
  196. throw new RuntimeException(e);
  197. }
  198. }
  199. @PostMapping("/bxImportOther")
  200. @ApiOperation(value = "批量修改比例(excel)")
  201. @ApiImplicitParams({
  202. @ApiImplicitParam(name = "file", value = "excel文件", required = true, dataType = "__file")
  203. })
  204. public HttpResult<HashMap<String, Object>> bxImportOther(@RequestParam MultipartFile multipartFile, @RequestParam("isNotCar") String isNotCar) {
  205. HashMap<String, Object> result = insPlyIncomeService.bxImportOther(multipartFile, isNotCar);
  206. return HttpResult.ok(result);
  207. }
  208. @PostMapping("/noBxImportOther")
  209. @ApiOperation(value = "非车批量修改比例(excel)")
  210. @ApiImplicitParams({
  211. @ApiImplicitParam(name = "file", value = "excel文件", required = true, dataType = "__file")
  212. })
  213. public HttpResult<HashMap<String, Object>> noBxImportOther(@RequestParam MultipartFile multipartFile, @RequestParam("isNotCar") String isNotCar) {
  214. HashMap<String, Object> result = insPlyIncomeService.noBxImportOther(multipartFile, isNotCar);
  215. return HttpResult.ok(result);
  216. }
  217. @PostMapping("/bxOtherImportData")
  218. @ApiOperation(value = "跟单对账导入(excel)")
  219. @ApiImplicitParams({
  220. @ApiImplicitParam(name = "file", value = "excel文件", required = true, dataType = "__file")
  221. })
  222. public HttpResult<String> bxOtherImportData(@RequestParam MultipartFile multipartFile, @RequestParam("isNotCar") String isNotCar) {
  223. try {
  224. List<InsBxOtherExcelDto> dtoList = ExcelEasypoiUtils.importExcel(multipartFile, InsBxOtherExcelDto.class, 0, 1, 1);
  225. String taskId = String.valueOf(new SnowFlakeUtil().nextId());
  226. importAsyncService.bxOtherImportData(dtoList, isNotCar, taskId);
  227. return HttpResult.ok(taskId);
  228. } catch (IOException e) {
  229. throw new RuntimeException(e);
  230. }
  231. }
  232. @PostMapping("/bxNoOtherImportData")
  233. @ApiOperation(value = "非车跟单对账导入(excel)")
  234. @ApiImplicitParams({
  235. @ApiImplicitParam(name = "file", value = "excel文件", required = true, dataType = "__file")
  236. })
  237. public HttpResult<String> bxNoOtherImportData(@RequestParam MultipartFile multipartFile, @RequestParam("isNotCar") String isNotCar) {
  238. try {
  239. List<InsNoBxOtherExcelDto> dtoList = ExcelEasypoiUtils.importExcel(multipartFile, InsNoBxOtherExcelDto.class, 0, 1, 1);
  240. String taskId = String.valueOf(new SnowFlakeUtil().nextId());
  241. importAsyncService.bxNoOtherImportData(dtoList, isNotCar, taskId);
  242. return HttpResult.ok(taskId);
  243. } catch (IOException e) {
  244. throw new RuntimeException(e);
  245. }
  246. }
  247. @PutMapping("/update")
  248. @ApiModelProperty(value = "修改")
  249. public HttpResult<Object> updateByEntity(@RequestBody InsPlyIncomeVo insPlyIncomeVo) {
  250. insPlyIncomeService.updateByEntity(insPlyIncomeVo);
  251. return HttpResult.ok("修改成功");
  252. }
  253. @PutMapping("/batchUpdate")
  254. @ApiModelProperty(value = "批量修改")
  255. public HttpResult<Object> batchUpdate(@RequestBody InsPlyIncomeVo insPlyIncomeVo) {
  256. insPlyIncomeService.batchUpdate(insPlyIncomeVo);
  257. return HttpResult.ok("批量修改成功");
  258. }
  259. @PutMapping("/batchUpdateVoucher")
  260. @ApiModelProperty(value = "批量修改上传凭证")
  261. public HttpResult<Object> batchUpdateVoucher(@RequestBody InsPlyIncomeVo insPlyIncomeVo) {
  262. insPlyIncomeService.batchUpdateVoucher(insPlyIncomeVo);
  263. return HttpResult.ok("上传凭证成功");
  264. }
  265. @PostMapping("/insert")
  266. @ApiModelProperty(value = "新增")
  267. public HttpResult<InsPlyIncome> insertByEntity(@RequestBody InsPlyIncomeVo insPlyIncomeVo) {
  268. return insPlyIncomeService.insertByEntity(insPlyIncomeVo);
  269. }
  270. @DeleteMapping("/delete")
  271. @ApiModelProperty(value = "删除")
  272. public HttpResult<InsPlyIncome> deleteById(@RequestBody InsPlyIncomeVo insPlyIncomeVo) {
  273. return insPlyIncomeService.deleteById(insPlyIncomeVo);
  274. }
  275. @GetMapping("/getById/{id}")
  276. @ApiModelProperty(value = "回显")
  277. public HttpResult<InsPlyIncome> getById(@PathVariable("id") String id) {
  278. InsPlyIncome item = insPlyIncomeService.getEntityById(id);
  279. return HttpResult.ok(item);
  280. }
  281. @PostMapping("/totalBxAmount")
  282. @ApiModelProperty(value = "保险未开票金额")
  283. public HttpResult<List<InsPlyIncome>> totalBxAmount(@RequestBody @Valid InsPlyIncomeVo insPlyIncomeVo) {
  284. List<InsPlyIncome> result = insPlyIncomeService.totalBxAmount(insPlyIncomeVo);
  285. return HttpResult.ok(result);
  286. }
  287. @PutMapping("/batchInvoicing")
  288. @ApiModelProperty(value = "保险手续费批量开票")
  289. public HttpResult<Object> batchInvoicing(@RequestBody InsPlyIncomeVo insPlyIncomeVo) {
  290. return insPlyIncomeService.batchInvoicing(insPlyIncomeVo);
  291. }
  292. @PostMapping("/queryInvoicing")
  293. @ApiModelProperty(value = "查询开票金额")
  294. public HttpResult<InsPlyIncome> queryInvoicing(@RequestBody InsPlyIncomeVo insPlyIncomeVo) {
  295. return insPlyIncomeService.queryInvoicing(insPlyIncomeVo);
  296. }
  297. @PostMapping("/querySettInvoicing")
  298. @ApiModelProperty(value = "查询已开票已结算")
  299. public HttpResult<InsPlyIncome> querySettInvoicing(@RequestBody InsPlyIncomeVo insPlyIncomeVo) {
  300. return insPlyIncomeService.querySettInvoicing(insPlyIncomeVo);
  301. }
  302. @PutMapping("/batchBxBalance")
  303. @ApiModelProperty(value = "保险批量结算")
  304. public HttpResult<Object> batchBxBalance(@RequestBody InsPlyIncomeVo insPlyIncomeVo) {
  305. return insPlyIncomeService.batchBxBalance(insPlyIncomeVo);
  306. }
  307. @PostMapping("/allOtherAmount")
  308. @ApiModelProperty(value = "保险跟单总表")
  309. public HttpResult<List<InsPlyIncome>> allOtherAmount(@RequestBody InsPlyIncomeVo insPlyIncomeVo) {
  310. return insPlyIncomeService.allOtherAmount(insPlyIncomeVo);
  311. }
  312. @ApiModelProperty("平台手续费导出")
  313. @PostMapping("pinHandlingExcel")
  314. public HttpResult pinHandlingexcel(@RequestBody @ApiParam(name = "insPlyIncomeVo") InsPlyIncomeVo insPlyIncomeVo, HttpServletRequest request, HttpServletResponse response) {
  315. return insPlyIncomeService.pinHandlingexcel(insPlyIncomeVo, request, response);
  316. }
  317. @ApiModelProperty("保险手续费导出")
  318. @PostMapping("bxHandlingExcel")
  319. public HttpResult bxHandlingexcel(@RequestBody @ApiParam(name = "insPlyIncomeVo") InsPlyIncomeVo insPlyIncomeVo, HttpServletRequest request, HttpServletResponse response) throws IOException {
  320. return insPlyIncomeService.bxHandlingexcel(insPlyIncomeVo, request, response);
  321. }
  322. @ApiModelProperty("保险跟单导出")
  323. @PostMapping("bxOtherExcel")
  324. public HttpResult bxOtherExcel(@RequestBody @ApiParam(name = "insPlyIncomeVo") InsPlyIncomeVo insPlyIncomeVo, HttpServletRequest request, HttpServletResponse response) {
  325. return insPlyIncomeService.bxOtherExcel(insPlyIncomeVo, request, response);
  326. }
  327. @ApiModelProperty("保险跟单明细导出")
  328. @PostMapping("/bxOtherDetailsExcel")
  329. public HttpResult bxOtherDetailsExcel(@RequestBody @ApiParam(name = "insPlyIncomeVo") InsPlyIncomeVo insPlyIncomeVo, HttpServletRequest request, HttpServletResponse response) {
  330. return insPlyIncomeService.bxOtherDetailsExcel(insPlyIncomeVo, request, response);
  331. }
  332. @PostMapping("/invicdetail")
  333. @ApiOperation(value = "开票未结算详情查询")
  334. public HttpResult<List<SettlementDocumentaryFeesEntity>> invicdetail(@Valid @RequestBody InsPlyIncomeVo insPlyIncomeVo) {
  335. return insPlyIncomeService.invicdetail(insPlyIncomeVo);
  336. }
  337. @ApiModelProperty("保险非车跟单明细导出")
  338. @PostMapping("/bxNoOtherDetailsExcel")
  339. public HttpResult bxNoOtherDetailsExcel(@RequestBody @ApiParam(name = "insPlyIncomeVo") InsPlyIncomeVo insPlyIncomeVo, HttpServletRequest request, HttpServletResponse response) {
  340. return insPlyIncomeService.bxOtherDetailsExcel(insPlyIncomeVo, request, response);
  341. }
  342. @PostMapping("/otherSettldetail")
  343. @ApiOperation(value = "非跟单明细查询")
  344. public HttpResult<List<HashMap<String, Object>>> otherSettldetail(@RequestBody InsPlyIncomeVo insPlyIncomeVo) {
  345. return insPlyIncomeService.otherSettldetail(insPlyIncomeVo);
  346. }
  347. @PostMapping("/otherTimeDetail")
  348. @ApiOperation(value = "非跟单明细查询")
  349. public HttpResult<List<HashMap<String, Object>>> otherTimeDetail(@RequestBody InsPlyIncomeVo insPlyIncomeVo) {
  350. return insPlyIncomeService.otherTimeDetail(insPlyIncomeVo);
  351. }
  352. }