Browse Source

Merge remote-tracking branch 'origin/dev' into dev

dev
王晓迪 1 month ago
parent
commit
75d9d9c3b1
  1. 4
      ruoyi-admin/src/main/java/com/ruoyi/financial/controller/FinancialReceivablesController.java
  2. 44
      ruoyi-admin/src/main/java/com/ruoyi/financial/controller/FinancialTaxInvoiceController.java
  3. 2
      ruoyi-admin/src/main/java/com/ruoyi/financial/service/IFinancialReceivablesService.java
  4. 62
      ruoyi-admin/src/main/java/com/ruoyi/financial/service/impl/FinancialReceivablesServiceImpl.java
  5. 2
      ruoyi-admin/src/main/java/com/ruoyi/system/controller/SysSalesOrderChildController.java
  6. 24
      ruoyi-admin/src/main/java/com/ruoyi/system/controller/SysSalesOrderController.java
  7. 92
      ruoyi-admin/src/main/java/com/ruoyi/system/domain/SysSupplier.java
  8. 1
      ruoyi-admin/src/main/java/com/ruoyi/system/mapper/SysSalesOrderChildMapper.java
  9. 2
      ruoyi-admin/src/main/java/com/ruoyi/system/service/ISysSalesOrderChildService.java
  10. 5
      ruoyi-admin/src/main/java/com/ruoyi/system/service/impl/SysSalesOrderChildServiceImpl.java
  11. 48
      ruoyi-admin/src/main/java/com/ruoyi/system/service/impl/SysSalesOrderServiceImpl.java
  12. BIN
      ruoyi-admin/src/main/resources/attachments/FinancialReceiptVoucherTemplate.xlsx
  13. 3
      ruoyi-admin/src/main/resources/mapper/financial/FinancialReceivablesRecordsMapper.xml
  14. 16
      ruoyi-admin/src/main/resources/mapper/system/SysSalesOrderChildMapper.xml
  15. 53
      ruoyi-admin/src/main/resources/mapper/system/SysSupplierMapper.xml
  16. 257
      ruoyi-admin/src/main/resources/static/ajax/libs/bootstrap-fileinput/fileinput.css
  17. 1625
      ruoyi-admin/src/main/resources/static/ajax/libs/bootstrap-fileinput/fileinput.js
  18. 6
      ruoyi-admin/src/main/resources/static/ajax/libs/bootstrap-fileinput/fileinput.min.css
  19. 6
      ruoyi-admin/src/main/resources/static/ajax/libs/bootstrap-fileinput/fileinput.min.js
  20. 0
      ruoyi-admin/src/main/resources/templates/financial/taxInvoice/auditInvoiceRmb.html
  21. 0
      ruoyi-admin/src/main/resources/templates/financial/taxInvoice/auditInvoiceRmbDetail.html
  22. 0
      ruoyi-admin/src/main/resources/templates/financial/taxInvoice/auditInvoiceUsd.html
  23. 2
      ruoyi-admin/src/main/resources/templates/financial/taxInvoice/auditInvoiceUsdDetail.html
  24. 334
      ruoyi-admin/src/main/resources/templates/financial/taxInvoice/beforeAuditInvoiceRmbDetail.html
  25. 330
      ruoyi-admin/src/main/resources/templates/financial/taxInvoice/beforeAuditInvoiceUsdDetail.html
  26. 14
      ruoyi-admin/src/main/resources/templates/financial/taxInvoice/taxInvoice.html
  27. 2
      ruoyi-admin/src/main/resources/templates/financial/taxInvoice/uploadInvoiceRmb.html
  28. 101
      ruoyi-admin/src/main/resources/templates/financial/taxInvoice/uploadInvoiceRmbDetail.html
  29. 8
      ruoyi-admin/src/main/resources/templates/financial/taxInvoice/uploadInvoiceUsd.html
  30. 529
      ruoyi-admin/src/main/resources/templates/financial/taxInvoice/uploadInvoiceUsdDetail.html
  31. 14
      ruoyi-admin/src/main/resources/templates/include.html
  32. 1
      ruoyi-admin/src/main/resources/templates/purchase/purchaseQuote/taskCgjlVerify.html
  33. 16
      ruoyi-admin/src/main/resources/templates/system/salesOrder/add.html
  34. 12
      ruoyi-admin/src/main/resources/templates/system/salesOrder/detail.html
  35. 21
      ruoyi-admin/src/main/resources/templates/system/salesOrder/edit.html
  36. 2
      ruoyi-admin/src/main/resources/templates/system/salesOrder/salesOrder.html
  37. 12
      ruoyi-admin/src/main/resources/templates/system/salesOrder/taskModifyApply.html
  38. 17
      ruoyi-admin/src/main/resources/templates/system/salesOrder/taskYwjlVerify.html
  39. 18
      ruoyi-admin/src/main/resources/templates/system/salesOrder/taskYwzgVerify.html
  40. 18
      ruoyi-admin/src/main/resources/templates/system/salesOrder/taskZozjVerify.html
  41. 48
      ruoyi-admin/src/main/resources/templates/system/supplier/add.html
  42. 48
      ruoyi-admin/src/main/resources/templates/system/supplier/detail.html
  43. 48
      ruoyi-admin/src/main/resources/templates/system/supplier/edit.html
  44. 48
      ruoyi-admin/src/main/resources/templates/system/supplier/taskCgjlVerify.html
  45. 48
      ruoyi-admin/src/main/resources/templates/system/supplier/taskCgzgVerify.html
  46. 48
      ruoyi-admin/src/main/resources/templates/system/supplier/taskModifyApply.html

4
ruoyi-admin/src/main/java/com/ruoyi/financial/controller/FinancialReceivablesController.java

@ -154,12 +154,12 @@ public class FinancialReceivablesController extends BaseController
public void excelReceivablesVoucher(@PathVariable("financialReceivablesId") Long financialReceivablesId,HttpServletResponse response) throws IOException {
FinancialReceivables financialReceivables = financialReceivablesService.selectFinancialReceivablesById(financialReceivablesId);
financialReceivablesService.exportTemplate(financialReceivablesId);
// 模版位置
String name = "FinancialReceiptVoucherTemplate.xlsx";
// 设置响应头,指定文件名和文件类型
response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode("FinancialReceiptVoucher.xlsx", "UTF-8"));
response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode("attachments/FinancialReceiptVoucher.xlsx", "UTF-8"));
response.setContentType("application/octet-stream");
InputStream inputStream = null;

44
ruoyi-admin/src/main/java/com/ruoyi/financial/controller/FinancialTaxInvoiceController.java

@ -102,9 +102,9 @@ public class FinancialTaxInvoiceController extends BaseController
String commonCurrency = taxInvoice.getCommonCurrency();
mmap.put("taxInvoice", taxInvoice);
if ("1".equals(commonCurrency)){
return prefix + "/auditInvoiceRMB";
return prefix + "/auditInvoiceRmb";
}else {
return prefix + "/auditInvoiceUSD";
return prefix + "/auditInvoiceUsd";
}
}
@ -133,9 +133,9 @@ public class FinancialTaxInvoiceController extends BaseController
String commonCurrency = taxInvoice.getCommonCurrency();
mmap.put("taxInvoice", taxInvoice);
if ("1".equals(commonCurrency)){
return prefix + "/uploadInvoiceRMB";
return prefix + "/uploadInvoiceRmb";
}else {
return prefix + "/uploadInvoiceUSD";
return prefix + "/uploadInvoiceUsd";
}
}
@ -163,9 +163,9 @@ public class FinancialTaxInvoiceController extends BaseController
FinancialTaxInvoice taxInvoice = financialTaxInvoiceService.selectFinancialTaxInvoiceById(taxInvoiceId);
mmap.put("taxInvoice", taxInvoice);
if ("1".equals(taxInvoice.getCommonCurrency())){
return prefix + "/auditInvoiceRMBDetail";
return prefix + "/auditInvoiceRmbDetail";
}else {
return prefix + "/auditInvoiceUSDDetail";
return prefix + "/auditInvoiceUsdDetail";
}
}
@ -190,9 +190,9 @@ public class FinancialTaxInvoiceController extends BaseController
FinancialTaxInvoice taxInvoice = financialTaxInvoiceService.selectFinancialTaxInvoiceWithAttachById(taxInvoiceId);
mmap.put("taxInvoice", taxInvoice);
if ("1".equals(taxInvoice.getCommonCurrency())){
return prefix + "/uploadInvoiceRMBDetail";
return prefix + "/uploadInvoiceRmbDetail";
}else {
return prefix + "/uploadInvoiceUSDDetail";
return prefix + "/uploadInvoiceUsdDetail";
}
}
@ -210,6 +210,34 @@ public class FinancialTaxInvoiceController extends BaseController
}
/**
* 国税发票待审核详情
*/
@GetMapping("/beforeAuditInvoiceDetail/{taxInvoiceId}")
public String beforeAuditInvoiceDetail(@PathVariable("taxInvoiceId") Long taxInvoiceId, ModelMap mmap){
FinancialTaxInvoice taxInvoice = financialTaxInvoiceService.selectFinancialTaxInvoiceById(taxInvoiceId);
mmap.put("taxInvoice", taxInvoice);
if ("1".equals(taxInvoice.getCommonCurrency())){
return prefix + "/beforeAuditInvoiceRmbDetail";
}else {
return prefix + "/beforeAuditInvoiceUsdDetail";
}
}
/**
* 保存国税发票待审核详情
*/
@Log(title = "国税发票", businessType = BusinessType.UPDATE)
@PostMapping("/beforeAuditInvoiceDetail")
@ResponseBody
public AjaxResult beforeAuditInvoiceDetailSave(FinancialTaxInvoice financialTaxInvoice)
{
return toAjax(financialTaxInvoiceService.detailFinancialTaxInvoice(financialTaxInvoice));
}
/**
* 国税发票物料列表展示
*/

2
ruoyi-admin/src/main/java/com/ruoyi/financial/service/IFinancialReceivablesService.java

@ -94,4 +94,6 @@ public interface IFinancialReceivablesService
* 查询导出收款凭证
*/
Map<String, Object> exportReceivables(FinancialReceivables financialReceivables);
Map<String,Object> exportTemplate(Long financialReceivablesId);
}

62
ruoyi-admin/src/main/java/com/ruoyi/financial/service/impl/FinancialReceivablesServiceImpl.java

@ -3,10 +3,7 @@ package com.ruoyi.financial.service.impl;
import java.math.BigDecimal;
import java.text.DecimalFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.*;
import com.ruoyi.common.exception.BusinessException;
import com.ruoyi.common.utils.DateUtils;
@ -21,6 +18,7 @@ import com.ruoyi.system.mapper.SysCustomerMapper;
import com.ruoyi.system.mapper.SysSalesOrderMapper;
import com.ruoyi.system.service.ISysSalesOrderService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.NoSuchBeanDefinitionException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.financial.mapper.FinancialReceivablesMapper;
@ -28,6 +26,7 @@ import com.ruoyi.financial.domain.FinancialReceivables;
import com.ruoyi.financial.service.IFinancialReceivablesService;
import com.ruoyi.common.core.text.Convert;
import org.springframework.transaction.annotation.Transactional;
import org.thymeleaf.util.NumberUtils;
/**
* 财务应收账款Service业务层处理
@ -294,7 +293,6 @@ public class FinancialReceivablesServiceImpl implements IFinancialReceivablesSer
if (StringUtils.isEmpty(maxCode)) {
return prefix + "001";
}
// 解析并递增编号
int sequence = Integer.parseInt(maxCode.substring(4)) + 1; // 假设前4位为固定部分
@ -308,4 +306,58 @@ public class FinancialReceivablesServiceImpl implements IFinancialReceivablesSer
return prefix + df.format(sequence);
}
/*设置导出模板数据*/
@Override
public Map<String, Object> exportTemplate(Long id) throws NoSuchBeanDefinitionException {
Map<String, Object> map = new HashMap<>();
//需要传输导出的值有:借方科目,开户银行,年,月,日,
//凭证信息批量:包含收款摘要,金额字符串截取,位数从亿开始,亿,千万,百万,十万,万,千,百,十,元,角,分。小数点后俩位为角,分,小数点不需要显示,
//将以上信息通过map传输出去
FinancialReceivables financialReceivables = financialReceivablesMapper.selectFinancialReceivablesById(id);
List<Map<String, Object>> financialReceivablesRecordsAmountList = new ArrayList<>();
//接收拆分的数字
FinancialReceivablesRecords financialReceivablesRecords = new FinancialReceivablesRecords();
List<FinancialReceivablesRecords> financialReceivablesRecordsList = receivablesRecordsMapper.selectFinancialReceivablesRecordsListByCode(financialReceivables.getFinancialReceivablesCode());
for (FinancialReceivablesRecords financialReceivablesRecord : financialReceivablesRecordsList) {
}
return map;
}
/*切割返回数字*/
public Map<String, Object> splitNumber(FinancialReceivablesRecords financialReceivablesRecord) {
Map<String, Object> map = new HashMap<>();
/*获取当前传输过来的*/
Map<String, Object> map1 = new HashMap<>();
List<String> result = new ArrayList<>();
List<String> units = Arrays.asList("亿", "千万", "百万", "十万", "万", "千", "百", "十", "元", "角", "分");
List<String> unitKey = Arrays.asList("fen", "jiao", "yuan", "shi", "bai", "qian", "wan", "shiw", "baiw", "qianw", "yi");
BigDecimal amount = financialReceivablesRecord.getReceivablesPrice().setScale(2, BigDecimal.ROUND_HALF_UP);
String integerPart = amount.toBigInteger().toString(); // 获取整数部分
String decimalPart = amount.remainder(BigDecimal.ONE).multiply(new BigDecimal(100)).toBigInteger().toString(); // 获取小数部分(角分)
int unitIndex = 0;
for (int i = integerPart.length() - 1; i >= 0; i--) {
char digit = integerPart.charAt(i);
if (digit != '0' || !units.get(unitIndex).isEmpty()) {result.add(0, String.valueOf(digit));}
unitIndex++;
if (unitIndex == units.size()) {unitIndex = 0;}
}
// Adding decimal part
if (decimalPart.length() < 2) {decimalPart += "0";}
result.add(decimalPart.substring(0, 1));
result.add(decimalPart.substring(1, 2));
/*根据长度设备map中的Stirng参数,调用对等获取实现map*/
for (int i = 0; i < result.size(); i++) {
String unitKeyValue = unitKey.get(result.size() - i);
map1.put(unitKeyValue,result.get(i));
}
for (int j = result.size() - 1 ; j < unitKey.size(); j ++){
map1.put(unitKey.get(j),"");
}
//收款摘要
map.put("receivablesAbstract",financialReceivablesRecord.getReceivablesAbstract());
//金额对象
map.put("receivablesPrice",map1);
return map;
}
}

2
ruoyi-admin/src/main/java/com/ruoyi/system/controller/SysSalesOrderChildController.java

@ -46,7 +46,7 @@ public class SysSalesOrderChildController extends BaseController
public TableDataInfo list(SysSalesOrderChild SysSalesOrderChild)
{
startPage();
List<SysSalesOrderChild> list = SysSalesOrderChildService.selectSysSalesOrderChildList(SysSalesOrderChild);
List<SysSalesOrderChild> list = SysSalesOrderChildService.selectSysSalesOrderChildListAll(SysSalesOrderChild);
return getDataTable(list);
}

24
ruoyi-admin/src/main/java/com/ruoyi/system/controller/SysSalesOrderController.java

