diff --git a/ruoyi-admin/src/main/java/com/ruoyi/financial/controller/FinancialReceivablesController.java b/ruoyi-admin/src/main/java/com/ruoyi/financial/controller/FinancialReceivablesController.java new file mode 100644 index 00000000..f6ac00fc --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/financial/controller/FinancialReceivablesController.java @@ -0,0 +1,174 @@ +package com.ruoyi.financial.controller; + +import java.util.List; +import org.apache.shiro.authz.annotation.RequiresPermissions; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.ui.ModelMap; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; +import com.ruoyi.common.annotation.Log; +import com.ruoyi.common.enums.BusinessType; +import com.ruoyi.financial.domain.FinancialReceivables; +import com.ruoyi.financial.service.IFinancialReceivablesService; +import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.utils.poi.ExcelUtil; +import com.ruoyi.common.core.page.TableDataInfo; + +/** + * 财务应收账款Controller + * + * @author 刘晓旭 + * @date 2024-05-08 + */ +@Controller +@RequestMapping("/financial/receivables") +public class FinancialReceivablesController extends BaseController +{ + private String prefix = "financial/receivables"; + + @Autowired + private IFinancialReceivablesService financialReceivablesService; + + @RequiresPermissions("financial:receivables:view") + @GetMapping() + public String receivables() + { + return prefix + "/receivables"; + } + + /** + * 查询财务应收账款列表 + */ + @RequiresPermissions("financial:receivables:list") + @PostMapping("/list") + @ResponseBody + public TableDataInfo list(FinancialReceivables financialReceivables) + { + startPage(); + List list = financialReceivablesService.selectFinancialReceivablesList(financialReceivables); + return getDataTable(list); + } + + /** + * 导出财务应收账款列表 + */ + @RequiresPermissions("financial:receivables:export") + @Log(title = "财务应收账款", businessType = BusinessType.EXPORT) + @PostMapping("/export") + @ResponseBody + public AjaxResult export(FinancialReceivables financialReceivables) + { + List list = financialReceivablesService.selectFinancialReceivablesList(financialReceivables); + ExcelUtil util = new ExcelUtil(FinancialReceivables.class); + return util.exportExcel(list, "财务应收账款数据"); + } + + /** + * 新增财务应收账款 + */ + @GetMapping("/add") + public String add() + { + return prefix + "/add"; + } + + /** + * 新增保存财务应收账款 + */ + @RequiresPermissions("financial:receivables:add") + @Log(title = "财务应收账款", businessType = BusinessType.INSERT) + @PostMapping("/add") + @ResponseBody + public AjaxResult addSave(FinancialReceivables financialReceivables) + { + return toAjax(financialReceivablesService.insertFinancialReceivables(financialReceivables)); + } + + + /** + * 添加非销售订单财务应收账款 + */ + @GetMapping("/addFinancialReceivables") + public String addFinancialReceivables() + { + return prefix + "/addFinancialReceivables"; + } + + /** + * 添加保存非销售订单财务应收账款 + */ + @RequiresPermissions("financial:receivables:addFinancialReceivables") + @Log(title = "财务应收账款", businessType = BusinessType.INSERT) + @PostMapping("/addFinancialReceivables") + @ResponseBody + public AjaxResult addFinancialReceivablesSave(FinancialReceivables financialReceivables) + { + return toAjax(financialReceivablesService.insertFinancialReceivables(financialReceivables)); + } + + + /** + * 修改财务应收账款 + */ + @GetMapping("/edit/{financialReceivablesId}") + public String edit(@PathVariable("financialReceivablesId") Long financialReceivablesId, ModelMap mmap) + { + FinancialReceivables financialReceivables = financialReceivablesService.selectFinancialReceivablesById(financialReceivablesId); + mmap.put("financialReceivables", financialReceivables); + return prefix + "/edit"; + } + + /** + * 修改保存财务应收账款 + */ + @RequiresPermissions("financial:receivables:edit") + @Log(title = "财务应收账款", businessType = BusinessType.UPDATE) + @PostMapping("/edit") + @ResponseBody + public AjaxResult editSave(FinancialReceivables financialReceivables) + { + return toAjax(financialReceivablesService.updateFinancialReceivables(financialReceivables)); + } + + /** + * 删除财务应收账款 + */ + @RequiresPermissions("financial:receivables:remove") + @Log(title = "财务应收账款", businessType = BusinessType.DELETE) + @PostMapping( "/remove") + @ResponseBody + public AjaxResult remove(String ids) + { + return toAjax(financialReceivablesService.deleteFinancialReceivablesByIds(ids)); + } + + /** + * 作废财务应收账款 + */ + @RequiresPermissions("financial:receivables:cancel") + @Log(title = "财务应收账款", businessType = BusinessType.CANCEL) + @GetMapping( "/cancel/{id}") + @ResponseBody + public AjaxResult cancel(@PathVariable("id") Long id){ + return toAjax(financialReceivablesService.cancelFinancialReceivablesById(id)); + } + + /** + * 恢复财务应收账款 + */ + @RequiresPermissions("financial:receivables:restore") + @Log(title = "财务应收账款", businessType = BusinessType.RESTORE) + @GetMapping( "/restore/{id}") + @ResponseBody + public AjaxResult restore(@PathVariable("id")Long id) + { + return toAjax(financialReceivablesService.restoreFinancialReceivablesById(id)); + } + + +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/financial/domain/FinancialReceivables.java b/ruoyi-admin/src/main/java/com/ruoyi/financial/domain/FinancialReceivables.java new file mode 100644 index 00000000..42025b2c --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/financial/domain/FinancialReceivables.java @@ -0,0 +1,367 @@ +package com.ruoyi.financial.domain; + +import java.math.BigDecimal; +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; +import com.ruoyi.common.annotation.Excel; +import com.ruoyi.common.core.domain.BaseEntity; + +/** + * 财务应收账款对象 financial_receivables + * + * @author 刘晓旭 + * @date 2024-05-08 + */ +public class FinancialReceivables extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** 财务应收账款id */ + private Long financialReceivablesId; + + /** 应收单号 */ + @Excel(name = "应收单号") + private String financialReceivablesCode; + + /** 收款结案状态 */ + @Excel(name = "收款结案状态") + private String receivablesClosingStatus; + + /** 关联销售订单号 */ + @Excel(name = "关联销售订单号") + private String salesOrderCode; + + /** 贷方科目 */ + @Excel(name = "贷方科目") + private String creditAccount; + + /** 贷方明细 */ + @Excel(name = "贷方明细") + private String creditDetail; + + /** 开户银行 */ + @Excel(name = "开户银行") + private String openBank; + + /** 开户账号 */ + @Excel(name = "开户账号") + private String openAccount; + + /** 客户ID */ + @Excel(name = "客户ID") + private String customerId; + + /** 客户名称 */ + private String customerName; + + /** 合同编号 */ + @Excel(name = "合同编号") + private String contractNumber; + + /** 币种 */ + @Excel(name = "币种") + private String currencyType; + + /** 不含税金额 */ + @Excel(name = "不含税金额") + private BigDecimal priceExcludingTax; + + /** 含税金额 */ + @Excel(name = "含税金额") + private BigDecimal priceIncludesTax; + + /** 付款条件 */ + @Excel(name = "付款条件") + private String paymentCondition; + + /** 实收含税金额 */ + @Excel(name = "实收含税金额") + private String receivedIncludesTax; + + /** 未收含税金额 */ + @Excel(name = "未收含税金额") + private String notReceivedIncludesTax; + + /** 业务人员 */ + @Excel(name = "业务人员") + private String businessMembers; + + /** 发货状态 */ + @Excel(name = "发货状态") + private String financialDeliverStatus; + + /** 收款日期 */ + @JsonFormat(pattern = "yyyy-MM-dd") + @Excel(name = "收款日期", width = 30, dateFormat = "yyyy-MM-dd") + private Date receivablesDate; + + /** 收款金额 */ + @Excel(name = "收款金额") + private BigDecimal receivablesPrice; + + /** 收款摘要 */ + @Excel(name = "收款摘要") + private String receivablesAbstract; + + /** 操作时间 */ + @JsonFormat(pattern = "yyyy-MM-dd") + @Excel(name = "操作时间", width = 30, dateFormat = "yyyy-MM-dd") + private Date operatingTime; + + /** 收款备注 */ + @Excel(name = "收款备注") + private String receivablesRemark; + + public void setFinancialReceivablesId(Long financialReceivablesId) + { + this.financialReceivablesId = financialReceivablesId; + } + + public Long getFinancialReceivablesId() + { + return financialReceivablesId; + } + public void setFinancialReceivablesCode(String financialReceivablesCode) + { + this.financialReceivablesCode = financialReceivablesCode; + } + + public String getFinancialReceivablesCode() + { + return financialReceivablesCode; + } + public void setReceivablesClosingStatus(String receivablesClosingStatus) + { + this.receivablesClosingStatus = receivablesClosingStatus; + } + + public String getReceivablesClosingStatus() + { + return receivablesClosingStatus; + } + public void setSalesOrderCode(String salesOrderCode) + { + this.salesOrderCode = salesOrderCode; + } + + public String getSalesOrderCode() + { + return salesOrderCode; + } + public void setCreditAccount(String creditAccount) + { + this.creditAccount = creditAccount; + } + + public String getCreditAccount() + { + return creditAccount; + } + public void setCreditDetail(String creditDetail) + { + this.creditDetail = creditDetail; + } + + public String getCreditDetail() + { + return creditDetail; + } + public void setOpenBank(String openBank) + { + this.openBank = openBank; + } + + public String getOpenBank() + { + return openBank; + } + public void setOpenAccount(String openAccount) + { + this.openAccount = openAccount; + } + + public String getOpenAccount() + { + return openAccount; + } + public void setCustomerId(String customerId) + { + this.customerId = customerId; + } + + public String getCustomerId() + { + return customerId; + } + public void setCustomerName(String customerName) + { + this.customerName = customerName; + } + + public String getCustomerName() + { + return customerName; + } + public void setContractNumber(String contractNumber) + { + this.contractNumber = contractNumber; + } + + public String getContractNumber() + { + return contractNumber; + } + public void setCurrencyType(String currencyType) + { + this.currencyType = currencyType; + } + + public String getCurrencyType() + { + return currencyType; + } + public void setPriceExcludingTax(BigDecimal priceExcludingTax) + { + this.priceExcludingTax = priceExcludingTax; + } + + public BigDecimal getPriceExcludingTax() + { + return priceExcludingTax; + } + public void setPriceIncludesTax(BigDecimal priceIncludesTax) + { + this.priceIncludesTax = priceIncludesTax; + } + + public BigDecimal getPriceIncludesTax() + { + return priceIncludesTax; + } + public void setPaymentCondition(String paymentCondition) + { + this.paymentCondition = paymentCondition; + } + + public String getPaymentCondition() + { + return paymentCondition; + } + public void setReceivedIncludesTax(String receivedIncludesTax) + { + this.receivedIncludesTax = receivedIncludesTax; + } + + public String getReceivedIncludesTax() + { + return receivedIncludesTax; + } + public void setNotReceivedIncludesTax(String notReceivedIncludesTax) + { + this.notReceivedIncludesTax = notReceivedIncludesTax; + } + + public String getNotReceivedIncludesTax() + { + return notReceivedIncludesTax; + } + public void setBusinessMembers(String businessMembers) + { + this.businessMembers = businessMembers; + } + + public String getBusinessMembers() + { + return businessMembers; + } + public void setFinancialDeliverStatus(String financialDeliverStatus) + { + this.financialDeliverStatus = financialDeliverStatus; + } + + public String getFinancialDeliverStatus() + { + return financialDeliverStatus; + } + public void setReceivablesDate(Date receivablesDate) + { + this.receivablesDate = receivablesDate; + } + + public Date getReceivablesDate() + { + return receivablesDate; + } + public void setReceivablesPrice(BigDecimal receivablesPrice) + { + this.receivablesPrice = receivablesPrice; + } + + public BigDecimal getReceivablesPrice() + { + return receivablesPrice; + } + public void setReceivablesAbstract(String receivablesAbstract) + { + this.receivablesAbstract = receivablesAbstract; + } + + public String getReceivablesAbstract() + { + return receivablesAbstract; + } + public void setOperatingTime(Date operatingTime) + { + this.operatingTime = operatingTime; + } + + public Date getOperatingTime() + { + return operatingTime; + } + public void setReceivablesRemark(String receivablesRemark) + { + this.receivablesRemark = receivablesRemark; + } + + public String getReceivablesRemark() + { + return receivablesRemark; + } + + @Override + public String toString() { + return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) + .append("financialReceivablesId", getFinancialReceivablesId()) + .append("financialReceivablesCode", getFinancialReceivablesCode()) + .append("receivablesClosingStatus", getReceivablesClosingStatus()) + .append("salesOrderCode", getSalesOrderCode()) + .append("creditAccount", getCreditAccount()) + .append("creditDetail", getCreditDetail()) + .append("openBank", getOpenBank()) + .append("openAccount", getOpenAccount()) + .append("customerId", getCustomerId()) + .append("customerName", getCustomerName()) + .append("contractNumber", getContractNumber()) + .append("currencyType", getCurrencyType()) + .append("priceExcludingTax", getPriceExcludingTax()) + .append("priceIncludesTax", getPriceIncludesTax()) + .append("paymentCondition", getPaymentCondition()) + .append("receivedIncludesTax", getReceivedIncludesTax()) + .append("notReceivedIncludesTax", getNotReceivedIncludesTax()) + .append("businessMembers", getBusinessMembers()) + .append("financialDeliverStatus", getFinancialDeliverStatus()) + .append("receivablesDate", getReceivablesDate()) + .append("receivablesPrice", getReceivablesPrice()) + .append("receivablesAbstract", getReceivablesAbstract()) + .append("operatingTime", getOperatingTime()) + .append("receivablesRemark", getReceivablesRemark()) + .append("createTime", getCreateTime()) + .append("createBy", getCreateBy()) + .append("updateBy", getUpdateBy()) + .append("updateTime", getUpdateTime()) + .toString(); + } +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/financial/mapper/FinancialReceivablesMapper.java b/ruoyi-admin/src/main/java/com/ruoyi/financial/mapper/FinancialReceivablesMapper.java new file mode 100644 index 00000000..638634c8 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/financial/mapper/FinancialReceivablesMapper.java @@ -0,0 +1,86 @@ +package com.ruoyi.financial.mapper; + +import java.util.List; +import com.ruoyi.financial.domain.FinancialReceivables; +import org.springframework.data.repository.query.Param; + +/** + * 财务应收账款Mapper接口 + * + * @author 刘晓旭 + * @date 2024-05-08 + */ +public interface FinancialReceivablesMapper +{ + /** + * 查询财务应收账款 + * + * @param financialReceivablesId 财务应收账款ID + * @return 财务应收账款 + */ + public FinancialReceivables selectFinancialReceivablesById(Long financialReceivablesId); + + /** + * 查询财务应收账款列表 + * + * @param financialReceivables 财务应收账款 + * @return 财务应收账款集合 + */ + public List selectFinancialReceivablesList(FinancialReceivables financialReceivables); + + /** + * 新增财务应收账款 + * + * @param financialReceivables 财务应收账款 + * @return 结果 + */ + public int insertFinancialReceivables(FinancialReceivables financialReceivables); + + /** + * 修改财务应收账款 + * + * @param financialReceivables 财务应收账款 + * @return 结果 + */ + public int updateFinancialReceivables(FinancialReceivables financialReceivables); + + /** + * 删除财务应收账款 + * + * @param financialReceivablesId 财务应收账款ID + * @return 结果 + */ + public int deleteFinancialReceivablesById(Long financialReceivablesId); + + /** + * 批量删除财务应收账款 + * + * @param financialReceivablesIds 需要删除的数据ID + * @return 结果 + */ + public int deleteFinancialReceivablesByIds(String[] financialReceivablesIds); + + /** + * 作废财务应收账款 + * + * @param financialReceivablesId 财务应收账款ID + * @return 结果 + */ + public int cancelFinancialReceivablesById(Long financialReceivablesId); + + /** + * 恢复财务应收账款 + * + * @param financialReceivablesId 财务应收账款ID + * @return 结果 + */ + public int restoreFinancialReceivablesById(Long financialReceivablesId); + + /** + * 查询数据库中今天已经生产的最大序号 + * + * @param prefix 前面的:KS年月日 + */ + public String findMaxRoundCode(@Param("prefix") String prefix); + +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/financial/service/IFinancialReceivablesService.java b/ruoyi-admin/src/main/java/com/ruoyi/financial/service/IFinancialReceivablesService.java new file mode 100644 index 00000000..a848b5ed --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/financial/service/IFinancialReceivablesService.java @@ -0,0 +1,75 @@ +package com.ruoyi.financial.service; + +import java.util.List; +import com.ruoyi.financial.domain.FinancialReceivables; + +/** + * 财务应收账款Service接口 + * + * @author 刘晓旭 + * @date 2024-05-08 + */ +public interface IFinancialReceivablesService +{ + /** + * 查询财务应收账款 + * + * @param financialReceivablesId 财务应收账款ID + * @return 财务应收账款 + */ + public FinancialReceivables selectFinancialReceivablesById(Long financialReceivablesId); + + /** + * 查询财务应收账款列表 + * + * @param financialReceivables 财务应收账款 + * @return 财务应收账款集合 + */ + public List selectFinancialReceivablesList(FinancialReceivables financialReceivables); + + /** + * 新增财务应收账款 + * + * @param financialReceivables 财务应收账款 + * @return 结果 + */ + public int insertFinancialReceivables(FinancialReceivables financialReceivables); + + /** + * 修改财务应收账款 + * + * @param financialReceivables 财务应收账款 + * @return 结果 + */ + public int updateFinancialReceivables(FinancialReceivables financialReceivables); + + /** + * 批量删除财务应收账款 + * + * @param ids 需要删除的数据ID + * @return 结果 + */ + public int deleteFinancialReceivablesByIds(String ids); + + /** + * 删除财务应收账款信息 + * + * @param financialReceivablesId 财务应收账款ID + * @return 结果 + */ + public int deleteFinancialReceivablesById(Long financialReceivablesId); + + /** + * 作废财务应收账款 + * @param financialReceivablesId 财务应收账款ID + * @return + */ + int cancelFinancialReceivablesById(Long financialReceivablesId); + + /** + * 恢复财务应收账款 + * @param financialReceivablesId 财务应收账款ID + * @return + */ + int restoreFinancialReceivablesById(Long financialReceivablesId); +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/financial/service/impl/FinancialReceivablesServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/financial/service/impl/FinancialReceivablesServiceImpl.java new file mode 100644 index 00000000..f5046f4f --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/financial/service/impl/FinancialReceivablesServiceImpl.java @@ -0,0 +1,170 @@ +package com.ruoyi.financial.service.impl; + +import java.text.DecimalFormat; +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.List; + +import com.ruoyi.common.exception.BusinessException; +import com.ruoyi.common.utils.DateUtils; +import com.ruoyi.common.utils.ShiroUtils; +import com.ruoyi.common.utils.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import com.ruoyi.financial.mapper.FinancialReceivablesMapper; +import com.ruoyi.financial.domain.FinancialReceivables; +import com.ruoyi.financial.service.IFinancialReceivablesService; +import com.ruoyi.common.core.text.Convert; + +/** + * 财务应收账款Service业务层处理 + * + * @author 刘晓旭 + * @date 2024-05-08 + */ +@Service +public class FinancialReceivablesServiceImpl implements IFinancialReceivablesService +{ + @Autowired + private FinancialReceivablesMapper financialReceivablesMapper; + + /** + * 查询财务应收账款 + * + * @param financialReceivablesId 财务应收账款ID + * @return 财务应收账款 + */ + @Override + public FinancialReceivables selectFinancialReceivablesById(Long financialReceivablesId) + { + return financialReceivablesMapper.selectFinancialReceivablesById(financialReceivablesId); + } + + /** + * 查询财务应收账款列表 + * + * @param financialReceivables 财务应收账款 + * @return 财务应收账款 + */ + @Override + public List selectFinancialReceivablesList(FinancialReceivables financialReceivables) + { + return financialReceivablesMapper.selectFinancialReceivablesList(financialReceivables); + } + + /** + * 新增财务应收账款 + * + * @param financialReceivables 财务应收账款 + * @return 结果 + */ + @Override + public int insertFinancialReceivables(FinancialReceivables financialReceivables) + { + // 更改日期格式以提高可读性 + SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd"); + String datePart = df.format(new Date()); + // 移除日期中的分隔符以便于后续处理 + String prefix = "YS" + datePart.replace("-", ""); + + // 查询数据库中当前最大编号 + String maxCode = financialReceivablesMapper.findMaxRoundCode(prefix); + String newCode = generateNewCode(prefix, maxCode); + //自动生成 应收单号 + financialReceivables.setFinancialReceivablesCode(newCode); + financialReceivables.setCreateTime(DateUtils.getNowDate()); + String loginName = ShiroUtils.getLoginName(); + financialReceivables.setCreateBy(loginName); + + + return financialReceivablesMapper.insertFinancialReceivables(financialReceivables); + } + + /** + * 修改财务应收账款 + * + * @param financialReceivables 财务应收账款 + * @return 结果 + */ + @Override + public int updateFinancialReceivables(FinancialReceivables financialReceivables) + { + String loginName = ShiroUtils.getLoginName(); + financialReceivables.setUpdateBy(loginName); + financialReceivables.setUpdateTime(DateUtils.getNowDate()); + return financialReceivablesMapper.updateFinancialReceivables(financialReceivables); + } + + /** + * 删除财务应收账款对象 + * + * @param ids 需要删除的数据ID + * @return 结果 + */ + @Override + public int deleteFinancialReceivablesByIds(String ids) + { + return financialReceivablesMapper.deleteFinancialReceivablesByIds(Convert.toStrArray(ids)); + } + + /** + * 删除财务应收账款信息 + * + * @param financialReceivablesId 财务应收账款ID + * @return 结果 + */ + @Override + public int deleteFinancialReceivablesById(Long financialReceivablesId) + { + return financialReceivablesMapper.deleteFinancialReceivablesById(financialReceivablesId); + } + + /** + * 作废财务应收账款 + * + * @param financialReceivablesId 财务应收账款ID + * @return 结果 + */ + @Override + public int cancelFinancialReceivablesById(Long financialReceivablesId) + { + return financialReceivablesMapper.cancelFinancialReceivablesById(financialReceivablesId); + } + + /** + * 恢复财务应收账款 + * @param financialReceivablesId 财务应收账款ID + * @return 结果 + */ + @Override + public int restoreFinancialReceivablesById(Long financialReceivablesId) + { + return financialReceivablesMapper.restoreFinancialReceivablesById(financialReceivablesId); + } + + + /** + *应收单号生产规则 + *系统自动生成,按照特定编码,编码暂用【KS+年月日+001】, + *自增长,如:KS20231111001,KS20231111002 + * + */ + private String generateNewCode(String prefix, String maxCode) { + if (StringUtils.isEmpty(maxCode)) { + return prefix + "001"; + } + + // 解析并递增编号 + int sequence = Integer.parseInt(maxCode.substring(4)) + 1; // 假设前4位为固定部分 + + // 检查序列号是否溢出 + if (sequence> 999) { + throw new BusinessException("当日编号已达到最大值999,请检查或调整策略。"); + } + + // 格式化序列号,自动补零至三位 + DecimalFormat df = new DecimalFormat("000"); + return prefix + df.format(sequence); + } + +} diff --git a/ruoyi-admin/src/main/resources/mapper/financial/FinancialReceivablesMapper.xml b/ruoyi-admin/src/main/resources/mapper/financial/FinancialReceivablesMapper.xml new file mode 100644 index 00000000..a6d693fe --- /dev/null +++ b/ruoyi-admin/src/main/resources/mapper/financial/FinancialReceivablesMapper.xml @@ -0,0 +1,186 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + select financial_receivables_id, financial_receivables_code, receivables_closing_status, sales_order_code, credit_account, credit_detail, open_bank, open_account, customer_id, customer_name, contract_number, currency_type, price_excluding_tax, price_includes_tax, payment_condition, received_includes_tax, not_received_includes_tax, business_members, financial_deliver_status, receivables_date, receivables_price, receivables_abstract, operating_time, receivables_remark, create_time, create_by, update_by, update_time from financial_receivables + + + + + + + + insert into financial_receivables + + financial_receivables_code, + receivables_closing_status, + sales_order_code, + credit_account, + credit_detail, + open_bank, + open_account, + customer_id, + customer_name, + contract_number, + currency_type, + price_excluding_tax, + price_includes_tax, + payment_condition, + received_includes_tax, + not_received_includes_tax, + business_members, + financial_deliver_status, + receivables_date, + receivables_price, + receivables_abstract, + operating_time, + receivables_remark, + create_time, + create_by, + update_by, + update_time, + + + #{financialReceivablesCode}, + #{receivablesClosingStatus}, + #{salesOrderCode}, + #{creditAccount}, + #{creditDetail}, + #{openBank}, + #{openAccount}, + #{customerId}, + #{customerName}, + #{contractNumber}, + #{currencyType}, + #{priceExcludingTax}, + #{priceIncludesTax}, + #{paymentCondition}, + #{receivedIncludesTax}, + #{notReceivedIncludesTax}, + #{businessMembers}, + #{financialDeliverStatus}, + #{receivablesDate}, + #{receivablesPrice}, + #{receivablesAbstract}, + #{operatingTime}, + #{receivablesRemark}, + #{createTime}, + #{createBy}, + #{updateBy}, + #{updateTime}, + + + + + update financial_receivables + + financial_receivables_code = #{financialReceivablesCode}, + receivables_closing_status = #{receivablesClosingStatus}, + sales_order_code = #{salesOrderCode}, + credit_account = #{creditAccount}, + credit_detail = #{creditDetail}, + open_bank = #{openBank}, + open_account = #{openAccount}, + customer_id = #{customerId}, + customer_name = #{customerName}, + contract_number = #{contractNumber}, + currency_type = #{currencyType}, + price_excluding_tax = #{priceExcludingTax}, + price_includes_tax = #{priceIncludesTax}, + payment_condition = #{paymentCondition}, + received_includes_tax = #{receivedIncludesTax}, + not_received_includes_tax = #{notReceivedIncludesTax}, + business_members = #{businessMembers}, + financial_deliver_status = #{financialDeliverStatus}, + receivables_date = #{receivablesDate}, + receivables_price = #{receivablesPrice}, + receivables_abstract = #{receivablesAbstract}, + operating_time = #{operatingTime}, + receivables_remark = #{receivablesRemark}, + create_time = #{createTime}, + create_by = #{createBy}, + update_by = #{updateBy}, + update_time = #{updateTime}, + + where financial_receivables_id = #{financialReceivablesId} + + + + delete from financial_receivables where financial_receivables_id = #{financialReceivablesId} + + + + delete from financial_receivables where financial_receivables_id in + + #{financialReceivablesId} + + + + + update financial_receivables set del_flag = '1' where financial_receivables_id = #{financialReceivablesId} + + + + update financial_receivables set del_flag = '0' where financial_receivables_id = #{financialReceivablesId} + + + + + \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/templates/financial/receivables/add.html b/ruoyi-admin/src/main/resources/templates/financial/receivables/add.html new file mode 100644 index 00000000..5edc9e78 --- /dev/null +++ b/ruoyi-admin/src/main/resources/templates/financial/receivables/add.html @@ -0,0 +1,189 @@ + + + + + + + +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+
+ + +
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+
+ + +
+
+
+
+ +
+ +
+
+
+
+ + + + + \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/templates/financial/receivables/edit.html b/ruoyi-admin/src/main/resources/templates/financial/receivables/edit.html new file mode 100644 index 00000000..bd1abaf3 --- /dev/null +++ b/ruoyi-admin/src/main/resources/templates/financial/receivables/edit.html @@ -0,0 +1,190 @@ + + + + + + + +
+
+ +
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+
+ + +
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+
+ + +
+
+
+
+ +
+ +
+
+
+
+ + + + + \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/templates/financial/receivables/receivables.html b/ruoyi-admin/src/main/resources/templates/financial/receivables/receivables.html new file mode 100644 index 00000000..f538327d --- /dev/null +++ b/ruoyi-admin/src/main/resources/templates/financial/receivables/receivables.html @@ -0,0 +1,245 @@ + + + + + + +
+
+
+
+
+
    +
  • + + +
  • +
  • + + +
  • +
  • + + +
  • +
  • + + +
  • +
  • + + +
  • +
  • + + +
  • +
  • + + +
  • +
  • + + +
  • +
  • + + +
  • +
  • + + +
  • +
  • + + +
  • +
  • + + +
  • +
  • + + + - + +
  • +
  • + + + - + +
  • +
  • +  搜索 +  重置 +
  • +
+
+
+
+ + +
+
+
+
+
+ + + + \ No newline at end of file