package org.jeecg.modules.payment.controller; import javax.servlet.http.HttpServletRequest; import javax.validation.Valid; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; import org.jeecg.common.api.vo.Result; import org.jeecg.common.dto.payment.ProjectArchiveReqDTO; import org.jeecg.common.dto.payment.ProjectArchiveRespDTO; import org.jeecg.common.dto.payment.SlieReqDTO; import org.jeecg.common.dto.payment.SlipAddReqDTO; import org.jeecg.common.dto.payment.SlipPriceReqDTO; import org.jeecg.common.dto.payment.SlipPriceRespDTO; import org.jeecg.common.dto.payment.SlipRespDTO; import org.jeecg.common.exception.JeecgBootException; import org.jeecg.common.system.query.QueryGenerator; import org.jeecg.modules.payment.entity.ManagerPaymentAndReceiptSlip; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import lombok.extern.slf4j.Slf4j; import org.jeecg.modules.payment.service.ManagerPaymentAndReceiptSlipService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.util.CollectionUtils; import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.DeleteMapping; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PutMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import java.util.List; /** * @Author jihaosen * @date 2021/3/3 */ @Api("收付款管理--收付款单") @RestController @RequestMapping("/payment/managerPaymentAndReceiptSlip") @Slf4j public class ManagerPaymentAndReceiptSlipController { @Autowired private ManagerPaymentAndReceiptSlipService managerPaymentAndReceiptSlipService; @ApiOperation(value = "分页查询接口", notes = "分页查询收付款单") @ApiImplicitParams({ @ApiImplicitParam(name = "pkOrg", value = "组织", required = true, dataType = "String") }) @GetMapping(value = "/list") public Result> queryPageList(@Valid ManagerPaymentAndReceiptSlip managerPaymentAndReceiptSlip, @RequestParam(name="pageNo", defaultValue="1") Integer pageNo, @RequestParam(name="pageSize", defaultValue="10") Integer pageSize, HttpServletRequest req) { Result> result = new Result>(); managerPaymentAndReceiptSlip.setDelFlag(null); QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(managerPaymentAndReceiptSlip, req.getParameterMap()); Page page = new Page(pageNo, pageSize); queryWrapper.eq("del_flag", "0"); queryWrapper.orderByDesc("create_time"); IPage pageList = managerPaymentAndReceiptSlipService.page(page, queryWrapper); result.setSuccess(true); result.setResult(pageList); return result; } @ApiOperation(value = "新增", notes = "新增收付款单") @ApiImplicitParams({ @ApiImplicitParam(name = "proId", value = "项目id", required = true, dataType = "String"), @ApiImplicitParam(name = "proName", value = "项目名称", required = true, dataType = "String"), @ApiImplicitParam(name = "proCode", value = "项目编码", required = true, dataType = "String"), @ApiImplicitParam(name = "cusId", value = "客户档案id", required = true, dataType = "String"), @ApiImplicitParam(name = "cusCode", value = "客户档案编码", required = true, dataType = "String"), @ApiImplicitParam(name = "cusName", value = "客户档案名称", required = true, dataType = "String"), @ApiImplicitParam(name = "pkOrg", value = "组织", required = true, dataType = "String"), @ApiImplicitParam(name = "proArchivesId", value = "项目档案id", required = true, dataType = "String"), @ApiImplicitParam(name = "proArchivesMilestone", value = "项目档案--里程碑", required = true, dataType = "String"), @ApiImplicitParam(name = "coArchivesId", value = "收款条线档案id", required = true, dataType = "String"), @ApiImplicitParam(name = "coArchivesName", value = "收付款条线档案名称", required = true, dataType = "String"), @ApiImplicitParam(name = "coPrvice", value = "收款金额", required = true, dataType = "String"), @ApiImplicitParam(name = "explain", value = "说明", required = true, dataType = "String"), @ApiImplicitParam(name = "invoice", value = "对应发票(采购发票)", required = true, dataType = "String"), }) @PostMapping(value = "/add") public Result add(@RequestBody SlipAddReqDTO reqDTO, BindingResult bindingResult) { Result result = new Result(); try { StringBuilder sb = new StringBuilder(); if (bindingResult.hasErrors()){ //记录错误信息 bindingResult.getAllErrors().stream().forEach(error -> sb.append(error.getDefaultMessage() + "
")); result.error500(sb.toString()); return result; } if(CollectionUtils.isEmpty(reqDTO.getDetailList())){ throw new JeecgBootException("子表数据不能为空"); } managerPaymentAndReceiptSlipService.add(reqDTO); result.success("添加成功!"); } catch (Exception e) { e.printStackTrace(); log.info(e.getMessage()); result.error500("操作失败"); } return result; } @ApiOperation(value = "编辑", notes = "编辑收款单") @ApiImplicitParams({ @ApiImplicitParam(name = "id", value = "id", required = true, dataType = "String"), @ApiImplicitParam(name = "proId", value = "项目id", required = true, dataType = "String"), @ApiImplicitParam(name = "proName", value = "项目名称", required = true, dataType = "String"), @ApiImplicitParam(name = "proCode", value = "项目编码", required = true, dataType = "String"), @ApiImplicitParam(name = "cusId", value = "客户档案id", required = true, dataType = "String"), @ApiImplicitParam(name = "cusCode", value = "客户档案编码", required = true, dataType = "String"), @ApiImplicitParam(name = "cusName", value = "客户档案名称", required = true, dataType = "String"), @ApiImplicitParam(name = "pkOrg", value = "组织", required = true, dataType = "String"), @ApiImplicitParam(name = "proArchivesId", value = "项目档案id", required = true, dataType = "String"), @ApiImplicitParam(name = "proArchivesMilestone", value = "项目档案--里程碑", required = true, dataType = "String"), @ApiImplicitParam(name = "coArchivesId", value = "收款条线档案id", required = true, dataType = "String"), @ApiImplicitParam(name = "coArchivesName", value = "收付款条线档案名称", required = true, dataType = "String"), @ApiImplicitParam(name = "coPrvice", value = "收款金额", required = true, dataType = "String"), @ApiImplicitParam(name = "explain", value = "说明", required = true, dataType = "String"), @ApiImplicitParam(name = "invoice", value = "对应发票(采购发票)", required = true, dataType = "String"), }) @PutMapping(value = "/edit") public Result edit(@RequestBody SlipAddReqDTO reqDTO) { Result result = new Result(); ManagerPaymentAndReceiptSlip managerPaymentAndReceiptSlipEntity = managerPaymentAndReceiptSlipService.getById(reqDTO.getId()); if(managerPaymentAndReceiptSlipEntity==null) { result.error500("未找到对应实体"); }else { if(CollectionUtils.isEmpty(reqDTO.getDetailList())){ throw new JeecgBootException("子表数据不能为空"); } boolean ok = managerPaymentAndReceiptSlipService.edit(reqDTO); if(ok) { result.success("修改成功!"); } } return result; } @ApiOperation(value = "通过id删除", notes = "通过id删除收付款单") @ApiImplicitParams({ @ApiImplicitParam(name = "id", value = "id", required = true, dataType = "String"), }) @DeleteMapping(value = "/delete") public Result delete(SlieReqDTO reqDTO) { Result result = new Result(); ManagerPaymentAndReceiptSlip managerPaymentAndReceiptSlip = managerPaymentAndReceiptSlipService.getById(reqDTO.getId()); if(managerPaymentAndReceiptSlip==null) { result.error500("未找到对应实体"); }else { boolean ok = managerPaymentAndReceiptSlipService.dropById(managerPaymentAndReceiptSlip); if(ok) { result.success("删除成功!"); } } return result; } @ApiOperation(value = "通过id查询", notes = "通过id查询收付款单") @ApiImplicitParams({ @ApiImplicitParam(name = "id", value = "id", required = true, dataType = "String"), }) @GetMapping(value = "/queryById") public Result queryById(SlieReqDTO reqDTO) { Result result = new Result(); SlipRespDTO managerPaymentAndReceiptSlip = managerPaymentAndReceiptSlipService.queryById(reqDTO.getId()); if(managerPaymentAndReceiptSlip==null) { result.error500("未找到对应实体"); }else { result.setResult(managerPaymentAndReceiptSlip); result.setSuccess(true); } return result; } @ApiOperation(value = "获取项目档案的名称与编码", notes = "过滤已经使用过得项目编码与名称") @GetMapping(value = "/getProNameAndCode") public Result> get(ProjectArchiveReqDTO reqDTO) { Result> result = new Result>(); List projectArchiveRespDTOS = managerPaymentAndReceiptSlipService.getProNameAndCode(reqDTO); result.setResult(projectArchiveRespDTOS); result.setSuccess(true); return result; } @ApiOperation(value = "收付款单金额", notes = "收付款单金额") @GetMapping(value = "/getSlipPrice") public Result> getSlipPrice(SlipPriceReqDTO reqDTO){ Result> result = new Result>(); List list = managerPaymentAndReceiptSlipService.getSlipPrice(reqDTO); result.setResult(list); result.setSuccess(true); return result; } }