From 14ae44058f242eae0d7fb4a3ae2895438e07df2f Mon Sep 17 00:00:00 2001 From: Gauthier LO Date: Thu, 24 Aug 2023 16:35:27 +0200 Subject: [PATCH 1/2] feature: (WIP) Credit Page --- .../controller/admin/CreditController.java | 171 +++++++++++++++++ .../controller/admin/DebitController.java | 178 ++++++++++++++++++ .../jeecg/modules/business/entity/Credit.java | 98 ++++++++++ .../jeecg/modules/business/entity/Debit.java | 66 +++++++ .../modules/business/mapper/CreditMapper.java | 19 ++ .../modules/business/mapper/DebitMapper.java | 19 ++ .../business/mapper/xml/CreditMapper.xml | 5 + .../business/mapper/xml/DebitMapper.xml | 5 + .../business/service/ICreditService.java | 14 ++ .../business/service/IDebitService.java | 14 ++ .../service/impl/CreditServiceImpl.java | 21 +++ .../service/impl/DebitServiceImpl.java | 21 +++ 12 files changed, 631 insertions(+) create mode 100644 jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/controller/admin/CreditController.java create mode 100644 jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/controller/admin/DebitController.java create mode 100644 jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/entity/Credit.java create mode 100644 jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/entity/Debit.java create mode 100644 jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/mapper/CreditMapper.java create mode 100644 jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/mapper/DebitMapper.java create mode 100644 jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/mapper/xml/CreditMapper.xml create mode 100644 jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/mapper/xml/DebitMapper.xml create mode 100644 jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/service/ICreditService.java create mode 100644 jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/service/IDebitService.java create mode 100644 jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/service/impl/CreditServiceImpl.java create mode 100644 jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/service/impl/DebitServiceImpl.java diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/controller/admin/CreditController.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/controller/admin/CreditController.java new file mode 100644 index 000000000..655f39b07 --- /dev/null +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/controller/admin/CreditController.java @@ -0,0 +1,171 @@ +package org.jeecg.modules.business.controller.admin; + +import java.util.Arrays; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; +import java.io.IOException; +import java.io.UnsupportedEncodingException; +import java.net.URLDecoder; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import org.jeecg.common.api.vo.Result; +import org.jeecg.common.system.query.QueryGenerator; +import org.jeecg.common.util.oConvertUtils; +import org.jeecg.modules.business.entity.Credit; +import org.jeecg.modules.business.service.ICreditService; + +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.jeecgframework.poi.excel.ExcelImportUtil; +import org.jeecgframework.poi.excel.def.NormalExcelConstants; +import org.jeecgframework.poi.excel.entity.ExportParams; +import org.jeecgframework.poi.excel.entity.ImportParams; +import org.jeecgframework.poi.excel.view.JeecgEntityExcelView; +import org.jeecg.common.system.base.controller.JeecgController; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; +import org.springframework.web.multipart.MultipartHttpServletRequest; +import org.springframework.web.servlet.ModelAndView; +import com.alibaba.fastjson.JSON; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.jeecg.common.aspect.annotation.AutoLog; +import org.apache.shiro.authz.annotation.RequiresPermissions; + + /** + * @Description: credit + * @Author: jeecg-boot + * @Date: 2023-08-23 + * @Version: V1.0 + */ +@Api(tags="credit") +@RestController +@RequestMapping("/credit") +@Slf4j +public class CreditController extends JeecgController { + @Autowired + private ICreditService creditService; + + /** + * 分页列表查询 + * + * @param credit + * @param pageNo + * @param pageSize + * @param req + * @return + */ + //@AutoLog(value = "credit-分页列表查询") + @ApiOperation(value="credit-分页列表查询", notes="credit-分页列表查询") + @GetMapping(value = "/list") + public Result> queryPageList(Credit credit, + @RequestParam(name="pageNo", defaultValue="1") Integer pageNo, + @RequestParam(name="pageSize", defaultValue="10") Integer pageSize, + HttpServletRequest req) { + QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(credit, req.getParameterMap()); + Page page = new Page(pageNo, pageSize); + IPage pageList = creditService.page(page, queryWrapper); + return Result.OK(pageList); + } + + /** + * 添加 + * + * @param credit + * @return + */ + @AutoLog(value = "credit-添加") + @ApiOperation(value="credit-添加", notes="credit-添加") + @PostMapping(value = "/add") + public Result add(@RequestBody Credit credit) { + creditService.save(credit); + return Result.OK("添加成功!"); + } + + /** + * 编辑 + * + * @param credit + * @return + */ + @AutoLog(value = "credit-编辑") + @ApiOperation(value="credit-编辑", notes="credit-编辑") + @RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST}) + public Result edit(@RequestBody Credit credit) { + creditService.updateById(credit); + return Result.OK("编辑成功!"); + } + + /** + * 通过id删除 + * + * @param id + * @return + */ + @AutoLog(value = "credit-通过id删除") + @ApiOperation(value="credit-通过id删除", notes="credit-通过id删除") + @DeleteMapping(value = "/delete") + public Result delete(@RequestParam(name="id",required=true) String id) { + creditService.removeById(id); + return Result.OK("删除成功!"); + } + + /** + * 批量删除 + * + * @param ids + * @return + */ + @AutoLog(value = "credit-批量删除") + @ApiOperation(value="credit-批量删除", notes="credit-批量删除") + @DeleteMapping(value = "/deleteBatch") + public Result deleteBatch(@RequestParam(name="ids",required=true) String ids) { + this.creditService.removeByIds(Arrays.asList(ids.split(","))); + return Result.OK("批量删除成功!"); + } + + /** + * 通过id查询 + * + * @param id + * @return + */ + //@AutoLog(value = "credit-通过id查询") + @ApiOperation(value="credit-通过id查询", notes="credit-通过id查询") + @GetMapping(value = "/queryById") + public Result queryById(@RequestParam(name="id",required=true) String id) { + Credit credit = creditService.getById(id); + if(credit==null) { + return Result.error("未找到对应数据"); + } + return Result.OK(credit); + } + + /** + * 导出excel + * + * @param request + * @param credit + */ + @RequestMapping(value = "/exportXls") + public ModelAndView exportXls(HttpServletRequest request, Credit credit) { + return super.exportXls(request, credit, Credit.class, "credit"); + } + + /** + * 通过excel导入数据 + * + * @param request + * @param response + * @return + */ + @RequestMapping(value = "/importExcel", method = RequestMethod.POST) + public Result importExcel(HttpServletRequest request, HttpServletResponse response) { + return super.importExcel(request, response, Credit.class); + } +} diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/controller/admin/DebitController.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/controller/admin/DebitController.java new file mode 100644 index 000000000..f8be813d8 --- /dev/null +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/controller/admin/DebitController.java @@ -0,0 +1,178 @@ +package org.jeecg.modules.business.controller.admin; + +import java.util.Arrays; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; +import java.io.IOException; +import java.io.UnsupportedEncodingException; +import java.net.URLDecoder; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import org.jeecg.common.api.vo.Result; +import org.jeecg.common.system.query.QueryGenerator; +import org.jeecg.common.util.oConvertUtils; +import org.jeecg.modules.business.entity.Debit; +import org.jeecg.modules.business.service.IDebitService; + +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.jeecgframework.poi.excel.ExcelImportUtil; +import org.jeecgframework.poi.excel.def.NormalExcelConstants; +import org.jeecgframework.poi.excel.entity.ExportParams; +import org.jeecgframework.poi.excel.entity.ImportParams; +import org.jeecgframework.poi.excel.view.JeecgEntityExcelView; +import org.jeecg.common.system.base.controller.JeecgController; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; +import org.springframework.web.multipart.MultipartHttpServletRequest; +import org.springframework.web.servlet.ModelAndView; +import com.alibaba.fastjson.JSON; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.jeecg.common.aspect.annotation.AutoLog; +import org.apache.shiro.authz.annotation.RequiresPermissions; + + /** + * @Description: debit + * @Author: jeecg-boot + * @Date: 2023-08-23 + * @Version: V1.0 + */ +@Api(tags="debit") +@RestController +@RequestMapping("/business/debit") +@Slf4j +public class DebitController extends JeecgController { + @Autowired + private IDebitService debitService; + + /** + * 分页列表查询 + * + * @param debit + * @param pageNo + * @param pageSize + * @param req + * @return + */ + //@AutoLog(value = "debit-分页列表查询") + @ApiOperation(value="debit-分页列表查询", notes="debit-分页列表查询") + @GetMapping(value = "/list") + public Result> queryPageList(Debit debit, + @RequestParam(name="pageNo", defaultValue="1") Integer pageNo, + @RequestParam(name="pageSize", defaultValue="10") Integer pageSize, + HttpServletRequest req) { + QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(debit, req.getParameterMap()); + Page page = new Page(pageNo, pageSize); + IPage pageList = debitService.page(page, queryWrapper); + return Result.OK(pageList); + } + + /** + * 添加 + * + * @param debit + * @return + */ + @AutoLog(value = "debit-添加") + @ApiOperation(value="debit-添加", notes="debit-添加") + @RequiresPermissions("business:debit:add") + @PostMapping(value = "/add") + public Result add(@RequestBody Debit debit) { + debitService.save(debit); + return Result.OK("添加成功!"); + } + + /** + * 编辑 + * + * @param debit + * @return + */ + @AutoLog(value = "debit-编辑") + @ApiOperation(value="debit-编辑", notes="debit-编辑") + @RequiresPermissions("business:debit:edit") + @RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST}) + public Result edit(@RequestBody Debit debit) { + debitService.updateById(debit); + return Result.OK("编辑成功!"); + } + + /** + * 通过id删除 + * + * @param id + * @return + */ + @AutoLog(value = "debit-通过id删除") + @ApiOperation(value="debit-通过id删除", notes="debit-通过id删除") + @RequiresPermissions("business:debit:delete") + @DeleteMapping(value = "/delete") + public Result delete(@RequestParam(name="id",required=true) String id) { + debitService.removeById(id); + return Result.OK("删除成功!"); + } + + /** + * 批量删除 + * + * @param ids + * @return + */ + @AutoLog(value = "debit-批量删除") + @ApiOperation(value="debit-批量删除", notes="debit-批量删除") + @RequiresPermissions("business:debit:deleteBatch") + @DeleteMapping(value = "/deleteBatch") + public Result deleteBatch(@RequestParam(name="ids",required=true) String ids) { + this.debitService.removeByIds(Arrays.asList(ids.split(","))); + return Result.OK("批量删除成功!"); + } + + /** + * 通过id查询 + * + * @param id + * @return + */ + //@AutoLog(value = "debit-通过id查询") + @ApiOperation(value="debit-通过id查询", notes="debit-通过id查询") + @GetMapping(value = "/queryById") + public Result queryById(@RequestParam(name="id",required=true) String id) { + Debit debit = debitService.getById(id); + if(debit==null) { + return Result.error("未找到对应数据"); + } + return Result.OK(debit); + } + + /** + * 导出excel + * + * @param request + * @param debit + */ + @RequiresPermissions("business:debit:exportXls") + @RequestMapping(value = "/exportXls") + public ModelAndView exportXls(HttpServletRequest request, Debit debit) { + return super.exportXls(request, debit, Debit.class, "debit"); + } + + /** + * 通过excel导入数据 + * + * @param request + * @param response + * @return + */ + @RequiresPermissions("business:debit:importExcel") + @RequestMapping(value = "/importExcel", method = RequestMethod.POST) + public Result importExcel(HttpServletRequest request, HttpServletResponse response) { + return super.importExcel(request, response, Debit.class); + } + +} diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/entity/Credit.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/entity/Credit.java new file mode 100644 index 000000000..1c861c3b4 --- /dev/null +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/entity/Credit.java @@ -0,0 +1,98 @@ +package org.jeecg.modules.business.entity; + +import java.io.Serializable; +import java.io.UnsupportedEncodingException; +import java.util.Date; +import java.math.BigDecimal; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.annotation.TableLogic; +import lombok.Data; +import com.fasterxml.jackson.annotation.JsonFormat; +import org.springframework.format.annotation.DateTimeFormat; +import org.jeecgframework.poi.excel.annotation.Excel; +import org.jeecg.common.aspect.annotation.Dict; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +/** + * @Description: credit + * @Author: jeecg-boot + * @Date: 2023-08-24 + * @Version: V1.0 + */ +@Data +@TableName("credit") +@Accessors(chain = true) +@EqualsAndHashCode(callSuper = false) +@ApiModel(value="credit对象", description="credit") +public class Credit implements Serializable { + private static final long serialVersionUID = 1L; + + /**主键*/ + @TableId(type = IdType.ASSIGN_ID) + @ApiModelProperty(value = "主键") + private java.lang.String id; + /**创建人*/ + @ApiModelProperty(value = "创建人") + private java.lang.String createBy; + /**创建日期*/ + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") + @ApiModelProperty(value = "创建日期") + private java.util.Date createTime; + /**更新人*/ + @ApiModelProperty(value = "更新人") + private java.lang.String updateBy; + /**更新日期*/ + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") + @ApiModelProperty(value = "更新日期") + private java.util.Date updateTime; + /**client_id*/ + @Excel(name = "client_id", width = 15, dictTable = "client", dicText = "internal_code", dicCode = "id") + @Dict(dictTable = "client", dicText = "internal_code", dicCode = "id") + @ApiModelProperty(value = "client_id") + private java.lang.String clientId; + /**amount*/ + @Excel(name = "amount", width = 15) + @ApiModelProperty(value = "amount") + private java.math.BigDecimal amount; + /**currency_id*/ + @Excel(name = "currency_id", width = 15, dictTable = "currency WHERE code <> 'RMB'", dicText = "code", dicCode = "id") + @Dict(dictTable = "currency WHERE code <> 'RMB'", dicText = "code", dicCode = "id") + @ApiModelProperty(value = "currency_id") + private java.lang.String currencyId; + /**proof*/ + @Excel(name = "proof", width = 15) + private transient java.lang.String paymentProofString; + + private byte[] paymentProof; + + public byte[] getPaymentProof(){ + if(paymentProofString==null){ + return null; + } + try { + return paymentProofString.getBytes("UTF-8"); + } catch (UnsupportedEncodingException e) { + e.printStackTrace(); + } + return null; + } + + public String getPaymentProofString(){ + if(paymentProof==null || paymentProof.length==0){ + return ""; + } + try { + return new String(paymentProof,"UTF-8"); + } catch (UnsupportedEncodingException e) { + e.printStackTrace(); + } + return ""; + } +} diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/entity/Debit.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/entity/Debit.java new file mode 100644 index 000000000..2a16c44de --- /dev/null +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/entity/Debit.java @@ -0,0 +1,66 @@ +package org.jeecg.modules.business.entity; + +import java.io.Serializable; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import com.fasterxml.jackson.annotation.JsonFormat; +import org.springframework.format.annotation.DateTimeFormat; +import org.jeecgframework.poi.excel.annotation.Excel; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +/** + * @Description: debit + * @Author: jeecg-boot + * @Date: 2023-08-23 + * @Version: V1.0 + */ +@Data +@TableName("debit") +@Accessors(chain = true) +@EqualsAndHashCode(callSuper = false) +@ApiModel(value="debit对象", description="debit") +public class Debit implements Serializable { + private static final long serialVersionUID = 1L; + + /**主键*/ + @TableId(type = IdType.ASSIGN_ID) + @ApiModelProperty(value = "主键") + private java.lang.String id; + /**创建人*/ + @ApiModelProperty(value = "创建人") + private java.lang.String createBy; + /**创建日期*/ + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") + @ApiModelProperty(value = "创建日期") + private java.util.Date createTime; + /**更新人*/ + @ApiModelProperty(value = "更新人") + private java.lang.String updateBy; + /**更新日期*/ + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") + @ApiModelProperty(value = "更新日期") + private java.util.Date updateTime; + /**client_id*/ + @Excel(name = "client_id", width = 15) + @ApiModelProperty(value = "client_id") + private java.lang.String clientId; + /**amount*/ + @Excel(name = "amount", width = 15) + @ApiModelProperty(value = "amount") + private java.math.BigDecimal amount; + /**currency_id*/ + @Excel(name = "currency_id", width = 15) + @ApiModelProperty(value = "currency_id") + private java.lang.String currencyId; + /**invoice_number*/ + @Excel(name = "invoice_number", width = 15) + @ApiModelProperty(value = "invoice_number") + private java.lang.String invoiceNumber; +} diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/mapper/CreditMapper.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/mapper/CreditMapper.java new file mode 100644 index 000000000..6d4e1e558 --- /dev/null +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/mapper/CreditMapper.java @@ -0,0 +1,19 @@ +package org.jeecg.modules.business.mapper; + +import java.util.List; + +import org.apache.ibatis.annotations.Param; +import org.jeecg.modules.business.entity.Credit; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.springframework.stereotype.Repository; + +/** + * @Description: credit + * @Author: jeecg-boot + * @Date: 2023-08-23 + * @Version: V1.0 + */ +@Repository +public interface CreditMapper extends BaseMapper { + +} diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/mapper/DebitMapper.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/mapper/DebitMapper.java new file mode 100644 index 000000000..37e127f3d --- /dev/null +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/mapper/DebitMapper.java @@ -0,0 +1,19 @@ +package org.jeecg.modules.business.mapper; + +import java.util.List; + +import org.apache.ibatis.annotations.Param; +import org.jeecg.modules.business.entity.Debit; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.springframework.stereotype.Repository; + +/** + * @Description: debit + * @Author: jeecg-boot + * @Date: 2023-08-23 + * @Version: V1.0 + */ +@Repository +public interface DebitMapper extends BaseMapper { + +} diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/mapper/xml/CreditMapper.xml b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/mapper/xml/CreditMapper.xml new file mode 100644 index 000000000..3ad6dad45 --- /dev/null +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/mapper/xml/CreditMapper.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/mapper/xml/DebitMapper.xml b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/mapper/xml/DebitMapper.xml new file mode 100644 index 000000000..b6bc965ab --- /dev/null +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/mapper/xml/DebitMapper.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/service/ICreditService.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/service/ICreditService.java new file mode 100644 index 000000000..29adc3613 --- /dev/null +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/service/ICreditService.java @@ -0,0 +1,14 @@ +package org.jeecg.modules.business.service; + +import org.jeecg.modules.business.entity.Credit; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + * @Description: credit + * @Author: jeecg-boot + * @Date: 2023-08-23 + * @Version: V1.0 + */ +public interface ICreditService extends IService { + +} diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/service/IDebitService.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/service/IDebitService.java new file mode 100644 index 000000000..645c1aa3d --- /dev/null +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/service/IDebitService.java @@ -0,0 +1,14 @@ +package org.jeecg.modules.business.service; + +import org.jeecg.modules.business.entity.Debit; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + * @Description: debit + * @Author: jeecg-boot + * @Date: 2023-08-23 + * @Version: V1.0 + */ +public interface IDebitService extends IService { + +} diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/service/impl/CreditServiceImpl.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/service/impl/CreditServiceImpl.java new file mode 100644 index 000000000..134ff94be --- /dev/null +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/service/impl/CreditServiceImpl.java @@ -0,0 +1,21 @@ +package org.jeecg.modules.business.service.impl; + +import lombok.extern.slf4j.Slf4j; +import org.jeecg.modules.business.entity.Credit; +import org.jeecg.modules.business.mapper.CreditMapper; +import org.jeecg.modules.business.service.ICreditService; +import org.springframework.stereotype.Service; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; + +/** + * @Description: credit + * @Author: jeecg-boot + * @Date: 2023-08-23 + * @Version: V1.0 + */ +@Service +@Slf4j +public class CreditServiceImpl extends ServiceImpl implements ICreditService { + +} diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/service/impl/DebitServiceImpl.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/service/impl/DebitServiceImpl.java new file mode 100644 index 000000000..f30209581 --- /dev/null +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/service/impl/DebitServiceImpl.java @@ -0,0 +1,21 @@ +package org.jeecg.modules.business.service.impl; + +import lombok.extern.slf4j.Slf4j; +import org.jeecg.modules.business.entity.Debit; +import org.jeecg.modules.business.mapper.DebitMapper; +import org.jeecg.modules.business.service.IDebitService; +import org.springframework.stereotype.Service; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; + +/** + * @Description: debit + * @Author: jeecg-boot + * @Date: 2023-08-23 + * @Version: V1.0 + */ +@Service +@Slf4j +public class DebitServiceImpl extends ServiceImpl implements IDebitService { + +} From 87241cc805e30efd628495071645eba72e93807c Mon Sep 17 00:00:00 2001 From: Gauthier LO Date: Fri, 25 Aug 2023 16:06:10 +0200 Subject: [PATCH 2/2] feature: (WIP) debit + fix breakdownInvoice mail --- .../shippingInvoice/InvoiceController.java | 10 +++--- .../jeecg/modules/business/entity/Credit.java | 4 +-- .../jeecg/modules/business/entity/Debit.java | 35 ++++++++++--------- .../PlatformOrderShippingInvoiceService.java | 10 +++--- .../modules/business/vo/InvoiceMetaData.java | 2 ++ 5 files changed, 33 insertions(+), 28 deletions(-) diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/controller/admin/shippingInvoice/InvoiceController.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/controller/admin/shippingInvoice/InvoiceController.java index c9f04583a..bfdf42139 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/controller/admin/shippingInvoice/InvoiceController.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/controller/admin/shippingInvoice/InvoiceController.java @@ -358,10 +358,10 @@ public class InvoiceController { } @GetMapping(value = "/downloadInvoiceDetail") - public byte[] downloadInvoiceDetail(@RequestParam("invoiceNumber") String invoiceNumber, @RequestParam("invoiceEntity") String invoiceEntity) throws IOException { + public byte[] downloadInvoiceDetail(@RequestParam("invoiceNumber") String invoiceNumber, @RequestParam("invoiceEntity") String invoiceEntity, @RequestParam("internalCode") String internalCode) throws IOException { List factureDetails = shippingInvoiceService.getInvoiceDetail(invoiceNumber); List refunds = savRefundWithDetailService.getRefundsByInvoiceNumber(invoiceNumber); - return shippingInvoiceService.exportToExcel(factureDetails, refunds, invoiceNumber, invoiceEntity); + return shippingInvoiceService.exportToExcel(factureDetails, refunds, invoiceNumber, invoiceEntity, internalCode); } /** @@ -487,14 +487,14 @@ public class InvoiceController { filenameList.add(INVOICE_DIR + "//" + metaData.getFilename()); List factureDetails = shippingInvoiceService.getInvoiceDetail(metaData.getInvoiceCode()); List refunds = savRefundWithDetailService.getRefundsByInvoiceNumber(metaData.getInvoiceCode()); - shippingInvoiceService.exportToExcel(factureDetails, refunds, metaData.getInvoiceCode(), metaData.getInvoiceEntity()); - filenameList.add(INVOICE_DETAIL_DIR + "//Détail_calcul_de_facture_" + metaData.getInvoiceCode() + "_(" + metaData.getInvoiceEntity() + ").xlsx"); + shippingInvoiceService.exportToExcel(factureDetails, refunds, metaData.getInvoiceCode(), metaData.getInvoiceEntity(), metaData.getInternalCode()); + filenameList.add(INVOICE_DETAIL_DIR + "//" + metaData.getInternalCode() + "_(" + metaData.getInvoiceEntity() + ")_" + metaData.getInvoiceCode() + "_Détail_calcul_de_facture.xlsx"); } log.info("Generating detail files ...{}/{}", cpt++, invoiceList.size()); } String zipFilename = shippingInvoiceService.zipInvoices(filenameList); String subject = "Invoices generated from Breakdown Page"; - String destEmail = sysUser.getEmail(); + String destEmail = sysUser.getEmail() == null ? env.getProperty("spring.mail.username") : sysUser.getEmail(); Properties prop = emailService.getMailSender(); Map templateModel = new HashMap<>(); templateModel.put("errors", metaDataErrorList); diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/entity/Credit.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/entity/Credit.java index 1c861c3b4..12de31b01 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/entity/Credit.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/entity/Credit.java @@ -53,8 +53,8 @@ public class Credit implements Serializable { @ApiModelProperty(value = "更新日期") private java.util.Date updateTime; /**client_id*/ - @Excel(name = "client_id", width = 15, dictTable = "client", dicText = "internal_code", dicCode = "id") - @Dict(dictTable = "client", dicText = "internal_code", dicCode = "id") + @Excel(name = "client_id", width = 15, dictTable = "client WHERE active = '1'", dicText = "internal_code", dicCode = "id") + @Dict(dictTable = "client WHERE active = '1'", dicText = "internal_code", dicCode = "id") @ApiModelProperty(value = "client_id") private java.lang.String clientId; /**amount*/ diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/entity/Debit.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/entity/Debit.java index 2a16c44de..bd8465536 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/entity/Debit.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/entity/Debit.java @@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; import com.fasterxml.jackson.annotation.JsonFormat; +import org.jeecg.common.aspect.annotation.Dict; import org.springframework.format.annotation.DateTimeFormat; import org.jeecgframework.poi.excel.annotation.Excel; import io.swagger.annotations.ApiModel; @@ -27,40 +28,42 @@ import lombok.experimental.Accessors; public class Debit implements Serializable { private static final long serialVersionUID = 1L; - /**主键*/ - @TableId(type = IdType.ASSIGN_ID) + /**主键*/ + @TableId(type = IdType.ASSIGN_ID) @ApiModelProperty(value = "主键") private java.lang.String id; - /**创建人*/ + /**创建人*/ @ApiModelProperty(value = "创建人") private java.lang.String createBy; - /**创建日期*/ - @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") + /**创建日期*/ + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") @ApiModelProperty(value = "创建日期") private java.util.Date createTime; - /**更新人*/ + /**更新人*/ @ApiModelProperty(value = "更新人") private java.lang.String updateBy; - /**更新日期*/ - @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") + /**更新日期*/ + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") @ApiModelProperty(value = "更新日期") private java.util.Date updateTime; - /**client_id*/ - @Excel(name = "client_id", width = 15) + /**client_id*/ + @Excel(name = "client_id", width = 15, dictTable = "client WHERE active = '1'", dicText = "internal_code", dicCode = "id") + @Dict(dictTable = "client WHERE active = '1'", dicText = "internal_code", dicCode = "id") @ApiModelProperty(value = "client_id") private java.lang.String clientId; - /**amount*/ - @Excel(name = "amount", width = 15) + /**amount*/ + @Excel(name = "amount", width = 15) @ApiModelProperty(value = "amount") private java.math.BigDecimal amount; - /**currency_id*/ - @Excel(name = "currency_id", width = 15) + /**currency_id*/ + @Excel(name = "currency_id", width = 15, dictTable = "currency WHERE code <> 'RMB'", dicText = "code", dicCode = "id") + @Dict(dictTable = "currency WHERE code <> 'RMB'", dicText = "code", dicCode = "id") @ApiModelProperty(value = "currency_id") private java.lang.String currencyId; - /**invoice_number*/ - @Excel(name = "invoice_number", width = 15) + /**invoice_number*/ + @Excel(name = "invoice_number", width = 15) @ApiModelProperty(value = "invoice_number") private java.lang.String invoiceNumber; } diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/service/PlatformOrderShippingInvoiceService.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/service/PlatformOrderShippingInvoiceService.java index 917b28983..3cccd532d 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/service/PlatformOrderShippingInvoiceService.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/service/PlatformOrderShippingInvoiceService.java @@ -288,7 +288,7 @@ public class PlatformOrderShippingInvoiceService { invoice.paidAmount() ); shippingInvoiceMapper.insert(shippingInvoiceEntity); - return new InvoiceMetaData(filename, invoice.code(), invoice.client().getInvoiceEntity(), ""); + return new InvoiceMetaData(filename, invoice.code(), invoice.client().getInternalCode(), invoice.client().getInvoiceEntity(), ""); } /** @@ -341,7 +341,7 @@ public class PlatformOrderShippingInvoiceService { return factureDetailMapper.selectList(queryWrapper); } - public byte[] exportToExcel(List details, List refunds, String invoiceNumber, String invoiceEntity) throws IOException { + public byte[] exportToExcel(List details, List refunds, String invoiceNumber, String invoiceEntity, String internalCode) throws IOException { SheetManager sheetManager = SheetManager.createXLSX(); sheetManager.startDetailsSheet(); for (String title : DETAILS_TITLES) { @@ -426,10 +426,10 @@ public class PlatformOrderShippingInvoiceService { sheetManager.nextRow(); } - Path target = Paths.get(INVOICE_DETAIL_DIR, "Détail_calcul_de_facture_" + invoiceNumber + "_(" + invoiceEntity + ").xlsx"); + Path target = Paths.get(INVOICE_DETAIL_DIR, internalCode + "_(" + invoiceEntity + ")_" + invoiceNumber + "_Détail_calcul_de_facture.xlsx"); int i = 2; while (Files.exists(target)) { - target = Paths.get(INVOICE_DETAIL_DIR, "Détail_calcul_de_facture_" + invoiceNumber + "_(" + invoiceEntity + ")_" + i + ".xlsx"); + target = Paths.get(INVOICE_DETAIL_DIR, internalCode + "_(" + invoiceEntity + ")_" + invoiceNumber + "_Détail_calcul_de_facture_(" + i + ").xlsx"); i++; } Files.createFile(target); @@ -472,7 +472,7 @@ public class PlatformOrderShippingInvoiceService { metaData = makeCompleteInvoicePostShipping(param, "post"); invoiceList.add(metaData); } catch (UserException | IOException | ParseException e) { - invoiceList.add(new InvoiceMetaData("", "error", entry.getKey(), e.getMessage())); + invoiceList.add(new InvoiceMetaData("", "error", "", entry.getKey(), e.getMessage())); log.error(e.getMessage()); } System.gc(); diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/vo/InvoiceMetaData.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/vo/InvoiceMetaData.java index bfd26a63d..9e3e7b739 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/vo/InvoiceMetaData.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/vo/InvoiceMetaData.java @@ -9,6 +9,8 @@ public class InvoiceMetaData { private final String invoiceCode; + private final String internalCode; + private final String invoiceEntity; private final String errorMsg;