ManagerPaymentAndReceiptSlipController.java 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206
  1. package org.jeecg.modules.payment.controller;
  2. import javax.servlet.http.HttpServletRequest;
  3. import javax.validation.Valid;
  4. import io.swagger.annotations.Api;
  5. import io.swagger.annotations.ApiImplicitParam;
  6. import io.swagger.annotations.ApiImplicitParams;
  7. import io.swagger.annotations.ApiOperation;
  8. import org.jeecg.common.api.vo.Result;
  9. import org.jeecg.common.dto.payment.ProjectArchiveReqDTO;
  10. import org.jeecg.common.dto.payment.ProjectArchiveRespDTO;
  11. import org.jeecg.common.dto.payment.SlieReqDTO;
  12. import org.jeecg.common.dto.payment.SlipAddReqDTO;
  13. import org.jeecg.common.dto.payment.SlipPriceReqDTO;
  14. import org.jeecg.common.dto.payment.SlipPriceRespDTO;
  15. import org.jeecg.common.dto.payment.SlipRespDTO;
  16. import org.jeecg.common.exception.JeecgBootException;
  17. import org.jeecg.common.system.query.QueryGenerator;
  18. import org.jeecg.modules.payment.entity.ManagerPaymentAndReceiptSlip;
  19. import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
  20. import com.baomidou.mybatisplus.core.metadata.IPage;
  21. import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
  22. import lombok.extern.slf4j.Slf4j;
  23. import org.jeecg.modules.payment.service.ManagerPaymentAndReceiptSlipService;
  24. import org.springframework.beans.factory.annotation.Autowired;
  25. import org.springframework.util.CollectionUtils;
  26. import org.springframework.validation.BindingResult;
  27. import org.springframework.web.bind.annotation.DeleteMapping;
  28. import org.springframework.web.bind.annotation.GetMapping;
  29. import org.springframework.web.bind.annotation.PostMapping;
  30. import org.springframework.web.bind.annotation.PutMapping;
  31. import org.springframework.web.bind.annotation.RequestBody;
  32. import org.springframework.web.bind.annotation.RequestMapping;
  33. import org.springframework.web.bind.annotation.RequestParam;
  34. import org.springframework.web.bind.annotation.RestController;
  35. import java.util.List;
  36. /**
  37. * @Author jihaosen
  38. * @date 2021/3/3
  39. */
  40. @Api("收付款管理--收付款单")
  41. @RestController
  42. @RequestMapping("/payment/managerPaymentAndReceiptSlip")
  43. @Slf4j
  44. public class ManagerPaymentAndReceiptSlipController {
  45. @Autowired
  46. private ManagerPaymentAndReceiptSlipService managerPaymentAndReceiptSlipService;
  47. @ApiOperation(value = "分页查询接口", notes = "分页查询收付款单")
  48. @ApiImplicitParams({
  49. @ApiImplicitParam(name = "pkOrg", value = "组织", required = true, dataType = "String")
  50. })
  51. @GetMapping(value = "/list")
  52. public Result<IPage<ManagerPaymentAndReceiptSlip>> queryPageList(@Valid ManagerPaymentAndReceiptSlip managerPaymentAndReceiptSlip,
  53. @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
  54. @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
  55. HttpServletRequest req) {
  56. Result<IPage<ManagerPaymentAndReceiptSlip>> result = new Result<IPage<ManagerPaymentAndReceiptSlip>>();
  57. managerPaymentAndReceiptSlip.setDelFlag(null);
  58. QueryWrapper<ManagerPaymentAndReceiptSlip> queryWrapper = QueryGenerator.initQueryWrapper(managerPaymentAndReceiptSlip, req.getParameterMap());
  59. Page<ManagerPaymentAndReceiptSlip> page = new Page<ManagerPaymentAndReceiptSlip>(pageNo, pageSize);
  60. queryWrapper.eq("del_flag", "0");
  61. queryWrapper.orderByDesc("create_time");
  62. IPage<ManagerPaymentAndReceiptSlip> pageList = managerPaymentAndReceiptSlipService.page(page, queryWrapper);
  63. result.setSuccess(true);
  64. result.setResult(pageList);
  65. return result;
  66. }
  67. @ApiOperation(value = "新增", notes = "新增收付款单")
  68. @ApiImplicitParams({
  69. @ApiImplicitParam(name = "proId", value = "项目id", required = true, dataType = "String"),
  70. @ApiImplicitParam(name = "proName", value = "项目名称", required = true, dataType = "String"),
  71. @ApiImplicitParam(name = "proCode", value = "项目编码", required = true, dataType = "String"),
  72. @ApiImplicitParam(name = "cusId", value = "客户档案id", required = true, dataType = "String"),
  73. @ApiImplicitParam(name = "cusCode", value = "客户档案编码", required = true, dataType = "String"),
  74. @ApiImplicitParam(name = "cusName", value = "客户档案名称", required = true, dataType = "String"),
  75. @ApiImplicitParam(name = "pkOrg", value = "组织", required = true, dataType = "String"),
  76. @ApiImplicitParam(name = "proArchivesId", value = "项目档案id", required = true, dataType = "String"),
  77. @ApiImplicitParam(name = "proArchivesMilestone", value = "项目档案--里程碑", required = true, dataType = "String"),
  78. @ApiImplicitParam(name = "coArchivesId", value = "收款条线档案id", required = true, dataType = "String"),
  79. @ApiImplicitParam(name = "coArchivesName", value = "收付款条线档案名称", required = true, dataType = "String"),
  80. @ApiImplicitParam(name = "coPrvice", value = "收款金额", required = true, dataType = "String"),
  81. @ApiImplicitParam(name = "explain", value = "说明", required = true, dataType = "String"),
  82. @ApiImplicitParam(name = "invoice", value = "对应发票(采购发票)", required = true, dataType = "String"),
  83. })
  84. @PostMapping(value = "/add")
  85. public Result<ManagerPaymentAndReceiptSlip> add(@RequestBody SlipAddReqDTO reqDTO, BindingResult bindingResult) {
  86. Result<ManagerPaymentAndReceiptSlip> result = new Result<ManagerPaymentAndReceiptSlip>();
  87. try {
  88. StringBuilder sb = new StringBuilder();
  89. if (bindingResult.hasErrors()){
  90. //记录错误信息
  91. bindingResult.getAllErrors().stream().forEach(error -> sb.append(error.getDefaultMessage() + "<br/>"));
  92. result.error500(sb.toString());
  93. return result;
  94. }
  95. if(CollectionUtils.isEmpty(reqDTO.getDetailList())){
  96. throw new JeecgBootException("子表数据不能为空");
  97. }
  98. managerPaymentAndReceiptSlipService.add(reqDTO);
  99. result.success("添加成功!");
  100. } catch (Exception e) {
  101. e.printStackTrace();
  102. log.info(e.getMessage());
  103. result.error500("操作失败");
  104. }
  105. return result;
  106. }
  107. @ApiOperation(value = "编辑", notes = "编辑收款单")
  108. @ApiImplicitParams({
  109. @ApiImplicitParam(name = "id", value = "id", required = true, dataType = "String"),
  110. @ApiImplicitParam(name = "proId", value = "项目id", required = true, dataType = "String"),
  111. @ApiImplicitParam(name = "proName", value = "项目名称", required = true, dataType = "String"),
  112. @ApiImplicitParam(name = "proCode", value = "项目编码", required = true, dataType = "String"),
  113. @ApiImplicitParam(name = "cusId", value = "客户档案id", required = true, dataType = "String"),
  114. @ApiImplicitParam(name = "cusCode", value = "客户档案编码", required = true, dataType = "String"),
  115. @ApiImplicitParam(name = "cusName", value = "客户档案名称", required = true, dataType = "String"),
  116. @ApiImplicitParam(name = "pkOrg", value = "组织", required = true, dataType = "String"),
  117. @ApiImplicitParam(name = "proArchivesId", value = "项目档案id", required = true, dataType = "String"),
  118. @ApiImplicitParam(name = "proArchivesMilestone", value = "项目档案--里程碑", required = true, dataType = "String"),
  119. @ApiImplicitParam(name = "coArchivesId", value = "收款条线档案id", required = true, dataType = "String"),
  120. @ApiImplicitParam(name = "coArchivesName", value = "收付款条线档案名称", required = true, dataType = "String"),
  121. @ApiImplicitParam(name = "coPrvice", value = "收款金额", required = true, dataType = "String"),
  122. @ApiImplicitParam(name = "explain", value = "说明", required = true, dataType = "String"),
  123. @ApiImplicitParam(name = "invoice", value = "对应发票(采购发票)", required = true, dataType = "String"),
  124. })
  125. @PutMapping(value = "/edit")
  126. public Result<ManagerPaymentAndReceiptSlip> edit(@RequestBody SlipAddReqDTO reqDTO) {
  127. Result<ManagerPaymentAndReceiptSlip> result = new Result<ManagerPaymentAndReceiptSlip>();
  128. ManagerPaymentAndReceiptSlip managerPaymentAndReceiptSlipEntity = managerPaymentAndReceiptSlipService.getById(reqDTO.getId());
  129. if(managerPaymentAndReceiptSlipEntity==null) {
  130. result.error500("未找到对应实体");
  131. }else {
  132. if(CollectionUtils.isEmpty(reqDTO.getDetailList())){
  133. throw new JeecgBootException("子表数据不能为空");
  134. }
  135. boolean ok = managerPaymentAndReceiptSlipService.edit(reqDTO);
  136. if(ok) {
  137. result.success("修改成功!");
  138. }
  139. }
  140. return result;
  141. }
  142. @ApiOperation(value = "通过id删除", notes = "通过id删除收付款单")
  143. @ApiImplicitParams({
  144. @ApiImplicitParam(name = "id", value = "id", required = true, dataType = "String"),
  145. })
  146. @DeleteMapping(value = "/delete")
  147. public Result<ManagerPaymentAndReceiptSlip> delete(SlieReqDTO reqDTO) {
  148. Result<ManagerPaymentAndReceiptSlip> result = new Result<ManagerPaymentAndReceiptSlip>();
  149. ManagerPaymentAndReceiptSlip managerPaymentAndReceiptSlip = managerPaymentAndReceiptSlipService.getById(reqDTO.getId());
  150. if(managerPaymentAndReceiptSlip==null) {
  151. result.error500("未找到对应实体");
  152. }else {
  153. boolean ok = managerPaymentAndReceiptSlipService.dropById(managerPaymentAndReceiptSlip);
  154. if(ok) {
  155. result.success("删除成功!");
  156. }
  157. }
  158. return result;
  159. }
  160. @ApiOperation(value = "通过id查询", notes = "通过id查询收付款单")
  161. @ApiImplicitParams({
  162. @ApiImplicitParam(name = "id", value = "id", required = true, dataType = "String"),
  163. })
  164. @GetMapping(value = "/queryById")
  165. public Result<SlipRespDTO> queryById(SlieReqDTO reqDTO) {
  166. Result<SlipRespDTO> result = new Result<SlipRespDTO>();
  167. SlipRespDTO managerPaymentAndReceiptSlip = managerPaymentAndReceiptSlipService.queryById(reqDTO.getId());
  168. if(managerPaymentAndReceiptSlip==null) {
  169. result.error500("未找到对应实体");
  170. }else {
  171. result.setResult(managerPaymentAndReceiptSlip);
  172. result.setSuccess(true);
  173. }
  174. return result;
  175. }
  176. @ApiOperation(value = "获取项目档案的名称与编码", notes = "过滤已经使用过得项目编码与名称")
  177. @GetMapping(value = "/getProNameAndCode")
  178. public Result<List<ProjectArchiveRespDTO>> get(ProjectArchiveReqDTO reqDTO) {
  179. Result<List<ProjectArchiveRespDTO>> result = new Result<List<ProjectArchiveRespDTO>>();
  180. List<ProjectArchiveRespDTO> projectArchiveRespDTOS = managerPaymentAndReceiptSlipService.getProNameAndCode(reqDTO);
  181. result.setResult(projectArchiveRespDTOS);
  182. result.setSuccess(true);
  183. return result;
  184. }
  185. @ApiOperation(value = "收付款单金额", notes = "收付款单金额")
  186. @GetMapping(value = "/getSlipPrice")
  187. public Result<List<SlipPriceRespDTO>> getSlipPrice(SlipPriceReqDTO reqDTO){
  188. Result<List<SlipPriceRespDTO>> result = new Result<List<SlipPriceRespDTO>>();
  189. List<SlipPriceRespDTO> list = managerPaymentAndReceiptSlipService.getSlipPrice(reqDTO);
  190. result.setResult(list);
  191. result.setSuccess(true);
  192. return result;
  193. }
  194. }