InsPlyIncomeController.java 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412
  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("/batchPinBalance")
  132. @ApiModelProperty(value = "平台批量结算")
  133. public HttpResult<Object> batchPinBalance(@RequestBody InsPlyIncomeVo insPlyIncomeVo) {
  134. return insPlyIncomeService.batchPinBalance(insPlyIncomeVo);
  135. }
  136. @PutMapping("/reconciliation")
  137. @ApiModelProperty(value = "对账")
  138. public HttpResult<Object> reconciliation(@RequestBody InsPlyIncomeVo insPlyIncomeVo) {
  139. return insPlyIncomeService.reconciliation(insPlyIncomeVo);
  140. }
  141. @PostMapping("/NonSettlementQuery")
  142. @ApiOperation(value = "非跟单查询")
  143. public HttpResult<BasePageResult<InsPlyIncome>> NonSettlementQuery(@Valid @RequestBody InsPlyIncomeVo insPlyIncomeVo) {
  144. HttpResult<BasePageResult<InsPlyIncome>> result = insPlyIncomeService.nonSettlementQuery(insPlyIncomeVo);
  145. return result;
  146. }
  147. @PostMapping("/NonSettldetail")
  148. @ApiOperation(value = "非跟单明细查询")
  149. public HttpResult<List<InsPlyIncome>> NonSettldetail(@Valid @RequestBody InsPlyIncomeVo insPlyIncomeVo) {
  150. return insPlyIncomeService.nonSettldetail(insPlyIncomeVo);
  151. }
  152. @PostMapping("/importData")
  153. @ApiOperation(value = "手续费导入(excel)")
  154. @ApiImplicitParams({
  155. @ApiImplicitParam(name = "file", value = "excel文件", required = true, dataType = "__file")
  156. })
  157. public HttpResult importData(@RequestParam MultipartFile multipartFile) {
  158. HashMap<String, Object> result = insPlyIncomeService.importData(multipartFile);
  159. return HttpResult.ok(result);
  160. }
  161. @PostMapping("/bxImportData")
  162. @ApiOperation(value = "保险手续费导入(excel)")
  163. @ApiImplicitParams({
  164. @ApiImplicitParam(name = "file", value = "excel文件", required = true, dataType = "__file")
  165. })
  166. public HttpResult<String> bxImportData(@RequestParam MultipartFile multipartFile, @RequestParam("isNotCar") String isNotCar) {
  167. try {
  168. List<InsBxPlyIncomeExcelDto> dtoList = ExcelEasypoiUtils.importExcel(multipartFile, InsBxPlyIncomeExcelDto.class, 0, 1, 1);
  169. if (CollectionUtils.isEmpty(dtoList)) {
  170. return HttpResult.error("导入数据为空");
  171. }
  172. String taskId = String.valueOf(new SnowFlakeUtil().nextId());
  173. importAsyncService.importasync(dtoList, isNotCar, taskId);
  174. return HttpResult.ok(taskId);
  175. } catch (IOException e) {
  176. throw new RuntimeException(e);
  177. }
  178. }
  179. @PostMapping("/bxImportNoData")
  180. @ApiOperation(value = "保险非车手续费导入(excel)")
  181. @ApiImplicitParams({
  182. @ApiImplicitParam(name = "file", value = "excel文件", required = true, dataType = "__file")
  183. })
  184. public HttpResult<String> bxImportNoData(@RequestParam MultipartFile multipartFile, @RequestParam("isNotCar") String isNotCar) {
  185. try {
  186. List<InsBxNoPlyIncomeExcelDto> dtoList = ExcelEasypoiUtils.importExcel(multipartFile, InsBxNoPlyIncomeExcelDto.class, 0, 1, 1);
  187. String taskId = String.valueOf(new SnowFlakeUtil().nextId());
  188. importAsyncService.bxImportNoData(dtoList, multipartFile, taskId);
  189. return HttpResult.ok(taskId);
  190. } catch (IOException e) {
  191. throw new RuntimeException(e);
  192. }
  193. }
  194. @PostMapping("/bxImportOther")
  195. @ApiOperation(value = "批量修改比例(excel)")
  196. @ApiImplicitParams({
  197. @ApiImplicitParam(name = "file", value = "excel文件", required = true, dataType = "__file")
  198. })
  199. public HttpResult<HashMap<String, Object>> bxImportOther(@RequestParam MultipartFile multipartFile, @RequestParam("isNotCar") String isNotCar) {
  200. HashMap<String, Object> result = insPlyIncomeService.bxImportOther(multipartFile, isNotCar);
  201. return HttpResult.ok(result);
  202. }
  203. @PostMapping("/noBxImportOther")
  204. @ApiOperation(value = "非车批量修改比例(excel)")
  205. @ApiImplicitParams({
  206. @ApiImplicitParam(name = "file", value = "excel文件", required = true, dataType = "__file")
  207. })
  208. public HttpResult<HashMap<String, Object>> noBxImportOther(@RequestParam MultipartFile multipartFile, @RequestParam("isNotCar") String isNotCar) {
  209. HashMap<String, Object> result = insPlyIncomeService.noBxImportOther(multipartFile, isNotCar);
  210. return HttpResult.ok(result);
  211. }
  212. @PostMapping("/bxOtherImportData")
  213. @ApiOperation(value = "跟单对账导入(excel)")
  214. @ApiImplicitParams({
  215. @ApiImplicitParam(name = "file", value = "excel文件", required = true, dataType = "__file")
  216. })
  217. public HttpResult<String> bxOtherImportData(@RequestParam MultipartFile multipartFile, @RequestParam("isNotCar") String isNotCar) {
  218. try {
  219. List<InsBxOtherExcelDto> dtoList = ExcelEasypoiUtils.importExcel(multipartFile, InsBxOtherExcelDto.class, 0, 1, 1);
  220. String taskId = String.valueOf(new SnowFlakeUtil().nextId());
  221. importAsyncService.bxOtherImportData(dtoList, isNotCar, taskId);
  222. return HttpResult.ok(taskId);
  223. } catch (IOException e) {
  224. throw new RuntimeException(e);
  225. }
  226. }
  227. @PostMapping("/bxNoOtherImportData")
  228. @ApiOperation(value = "非车跟单对账导入(excel)")
  229. @ApiImplicitParams({
  230. @ApiImplicitParam(name = "file", value = "excel文件", required = true, dataType = "__file")
  231. })
  232. public HttpResult<String> bxNoOtherImportData(@RequestParam MultipartFile multipartFile, @RequestParam("isNotCar") String isNotCar) {
  233. try {
  234. List<InsNoBxOtherExcelDto> dtoList = ExcelEasypoiUtils.importExcel(multipartFile, InsNoBxOtherExcelDto.class, 0, 1, 1);
  235. String taskId = String.valueOf(new SnowFlakeUtil().nextId());
  236. importAsyncService.bxNoOtherImportData(dtoList, isNotCar, taskId);
  237. return HttpResult.ok(taskId);
  238. } catch (IOException e) {
  239. throw new RuntimeException(e);
  240. }
  241. }
  242. @PutMapping("/update")
  243. @ApiModelProperty(value = "修改")
  244. public HttpResult<Object> updateByEntity(@RequestBody InsPlyIncomeVo insPlyIncomeVo) {
  245. insPlyIncomeService.updateByEntity(insPlyIncomeVo);
  246. return HttpResult.ok("修改成功");
  247. }
  248. @PutMapping("/batchUpdate")
  249. @ApiModelProperty(value = "批量修改")
  250. public HttpResult<Object> batchUpdate(@RequestBody InsPlyIncomeVo insPlyIncomeVo) {
  251. insPlyIncomeService.batchUpdate(insPlyIncomeVo);
  252. return HttpResult.ok("批量修改成功");
  253. }
  254. @PutMapping("/batchUpdateVoucher")
  255. @ApiModelProperty(value = "批量修改上传凭证")
  256. public HttpResult<Object> batchUpdateVoucher(@RequestBody InsPlyIncomeVo insPlyIncomeVo) {
  257. insPlyIncomeService.batchUpdateVoucher(insPlyIncomeVo);
  258. return HttpResult.ok("上传凭证成功");
  259. }
  260. @PostMapping("/insert")
  261. @ApiModelProperty(value = "新增")
  262. public HttpResult<InsPlyIncome> insertByEntity(@RequestBody InsPlyIncomeVo insPlyIncomeVo) {
  263. return insPlyIncomeService.insertByEntity(insPlyIncomeVo);
  264. }
  265. @DeleteMapping("/delete")
  266. @ApiModelProperty(value = "删除")
  267. public HttpResult<InsPlyIncome> deleteById(@RequestBody InsPlyIncomeVo insPlyIncomeVo) {
  268. return insPlyIncomeService.deleteById(insPlyIncomeVo);
  269. }
  270. @GetMapping("/getById/{id}")
  271. @ApiModelProperty(value = "回显")
  272. public HttpResult<InsPlyIncome> getById(@PathVariable("id") String id) {
  273. InsPlyIncome item = insPlyIncomeService.getEntityById(id);
  274. return HttpResult.ok(item);
  275. }
  276. @PostMapping("/totalBxAmount")
  277. @ApiModelProperty(value = "保险未开票金额")
  278. public HttpResult<List<InsPlyIncome>> totalBxAmount(@RequestBody @Valid InsPlyIncomeVo insPlyIncomeVo) {
  279. List<InsPlyIncome> result = insPlyIncomeService.totalBxAmount(insPlyIncomeVo);
  280. return HttpResult.ok(result);
  281. }
  282. @PutMapping("/batchInvoicing")
  283. @ApiModelProperty(value = "保险手续费批量开票")
  284. public HttpResult<Object> batchInvoicing(@RequestBody InsPlyIncomeVo insPlyIncomeVo) {
  285. return insPlyIncomeService.batchInvoicing(insPlyIncomeVo);
  286. }
  287. @PostMapping("/queryInvoicing")
  288. @ApiModelProperty(value = "查询开票金额")
  289. public HttpResult<InsPlyIncome> queryInvoicing(@RequestBody InsPlyIncomeVo insPlyIncomeVo) {
  290. return insPlyIncomeService.queryInvoicing(insPlyIncomeVo);
  291. }
  292. @PostMapping("/querySettInvoicing")
  293. @ApiModelProperty(value = "查询已开票已结算")
  294. public HttpResult<InsPlyIncome> querySettInvoicing(@RequestBody InsPlyIncomeVo insPlyIncomeVo) {
  295. return insPlyIncomeService.querySettInvoicing(insPlyIncomeVo);
  296. }
  297. @PutMapping("/batchBxBalance")
  298. @ApiModelProperty(value = "保险批量结算")
  299. public HttpResult<Object> batchBxBalance(@RequestBody InsPlyIncomeVo insPlyIncomeVo) {
  300. return insPlyIncomeService.batchBxBalance(insPlyIncomeVo);
  301. }
  302. @PostMapping("/allOtherAmount")
  303. @ApiModelProperty(value = "保险跟单总表")
  304. public HttpResult<List<InsPlyIncome>> allOtherAmount(@RequestBody InsPlyIncomeVo insPlyIncomeVo) {
  305. return insPlyIncomeService.allOtherAmount(insPlyIncomeVo);
  306. }
  307. @ApiModelProperty("平台手续费导出")
  308. @PostMapping("pinHandlingExcel")
  309. public HttpResult pinHandlingexcel(@RequestBody @ApiParam(name = "insPlyIncomeVo") InsPlyIncomeVo insPlyIncomeVo, HttpServletRequest request, HttpServletResponse response) {
  310. return insPlyIncomeService.pinHandlingexcel(insPlyIncomeVo, request, response);
  311. }
  312. @ApiModelProperty("保险手续费导出")
  313. @PostMapping("bxHandlingExcel")
  314. public HttpResult bxHandlingexcel(@RequestBody @ApiParam(name = "insPlyIncomeVo") InsPlyIncomeVo insPlyIncomeVo, HttpServletRequest request, HttpServletResponse response) throws IOException {
  315. return insPlyIncomeService.bxHandlingexcel(insPlyIncomeVo, request, response);
  316. }
  317. @ApiModelProperty("保险跟单导出")
  318. @PostMapping("bxOtherExcel")
  319. public HttpResult bxOtherExcel(@RequestBody @ApiParam(name = "insPlyIncomeVo") InsPlyIncomeVo insPlyIncomeVo, HttpServletRequest request, HttpServletResponse response) {
  320. return insPlyIncomeService.bxOtherExcel(insPlyIncomeVo, request, response);
  321. }
  322. @ApiModelProperty("保险跟单明细导出")
  323. @PostMapping("/bxOtherDetailsExcel")
  324. public HttpResult bxOtherDetailsExcel(@RequestBody @ApiParam(name = "insPlyIncomeVo") InsPlyIncomeVo insPlyIncomeVo, HttpServletRequest request, HttpServletResponse response) {
  325. return insPlyIncomeService.bxOtherDetailsExcel(insPlyIncomeVo, request, response);
  326. }
  327. @PostMapping("/invicdetail")
  328. @ApiOperation(value = "开票未结算详情查询")
  329. public HttpResult<List<SettlementDocumentaryFeesEntity>> invicdetail(@Valid @RequestBody InsPlyIncomeVo insPlyIncomeVo) {
  330. return insPlyIncomeService.invicdetail(insPlyIncomeVo);
  331. }
  332. @ApiModelProperty("保险非车跟单明细导出")
  333. @PostMapping("/bxNoOtherDetailsExcel")
  334. public HttpResult bxNoOtherDetailsExcel(@RequestBody @ApiParam(name = "insPlyIncomeVo") InsPlyIncomeVo insPlyIncomeVo, HttpServletRequest request, HttpServletResponse response) {
  335. return insPlyIncomeService.bxOtherDetailsExcel(insPlyIncomeVo, request, response);
  336. }
  337. @PostMapping("/otherSettldetail")
  338. @ApiOperation(value = "非跟单明细查询")
  339. public HttpResult<List<HashMap<String, Object>>> otherSettldetail(@RequestBody InsPlyIncomeVo insPlyIncomeVo) {
  340. return insPlyIncomeService.otherSettldetail(insPlyIncomeVo);
  341. }
  342. @PostMapping("/otherTimeDetail")
  343. @ApiOperation(value = "非跟单明细查询")
  344. public HttpResult<List<HashMap<String, Object>>> otherTimeDetail(@RequestBody InsPlyIncomeVo insPlyIncomeVo) {
  345. return insPlyIncomeService.otherTimeDetail(insPlyIncomeVo);
  346. }
  347. }