@ -7,6 +7,7 @@ import com.alibaba.excel.write.metadata.WriteSheet;
import com.alibaba.excel.write.metadata.fill.FillConfig;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.github.pagehelper.Page;
import com.ruoyi.ck.utils.Result;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.config.RuoYiConfig;
@ -17,6 +18,7 @@ import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.common.utils.ShiroUtils;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.common.utils.file.FileUploadUtils;
import com.ruoyi.common.utils.file.FileUtils;
import com.ruoyi.common.utils.poi.ExcelUtil;
@ -46,6 +48,7 @@ import org.springframework.http.MediaType;
import org.springframework.stereotype.Controller;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.ui.ModelMap;
import org.springframework.util.CollectionUtils;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
@ -123,9 +126,24 @@ public class SysSalesOrderController extends BaseController
@ResponseBody
public TableDataInfo list(SysSalesOrderVo sysSalesOrderVo)
{
startPage();
List<SysSalesOrderVo> list = sysSalesOrderService.selectSysSalesOrderList(sysSalesOrderVo);
return getDataTable(list);
startPage();
SysUser curUser = ShiroUtils.getSysUser();
String loginName = ShiroUtils.getLoginName();
Long userId = curUser.getUserId();
Set<String> roleKeys = roleService.selectRoleKeys(userId);
List<SysUser> sysUserlist = sysUserService.selectRoleToUserList("ywyRole");
sysUserlist.add(curUser);
if (roleKeys.contains("ywjlRole")) {
List<SysUser> findUser = sysUserlist.stream().filter(item -> (item.getDeptId().equals(curUser.getDeptId()))).collect(Collectors.toList());
List<String> user = findUser.stream().map(SysUser::getLoginName).collect(Collectors.toList());
// String userStr = String.join(",", user);
sysSalesOrderVo.setApplyUsers(user);
}
if (roleKeys.contains("ywyRole")) {
sysSalesOrderVo.setApplyUser(loginName);
}
List<SysSalesOrderVo> list = sysSalesOrderService.selectSysSalesOrderList(sysSalesOrderVo);
return getDataTable(list);
}
/**

92
ruoyi-admin/src/main/java/com/ruoyi/system/domain/SysSupplier.java

@ -125,6 +125,12 @@ public class SysSupplier extends BaseEntity
@Excel(name = "开户银行账号")
private String bankAccount;
@Excel(name="开票公司名称")
private String invoiceCompanyName;
@Excel(name="开票公司税号")
private String companyTaxNumber;
/** RMB注册资金 */
@Excel(name = "RMB注册资金")
private String rmbRegisteredCapital;
@ -153,6 +159,21 @@ public class SysSupplier extends BaseEntity
@Excel(name = "税率")
private String taxRate;
@Excel(name = "发货人")
private String deliverPerson;
@Excel(name = "发货人电话")
private String deliverPersonPhone;
@Excel(name = "发货地址")
private String deliverAddress;
@Excel(name = "收货人")
private String receivePerson;
@Excel(name = "收货人电话")
private String receivePersonPhone;
@Excel(name = "收货地址")
private String receiveAddress;
/** 流程实例ID */
private String instanceId;
@ -635,7 +656,69 @@ public class SysSupplier extends BaseEntity
return taxRate;
}
public String getInvoiceCompanyName() {
return invoiceCompanyName;
}
public void setInvoiceCompanyName(String invoiceCompanyName) {
invoiceCompanyName = invoiceCompanyName;
}
public String getCompanyTaxNumber() {
return companyTaxNumber;
}
public void setCompanyTaxNumber(String companyTaxNumber) {
this.companyTaxNumber = companyTaxNumber;
}
public String getDeliverPerson() {
return deliverPerson;
}
public void setDeliverPerson(String deliverPerson) {
this.deliverPerson = deliverPerson;
}
public String getDeliverPersonPhone() {
return deliverPersonPhone;
}
public void setDeliverPersonPhone(String deliverPersonPhone) {
this.deliverPersonPhone = deliverPersonPhone;
}
public String getDeliverAddress() {
return deliverAddress;
}
public void setDeliverAddress(String deliverAddress) {
this.deliverAddress = deliverAddress;
}
public String getReceivePerson() {
return receivePerson;
}
public void setReceivePerson(String receivePerson) {
this.receivePerson = receivePerson;
}
public String getReceivePersonPhone() {
return receivePersonPhone;
}
public void setReceivePersonPhone(String receivePersonPhone) {
this.receivePersonPhone = receivePersonPhone;
}
public String getReceiveAddress() {
return receiveAddress;
}
public void setReceiveAddress(String receiveAddress) {
this.receiveAddress = receiveAddress;
}
@Override
public String toString() {
@ -672,6 +755,15 @@ public class SysSupplier extends BaseEntity
.append("financialContact", getFinancialContact())
.append("confirmTax", getConfirmTax())
.append("taxRate", getTaxRate())
.append("InvoiceCompanyName", getInvoiceCompanyName())
.append("companyTaxNumber", getCompanyTaxNumber())
.append("deliverPerson", getDeliverPerson())
.append("deliverPersonPhone", getDeliverPersonPhone())
.append("deliverAddress", getDeliverAddress())
.append("receivePerson", getReceivePerson())
.append("receivePersonPhone", getReceivePersonPhone())
.append("receiveAddress",getReceiveAddress())
.toString();
}
}

1
ruoyi-admin/src/main/java/com/ruoyi/system/mapper/SysSalesOrderChildMapper.java

