ManagerPaymentAndReceiptSlipController.java 9.9 KB

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