@ -10,6 +10,7 @@ import java.util.List;
public interface SysSalesOrderChildMapper {
List<SysSalesOrderChild> selectSysSalesOrderChildList(SysSalesOrderChild sysCustomerQuoteChild);
List<SysSalesOrderChild> selectSysSalesOrderChildListAll(SysSalesOrderChild sysCustomerQuoteChild);
int insertSysSalesOrderChild(SysSalesOrderChild sysCustomerQuoteChild);
SysSalesOrderChild selectSysSalesOrderChildById(Long id);

2
ruoyi-admin/src/main/java/com/ruoyi/system/service/ISysSalesOrderChildService.java

@ -8,6 +8,8 @@ import java.util.List;
public interface ISysSalesOrderChildService {
List<SysSalesOrderChild> selectSysSalesOrderChildList(SysSalesOrderChild sysCustomerQuoteChild);
List<SysSalesOrderChild> selectSysSalesOrderChildListAll(SysSalesOrderChild sysCustomerQuoteChild);
int insertSysSalesOrderChild(SysSalesOrderChild sysCustomerQuoteChild);
SysSalesOrderChild selectSysSalesOrderChildById(Long id);

5
ruoyi-admin/src/main/java/com/ruoyi/system/service/impl/SysSalesOrderChildServiceImpl.java

@ -16,7 +16,10 @@ public class SysSalesOrderChildServiceImpl implements ISysSalesOrderChildService
public List<SysSalesOrderChild> selectSysSalesOrderChildList (SysSalesOrderChild sysCustomerQuoteChild) {
return sysCustomerQuoteChildMapper.selectSysSalesOrderChildList(sysCustomerQuoteChild);
}
@Override
public List<SysSalesOrderChild> selectSysSalesOrderChildListAll (SysSalesOrderChild sysCustomerQuoteChild) {
return sysCustomerQuoteChildMapper.selectSysSalesOrderChildListAll(sysCustomerQuoteChild);
}
@Override
public int insertSysSalesOrderChild(SysSalesOrderChild sysCustomerQuoteChild) {
return sysCustomerQuoteChildMapper.insertSysSalesOrderChild(sysCustomerQuoteChild);

48
ruoyi-admin/src/main/java/com/ruoyi/system/service/impl/SysSalesOrderServiceImpl.java

@ -1,6 +1,7 @@
package com.ruoyi.system.service.impl;
import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper;
import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.common.core.page.PageDomain;
import com.ruoyi.common.core.page.TableSupport;
@ -122,31 +123,17 @@ public class SysSalesOrderServiceImpl implements ISysSalesOrderService
@Override
public List<SysSalesOrderVo> selectSysSalesOrderList(SysSalesOrderVo sysSalesOrderVo1)
{
//PageHelper 仅对第一List分页有效
PageDomain pageDomain = TableSupport.buildPageRequest();
Integer pageNum = pageDomain.getPageNum();
Integer pageSize = pageDomain.getPageSize();
SysUser curUser = ShiroUtils.getSysUser();
String loginName = ShiroUtils.getLoginName();
Long userId = curUser.getUserId();
Page<SysSalesOrderVo> returnList = new Page<>();
PageHelper.startPage(pageNum, pageSize);
//PageHelper 仅对第一List分页有效
Page<SysSalesOrderVo> list = (Page<SysSalesOrderVo>)sysSalesOrderMapper.selectSysSalesOrderList(sysSalesOrderVo1);
Set<String> roleKeys = roleService.selectRoleKeys(userId);
List<SysUser> sysUserlist = sysUserService.selectRoleToUserList("ywyRole");
sysUserlist.add(curUser);
Page<SysSalesOrderVo> list = (Page<SysSalesOrderVo>) sysSalesOrderMapper.selectSysSalesOrderList(sysSalesOrderVo1);
Page<SysSalesOrderVo> returnList = new Page<>();
//如果主管审批,查看当前自己部门的审核
//如果经理审计需要查询自己部门下所有业务员的提交的订单,以及自身的提交的订单
if (roleKeys.contains("ywjlRole")) {
List<SysUser> findUser = sysUserlist.stream().filter(item -> (item.getDeptId().equals(curUser.getDeptId()))).collect(Collectors.toList());
List<String> user = findUser.stream().map(SysUser::getLoginName).collect(Collectors.toList());
String userStr = String.join(",", user);
sysSalesOrderVo1.setApplyUsers(user);
list = (Page<SysSalesOrderVo>) sysSalesOrderMapper.selectSysSalesOrderList(sysSalesOrderVo1);
}
if (roleKeys.contains("ywyRole")) {
sysSalesOrderVo1.setApplyUser(curUser.getLoginName());
list = (Page<SysSalesOrderVo>) list.stream().filter(item -> item.getApplyUser().equals(curUser.getLoginName())).collect(Collectors.toList());
}
for(SysSalesOrderVo sysSalesOrderVo : list){
SysUser sysUser = userMapper.selectUserByLoginName(sysSalesOrderVo.getCreateBy());
if (sysUser != null) {
@ -240,18 +227,19 @@ public class SysSalesOrderServiceImpl implements ISysSalesOrderService
//获取传输的销售订单物料报价信息
List<SysSalesOrderChild> sysSalesOrderChildList = sysSalesOrder.getSysSalesOrderChildList();
sysSalesOrderChildService.deleteSysSalesOrderChildByQuoteId(sysSalesOrder.getSalesOrderCode());
for (int i = 0; i < sysSalesOrderChildList.size(); i++) {
SysSalesOrderChild sysSalesOrderChild = sysSalesOrderChildList.get(i);
sysSalesOrderChild.setQuoteId(sysSalesOrder.getSalesOrderCode());
sysSalesOrderChild.setCreateBy(loginName);
sysSalesOrderChild.setCreateTime(DateUtils.getNowDate());
sysSalesOrderChild.setUpdateBy(loginName);
sysSalesOrderChild.setUpdateTime(DateUtils.getNowDate());
sysSalesOrderChildService.insertSysSalesOrderChild(sysSalesOrderChild);
}
for (int i = 0; i < sysSalesOrderChildList.size(); i++) {
SysSalesOrderChild sysSalesOrderChild = sysSalesOrderChildList.get(i);
sysSalesOrderChild.setQuoteId(sysSalesOrder.getSalesOrderCode());
sysSalesOrderChild.setCreateBy(loginName);
sysSalesOrderChild.setCreateTime(DateUtils.getNowDate());
sysSalesOrderChild.setUpdateBy(loginName);
sysSalesOrderChild.setUpdateTime(DateUtils.getNowDate());
sysSalesOrderChildService.insertSysSalesOrderChild(sysSalesOrderChild);
}
}
int result = sysSalesOrderMapper.updateSysSalesOrder(sysSalesOrder);
return result;
return sysSalesOrderMapper.updateSysSalesOrder(sysSalesOrder);
}
/**
* 删除销售订单对象

BIN
ruoyi-admin/src/main/resources/FinancialReceiptVoucherTemplate.xlsx → ruoyi-admin/src/main/resources/attachments/FinancialReceiptVoucherTemplate.xlsx

Binary file not shown.

3
ruoyi-admin/src/main/resources/mapper/financial/FinancialReceivablesRecordsMapper.xml

@ -26,7 +26,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<select id="selectFinancialReceivablesRecordsList" parameterType="FinancialReceivablesRecords" resultMap="FinancialReceivablesRecordsResult">
<include refid="selectFinancialReceivablesRecordsVo"/>
<where>
<where>
financial_receivables_code = #{financialReceivablesCode}
</where>
</select>

16
ruoyi-admin/src/main/resources/mapper/system/SysSalesOrderChildMapper.xml

@ -68,7 +68,21 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</where>
order by a.id desc
</select>
<select id="selectSysSalesOrderChildListAll" parameterType="SysSalesOrderChild" resultMap="SysSalesOrderChildResult">
select id, quoteId, materialId, materialCode, materialName, materialType, processMethod, brand, photoUrl,unit, `describe`,
warehouseDept,countTax, usdTax, materialNum,materialSole, materialRmb, materialNoRmb, materialNoUsd, materialUsd, materialUsdSum,
materialNoUsdSum, materialNoRmbSum, materialRmbSum,delivery_time, expiry_day,
out_bound_quantity, un_bound_quantity, create_by, create_time, update_by,
update_time, remark, use_status,audit_status
from sys_sales_order_child
<where>
<if test="quoteId != null and quoteId !='' "> and quoteId = #{quoteId}</if>
<if test="materialId != null "> and materialId = #{materialId}</if>
<if test="materialCode != null and materialCode != ''"> and materialCode like concat('%', #{materialCode}, '%')</if>
<if test="materialName != null and materialName != ''"> and materialName like concat('%', #{materialName}, '%')</if>
</where>
order by create_time desc
</select>
<select id="selectSysSalesOrderChildById" parameterType="Long" resultMap="SysSalesOrderChildResult">
<include refid="selectSysSalesOrderChild"/>
where a.id = #{id}

53
ruoyi-admin/src/main/resources/mapper/system/SysSupplierMapper.xml

@ -34,6 +34,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="exchangeSettlementAccount" column="exchange_settlement_account"/>
<result property="depositBank" column="deposit_bank" />
<result property="bankAccount" column="bank_account" />
<result property="invoiceCompanyName" column="invoice_company_name" />
<result property="companyTaxNumber" column="company_tax_number" />
<result property="rmbRegisteredCapital" column="rmb_registered_capital" />
<result property="industryCode" column="Industry_code" />
<result property="merchandiser" column="merchandiser" />
@ -41,6 +43,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="financialContact" column="financial_contact" />
<result property="confirmTax" column="confirm_tax" />
<result property="taxRate" column="tax_rate" />
<result property="receivePerson" column="receive_person" />
<result property="receivePersonPhone" column="receive_person_phone" />
<result property="receiveAddress" column="receive_address" />
<result property="photoAttachId" column="photo_attach_id" />
<result property="photoUrl" column="photo_url" />
<result property="createBy" column="create_by" />
@ -67,9 +72,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
legal_representative, customer_contact, contact_number, customer_fax,
customer_email, website, payment_terms, supplier_days, actual_payment_days,
settlement_bank, exchange_settlement_account, deposit_bank, bank_account,
rmb_registered_capital, Industry_code, merchandiser, merchandiser_telephone,
financial_contact, confirm_tax, tax_rate, create_by,
create_time, update_by, update_time, remark,
invoice_company_name, company_tax_number,rmb_registered_capital, Industry_code,
merchandiser, merchandiser_telephone,financial_contact, confirm_tax, tax_rate,
receive_person, receive_person_phone, receive_address,
create_by,create_time, update_by, update_time, remark,
instance_type, instance_id, restore_instance_id, cancel_instance_id, submit_instance_id,
apply_title, apply_user, apply_time,del_flag
from sys_supplier
@ -83,8 +89,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
sup.legal_representative, sup.customer_contact, sup.contact_number, sup.customer_fax,
sup.customer_email, sup.website, sup.payment_terms, sup.supplier_days, sup.actual_payment_days,
sup.settlement_bank, sup.exchange_settlement_account, sup.deposit_bank, sup.bank_account,
sup.rmb_registered_capital, sup.Industry_code, sup.merchandiser, sup.merchandiser_telephone,
sup.financial_contact, sup.confirm_tax, sup.tax_rate, sup.first_add_time, sup.update_info_time,
sup.invoice_company_name, sup.company_tax_number,sup.rmb_registered_capital, sup.Industry_code,
sup.merchandiser, sup.merchandiser_telephone,sup.financial_contact, sup.confirm_tax, sup.tax_rate,
sup.receive_person, sup.receive_person_phone, sup.receive_address,sup.first_add_time, sup.update_info_time,
sup.create_by, sup.create_time, sup.update_by, sup.update_time, sup.remark,sup.del_flag,
sup.instance_type, sup.instance_id, sup.restore_instance_id, sup.cancel_instance_id, sup.submit_instance_id,
sup.apply_title, sup.apply_user, sup.apply_time,p.dict_value as instance_type_name,file.url as photo_url
@ -114,6 +121,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="enterpriseName != null and enterpriseName != ''"> and sup.enterprise_name like concat('%', #{enterpriseName}, '%')</if>
<if test="customerContact != null and customerContact != ''"> and sup.customer_contact like concat('%', #{customerContact}, '%')</if>
<if test="merchandiser != null and merchandiser != ''"> and sup.merchandiser like concat('%', #{merchandiser}, '%')</if>
<if test="deliverPerson != null and deliverPerson != ''"> or sup.deliver_person like concat('%',#{deliverPerson},'%')</if>
<if test="deliverPersonPhone != null and deliverPersonPhone != ''"> or sup.deliver_person_phone like concat('%',#{deliverPersonPhone},'%')</if>
<if test="deliverAddress != null and deliverAddress != ''"> or sup.deliver_address like concat('%',#{deliverAddress},'%')</if>
<if test="receivePerson != null and receivePerson != ''"> or sup.receive_person like concat('%',#{receivePerson},'%')</if>
<if test="receivePersonPhone != null and receivePersonPhone != ''"> or sup.receive_person_phone like concat('%',#{receivePersonPhone},'%')</if>
<if test="receiveAddress != null and receiveAddress != ''"> or sup.receive_address like concat('%',#{receiveAddress},'%')</if>
<if test="invoiceCompanyName != null and invoiceCompanyName != ''"> and sup.invoice_company_name like concat('%', #{invoiceCompanyName}, '%')</if>
<if test="companyTaxNumber != null and companyTaxNumber != ''"> and sup.company_tax_number like concat('%', #{companyTaxNumber}, '%')</if>
<if test="params.beginCreateTime != null and params.beginCreateTime != '' and params.endCreateTime != null and params.endCreateTime != ''">
<if test="instanceId != null and instanceId != ''"> and sup.instance_id = #{instanceId}</if>
<if test="instanceType != null and instanceType != ''"> and sup.instance_type = #{instanceType}</if>
<if test="submitInstanceId != null and submitInstanceId != ''"> and sup.submit_instance_id = #{submitInstanceId}</if>
@ -122,7 +138,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="applyTitle != null and applyTitle != ''"> and sup.apply_title = #{applyTitle}</if>
<if test="applyUser != null and applyUser != ''"> and sup.apply_user = #{applyUser}</if>
<if test="applyTime != null "> and sup.apply_time = #{applyTime}</if>
<if test="params.beginCreateTime != null and params.beginCreateTime != '' and params.endCreateTime != null and params.endCreateTime != ''">
and sup.create_time between #{params.beginCreateTime} and #{params.endCreateTime}
</if>
<if test="keyword != null and keyword != ''"> and ((sup.supplierCode like concat('%',#{keyword},'%') or sup.suppplierName like concat('%',#{keyword},'%'))</if>
@ -137,6 +152,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
sup.legal_representative, sup.customer_contact, sup.contact_number, sup.customer_fax,
sup.customer_email, sup.website, sup.payment_terms, sup.supplier_days, sup.actual_payment_days,
sup.settlement_bank, sup.exchange_settlement_account, sup.deposit_bank, sup.bank_account,
sup.deliver_person, sup.deliver_person_phone, sup.deliver_address, sup.receive_person,
sup.receive_person_phone, sup.receive_address, sup.invoice_company_name, sup.company_tax_number,
sup.rmb_registered_capital, sup.Industry_code, sup.merchandiser, sup.merchandiser_telephone,
sup.financial_contact, sup.confirm_tax, sup.tax_rate, sup.first_add_time, sup.update_info_time,
sup.create_by, sup.create_time, sup.update_by, sup.update_time, sup.remark,sup.del_flag,
@ -209,6 +226,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="exchangeSettlementAccount != null">exchange_settlement_account,</if>
<if test="depositBank != null">deposit_bank,</if>
<if test="bankAccount != null">bank_account,</if>
<if test="invoiceCompanyName != null">invoice_company_name,</if>
<if test="companyTaxNumber != null">company_tax_number,</if>
<if test="deliverPerson != null">deliver_person,</if>
<if test="deliverPersonPhone != null">deliver_person_phone,</if>
<if test="deliverAddress != null">deliver_address,</if>
<if test="receivePerson != null">receive_person,</if>
<if test="receivePersonPhone != null">receive_person_phone,</if>
<if test="receiveAddress != null">receive_address,</if>
<if test="rmbRegisteredCapital != null">rmb_registered_capital,</if>
<if test="industryCode != null">Industry_code,</if>
<if test="merchandiser != null">merchandiser,</if>
@ -258,6 +283,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="exchangeSettlementAccount != null">#{exchangeSettlementAccount},</if>
<if test="depositBank != null">#{depositBank},</if>
<if test="bankAccount != null">#{bankAccount},</if>
<if test="invoiceCompanyName != null">#{invoiceCompanyName},</if>
<if test="companyTaxNumber != null">#{companyTaxNumber},</if>
<if test="deliverPerson != null">#{deliverPerson},</if>
<if test="deliverPersonPhone != null">#{deliverPersonPhone},</if>
<if test="deliverAddress != null">#{deliverAddress},</if>
<if test="receivePerson != null">#{receivePerson},</if>
<if test="receivePersonPhone != null">#{receivePersonPhone},</if>
<if test="receiveAddress != null">#{receiveAddress},</if>
<if test="rmbRegisteredCapital != null">#{rmbRegisteredCapital},</if>
<if test="industryCode != null">#{industryCode},</if>
<if test="merchandiser != null">#{merchandiser},</if>
@ -311,6 +344,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="exchangeSettlementAccount != null">exchange_settlement_account = #{exchangeSettlementAccount},</if>
<if test="depositBank != null">deposit_bank = #{depositBank},</if>
<if test="bankAccount != null">bank_account = #{bankAccount},</if>
<if test="invoiceCompanyName != null">invoice_company_name = #{invoiceCompanyName},</if>
<if test="companyTaxNumber != null">company_tax_number = #{companyTaxNumber},</if>
<if test="deliverPerson != null">deliver_person = #{deliverPerson},</if>
<if test="deliverPersonPhone != null">deliver_person_phone = #{deliverPersonPhone},</if>
<if test="deliverAddress != null">deliver_address = #{deliverAddress},</if>
<if test="receivePerson != null">receive_person = #{receivePerson},</if>
<if test="receivePersonPhone != null">receive_person_phone = #{receivePersonPhone},</if>
<if test="receiveAddress != null">receive_address = #{receiveAddress},</if>
<if test="rmbRegisteredCapital != null">rmb_registered_capital = #{rmbRegisteredCapital},</if>
<if test="industryCode != null">Industry_code = #{industryCode},</if>
<if test="merchandiser != null">merchandiser = #{merchandiser},</if>

257
ruoyi-admin/src/main/resources/static/ajax/libs/bootstrap-fileinput/fileinput.css

@ -1,16 +1,18 @@
/*!
* bootstrap-fileinput v5.1.3
* bootstrap-fileinput v5.5.2
* http://plugins.krajee.com/file-input
*
* Krajee default styling for bootstrap-fileinput.
*
* Author: Kartik Visweswaran
* Copyright: 2014 - 2020, Kartik Visweswaran, Krajee.com
* Copyright: 2014 - 2022, Kartik Visweswaran, Krajee.com
*
* Licensed under the BSD-3-Clause
* https://github.com/kartik-v/bootstrap-fileinput/blob/master/LICENSE.md
*/
.file-loading input[type=file], input[type=file].file-loading {
.file-loading input[type=file],
input[type=file].file-loading {
width: 0;
height: 0;
}
@ -29,11 +31,35 @@
box-shadow: none;
}
.kv-hidden, .file-caption-icon, .file-zoom-dialog .modal-header:before, .file-zoom-dialog .modal-header:after, .file-input-new .file-preview, .file-input-new .close, .file-input-new .glyphicon-file, .file-input-new .fileinput-remove-button, .file-input-new .fileinput-upload-button, .file-input-new .no-browse .input-group-btn, .file-input-ajax-new .fileinput-remove-button, .file-input-ajax-new .fileinput-upload-button, .file-input-ajax-new .no-browse .input-group-btn, .hide-content .kv-file-content, .is-locked .fileinput-upload-button, .is-locked .fileinput-remove-button {
.kv-hidden,
.file-caption-icon,
.file-zoom-dialog .modal-header:before,
.file-zoom-dialog .modal-header:after,
.file-input-new .file-preview,
.file-input-new .close,
.file-input-new .glyphicon-file,
.file-input-new .fileinput-remove-button,
.file-input-new .fileinput-upload-button,
.file-input-new .no-browse .input-group-btn,
.file-input-ajax-new .fileinput-remove-button,
.file-input-ajax-new .fileinput-upload-button,
.file-input-ajax-new .no-browse .input-group-btn,
.hide-content .kv-file-content,
.is-locked .fileinput-upload-button,
.is-locked .fileinput-remove-button {
display: none;
}
.btn-file input[type=file], .file-caption-icon, .file-preview .fileinput-remove, .krajee-default .file-thumb-progress, .file-zoom-dialog .btn-navigate, .file-zoom-dialog .floating-buttons {
.file-caption .input-group {
align-items: center;
}
.btn-file input[type=file],
.file-caption-icon,
.file-preview .fileinput-remove,
.krajee-default .file-thumb-progress,
.file-zoom-dialog .btn-navigate,
.file-zoom-dialog .floating-buttons {
position: absolute;
}
@ -41,35 +67,50 @@
line-height: inherit;
}
.file-input, .file-loading:before, .btn-file, .file-caption, .file-preview, .krajee-default.file-preview-frame, .krajee-default .file-thumbnail-footer, .file-zoom-dialog .modal-dialog {
.file-input,
.file-loading:before,
.btn-file,
.file-caption,
.file-preview,
.krajee-default.file-preview-frame,
.krajee-default .file-thumbnail-footer,
.file-zoom-dialog .modal-dialog {
position: relative;
}
.file-error-message pre, .file-error-message ul, .krajee-default .file-actions, .krajee-default .file-other-error {
.file-error-message pre,
.file-error-message ul,
.krajee-default .file-actions,
.krajee-default .file-other-error {
text-align: left;
}
.file-error-message pre, .file-error-message ul {
.file-error-message pre,
.file-error-message ul {
margin: 0;
}
.krajee-default .file-drag-handle, .krajee-default .file-upload-indicator {
.krajee-default .file-drag-handle,
.krajee-default .file-upload-indicator {
float: left;
margin-top: 10px;
width: 16px;
height: 16px;
}
.file-thumb-progress .progress, .file-thumb-progress .progress-bar {
.file-thumb-progress .progress,
.file-thumb-progress .progress-bar {
font-family: Verdana, Helvetica, sans-serif;
font-size: 0.7rem;
}
.krajee-default .file-thumb-progress .progress, .kv-upload-progress .progress {
.krajee-default .file-thumb-progress .progress,
.kv-upload-progress .progress {
background-color: #ccc;
}
.krajee-default .file-caption-info, .krajee-default .file-size-info {
.krajee-default .file-caption-info,
.krajee-default .file-size-info {
display: block;
white-space: nowrap;
overflow: hidden;
@ -79,17 +120,23 @@
margin: auto;
}
.file-zoom-content > .file-object.type-video, .file-zoom-content > .file-object.type-flash, .file-zoom-content > .file-object.type-image {
.file-zoom-content > .file-object.type-video,
.file-zoom-content > .file-object.type-flash,
.file-zoom-content > .file-object.type-image {
max-width: 100%;
max-height: 100%;
width: auto;
}
.file-zoom-content > .file-object.type-video, .file-zoom-content > .file-object.type-flash {
.file-zoom-content > .file-object.type-video,
.file-zoom-content > .file-object.type-flash {
height: 100%;
}
.file-zoom-content > .file-object.type-pdf, .file-zoom-content > .file-object.type-html, .file-zoom-content > .file-object.type-text, .file-zoom-content > .file-object.type-default {
.file-zoom-content > .file-object.type-pdf,
.file-zoom-content > .file-object.type-html,
.file-zoom-content > .file-object.type-text,
.file-zoom-content > .file-object.type-default {
width: 100%;
}
@ -131,26 +178,44 @@
height: 100%;
}
.file-caption .file-caption-name {
width: 100%;
margin: 0;
padding: 0;
box-shadow: none;
border: none;
background: none;
outline: none;
}
.file-caption.icon-visible .file-caption-icon {
display: inline-block;
}
.file-caption.icon-visible .file-caption-name {
padding-left: 15px;
padding-left: 25px;
}
.file-caption.icon-visible > .input-group-lg .file-caption-name {
padding-left: 30px;
}
.file-caption.icon-visible > .input-group-sm .file-caption-name {
padding-left: 22px;
}
.file-caption-name:not(.file-caption-disabled) {
background-color: transparent;
}
.file-caption-name.file-processing {
font-style: italic;
border-color: #bbb;
opacity: 0.5;
}
.file-caption-icon {
left: 8px;
padding: 7px 5px;
left: 4px;
}
.input-group-lg .file-caption-icon {
font-size: 1.25rem;
}
.input-group-sm .file-caption-icon {
font-size: 0.875rem;
padding: 0.25rem;
}
.file-error-message {
@ -200,10 +265,10 @@
.file-preview-image {
font: 40px Impact, Charcoal, sans-serif;
color: #008000;
width:auto;
height:auto;
max-width:100%;
max-height:100%;
width: auto;
height: auto;
max-width: 100%;
max-height: 100%;
}
.krajee-default.file-preview-frame {
@ -213,6 +278,7 @@
padding: 6px;
float: left;
text-align: center;
}
.krajee-default.file-preview-frame .kv-file-content {
@ -220,12 +286,6 @@
height: 160px;
}
.krajee-default .file-preview-other-frame {
display: flex;
align-items: center;
justify-content: center;
}
.krajee-default.file-preview-frame .kv-file-content.kv-pdf-rendered {
width: 400px;
}
@ -269,7 +329,7 @@
text-align: center;
padding-top: 4px;
font-size: 11px;
color: #777;
color: #999;
margin-bottom: 30px;
}
@ -319,7 +379,9 @@
font-family: Verdana, Helvetica, sans-serif;
}
/*noinspection CssOverwrittenProperties*/
.file-zoom-dialog .file-other-icon {
font-size: 22em;
font-size: 50vmin;
@ -336,21 +398,18 @@
}
.file-zoom-dialog .btn-navigate {
margin: 0 0.1rem;
padding: 0;
margin: -60px 0 0;
font-size: 60px;
background: transparent;
text-decoration: none;
outline: none;
opacity: 0.7;
font-size: 1.2rem;
width: 2.4rem;
height: 2.4rem;
top: 50%;
color: #1c94c4;
border-radius: 50%;
text-align: center;
}
.file-zoom-dialog .btn-navigate:not([disabled]):hover {
outline: none;
box-shadow: none;
opacity: 0.6;
.btn-navigate * {
width: auto;
}
.file-zoom-dialog .floating-buttons {
@ -358,25 +417,50 @@
right: 10px;
}
.file-zoom-dialog .btn-navigate[disabled] {
opacity: 0.3;
.file-zoom-dialog .btn-kv-prev {
left: 0;
}
.file-zoom-dialog .btn-prev {
left: 1px;
.file-zoom-dialog .btn-kv-next {
right: 0;
}
.file-zoom-dialog .btn-next {
right: 1px;
.file-zoom-dialog .kv-zoom-header {
padding: 0.5rem;
}
.file-zoom-dialog .kv-zoom-title {
font-weight: 300;
color: #999;
max-width: 50%;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
.file-zoom-dialog .kv-zoom-body {
padding: 0.25rem;
}
.file-zoom-dialog .kv-zoom-description {
position: absolute;
opacity: 0.8;
font-size: 0.8rem;
background-color: #1a1a1a;
padding: 1rem;
text-align: center;
border-radius: 0.5rem;
color: #fff;
left: 15%;
right: 15%;
bottom: 15%;
}
.file-zoom-dialog .kv-desc-hide {
float: right;
color: #fff;
padding: 0 0.1rem;
background: none;
border: none;
}
.file-zoom-dialog .kv-desc-hide:hover {
opacity: 0.7;
}
.file-zoom-dialog .kv-desc-hide:focus {
opacity: 0.9;
}
.file-input-new .no-browse .form-control {
@ -389,8 +473,9 @@
border-bottom-right-radius: 4px;
}
.file-caption-main {
.file-caption {
width: 100%;
position: relative;
}
.file-thumb-loading {
@ -422,7 +507,7 @@
.file-drop-zone-title {
color: #aaa;
font-size: 1.6em;
text-align:center;
text-align: center;
padding: 85px 10px;
cursor: default;
}
@ -448,7 +533,7 @@
min-height: 100vh;
}
.file-zoom-fullscreen .modal-body {
.file-zoom-fullscreen .kv-zoom-body {
overflow-y: auto;
}
@ -461,15 +546,24 @@
z-index: 3000;
}
.kv-zoom-actions {
min-width: 140px;
}
.kv-zoom-actions .btn-kv {
margin-left: 3px;
}
.file-zoom-content {
text-align: center;
white-space: nowrap;
min-height: 300px;
}
.file-zoom-content:hover {
background: transparent;
}
.file-zoom-content .file-preview-image {
max-height: 100%;
}
@ -544,7 +638,8 @@
opacity: 1;
}
.file-grabbing, .file-grabbing * {
.file-grabbing,
.file-grabbing * {
cursor: not-allowed !important;
}
@ -560,4 +655,34 @@
.file-preview .kv-zoom-cache {
display: none;
}
.file-preview-other-frame, .file-preview-object, .kv-file-content, .kv-zoom-body {
display: flex;
align-items: center;
justify-content: center;
}
.btn-kv-rotate,
.kv-file-rotate {
display: none;
}
.rotatable:not(.hide-rotate) .btn-kv-rotate,
.rotatable:not(.hide-rotate) .kv-file-rotate {
display: inline-block;
}
.rotatable .file-zoom-detail,
.rotatable .kv-file-content,
.rotatable .kv-file-content > :first-child {
transform-origin: center center;
}
.rotate-animate {
transition: transform 0.3s ease;
}
.kv-overflow-hidden {
overflow: hidden;
}

1625
ruoyi-admin/src/main/resources/static/ajax/libs/bootstrap-fileinput/fileinput.js

File diff suppressed because it is too large

6
ruoyi-admin/src/main/resources/static/ajax/libs/bootstrap-fileinput/fileinput.min.css

File diff suppressed because one or more lines are too long

6
ruoyi-admin/src/main/resources/static/ajax/libs/bootstrap-fileinput/fileinput.min.js

File diff suppressed because one or more lines are too long

0
ruoyi-admin/src/main/resources/templates/financial/taxInvoice/auditInvoiceRMB.html → ruoyi-admin/src/main/resources/templates/financial/taxInvoice/auditInvoiceRmb.html

0
ruoyi-admin/src/main/resources/templates/financial/taxInvoice/auditInvoiceRMBDetail.html → ruoyi-admin/src/main/resources/templates/financial/taxInvoice/auditInvoiceRmbDetail.html

0
ruoyi-admin/src/main/resources/templates/financial/taxInvoice/auditInvoiceUSD.html → ruoyi-admin/src/main/resources/templates/financial/taxInvoice/auditInvoiceUsd.html

2
ruoyi-admin/src/main/resources/templates/financial/taxInvoice/auditInvoiceUSDDetail.html → ruoyi-admin/src/main/resources/templates/financial/taxInvoice/auditInvoiceUsdDetail.html

@ -236,7 +236,7 @@
function submitHandler() {
$.operate.save(prefix + "/auditInvoiceDetail", $('#form-taxInvoice-form-taxInvoice-auditUsdDetail').serialize());
$.operate.save(prefix + "/auditInvoiceDetail", $('#form-taxInvoice-auditUsdDetail').serialize());
}

334
ruoyi-admin/src/main/resources/templates/financial/taxInvoice/beforeAuditInvoiceRmbDetail.html

@ -0,0 +1,334 @@
<!DOCTYPE html>
<html lang="zh" xmlns:th="http://www.thymeleaf.org" >
<head>
<th:block th:include="include :: header('待审核国税发票')" />
<th:block th:include="include :: datetimepicker-css" />
</head>
<body class="white-bg">
<div class="wrapper wrapper-content animated fadeInRight ibox-content">
<form class="form-horizontal m" id="form-taxInvoice-beforeAuditUsdDetail" th:object="${taxInvoice}">
<input name="taxInvoiceId" th:field="*{taxInvoiceId}" type="hidden">
<div class="form-group">
<label class="col-sm-5 control-label">发票单号:</label>
<div class="col-sm-7">
<input name="taxInvoiceCode" th:field="*{taxInvoiceCode}" class="form-control" type="text" readonly>
</div>
</div>
<div class="form-group">
<label class="col-sm-5 control-label">销售订单编号:</label>
<div class="col-sm-7">
<input name="salesOrderCode" th:field="*{salesOrderCode}" class="form-control" type="text" readonly>
</div>
</div>
<div class="form-group">
<label class="col-sm-5 control-label">订单类型:</label>
<div class="col-sm-7">
<select name="salesOrderType" class="form-control m-b" th:with="type=${@dict.getType('sys_order_type')}" readonly>
<option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}" th:field="*{salesOrderType}"></option>
</select>
</div>
</div>
<div class="form-group">
<label class="col-sm-5 control-label">报价币种:</label>
<div class="col-sm-7">
<select name="commonCurrency" class="form-control m-b" th:with="type=${@dict.getType('sys_common_currency')}" readonly>
<option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}" th:field="*{commonCurrency}"></option>
</select>
</div>
</div>
<div class="form-group">
<label class="col-sm-5 control-label">客户代码/ID:</label>
<div class="col-sm-7">
<input name="enterpriseCode" th:field="*{enterpriseCode}" class="form-control" type="text" readonly>
</div>
</div>
<div class="form-group">
<label class="col-sm-5 control-label">客户名称:</label>
<div class="col-sm-7">
<input name="enterpriseName" th:field="*{enterpriseName}" class="form-control" type="text" readonly>
</div>
</div>
<div class="form-group">
<label class="col-sm-5 control-label">联系电话:</label>
<div class="col-sm-7">
<input name="contactNumber" th:field="*{contactNumber}" class="form-control" type="text" readonly>
</div>
</div>
<div class="form-group">
<label class="col-sm-5 control-label">公司地址:</label>
<div class="col-sm-7">
<input name="enterpriseAddress" th:field="*{enterpriseAddress}" class="form-control" type="text" readonly>
</div>
</div>
<div class="form-group">
<label class="col-sm-5 control-label">开票公司名称:</label>
<div class="col-sm-7">
<input name="invoiceCompanyName" th:field="*{invoiceCompanyName}" class="form-control" type="text" readonly>
</div>
</div>
<div class="form-group">
<label class="col-sm-5 control-label">开票公司税号:</label>
<div class="col-sm-7">
<input name="invoiceCompanyCode" th:field="*{invoiceCompanyCode}" class="form-control" type="text" readonly>
</div>
</div>
<div class="form-group">
<label class="col-sm-5 control-label">公司开户行:</label>
<div class="col-sm-7">
<input name="depositBank" th:field="*{depositBank}" class="form-control" type="text" readonly>
</div>
</div>
<div class="form-group">
<label class="col-sm-5 control-label">公司开户账号:</label>
<div class="col-sm-7">
<input name="bankAccount" th:field="*{bankAccount}" class="form-control" type="text" readonly>
</div>
</div>
<div class="form-group">
<label class="col-sm-5 control-label">税率:</label>
<div class="col-sm-7">
<div class="input-group">
<input name="taxRate" th:field="*{taxRate}" class="form-control" type="text" readonly>
<span class="input-group-addon">%</span>
</div>
</div>
</div>
<div class="form-group">
<label class="col-sm-5 control-label is-required" >发票种类:</label>
<div class="col-sm-7">
<div class="radio-box" th:each="dict : ${@dict.getType('tax_invoice_class')}">
<input type="radio" th:id="${'taxInvoiceClass_' + dict.dictCode}" name="taxInvoiceClass" th:value="${dict.dictValue}" th:field="*{taxInvoiceClass}" disabled>
<label th:for="${'taxInvoiceClass_' + dict.dictCode}" th:text="${dict.dictLabel}"></label>
</div>
</div>
</div>
<div class="form-group">
<label class="col-sm-5 control-label is-required">发票类型:</label>
<div class="col-sm-7">
<div class="radio-box" th:each="dict : ${@dict.getType('tax_invoice_type')}">
<input type="radio" th:id="${'taxInvoiceType_' + dict.dictCode}" name="taxInvoiceType" th:value="${dict.dictValue}" th:field="*{taxInvoiceType}" disabled>
<label th:for="${'taxInvoiceType_' + dict.dictCode}" th:text="${dict.dictLabel}"></label>
</div>
</div>
</div>
<div class="form-group">
<label class="col-sm-5 control-label is-required">发票抬头:</label>
<div class="col-sm-7">
<div class="radio-box" th:each="dict : ${@dict.getType('tax_invoice_title')}">
<input type="radio" th:id="${'taxInvoiceTitle_' + dict.dictCode}" name="taxInvoiceTitle" th:value="${dict.dictValue}" th:field="*{taxInvoiceTitle}" disabled>
<label th:for="${'taxInvoiceTitle_' + dict.dictCode}" th:text="${dict.dictLabel}"></label>
</div>
</div>
</div>
<div class="form-group">
<label class="col-sm-5 control-label">邮箱:</label>
<div class="col-sm-7">
<input name="invoiceEmail" th:field="*{invoiceEmail}" class="form-control" type="text" readonly>
</div>
</div>
<div class="form-group">
<label class="col-sm-5 control-label">业务备注:</label>
<div class="col-sm-7">
<input name="businessRemark" th:field="*{businessRemark}" class="form-control" type="text" readonly>
</div>
</div>
<div class="container">
<div class="row">
<h4 class="font-weight-bold">开票物料</h4>
</div>
<div class="row">
<div class="col-sm-12 select-table table-striped">
<table id="bootstrap-table-material"></table>
</div>
</div>
</div>
<div class="container">
<div class="row">
<h4 class="font-weight-bold">开票额度</h4>
</div>
</div>
<div class="form-group">
<label class="col-sm-5 control-label">不含税总价(RMB):</label>
<div class="col-sm-7">
<input name="noRmbSum" th:field="*{noRmbSum}" class="form-control" type="text" readonly>
</div>
</div>
<div class="form-group">
<label class="col-sm-5 control-label">含税总价(RMB):</label>
<div class="col-sm-7">
<input name="rmbTaxSum" th:field="*{rmbTaxSum}" class="form-control" type="text" id="rmbTaxSumInput" readonly>
</div>
</div>
<div class="form-group">
<label class="col-sm-5 control-label">物料数合计:</label>
<div class="col-sm-7">
<input name="materialSum" th:field="*{materialSum}" class="form-control" type="text" readonly>
</div>
</div>
<div class="form-group">
<label class="col-sm-5 control-label">数量合计:</label>
<div class="col-sm-7">
<input name="enterpriseSum" th:field="*{enterpriseSum}" class="form-control" type="text" readonly>
</div>
</div>
<div class="form-group">
<label class="col-sm-5 control-label">开票额度比例:</label>
<div class="col-sm-7">
<div class="input-group">
<input name="invoiceQuotaRatio" th:field="*{invoiceQuotaRatio}" class="form-control" type="text" id="invoiceQuotaRatioInput" readonly>
<span class="input-group-addon">%</span>
</div>
</div>
</div>
<div class="form-group">
<label class="col-sm-5 control-label">开票金额(RMB):</label>
<div class="col-sm-7">
<input name="invoiceAmountRmb" th:field="*{invoiceAmountRmb}" class="form-control" type="text" id="invoiceAmountRmbInput" readonly>
</div>
</div>
<div class="form-group">
<label class="col-sm-5 control-label">开票用途:</label>
<div class="col-sm-7">
<input name="invoicePurpose" th:field="*{invoicePurpose}" class="form-control" type="text" readonly>
</div>
</div>
</form>
</div>
<th:block th:include="include :: footer" />
<th:block th:include="include :: datetimepicker-js" />
<script th:inline="javascript">
var materialProcessMethodDatas = [[${@dict.getType('processMethod')}]];
var materialTypeDatas = [[${@category.getChildByCode('materialType')}]];
var taxInvoiceStatusDatas = [[${@dict.getType('tax_invoice_status')}]];
var taxInvoice = [[${taxInvoice}]];
var prefix = ctx + "financial/taxInvoice";
$("#form-taxInvoice-beforeAuditUsdDetail").validate({
focusCleanup: true
});
function submitHandler() {
$.operate.save(prefix + "/beforeAuditInvoiceDetail", $('#form-taxInvoice-beforeAuditUsdDetail').serialize());
}
//开票物料
$(function() {
var options = {
id: 'bootstrap-table-material',
url: prefix + "/getInvoiceMaterialListByCode",
queryParams: function(params) {
return {
taxInvoiceCode: $("#taxInvoiceCode").val(),
}
},
showSearch: false,
showRefresh: false,
showToggle: false,
showColumns: false,
pagination: false, // 设置不分页
modalName: "国税发票物料",
columns: [{
checkbox: true
},
{
title: '国税发票物料ID',
field: 'invoiceMaterialId',
visible: false
},
{
title: '物料编号',
field: 'materialCode',
},
{
title: '物料名称',
field: 'materialName',
},
{
field: 'materialType',
title: '物料类型',
formatter: function(value, row, index) {
return $.table.selectCategoryLabel(materialTypeDatas, value);
}
},
{
title: '物料加工方式',
field: 'materialProcessMethod',
formatter: function(value, row, index) {
return $.table.selectDictLabel(materialProcessMethodDatas, value);
}
},
{
title: '物料品牌',
field: 'materialBrand',
},
{
title: '物料图片',
field: 'materialPhotourl',
},
{
title: '物料单位',
field: 'materialUnit',
},
{
title: '物料描述',
field: 'materialDescribe',
},
{
title: '物料的数量',
field: 'materialNum',
},
{
title: '物料的含税单价(RMB)',
field: 'taxRmb',
},
{
title: '物料的不含税单价(RMB)',
field: 'noTaxRmb',
},
{
title: '已出库数量',
field: 'outBoundQuantity',
},
{
title: '已验收数',
field: 'hasCheckNum',
},
{
title: '退货数',
field: 'refundsNum',
}]
};
$.table.init(options);
});
</script>
</body>
</html>

330
ruoyi-admin/src/main/resources/templates/financial/taxInvoice/beforeAuditInvoiceUsdDetail.html

@ -0,0 +1,330 @@
<!DOCTYPE html>
<html lang="zh" xmlns:th="http://www.thymeleaf.org" >
<head>
<th:block th:include="include :: header('待审核国税发票')" />
<th:block th:include="include :: datetimepicker-css" />
</head>
<body class="white-bg">
<div class="wrapper wrapper-content animated fadeInRight ibox-content">
<form class="form-horizontal m" id="form-taxInvoice-auditUsdDetail" th:object="${taxInvoice}">
<input name="taxInvoiceId" th:field="*{taxInvoiceId}" type="hidden">
<div class="form-group">
<label class="col-sm-5 control-label">发票单号:</label>
<div class="col-sm-7">
<input name="taxInvoiceCode" th:field="*{taxInvoiceCode}" class="form-control" type="text" readonly>
</div>
</div>
<div class="form-group">
<label class="col-sm-5 control-label">销售订单编号:</label>
<div class="col-sm-7">
<input name="salesOrderCode" th:field="*{salesOrderCode}" class="form-control" type="text" readonly>
</div>
</div>
<div class="form-group">
<label class="col-sm-5 control-label">订单类型:</label>
<div class="col-sm-7">
<select name="salesOrderType" class="form-control m-b" th:with="type=${@dict.getType('sys_order_type')}" readonly>
<option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}" th:field="*{salesOrderType}"></option>
</select>
</div>
</div>
<div class="form-group">
<label class="col-sm-5 control-label">报价币种:</label>
<div class="col-sm-7">
<select name="commonCurrency" class="form-control m-b" th:with="type=${@dict.getType('sys_common_currency')}" readonly>
<option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}" th:field="*{commonCurrency}"></option>
</select>
</div>
</div>
<div class="form-group">
<label class="col-sm-5 control-label">客户代码/ID:</label>
<div class="col-sm-7">
<input name="enterpriseCode" th:field="*{enterpriseCode}" class="form-control" type="text" readonly>
</div>
</div>
<div class="form-group">
<label class="col-sm-5 control-label">客户名称:</label>
<div class="col-sm-7">
<input name="enterpriseName" th:field="*{enterpriseName}" class="form-control" type="text" readonly>
</div>
</div>
<div class="form-group">
<label class="col-sm-5 control-label">联系电话:</label>
<div class="col-sm-7">
<input name="contactNumber" th:field="*{contactNumber}" class="form-control" type="text" readonly>
</div>
</div>
<div class="form-group">
<label class="col-sm-5 control-label">公司地址:</label>
<div class="col-sm-7">
<input name="enterpriseAddress" th:field="*{enterpriseAddress}" class="form-control" type="text" readonly>
</div>
</div>
<div class="form-group">
<label class="col-sm-5 control-label">开票公司名称:</label>
<div class="col-sm-7">
<input name="invoiceCompanyName" th:field="*{invoiceCompanyName}" class="form-control" type="text" readonly>
</div>
</div>
<div class="form-group">
<label class="col-sm-5 control-label">开票公司税号:</label>
<div class="col-sm-7">
<input name="invoiceCompanyCode" th:field="*{invoiceCompanyCode}" class="form-control" type="text" readonly>
</div>
</div>
<div class="form-group">
<label class="col-sm-5 control-label">公司开户行:</label>
<div class="col-sm-7">
<input name="depositBank" th:field="*{depositBank}" class="form-control" type="text" readonly>
</div>
</div>
<div class="form-group">
<label class="col-sm-5 control-label">公司开户账号:</label>
<div class="col-sm-7">
<input name="bankAccount" th:field="*{bankAccount}" class="form-control" type="text" readonly>
</div>
</div>
<div class="form-group">
<label class="col-sm-5 control-label">税率:</label>
<div class="col-sm-7">
<div class="input-group">
<input name="taxRate" th:field="*{taxRate}" class="form-control" type="text" readonly>
<span class="input-group-addon">%</span>
</div>
</div>
</div>
<div class="form-group">
<label class="col-sm-5 control-label is-required" >发票种类:</label>
<div class="col-sm-7">
<div class="radio-box" th:each="dict : ${@dict.getType('tax_invoice_class')}">
<input type="radio" th:id="${'taxInvoiceClass_' + dict.dictCode}" name="taxInvoiceClass" th:value="${dict.dictValue}" th:field="*{taxInvoiceClass}" disabled>
<label th:for="${'taxInvoiceClass_' + dict.dictCode}" th:text="${dict.dictLabel}"></label>
</div>
</div>
</div>
<div class="form-group">
<label class="col-sm-5 control-label is-required">发票类型:</label>
<div class="col-sm-7">
<div class="radio-box" th:each="dict : ${@dict.getType('tax_invoice_type')}">
<input type="radio" th:id="${'taxInvoiceType_' + dict.dictCode}" name="taxInvoiceType" th:value="${dict.dictValue}" th:field="*{taxInvoiceType}" disabled>
<label th:for="${'taxInvoiceType_' + dict.dictCode}" th:text="${dict.dictLabel}"></label>
</div>
</div>
</div>
<div class="form-group">
<label class="col-sm-5 control-label is-required">发票抬头:</label>
<div class="col-sm-7">
<div class="radio-box" th:each="dict : ${@dict.getType('tax_invoice_title')}">
<input type="radio" th:id="${'taxInvoiceTitle_' + dict.dictCode}" name="taxInvoiceTitle" th:value="${dict.dictValue}" th:field="*{taxInvoiceTitle}" disabled>
<label th:for="${'taxInvoiceTitle_' + dict.dictCode}" th:text="${dict.dictLabel}"></label>
</div>
</div>
</div>
<div class="form-group">
<label class="col-sm-5 control-label">邮箱:</label>
<div class="col-sm-7">
<input name="invoiceEmail" th:field="*{invoiceEmail}" class="form-control" type="text" readonly>
</div>
</div>
<div class="form-group">
<label class="col-sm-5 control-label">业务备注:</label>
<div class="col-sm-7">
<input name="businessRemark" th:field="*{businessRemark}" class="form-control" type="text" readonly>
</div>
</div>
<div class="container">
<div class="row">
<h4 class="font-weight-bold">开票物料</h4>
</div>
<div class="row">
<div class="col-sm-12 select-table table-striped">
<table id="bootstrap-table-material"></table>
</div>
</div>
</div>
<div class="container">
<div class="row">
<h4 class="font-weight-bold">开票额度</h4>
</div>
</div>
<div class="form-group">
<label class="col-sm-5 control-label">不含税总价(美元):</label>
<div class="col-sm-7">
<input name="noUsdSum" th:field="*{noUsdSum}" class="form-control" type="text" readonly>
</div>
</div>
<div class="form-group">
<label class="col-sm-5 control-label">含税总价(美元):</label>
<div class="col-sm-7">
<input name="usdTaxSum" th:field="*{usdTaxSum}" class="form-control" type="text" id="usdTaxSumInput" readonly>
</div>
</div>
<div class="form-group">
<label class="col-sm-5 control-label">物料数合计:</label>
<div class="col-sm-7">
<input name="materialSum" th:field="*{materialSum}" class="form-control" type="text" readonly>
</div>
</div>
<div class="form-group">
<label class="col-sm-5 control-label">数量合计:</label>
<div class="col-sm-7">
<input name="enterpriseSum" th:field="*{enterpriseSum}" class="form-control" type="text" readonly>
</div>
</div>
<div class="form-group">
<label class="col-sm-5 control-label">开票额度比例:</label>
<div class="col-sm-7">
<div class="input-group">
<input name="invoiceQuotaRatio" th:field="*{invoiceQuotaRatio}" class="form-control" type="text" id="invoiceQuotaRatioInput" readonly>
<span class="input-group-addon">%</span>
</div>
</div>
</div>
<div class="form-group">
<label class="col-sm-5 control-label">开票金额(美元):</label>
<div class="col-sm-7">
<input name="invoiceAmountUsd" th:field="*{invoiceAmountUsd}" class="form-control" type="text" id="invoiceAmountUsdInput" readonly>
</div>
</div>
<div class="form-group">
<label class="col-sm-5 control-label">开票用途:</label>
<div class="col-sm-7">
<input name="invoicePurpose" th:field="*{invoicePurpose}" class="form-control" type="text" readonly>
</div>
</div>
</form>
</div>
<th:block th:include="include :: footer" />
<th:block th:include="include :: datetimepicker-js" />
<script th:inline="javascript">
var materialProcessMethodDatas = [[${@dict.getType('processMethod')}]];
var materialTypeDatas = [[${@category.getChildByCode('materialType')}]];
var taxInvoiceStatusDatas = [[${@dict.getType('tax_invoice_status')}]];
var taxInvoice = [[${taxInvoice}]];
var prefix = ctx + "financial/taxInvoice";
$("#form-taxInvoice-auditUsdDetail").validate({
focusCleanup: true
});
function submitHandler() {
$.operate.save(prefix + "/auditInvoiceDetail", $('#form-taxInvoice-auditUsdDetail').serialize());
}
//开票物料
$(function() {
var options = {
id: 'bootstrap-table-material',
url: prefix + "/getInvoiceMaterialListByCode",
queryParams: function(params) {
return {
taxInvoiceCode: $("#taxInvoiceCode").val(),
}
},
showSearch: false,
showRefresh: false,
showToggle: false,
showColumns: false,
pagination: false, // 设置不分页
modalName: "国税发票物料",
columns: [{
checkbox: true
},
{
title: '国税发票物料ID',
field: 'invoiceMaterialId',
visible: false
},
{
title: '物料编号',
field: 'materialCode',
},
{
title: '物料名称',
field: 'materialName',
},
{
field: 'materialType',
title: '物料类型',
formatter: function(value, row, index) {
return $.table.selectCategoryLabel(materialTypeDatas, value);
}
},
{
title: '物料加工方式',
field: 'materialProcessMethod',
formatter: function(value, row, index) {
return $.table.selectDictLabel(materialProcessMethodDatas, value);
}
},
{
title: '物料品牌',
field: 'materialBrand',
},
{
title: '物料图片',
field: 'materialPhotourl',
},
{
title: '物料单位',
field: 'materialUnit',
},
{
title: '物料描述',
field: 'materialDescribe',
},
{
title: '物料的数量',
field: 'materialNum',
},
{
title: '物料的含税单价(美元)',
field: 'taxUsd',
},
{
title: '物料的不含税单价(美元)',
field: 'noTaxUsd',
},
{
title: '已出库数量',
field: 'outBoundQuantity',
},
{
title: '已验收数',
field: 'hasCheckNum',
},
{
title: '退货数',
field: 'refundsNum',
}]
};
$.table.init(options);
});
</script>
</body>
</html>

14
ruoyi-admin/src/main/resources/templates/financial/taxInvoice/taxInvoice.html

@ -261,7 +261,13 @@
align: 'center',
formatter: function(value, row, index) {
var actions = [];
actions.push('<a class="btn btn-success btn-xs ' + editFlag + '" href="javascript:void(0)" onclick="$.operate.edit(\'' + row.taxInvoiceId + '\')"><i class="fa fa-edit"></i>编辑</a> ');
//actions.push('<a class="btn btn-success btn-xs ' + editFlag + '" href="javascript:void(0)" onclick="$.operate.edit(\'' + row.taxInvoiceId + '\')"><i class="fa fa-edit"></i>编辑</a> ');
//待审核详情
if (row.taxInvoiceStatus=="0"){
actions.push('<a class="btn btn-success btn-xs " href="javascript:void(0)" onclick="beforeAuditInvoiceDetail(\'' + row.taxInvoiceId + '\')"><i class="fa fa-edit"></i>详情</a>');
}
if (row.taxInvoiceStatus=="0" && row.commonCurrency=="1"){
actions.push('<a class="btn btn-success btn-xs ' + auditInvoiceFlag + '" href="javascript:void(0)" onclick="auditInvoiceRmb(\'' + row.taxInvoiceId + '\')"><i class="fa fa-edit"></i>审核</a>');
}
@ -296,6 +302,12 @@
$.table.init(options);
});
//待审核页面详情
function beforeAuditInvoiceDetail(taxInvoiceId){
var url = prefix + "/beforeAuditInvoiceDetail/" + taxInvoiceId;
$.modal.open("详情",url);
}
//审核页面详情

2
ruoyi-admin/src/main/resources/templates/financial/taxInvoice/uploadInvoiceRMB.html → ruoyi-admin/src/main/resources/templates/financial/taxInvoice/uploadInvoiceRmb.html

@ -273,7 +273,7 @@
var taxInvoice = [[${taxInvoice}]];
var prefix = ctx + "financial/taxInvoice";
$("#form-taxInvoice-auditRmb").validate({
$("#form-taxInvoice-uploadRmb").validate({
focusCleanup: true
});

101
ruoyi-admin/src/main/resources/templates/financial/taxInvoice/uploadInvoiceRMBDetail.html → ruoyi-admin/src/main/resources/templates/financial/taxInvoice/uploadInvoiceRmbDetail.html

@ -7,7 +7,7 @@
</head>
<body class="white-bg">
<div class="wrapper wrapper-content animated fadeInRight ibox-content">
<form class="form-horizontal m" id="form-taxInvoice-uploadRmb" th:object="${taxInvoice}">
<form class="form-horizontal m" id="form-taxInvoice-uploadRmbDetail" th:object="${taxInvoice}">
<input name="taxInvoiceId" th:field="*{taxInvoiceId}" type="hidden">
<!-- 添加隐藏的输入框 -->
<input id="fileIdStr" name="fileIdStr" type="text" hidden>
@ -273,7 +273,7 @@
var taxInvoice = [[${taxInvoice}]];
var prefix = ctx + "financial/taxInvoice";
$("#form-taxInvoice-auditRmb").validate({
$("#form-taxInvoice-uploadRmbDetail").validate({
focusCleanup: true
});
@ -283,6 +283,13 @@
autoclose: true
});
function submitHandler() {
$.operate.save(prefix + "/uploadInvoiceDetail", $('#form-taxInvoice-uploadRmbDetail').serialize());
}
$(document).ready(function () {
var initialPreview = [];
var initialPreviewConfig = [];
@ -378,7 +385,95 @@
//开票物料
$(function() {
var options = {
id: 'bootstrap-table-material',
url: prefix + "/getInvoiceMaterialListByCode",
queryParams: function(params) {
return {
taxInvoiceCode: $("#taxInvoiceCode").val(),
}
},
showSearch: false,
showRefresh: false,
showToggle: false,
showColumns: false,
pagination: false, // 设置不分页
modalName: "国税发票物料",
columns: [{
checkbox: true
},
{
title: '国税发票物料ID',
field: 'invoiceMaterialId',
visible: false
},
{
title: '物料编号',
field: 'materialCode',
},
{
title: '物料名称',
field: 'materialName',
},
{
field: 'materialType',
title: '物料类型',
formatter: function(value, row, index) {
return $.table.selectCategoryLabel(materialTypeDatas, value);
}
},
{
title: '物料加工方式',
field: 'materialProcessMethod',
formatter: function(value, row, index) {
return $.table.selectDictLabel(materialProcessMethodDatas, value);
}
},
{
title: '物料品牌',
field: 'materialBrand',
},
{
title: '物料图片',
field: 'materialPhotourl',
},
{
title: '物料单位',
field: 'materialUnit',
},
{
title: '物料描述',
field: 'materialDescribe',
},
{
title: '物料的数量',
field: 'materialNum',
},
{
title: '物料的含税单价(RMB)',
field: 'taxRmb',
},
{
title: '物料的不含税单价(RMB)',
field: 'noTaxRmb',
},
{
title: '已出库数量',
field: 'outBoundQuantity',
},
{
title: '已验收数',
field: 'hasCheckNum',
},
{
title: '退货数',
field: 'refundsNum',
}]
};
$.table.init(options);
});

8
ruoyi-admin/src/main/resources/templates/financial/taxInvoice/uploadInvoiceUSD.html → ruoyi-admin/src/main/resources/templates/financial/taxInvoice/uploadInvoiceUsd.html

@ -355,12 +355,12 @@
field: 'materialNum',
},
{
title: '物料的含税单价(RMB)',
field: 'taxRmb',
title: '物料的含税单价(美元)',
field: 'taxUsd',
},
{
title: '物料的不含税单价(RMB)',
field: 'noTaxRmb',
title: '物料的不含税单价(美元)',
field: 'noTaxUsd',
},
{
title: '已出库数量',

529
ruoyi-admin/src/main/resources/templates/financial/taxInvoice/uploadInvoiceUsdDetail.html

@ -0,0 +1,529 @@
<!DOCTYPE html>
<html lang="zh" xmlns:th="http://www.thymeleaf.org" >
<head>
<th:block th:include="include :: header('上传国税发票')" />
<th:block th:include="include :: datetimepicker-css" />
<th:block th:include="include :: bootstrap-fileinput-css" />
</head>
<body class="white-bg">
<div class="wrapper wrapper-content animated fadeInRight ibox-content">
<form class="form-horizontal m" id="form-taxInvoice-uploadUsdDetail" th:object="${taxInvoice}">
<input name="taxInvoiceId" th:field="*{taxInvoiceId}" type="hidden">
<!-- 添加隐藏的输入框 -->
<input id="fileIdStr" name="fileIdStr" type="text" hidden>
<div class="form-group">
<label class="col-sm-5 control-label">发票单号:</label>
<div class="col-sm-7">
<input name="taxInvoiceCode" th:field="*{taxInvoiceCode}" class="form-control" type="text" readonly>
</div>
</div>
<div class="form-group">
<label class="col-sm-5 control-label">销售订单编号:</label>
<div class="col-sm-7">
<input name="salesOrderCode" th:field="*{salesOrderCode}" class="form-control" type="text" readonly>
</div>
</div>
<div class="form-group">
<label class="col-sm-5 control-label">订单类型:</label>
<div class="col-sm-7">
<select name="salesOrderType" class="form-control m-b" th:with="type=${@dict.getType('sys_order_type')}" readonly>
<option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}" th:field="*{salesOrderType}"></option>
</select>
</div>
</div>
<div class="form-group">
<label class="col-sm-5 control-label">报价币种:</label>
<div class="col-sm-7">
<select name="commonCurrency" class="form-control m-b" th:with="type=${@dict.getType('sys_common_currency')}" readonly>
<option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}" th:field="*{commonCurrency}"></option>
</select>
</div>
</div>
<div class="form-group">
<label class="col-sm-5 control-label">客户代码/ID:</label>
<div class="col-sm-7">
<input name="enterpriseCode" th:field="*{enterpriseCode}" class="form-control" type="text" readonly>
</div>
</div>
<div class="form-group">
<label class="col-sm-5 control-label">客户名称:</label>
<div class="col-sm-7">
<input name="enterpriseName" th:field="*{enterpriseName}" class="form-control" type="text" readonly>
</div>
</div>
<div class="form-group">
<label class="col-sm-5 control-label">联系电话:</label>
<div class="col-sm-7">
<input name="contactNumber" th:field="*{contactNumber}" class="form-control" type="text" readonly>
</div>
</div>
<div class="form-group">
<label class="col-sm-5 control-label">公司地址:</label>
<div class="col-sm-7">
<input name="enterpriseAddress" th:field="*{enterpriseAddress}" class="form-control" type="text" readonly>
</div>
</div>
<div class="form-group">
<label class="col-sm-5 control-label">开票公司名称:</label>
<div class="col-sm-7">
<input name="invoiceCompanyName" th:field="*{invoiceCompanyName}" class="form-control" type="text" readonly>
</div>
</div>
<div class="form-group">
<label class="col-sm-5 control-label">开票公司税号:</label>
<div class="col-sm-7">
<input name="invoiceCompanyCode" th:field="*{invoiceCompanyCode}" class="form-control" type="text" readonly>
</div>
</div>
<div class="form-group">
<label class="col-sm-5 control-label">公司开户行:</label>
<div class="col-sm-7">
<input name="depositBank" th:field="*{depositBank}" class="form-control" type="text" readonly>
</div>
</div>
<div class="form-group">
<label class="col-sm-5 control-label">公司开户账号:</label>
<div class="col-sm-7">
<input name="bankAccount" th:field="*{bankAccount}" class="form-control" type="text" readonly>
</div>
</div>
<div class="form-group">
<label class="col-sm-5 control-label">税率:</label>
<div class="col-sm-7">
<div class="input-group">
<input name="taxRate" th:field="*{taxRate}" class="form-control" type="text" readonly>
<span class="input-group-addon">%</span>
</div>
</div>
</div>
<div class="form-group">
<label class="col-sm-5 control-label is-required" >发票种类:</label>
<div class="col-sm-7">
<div class="radio-box" th:each="dict : ${@dict.getType('tax_invoice_class')}">
<input type="radio" th:id="${'taxInvoiceClass_' + dict.dictCode}" name="taxInvoiceClass" th:value="${dict.dictValue}" th:field="*{taxInvoiceClass}" disabled>
<label th:for="${'taxInvoiceClass_' + dict.dictCode}" th:text="${dict.dictLabel}"></label>
</div>
</div>
</div>
<div class="form-group">
<label class="col-sm-5 control-label is-required">发票类型:</label>
<div class="col-sm-7">
<div class="radio-box" th:each="dict : ${@dict.getType('tax_invoice_type')}">
<input type="radio" th:id="${'taxInvoiceType_' + dict.dictCode}" name="taxInvoiceType" th:value="${dict.dictValue}" th:field="*{taxInvoiceType}" disabled>
<label th:for="${'taxInvoiceType_' + dict.dictCode}" th:text="${dict.dictLabel}"></label>
</div>
</div>
</div>
<div class="form-group">
<label class="col-sm-5 control-label is-required">发票抬头:</label>
<div class="col-sm-7">
<div class="radio-box" th:each="dict : ${@dict.getType('tax_invoice_title')}">
<input type="radio" th:id="${'taxInvoiceTitle_' + dict.dictCode}" name="taxInvoiceTitle" th:value="${dict.dictValue}" th:field="*{taxInvoiceTitle}" disabled>
<label th:for="${'taxInvoiceTitle_' + dict.dictCode}" th:text="${dict.dictLabel}"></label>
</div>
</div>
</div>
<div class="form-group">
<label class="col-sm-5 control-label">邮箱:</label>
<div class="col-sm-7">
<input name="invoiceEmail" th:field="*{invoiceEmail}" class="form-control" type="text" readonly>
</div>
</div>
<div class="form-group">
<label class="col-sm-5 control-label">业务备注:</label>
<div class="col-sm-7">
<input name="businessRemark" th:field="*{businessRemark}" class="form-control" type="text" readonly>
</div>
</div>
<div class="container">
<div class="row">
<h4 class="font-weight-bold">开票物料</h4>
</div>
<div class="row">
<div class="col-sm-12 select-table table-striped">
<table id="bootstrap-table-material"></table>
</div>
</div>
</div>
<div class="container">
<div class="row">
<h4 class="font-weight-bold">开票额度</h4>
</div>
</div>
<div class="form-group">
<label class="col-sm-5 control-label">不含税总价(美元):</label>
<div class="col-sm-7">
<input name="noUsdSum" th:field="*{noUsdSum}" class="form-control" type="text" readonly>
</div>
</div>
<div class="form-group">
<label class="col-sm-5 control-label">含税总价(美元):</label>
<div class="col-sm-7">
<input name="usdTaxSum" th:field="*{usdTaxSum}" class="form-control" type="text" id="usdTaxSumInput" readonly>
</div>
</div>
<div class="form-group">
<label class="col-sm-5 control-label">物料数合计:</label>
<div class="col-sm-7">
<input name="materialSum" th:field="*{materialSum}" class="form-control" type="text" readonly>
</div>
</div>
<div class="form-group">
<label class="col-sm-5 control-label">数量合计:</label>
<div class="col-sm-7">
<input name="enterpriseSum" th:field="*{enterpriseSum}" class="form-control" type="text" readonly>
</div>
</div>
<div class="form-group">
<label class="col-sm-5 control-label">开票额度比例:</label>
<div class="col-sm-7">
<div class="input-group">
<input name="invoiceQuotaRatio" th:field="*{invoiceQuotaRatio}" class="form-control" type="text" id="invoiceQuotaRatioInput" readonly>
<span class="input-group-addon">%</span>
</div>
</div>
</div>
<div class="form-group">
<label class="col-sm-5 control-label">开票金额(美元):</label>
<div class="col-sm-7">
<input name="invoiceAmountUsd" th:field="*{invoiceAmountUsd}" class="form-control" type="text" id="invoiceAmountUsdInput" readonly>
</div>
</div>
<div class="form-group">
<label class="col-sm-5 control-label">开票用途:</label>
<div class="col-sm-7">
<input name="invoicePurpose" th:field="*{invoicePurpose}" class="form-control" type="text" readonly>
</div>
</div>
<div class="form-group">
<label class="col-sm-5 control-label is-required">实际开票金额(RMB):</label>
<div class="col-sm-7">
<input name="actualInvoiceAmountRmb" th:field="*{actualInvoiceAmountRmb}" class="form-control" type="text" required readonly>
</div>
</div>
<div class="form-group">
<label class="col-sm-5 control-label is-required">实际开票金额(美元):</label>
<div class="col-sm-7">
<input name="actualInvoiceAmountUsd" th:field="*{actualInvoiceAmountUsd}" class="form-control" type="text" required readonly>
</div>
</div>
<div class="form-group">
<label class="col-sm-5 control-label is-required">发票备注:</label>
<div class="col-sm-7">
<input name="invoiceRemark" th:field="*{invoiceRemark}" class="form-control" type="text" readonly>
</div>
</div>
<div class="form-group">
<label class="col-sm-5 control-label is-required">开票日期:</label>
<div class="col-sm-7">
<div class="input-group date">
<input name="invoiceData" th:value="${#dates.format(taxInvoice.invoiceData, 'yyyy-MM-dd')}" class="form-control" placeholder="yyyy-MM-dd" type="text" readonly>
<span class="input-group-addon"><i class="fa fa-calendar"></i></span>
</div>
</div>
</div>
<div class="form-group">
<label class="col-sm-5 control-label">发票代码:</label>
<div class="col-sm-7">
<input name="invoiceCode" th:field="*{invoiceCode}" class="form-control" type="text" readonly>
</div>
</div>
<div class="form-group">
<label class="col-sm-5 control-label">发票号码:</label>
<div class="col-sm-7">
<input name="invoicePhone" th:field="*{invoicePhone}" class="form-control" type="text" readonly>
</div>
</div>
<div class="container">
<div class="row">
<h4 class="font-weight-bold">导入发票:</h4>
</div>
<div class="file-loading col-sm-8">
<input class="file-upload" id="singleFile" name="file" type="file">
</div>
</div>
<!-- 用户评价 -->
<!-- <div class="form-group">-->
<!-- <label class="col-sm-4 control-label">导入发票:</label>-->
<!-- </div>-->
</form>
</div>
<th:block th:include="include :: footer" />
<th:block th:include="include :: datetimepicker-js" />
<th:block th:include="include :: bootstrap-fileinput-js" />
<script th:inline="javascript">
var materialProcessMethodDatas = [[${@dict.getType('processMethod')}]];
var materialTypeDatas = [[${@category.getChildByCode('materialType')}]];
var taxInvoiceStatusDatas = [[${@dict.getType('tax_invoice_status')}]];
var taxInvoice = [[${taxInvoice}]];
var prefix = ctx + "financial/taxInvoice";
$("#form-taxInvoice-uploadUsdDetail").validate({
focusCleanup: true
});
$("input[name='invoiceData']").datetimepicker({
format: "yyyy-mm-dd",
minView: "month",
autoclose: true
});
function submitHandler() {
$.operate.save(prefix + "/uploadInvoiceDetail", $('#form-taxInvoice-uploadUsdDetail').serialize());
}
//开票物料
$(function() {
var options = {
id: 'bootstrap-table-material',
url: prefix + "/getInvoiceMaterialListByCode",
queryParams: function(params) {
return {
taxInvoiceCode: $("#taxInvoiceCode").val(),
}
},
showSearch: false,
showRefresh: false,
showToggle: false,
showColumns: false,
pagination: false, // 设置不分页
modalName: "国税发票物料",
columns: [{
checkbox: true
},
{
title: '国税发票物料ID',
field: 'invoiceMaterialId',
visible: false
},
{
title: '物料编号',
field: 'materialCode',
},
{
title: '物料名称',
field: 'materialName',
},
{
field: 'materialType',
title: '物料类型',
formatter: function(value, row, index) {
return $.table.selectCategoryLabel(materialTypeDatas, value);
}
},
{
title: '物料加工方式',
field: 'materialProcessMethod',
formatter: function(value, row, index) {
return $.table.selectDictLabel(materialProcessMethodDatas, value);
}
},
{
title: '物料品牌',
field: 'materialBrand',
},
{
title: '物料图片',
field: 'materialPhotourl',
},
{
title: '物料单位',
field: 'materialUnit',
},
{
title: '物料描述',
field: 'materialDescribe',
},
{
title: '物料的数量',
field: 'materialNum',
},
{
title: '物料的含税单价(美元)',
field: 'taxUsd',
},
{
title: '物料的不含税单价(美元)',
field: 'noTaxUsd',
},
{
title: '已出库数量',
field: 'outBoundQuantity',
},
{
title: '已验收数',
field: 'hasCheckNum',
},
{
title: '退货数',
field: 'refundsNum',
}]
};
$.table.init(options);
});
$(document).ready(function () {
var initialPreview = [];
var initialPreviewConfig = [];
var initialPreviewFileType = [];
var sysAttachFiles = taxInvoice.sysAttachFiles || []; // 确保 sysAttachFiles 是一个数组
// 遍历 sysAttachFiles 并构建 initialPreview 和 initialPreviewConfig
if (sysAttachFiles.length > 0) {
for (var i = 0; i < sysAttachFiles.length; i++) {
var sysAttachFile = sysAttachFiles[i];
if (sysAttachFile) {
var delSysAttachFile = generFilDel(sysAttachFile);
initialPreview.push(sysAttachFile.url);
initialPreviewConfig.push(delSysAttachFile);
}
}
}
// 单图上传
$("#singleFile").fileinput({
uploadUrl: ctx + "common/uploadSingleFile",
dropZoneTitle: '可以将文件拖放到这里,支持文件上传',
language: 'zh',
allowedFileExtensions: ['bmp', 'gif', 'jpg', 'jpeg', 'png', 'doc', 'docx', 'xls', 'xlsx', 'ppt', 'pptx', 'html', 'htm', 'txt', 'text', 'rar', 'zip', 'gz', 'bz2', 'pdf', 'bpmn', 'bar', 'db'],
showPreview: true, // 是否显示预览
fileSizeGetter: true,
previewFileType: ['image', 'txt', 'text','pdf'],
validateInitialCount: true,
preferIconicPreview: true, // 这将强制缩略图按照以下文件扩展名的图标显示
maxFileCount: 1,
autoReplace: true, // 自动替换
showUpload: false, // 不显示上传按钮
showCaption: false, // 不显示标题
showRemove: false, // 显示移除按钮
initialPreview: initialPreview,
initialPreviewConfig: initialPreviewConfig,
initialPreviewFileType: initialPreviewFileType,
initialPreviewAsData: true, // 默认为数据
}).on('filebatchselected', function (event, data, previewId, index) {
// 当文件被选中时,开始上传
$(this).fileinput("upload");
}).on('fileuploaded', function (event, data, previewId, index) {
log.info("data:" + JSON.stringify(data));
var response = data.response;
var attachFileId = response.data.id;
if (response.code === web_status.SUCCESS) {
$('#fileIdStr').val(attachFileId);
$.modal.msgSuccess("上传成功");
} else {
$.modal.alertError(response.msg);
}
}).on('filebatchremoved', function (event, id, index) {
$("#fileIdStr").val('');
});
// 添加清除输入框值的功能
$(".file-upload").on('fileclear', function (event) {
$("#fileIdStr").val('');
});
// 生成文件删除配置
function generFilDel(file) {
if (file) {
var type = file.url.substr(file.url.lastIndexOf('.') + 1);
return {
type: getTypeByExtension(type),
size: file.size,
caption: file.name,
url: prefix + "/deletePic",
key: file.id,
downloadUrl: file.url
};
}
}
// 根据文件扩展名获取文件类型
function getTypeByExtension(extension) {
switch (extension) {
case 'pdf':
return "pdf";
case 'text':
return "text";
case 'mp4':
return {type: "video", filetype: "video/mp4"};
case 'txt':
return "txt";
case 'db':
return "db";
default:
return "";
}
}
});
// var attachId = $("#photoAttachId").val();
// var fileIdList=[];
// var fileList=[];
// if(attachId){
// $.ajax({
// type: "get",
// url: ctx + "system/attach/file/getListByAttachId",
// data: {attachId:attachId},
// cache: false,
// async: false, // 设置成同步
// dataType: 'json',
// success: function(result) {
// if (result.code == web_status.SUCCESS) {
// result.data.forEach((item) => {
// fileIdList.push(item.id);
// fileList.push({name: item.name, url: item.url, attachFileId: item.id,isBind:true});
// });
// } else {
// $.modal.msgError(result.msg);
// }
// },
// error: function(error) {
// $.modal.msgError("获取附件失败。");
// }
// });
// }
</script>
</body>
</html>

14
ruoyi-admin/src/main/resources/templates/include.html

@ -120,14 +120,24 @@
<script th:src="@{/ajax/libs/jasny/jasny-bootstrap.min.js}"></script>
</div>
<!-- fileinput文件上传插件 -->
<!--<div th:fragment="bootstrap-fileinput-css">-->
<!-- <link th:href="@{/ajax/libs/bootstrap-fileinput/fileinput.min.css?v=20201202}" rel="stylesheet"/>-->
<!--</div>-->
<!--<div th:fragment="bootstrap-fileinput-js">-->
<!-- <script th:src="@{/ajax/libs/bootstrap-fileinput/fileinput.min.js?v=20201202}"></script>-->
<!--</div>-->
<!-- fileinput文件上传插件 -->
<div th:fragment="bootstrap-fileinput-css">
<link th:href="@{/ajax/libs/bootstrap-fileinput/fileinput.min.css?v=20201202}" rel="stylesheet"/>
<link th:href="@{/ajax/libs/bootstrap-fileinput/fileinput.min.css?v=5.5.2}" rel="stylesheet"/>
</div>
<div th:fragment="bootstrap-fileinput-js">
<script th:src="@{/ajax/libs/bootstrap-fileinput/fileinput.min.js?v=20201202}"></script>
<script th:src="@{/ajax/libs/bootstrap-fileinput/fileinput.min.js?v=5.5.2}"></script>
</div>
<!-- duallistbox双列表框插件 -->
<div th:fragment="bootstrap-duallistbox-css">
<link th:href="@{/ajax/libs/duallistbox/bootstrap-duallistbox.min.css}" rel="stylesheet"/>

1
ruoyi-admin/src/main/resources/templates/purchase/purchaseQuote/taskCgjlVerify.html

@ -314,7 +314,6 @@
$('input[name="p_COM_comment"]').val($('textarea[name="comment"]').val());
}
var tableData = $("#bootstrap-sub-table-purchaseQuoteChild").bootstrapTable('getData');
$('input[name="purchaseQuoteChildLists"]').val(JSON.stringify(tableData));
var formData = $("#form-purchaseQuote-cgjl-audit").serialize();
$.operate.save(prefix + "/complete/" + taskId,formData);
}

16
ruoyi-admin/src/main/resources/templates/system/salesOrder/add.html

@ -184,7 +184,7 @@
<div class="form-group">
<label class="col-sm-3 control-label is-required">是否含税:</label>
<div class="col-sm-8">
<div class="radio-box" th:each="dict : ${@dict.getType('sys_confirm_tax')}">
<div class="radio-box" th:each="dict : ${@dict.getType('sys_whether')}">
<input required type="radio" th:id="${'confirmTax_' + dict.dictCode}"
name="confirmTax" th:value="${dict.dictValue}" th:checked="${dict.default}">
<label th:for="${'confirmTax_' + dict.dictCode}" th:text="${dict.dictLabel}"></label>
@ -325,7 +325,7 @@
{checkbox: true},
{field: 'index',align: 'center', title: "序号",
formatter: function (value, row, index,column) {
return $.table.serialNumber(index) - 1;
return $.table.serialNumber(index);
}
},
{title: '物料索引id',field: 'materialId',align: 'center',visible: false},
@ -848,14 +848,14 @@
var iframeWin = window[layero.find('iframe')[0]['name']];
var rowData = iframeWin.$('#bootstrap-select-table').bootstrapTable('getSelections');
//判断是否重复
var rows = $("#bootstrap-sub-table-order").bootstrapTable('getData').length;
for(var j=0;i<rows;j++){
var data = $("#bootstrap-sub-table-order").bootstrapTable('getData');
for (var i = 0;i<data.length;j++){
if(data[j].materialNo==rowData[j].materialNo){
var rows = rowData.length;
var materialData = $("#bootstrap-sub-table-order").bootstrapTable('getData');
for(var j=0;j<rows;j++){
for (var i = 0;i< materialData.length;i++){
if(rowData[j].materialNo == materialData[i].materialCode){
//如果是物料料号的相同,则从rowData清除相同的料号物料
rowData.splice(j,1);
$.modal.alertError("不能选择已添加过的相同料号" + rowData[j].materialNo);
rowData.splice(j,1);
return;
}
}

12
ruoyi-admin/src/main/resources/templates/system/salesOrder/detail.html

@ -202,8 +202,8 @@
<label class="col-sm-3 control-label is-required">是否含税:</label>
<div class="col-sm-8">
<div class="radio-box" th:each="dict : ${@dict.getType('sys_confirm_tax')}">
<input required type="radio" th:id="${'confirmTax_' + dict.dictCode}"
name="confirmTax" th:value="${dict.dictValue}" th:checked="${dict.default}" th:disabled="${dict.default ? 'disabled' : ''}">
<input type="radio" th:id="${'confirmTax_' + dict.dictCode}"
name="confirmTax" th:value="${dict.dictValue}" th:field="*{confirmTax}" disabled required />
<label th:for="${'confirmTax_' + dict.dictCode}" th:text="${dict.dictLabel}"></label>
</div>
</div>
@ -218,8 +218,8 @@
<label class="col-sm-3 control-label is-required">是否开票:</label>
<div class="col-sm-8">
<div class="radio-box" th:each="dict : ${@dict.getType('sys_whether')}">
<input required type="radio" th:id="${'invoice_' + dict.dictCode}"
name="invoice" th:value="${dict.dictValue}" th:checked="${dict.default}" th:disabled="${dict.default ? 'disabled' : ''}">
<input type="radio" th:id="${'invoice_' + dict.dictCode}"
name="invoice" th:value="${dict.dictValue}" th:field="*{invoice}" disabled required>
<label th:for="${'invoice_' + dict.dictCode}" th:text="${dict.dictLabel}"></label>
</div>
</div>
@ -246,8 +246,8 @@
<label class="col-sm-3 control-label">计划交付时间:</label>
<div class="col-sm-8">
<div class="input-group date">
<input name="deliveryTime" class="form-control" placeholder="yyyy-mm-dd" type="text" disabled/>
<span class="input-group-addon" th:value="*{deliveryTime}" disabled><i class="fa fa-calendar"></i></span>
<input name="deliveryTime" class="form-control" placeholder="yyyy-mm-dd" type="text" th:value="*{deliveryTime}" disabled/>
<span class="input-group-addon" disabled><i class="fa fa-calendar"></i></span>
</div>
</div>
</div>

21
ruoyi-admin/src/main/resources/templates/system/salesOrder/edit.html

@ -95,6 +95,12 @@
<input name="enterpriseName" class="form-control" type="text" th:field="*{enterpriseName}" required readonly>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">客户料号:</label>
<div class="col-sm-8">
<input id="enterpriseMaterialNo" name="enterpriseMaterialNo" th:field="*{enterpriseMaterialNo}" class="form-control" type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">事业部:</label>
<div class="col-sm-8">
@ -198,12 +204,13 @@
<label class="col-sm-3 control-label is-required">是否含税:</label>
<div class="col-sm-8">
<div class="radio-box" th:each="dict : ${@dict.getType('sys_confirm_tax')}">
<input type="radio" th:id="${'confirmTax_' + dict.dictCode}" th:field="*{confirmTax}"
<input type="radio" th:id="${'confirmTax_' + dict.dictCode}" th:field="*{confirmTax}"
name="confirmTax" th:value="${dict.dictValue}" required>
<label th:for="${'confirmTax_' + dict.dictCode}" th:text="${dict.dictLabel}"></label>
</div>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required" id="rmbLabel">国内税率:</label>
<div class="col-sm-8">
@ -694,14 +701,14 @@
if (rmb1== null){
rmb1 = 0;
}
var rows = $("#bootstrap-table-editOrder").bootstrapTable('getData').length;
for(var j=0;i<rows;j++){
var data = $("#bootstrap-table-editOrder").bootstrapTable('getData');
for (var i = 0;i<data.length;j++){
if(data[j].materialNo==rowData[j].materialNo){
var rows = rowData.length;
var materialData = $("#bootstrap-table-editOrder").bootstrapTable('getData');
for(var j=0;j<rows;j++){
for (var i = 0;i< data.length;i++){
if(rowData[j].materialNo == materialData[i].materialCode){
//如果是物料料号的相同,则从rowData清除相同的料号物料
rowData.splice(j,1);
$.modal.alertError("不能选择已添加过的相同料号" + rowData[j].materialNo);
rowData.splice(j,1);
return;
}
}

2
ruoyi-admin/src/main/resources/templates/system/salesOrder/salesOrder.html

@ -316,7 +316,7 @@
{title: '物料数合计',field: 'materialSum'},
{title: '数量合计',field: 'enterpriseSum'},
{title: '是否含税',field:'confirmTax',formatter:function(value, row, index) {
$.table.selectDictLabel(confirmTaxDatas, value);
return $.table.selectDictLabel(confirmTaxDatas, value);
}
},
{title: '不含税单价(RMB)',field: 'noRmbPrice',visible:false},

12
ruoyi-admin/src/main/resources/templates/system/salesOrder/taskModifyApply.html

@ -66,6 +66,12 @@
<input required name="enterpriseName" class="form-control" type="text" th:field="*{enterpriseName}" readonly>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">客户料号:</label>
<div class="col-sm-8">
<input id="enterpriseMaterialNo" name="enterpriseMaterialNo" th:field="*{enterpriseMaterialNo}" class="form-control" type="text" readonly>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">事业部:</label>
<div class="col-sm-8">
@ -164,9 +170,9 @@
<div class="form-group">
<label class="col-sm-3 control-label is-required">是否含税:</label>
<div class="col-sm-8">
<div class="radio-box" th:each="dict : ${@dict.getType('sys_confirm_tax')}">
<div class="radio-box" th:each="dict : ${@dict.getType('sys_whether')}">
<input type="radio" th:id="${'confirmTax_' + dict.dictCode}" required
name="confirmTax" th:value="${dict.dictValue}" th:checked="${dict.default}">
name="confirmTax" th:value="${dict.dictValue}" th:field="*{confirmTax}" />
<label th:for="${'confirmTax_' + dict.dictCode}" th:text="${dict.dictLabel}"></label>
</div>
</div>
@ -182,7 +188,7 @@
<div class="col-sm-8">
<div class="radio-box" th:each="dict : ${@dict.getType('sys_whether')}">
<input required type="radio" th:id="${'invoice_' + dict.dictCode}"
name="invoice" th:value="${dict.dictValue}" th:checked="${dict.default}">
name="invoice" th:value="${dict.dictValue}" th:field="*{invoice}">
<label th:for="${'invoice_' + dict.dictCode}" th:text="${dict.dictLabel}"></label>
</div>
</div>

17
ruoyi-admin/src/main/resources/templates/system/salesOrder/taskYwjlVerify.html

@ -64,6 +64,12 @@
<input name="enterpriseName" class="form-control" type="text" th:field="*{enterpriseName}" required readonly>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">客户料号:</label>
<div class="col-sm-8">
<input id="enterpriseMaterialNo" name="enterpriseMaterialNo" th:field="*{enterpriseMaterialNo}" class="form-control" type="text" readonly>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">事业部:</label>
<div class="col-sm-8">
@ -159,10 +165,10 @@
<div class="form-group">
<label class="col-sm-6 control-label is-required">是否含税:</label>
<div class="col-sm-6">
<div class="radio-box" th:each="dict : ${@dict.getType('sys_confirm_tax')}">
<input type="radio" th:id="${'confirmFax_' + dict.dictCode}" name="confirmFax"
th:value="${dict.dictValue}" th:checked="${dict.isDefault == 'Y' ? true : false}" disabled required>
<label th:for="${'confirmFax_' + dict.dictCode}" th:text="${dict.dictLabel}"></label>
<div class="radio-box" th:each="dict : ${@dict.getType('sys_whether')}">
<input type="radio" th:id="${'confirmTax_' + dict.dictCode}" name="confirmTax"
th:value="${dict.dictValue}" th:field="*{confirmTax}" disabled required>
<label th:for="${'confirmTax_' + dict.dictCode}" th:text="${dict.dictLabel}"></label>
</div>
</div>
</div>
@ -177,7 +183,8 @@
<div class="col-sm-8">
<div class="radio-box" th:each="dict : ${@dict.getType('sys_whether')}">
<input type="radio"
name="invoice" th:value="${dict.dictValue}" th:checked="${dict.default}" disabled required>
name="invoice" th:value="${dict.dictValue}" th:checked="${dict.default}"
th:field="*{invoice}" disabled required />
<label th:for="${'invoice_' + dict.dictCode}" th:text="${dict.dictLabel}"></label>
</div>
</div>

18
ruoyi-admin/src/main/resources/templates/system/salesOrder/taskYwzgVerify.html

@ -64,6 +64,12 @@
<input name="enterpriseName" class="form-control" type="text" th:field="*{enterpriseName}" required readonly>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">客户料号:</label>
<div class="col-sm-8">
<input id="enterpriseMaterialNo" name="enterpriseMaterialNo" th:field="*{enterpriseMaterialNo}" class="form-control" type="text" readonly>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">事业部:</label>
<div class="col-sm-8">
@ -157,12 +163,12 @@
</div>
</div>
<div class="form-group">
<label class="col-sm-6 control-label is-required">是否含税:</label>
<div class="col-sm-6">
<label class="col-sm-3 control-label is-required">是否含税:</label>
<div class="col-sm-8">
<div class="radio-box" th:each="dict : ${@dict.getType('sys_confirm_tax')}">
<input type="radio" th:id="${'confirmFax_' + dict.dictCode}" name="confirmFax"
th:value="${dict.dictValue}" th:checked="${dict.isDefault == 'Y' ? true : false}" disabled required>
<label th:for="${'confirmFax_' + dict.dictCode}" th:text="${dict.dictLabel}"></label>
<input type="radio" th:id="${'confirmTax_' + dict.dictCode}" name="confirmTax"
th:value="${dict.dictValue}" th:checked="*{confirmTax}" disabled required>
<label th:for="${'confirmTax_' + dict.dictCode}" th:text="${dict.dictLabel}"></label>
</div>
</div>
</div>
@ -177,7 +183,7 @@
<div class="col-sm-8">
<div class="radio-box" th:each="dict : ${@dict.getType('sys_whether')}">
<input type="radio"
name="invoice" th:value="${dict.dictValue}" th:checked="${dict.default}" disabled required>
name="invoice" th:value="${dict.dictValue}" th:field="*{invoice}" disabled required>
<label th:for="${'invoice_' + dict.dictCode}" th:text="${dict.dictLabel}"></label>
</div>
</div>

18
ruoyi-admin/src/main/resources/templates/system/salesOrder/taskZozjVerify.html

@ -64,6 +64,12 @@
<input name="enterpriseName" class="form-control" type="text" th:field="*{enterpriseName}" required readonly>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">客户料号:</label>
<div class="col-sm-8">
<input id="enterpriseMaterialNo" name="enterpriseMaterialNo" th:field="*{enterpriseMaterialNo}" class="form-control" type="text" readonly>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">事业部:</label>
<div class="col-sm-8">
@ -159,10 +165,10 @@
<div class="form-group">
<label class="col-sm-6 control-label is-required">是否含税:</label>
<div class="col-sm-6">
<div class="radio-box" th:each="dict : ${@dict.getType('sys_confirm_tax')}">
<input type="radio" th:id="${'confirmFax_' + dict.dictCode}" name="confirmFax"
th:value="${dict.dictValue}" th:checked="${dict.isDefault == 'Y' ? true : false}" disabled required>
<label th:for="${'confirmFax_' + dict.dictCode}" th:text="${dict.dictLabel}"></label>
<div class="radio-box" th:each="dict : ${@dict.getType('sys_whether')}">
<input type="radio" th:id="${'confirmTax_' + dict.dictCode}" name="confirmTax"
th:value="${dict.dictValue}" th:field="*{confirmTax}" disabled required>
<label th:for="${'confirmTax_' + dict.dictCode}" th:text="${dict.dictLabel}"></label>
</div>
</div>
</div>
@ -177,7 +183,7 @@
<div class="col-sm-8">
<div class="radio-box" th:each="dict : ${@dict.getType('sys_whether')}">
<input type="radio"
name="invoice" th:value="${dict.dictValue}" th:checked="${dict.default}" disabled required>
name="invoice" th:value="${dict.dictValue}" th:field="*{invoice}" disabled required>
<label th:for="${'invoice_' + dict.dictCode}" th:text="${dict.dictLabel}"></label>
</div>
</div>
@ -444,7 +450,7 @@
$("input[name='enterpriseName']").val(data.enterpriseName);
$("input[name='customerPurser']").val(data.customerPurser);
$("input[name='taxRate']").val(data.taxRate);
$("input[name='confirmFax']").val(data.confirmTax);
$("input[name='confirmTax']").val(data.confirmTax);
$("#commonCurrency_add").val(data.commonCurrency).trigger('change');
commonCurrency = $("#commonCurrency_edit option:selected").val();
console.log("commonCurrency",commonCurrency);

48
ruoyi-admin/src/main/resources/templates/system/supplier/add.html

@ -171,6 +171,18 @@
<input name="bankAccount" class="form-control" type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">开票公司名称:</label>
<div class="col-sm-8">
<input name="invoiceCompanyName" class="form-control" type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">开票公司税号:</label>
<div class="col-sm-8">
<input name="companyTaxNumber" class="form-control" type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">RMB注册资金:</label>
<div class="col-sm-8">
@ -210,6 +222,42 @@
<input name="taxRate" class="form-control" type="text" placeholder="%">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">发货人:</label>
<div class="col-sm-8">
<input name="deliverPerson" class="form-control" th:field="*{deliverPerson}" type="text" required />
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">发货人电话:</label>
<div class="col-sm-8">
<input name="deliverPersonPhone" class="form-control" th:field="*{deliverPersonPhone}" type="text" required />
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">发货人地址:</label>
<div class="col-sm-8">
<input name="deliverPersonAddress" class="form-control" th:field="*{deliverPersonAddress}" type="text" />
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">收货人:</label>
<div class="col-sm-8">
<input name="receiverPerson" class="form-control" th:field="*{receiverPerson}" type="text" required />
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">收货人电话:</label>
<div class="col-sm-8">
<input name="receiverPersonPhone" class="form-control" th:field="*{receiverPersonPhone}" type="text" required />
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">收货地址:</label>
<div class="col-sm-8">
<input name="receiverAddress" class="form-control" th:field="*{receiverAddress}" type="text" required />
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">证件:</label>
<div class="col-sm-10">

48
ruoyi-admin/src/main/resources/templates/system/supplier/detail.html

@ -179,6 +179,18 @@
<input name="bankAccount" disabled th:field="*{bankAccount}" class="form-control" type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">开票公司名称:</label>
<div class="col-sm-8">
<input name="invoiceCompanyName" class="form-control" type="text" required disabled />
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">开票公司税号:</label>
<div class="col-sm-8">
<input name="companyTaxNumber" class="form-control" type="text" required disabled />
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">RMB注册资金:</label>
<div class="col-sm-8">
@ -220,6 +232,42 @@
class="form-control" type="text" placeholder="%">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">发货人:</label>
<div class="col-sm-8">
<input name="deliverPerson" class="form-control" th:field="*{deliverPerson}" type="text" required disabled />
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">发货人电话:</label>
<div class="col-sm-8">
<input name="deliverPersonPhone" class="form-control" th:field="*{deliverPersonPhone}" type="text" disabled required />
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">发货人地址:</label>
<div class="col-sm-8">
<input name="deliverPersonAddress" class="form-control" th:field="*{deliverPersonAddress}" type="text" disabled/>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">收货人:</label>
<div class="col-sm-8">
<input name="receiverPerson" class="form-control" th:field="*{receiverPerson}" type="text" required disabled />
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">收货人电话:</label>
<div class="col-sm-8">
<input name="receiverPersonPhone" class="form-control" th:field="*{receiverPersonPhone}" type="text" required disabled />
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">收货地址:</label>
<div class="col-sm-8">
<input name="receiverAddress" class="form-control" th:field="*{receiverAddress}" type="text" required disabled />
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">证件:</label>
<div class="col-sm-10">

48
ruoyi-admin/src/main/resources/templates/system/supplier/edit.html

@ -172,6 +172,18 @@
<input name="bankAccount" th:field="*{bankAccount}" class="form-control" type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">开票公司名称:</label>
<div class="col-sm-8">
<input name="invoiceCompanyName" class="form-control" type="text" required />
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">开票公司税号:</label>
<div class="col-sm-8">
<input name="companyTaxNumber" class="form-control" type="text" required />
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">RMB注册资金:</label>
<div class="col-sm-8">
@ -211,6 +223,42 @@
<input name="taxRate" th:field="*{taxRate}" class="form-control" type="text" placeholder="%">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">发货人:</label>
<div class="col-sm-8">
<input name="deliverPerson" class="form-control" th:field="*{deliverPerson}" type="text" required />
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">发货人电话:</label>
<div class="col-sm-8">
<input name="deliverPersonPhone" class="form-control" th:field="*{deliverPersonPhone}" type="text" required />
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">发货人地址:</label>
<div class="col-sm-8">
<input name="deliverPersonAddress" class="form-control" th:field="*{deliverPersonAddress}" type="text" />
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">收货人:</label>
<div class="col-sm-8">
<input name="receiverPerson" class="form-control" th:field="*{receiverPerson}" type="text" required>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">收货人电话:</label>
<div class="col-sm-8">
<input name="receiverPersonPhone" class="form-control" th:field="*{receiverPersonPhone}" type="text" required>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">收货地址:</label>
<div class="col-sm-8">
<input name="receiverAddress" class="form-control" th:field="*{receiverAddress}" type="text" required>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">证件:</label>
<div class="col-sm-8">

48
ruoyi-admin/src/main/resources/templates/system/supplier/taskCgjlVerify.html

@ -207,6 +207,18 @@
<input name="bankAccount" disabled th:field="*{bankAccount}" class="form-control" type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">开票公司名称:</label>
<div class="col-sm-8">
<input name="invoiceCompanyName" class="form-control" type="text" required disabled />
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">开票公司税号:</label>
<div class="col-sm-8">
<input name="companyTaxNumber" class="form-control" type="text" required disabled />
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">RMB注册资金:</label>
<div class="col-sm-8">
@ -248,6 +260,42 @@
class="form-control" type="text" placeholder="%">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">发货人:</label>
<div class="col-sm-8">
<input name="deliverPerson" class="form-control" th:field="*{deliverPerson}" type="text" required disabled />
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">发货人电话:</label>
<div class="col-sm-8">
<input name="deliverPersonPhone" class="form-control" th:field="*{deliverPersonPhone}" type="text" disabled required />
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">发货人地址:</label>
<div class="col-sm-8">
<input name="deliverPersonAddress" class="form-control" th:field="*{deliverPersonAddress}" type="text" disabled/>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">收货人:</label>
<div class="col-sm-8">
<input name="receiverPerson" class="form-control" th:field="*{receiverPerson}" type="text" required disabled />
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">收货人电话:</label>
<div class="col-sm-8">
<input name="receiverPersonPhone" class="form-control" th:field="*{receiverPersonPhone}" type="text" required disabled />
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">收货地址:</label>
<div class="col-sm-8">
<input name="receiverAddress" class="form-control" th:field="*{receiverAddress}" type="text" required disabled />
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">证件:</label>
<div class="col-sm-10">

48
ruoyi-admin/src/main/resources/templates/system/supplier/taskCgzgVerify.html

@ -207,6 +207,18 @@
<input name="bankAccount" disabled th:field="*{bankAccount}" class="form-control" type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">开票公司名称:</label>
<div class="col-sm-8">
<input name="invoiceCompanyName" class="form-control" type="text" required disabled />
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">开票公司税号:</label>
<div class="col-sm-8">
<input name="companyTaxNumber" class="form-control" type="text" required disabled />
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">RMB注册资金:</label>
<div class="col-sm-8">
@ -248,6 +260,42 @@
class="form-control" type="text" placeholder="%">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">发货人:</label>
<div class="col-sm-8">
<input name="deliverPerson" class="form-control" th:field="*{deliverPerson}" type="text" required disabled />
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">发货人电话:</label>
<div class="col-sm-8">
<input name="deliverPersonPhone" class="form-control" th:field="*{deliverPersonPhone}" type="text" disabled required />
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">发货人地址:</label>
<div class="col-sm-8">
<input name="deliverPersonAddress" class="form-control" th:field="*{deliverPersonAddress}" type="text" disabled/>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">收货人:</label>
<div class="col-sm-8">
<input name="receiverPerson" class="form-control" th:field="*{receiverPerson}" type="text" required disabled />
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">收货人电话:</label>
<div class="col-sm-8">
<input name="receiverPersonPhone" class="form-control" th:field="*{receiverPersonPhone}" type="text" required disabled />
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">收货地址:</label>
<div class="col-sm-8">
<input name="receiverAddress" class="form-control" th:field="*{receiverAddress}" type="text" required disabled />
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">证件:</label>
<div class="col-sm-10">

48
ruoyi-admin/src/main/resources/templates/system/supplier/taskModifyApply.html

@ -180,6 +180,18 @@
<input name="bankAccount" th:field="*{bankAccount}" class="form-control" type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">开票公司名称:</label>
<div class="col-sm-8">
<input name="invoiceCompanyName" class="form-control" type="text" required />
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">开票公司税号:</label>
<div class="col-sm-8">
<input name="companyTaxNumber" class="form-control" type="text" required />
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">RMB注册资金:</label>
<div class="col-sm-8">
@ -219,6 +231,42 @@
<input name="taxRate" th:field="*{taxRate}" class="form-control" type="text" placeholder="%">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">发货人:</label>
<div class="col-sm-8">
<input name="deliverPerson" class="form-control" th:field="*{deliverPerson}" type="text" required />
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">发货人电话:</label>
<div class="col-sm-8">
<input name="deliverPersonPhone" class="form-control" th:field="*{deliverPersonPhone}" type="text" required />
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">发货人地址:</label>
<div class="col-sm-8">
<input name="deliverPersonAddress" class="form-control" th:field="*{deliverPersonAddress}" type="text" />
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">收货人:</label>
<div class="col-sm-8">
<input name="receiverPerson" class="form-control" th:field="*{receiverPerson}" type="text" required>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">收货人电话:</label>
<div class="col-sm-8">
<input name="receiverPersonPhone" class="form-control" th:field="*{receiverPersonPhone}" type="text" required>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">收货地址:</label>
<div class="col-sm-8">
<input name="receiverAddress" class="form-control" th:field="*{receiverAddress}" type="text" required>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">证件:</label>
<div class="col-sm-8">

Loading…
Cancel
Save