mhsnet 2 years ago
commit d2c1dc1d26

@ -29,14 +29,14 @@ spring:
dynamic:
enabled: true
seata: false #分布式事务开关
primary: master #设置默认的数据源或者数据源组,默认值即为master
primary: sc-boot #设置默认的数据源或者数据源组,默认值即为master
strict: true #严格匹配数据源,默认false. true未匹配到指定数据源时抛异常,false使用默认数据源
# datasource:
# master:
# url: jdbc:mysql://${spring.datasource.host}:${spring.datasource.port}/${spring.datasource.dbname}?useUnicode=true&characterEncoding=utf-8&useSSL=false&allowMultiQueries=true&serverTimezone=UTC
# username: ${spring.datasource.username}
# password: ${spring.datasource.password}
# driver-class-name: com.mysql.cj.jdbc.Driver
# datasource:
# master:
# url: jdbc:mysql://${spring.datasource.host}:${spring.datasource.port}/${spring.datasource.dbname}?useUnicode=true&characterEncoding=utf-8&useSSL=false&allowMultiQueries=true&serverTimezone=UTC
# username: ${spring.datasource.username}
# password: ${spring.datasource.password}
# driver-class-name: com.mysql.cj.jdbc.Driver
#===================== Redis配置 =====================
redis:
@ -105,7 +105,7 @@ mybatis-plus:
mapper-locations: classpath*:mapper/**/*.xml
global-config:
db-config:
logic-delete-field: delete_mark # 全局逻辑删除的实体字段名(since 3.3.0,配置后可以忽略不配置步骤2)
logic-delete-field: deleteMark # 全局逻辑删除的实体字段名(since 3.3.0,配置后可以忽略不配置步骤2)
logic-delete-value: 1 # 逻辑已删除值(默认为 1)
logic-not-delete-value: 0d # 逻辑未删除值(默认为 0)
# @TableLogic //实体类配置这个但前面配置了logic-delete-field于是可以不配置

@ -5,11 +5,11 @@ import jnpf.base.UserInfo;
import jnpf.util.DateUtil;
import jnpf.util.UserProvider;
import jnpf.util.context.SpringContext;
import lombok.extern.slf4j.Slf4j;
import org.apache.ibatis.reflection.MetaObject;
import org.springframework.context.ApplicationContext;
import org.springframework.stereotype.Component;
import java.util.Date;
/**
* MybatisPlus
*
@ -19,40 +19,83 @@ import java.util.Date;
* @date 2019927 9:18
*/
@Component
@Slf4j
//@Configuration
//@Intercepts({@Signature(type = Executor.class, method = "update", args = {MappedStatement.class, Object.class})})
public class MybatisPlusMetaObjectHandler implements MetaObjectHandler {
//@Autowired
private static ApplicationContext applicationContext;
private UserProvider userProvider;
@Override
public void insertFill(MetaObject metaObject) {
userProvider = SpringContext.getBean(UserProvider.class);
UserInfo userInfo= userProvider.get();
Object enabledMark = this.getFieldValByName("enabledMark", metaObject);
Object creatorUserId = this.getFieldValByName("creatorUserId", metaObject);
Object creatorTime = this.getFieldValByName("creatorTime", metaObject);
Object creatorUser = this.getFieldValByName("creatorUser", metaObject);
if (enabledMark == null) {
this.setFieldValByName("enabledMark", 1, metaObject);
}
if (creatorUserId == null) {
// userProvider= applicationContext.getBean(UserProvider.class);
UserProvider userProvider = SpringContext.getBean(UserProvider.class);
UserInfo userInfo= userProvider.get();
// 可以在这里填充编码查询到编码规则自动填充
// TableInfo tableInfo = this.findTableInfo(metaObject);
// String tableName = tableInfo.getTableName();
log.info("start insert fill ....");
System.out.println(userInfo);
this.setFieldValByName("creatorUserId", userInfo.getUserId(), metaObject);
}
if (creatorTime == null) {
this.setFieldValByName("creatorTime", DateUtil.getNowDate(), metaObject);
}
if (creatorUser == null) {
this.setFieldValByName("creatorUser", userInfo.getUserId(), metaObject);
}
this.setFieldValByName("creatorUserName", userInfo.getUserName(), metaObject);
this.setFieldValByName("creatoruserid", userInfo.getUserId(), metaObject);
this.setFieldValByName("creatortime", DateUtil.getNowDate(), metaObject);
this.setFieldValByName("creatorusername", userInfo.getUserName(), metaObject);
}
@Override
public void updateFill(MetaObject metaObject) {
userProvider = SpringContext.getBean(UserProvider.class);
log.info("start update fill ....");
UserProvider userProvider = SpringContext.getBean(UserProvider.class);
System.out.println(userProvider.get());
// userProvider= applicationContext.getBean(UserProvider.class);
UserInfo userInfo = userProvider.get();
this.setFieldValByName("lastModifyTime", new Date(), metaObject);
this.setFieldValByName("lastModifyUserId", userInfo.getUserId(), metaObject);
this.setFieldValByName("lastModifyUser", userInfo.getUserId(), metaObject);
this.setFieldValByName("lastModifyTime", DateUtil.getNowDate(), metaObject);
this.setFieldValByName("lastModifyUserId", userInfo.getUserId(), metaObject);
this.setFieldValByName("lastModifyUserName", userInfo.getUserName(), metaObject);
this.setFieldValByName("deleteTime", DateUtil.getNowDate(), metaObject);
this.setFieldValByName("deleteUserId", userInfo.getUserId(), metaObject);
this.setFieldValByName("deleteUserName", userInfo.getUserName(), metaObject);
this.setFieldValByName("lastmodifytime", DateUtil.getNowDate(), metaObject);
this.setFieldValByName("lastmodifyuserid", userInfo.getUserId(), metaObject);
this.setFieldValByName("lastmodifyusername", userInfo.getUserName(), metaObject);
this.setFieldValByName("deletetime", DateUtil.getNowDate(), metaObject);
this.setFieldValByName("deleteuserid", userInfo.getUserId(), metaObject);
this.setFieldValByName("deleteusername", userInfo.getUserName(), metaObject);
}

@ -1,13 +1,9 @@
package jnpf.customer.entity;
import com.alibaba.fastjson.annotation.JSONField;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonProperty;
/**
@ -25,34 +21,35 @@ public class CustomerEntity {
@TableId("ID")
private String id;
@TableField("CREATOR_USER_ID")
@TableField(value = "CREATOR_USER_ID",fill = FieldFill.INSERT)
private String creatorUserId;
@TableField("CREATOR_USER_NAME")
@TableField(value = "CREATOR_USER_NAME",fill = FieldFill.INSERT)
private String creatorUserName;
@TableField("CREATOR_TIME")
@TableField(value = "CREATOR_TIME",fill = FieldFill.INSERT)
private Date creatorTime;
@TableField("LAST_MODIFY_USER_ID")
@TableField(value = "LAST_MODIFY_USER_ID",fill = FieldFill.UPDATE)
private String lastModifyUserId;
@TableField("LAST_MODIFY_USER_NAME")
@TableField(value = "LAST_MODIFY_USER_NAME",fill = FieldFill.UPDATE)
private String lastModifyUserName;
@TableField("LAST_MODIFY_TIME")
@TableField(value = "LAST_MODIFY_TIME",fill = FieldFill.UPDATE)
private Date lastModifyTime;
@TableField("DELETE_USER_ID")
@TableField(value = "DELETE_USER_ID",fill = FieldFill.UPDATE)
private String deleteUserId;
@TableField("DELETE_USER_NAME")
@TableField(value = "DELETE_USER_NAME",fill = FieldFill.UPDATE)
private String deleteUserName;
@TableField("DELETE_TIME")
@TableField(value = "DELETE_TIME",fill = FieldFill.UPDATE)
private Date deleteTime;
@TableField("DELETE_MARK")
@TableLogic
private String deleteMark;
@TableField("ORGNIZE_ID")

@ -1,8 +1,6 @@
package jnpf.materialvo.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import java.math.BigDecimal;
@ -24,34 +22,35 @@ public class MaterialEntity {
@TableId("ID")
private String id;
@TableField("CREATOR_USER_ID")
@TableField(value = "CREATOR_USER_ID",fill = FieldFill.INSERT)
private String creatorUserId;
@TableField("CREATOR_USER_NAME")
@TableField(value = "CREATOR_USER_NAME",fill = FieldFill.INSERT)
private String creatorUserName;
@TableField("CREATOR_TIME")
@TableField(value = "CREATOR_TIME",fill = FieldFill.INSERT)
private Date creatorTime;
@TableField("LAST_MODIFY_USER_ID")
@TableField(value = "LAST_MODIFY_USER_ID",fill = FieldFill.UPDATE)
private String lastModifyUserId;
@TableField("LAST_MODIFY_USER_NAME")
@TableField(value = "LAST_MODIFY_USER_NAME",fill = FieldFill.UPDATE)
private String lastModifyUserName;
@TableField("LAST_MODIFY_TIME")
@TableField(value = "LAST_MODIFY_TIME",fill = FieldFill.UPDATE)
private Date lastModifyTime;
@TableField("DELETE_USER_ID")
@TableField(value = "DELETE_USER_ID",fill = FieldFill.UPDATE)
private String deleteUserId;
@TableField("DELETE_USER_NAME")
@TableField(value = "DELETE_USER_NAME",fill = FieldFill.UPDATE)
private String deleteUserName;
@TableField("DELETE_TIME")
@TableField(value = "DELETE_TIME",fill = FieldFill.UPDATE)
private Date deleteTime;
@TableField("DELETE_MARK")
@TableLogic
private String deleteMark;
@TableField("ORGNIZE_ID")

@ -0,0 +1,117 @@
package jnpf.mobilePort.utils;
import org.springframework.util.FileCopyUtils;
import org.springframework.web.multipart.MultipartFile;
import java.io.ByteArrayInputStream;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
/**
* @Author: WangChuang
* @Date: 18/2/2023 1:50
* @Description //注释:
* fileMultipartFileMockMultipartFile
* * spring-test
* * MultipartFile
* * MockMultipartFile
* @Version 1.0
*/
public class MultipartFileDto implements MultipartFile {
private final String name;
private String originalFilename;
private String contentType;
private final byte[] content;
/**
* Create a new MultipartFileDto with the given content.
* @param name the name of the file
* @param content the content of the file
*/
public MultipartFileDto(String name, byte[] content) {
this(name, "", null, content);
}
/**
* Create a new MultipartFileDto with the given content.
* @param name the name of the file
* @param contentStream the content of the file as stream
* @throws IOException if reading from the stream failed
*/
public MultipartFileDto(String name, InputStream contentStream) throws IOException {
this(name, "", null, FileCopyUtils.copyToByteArray(contentStream));
}
/**
* Create a new MultipartFileDto with the given content.
* @param name the name of the file
* @param originalFilename the original filename (as on the client's machine)
* @param contentType the content type (if known)
* @param content the content of the file
*/
public MultipartFileDto(String name, String originalFilename, String contentType, byte[] content) {
this.name = name;
this.originalFilename = (originalFilename != null ? originalFilename : "");
this.contentType = contentType;
this.content = (content != null ? content : new byte[0]);
}
/**
* Create a new MultipartFileDto with the given content.
* @param name the name of the file
* @param originalFilename the original filename (as on the client's machine)
* @param contentType the content type (if known)
* @param contentStream the content of the file as stream
* @throws IOException if reading from the stream failed
*/
public MultipartFileDto(String name, String originalFilename, String contentType, InputStream contentStream)
throws IOException {
this(name, originalFilename, contentType, FileCopyUtils.copyToByteArray(contentStream));
}
@Override
public String getName() {
return this.name;
}
@Override
public String getOriginalFilename() {
return this.originalFilename;
}
@Override
public String getContentType() {
return this.contentType;
}
@Override
public boolean isEmpty() {
return (this.content.length == 0);
}
@Override
public long getSize() {
return this.content.length;
}
@Override
public byte[] getBytes() throws IOException {
return this.content;
}
@Override
public InputStream getInputStream() throws IOException {
return new ByteArrayInputStream(this.content);
}
@Override
public void transferTo(File dest) throws IOException, IllegalStateException {
FileCopyUtils.copy(this.content, dest);
}
}

@ -1,11 +0,0 @@
package jnpf.mobilePort.utils;
/**
* @Author: WangChuang
* @Date: 17/2/2023 5:48
* @Description //注释:
* @Version 1.0
*/
public class WBigDecimalUtils {
}

@ -7,8 +7,10 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import jnpf.config.ConfigValueUtil;
import jnpf.mobilePort.entity.PurchaseOrderVO;
import jnpf.mobilePort.utils.ExportPdf;
import jnpf.mobilePort.utils.MultipartFileDto;
import jnpf.permission.model.authorize.AuthorizeConditionModel;
import jnpf.permission.service.AuthorizeService;
import jnpf.purchaseorder.entity.*;
@ -19,15 +21,16 @@ import jnpf.purchaseorder.service.*;
import jnpf.util.ServletUtil;
import jnpf.util.StringUtil;
import jnpf.util.UserProvider;
import org.apache.http.entity.ContentType;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.*;
import java.lang.reflect.Field;
import java.math.BigDecimal;
import java.net.URLEncoder;
@ -73,6 +76,8 @@ public class PurchaseorderitemServiceImpl extends ServiceImpl<PurchaseorderitemM
@Resource
private PurchaseorderitemMapper purchaseorderitemMapper;
@Resource
private ConfigValueUtil configValueUtil;
@Override
public ResponseEntity<byte[]> getPdfInfo(){
PurchaseorderPagination pagination = new PurchaseorderPagination();
@ -93,7 +98,7 @@ if (pMap!=null&&pMap.size()>0){
map.put("contractNo", pVO.getContractNo());
map.put("contractCode",pVO.getContractCode());
map.put("supplierName", pVO.getSupplierName());
map.put("documentNo",pVO.getDocumentNo());
List<Purchaseorder_item0Model> list = pVO.getPurchaseorder_item0List();
Integer settlement=0;
BigDecimal settlementSum = new BigDecimal(settlement);
@ -116,13 +121,29 @@ if (pMap!=null&&pMap.size()>0){
System.out.println("AAAAAAAAAAAAAAAAAAAAAA ");
//repotData自己加测试数据
out= exportPdf.createPdf(map, "test.ftl", "/templates/export");
out = exportPdf.createPdf(map, "test.ftl", "/templates/export");
bytes = out.toByteArray();
String fileName="测试.pdf";
String fileName="废钢采购订单("+map.get("supplierName")+")("+map.get("creatorTime")+").pdf";
fileName = URLEncoder.encode(fileName, "utf-8");
headers = new HttpHeaders();
headers.add("Content-Disposition",
"attachment; filename=" + fileName);
// 存在本地文件中
InputStream inputStream = new ByteArrayInputStream(bytes);
MultipartFile file = new MultipartFileDto(ContentType.APPLICATION_OCTET_STREAM.toString(), inputStream);
String templateFilePath = configValueUtil.getTemplateFilePath();
// FileUtil.upFile(file, templateFilePath+"/wc/", fileName);
try {
File f = new File(templateFilePath+"/wc/", fileName);
//将上传的文件存储到指定位置
file.transferTo(f);
}catch (Exception e){
e.printStackTrace();
}
//"attachment; filename=" + new String(fileName.getBytes("gbk"), StandardCharsets.ISO_8859_1));
} catch (Exception e) {
log.error("导出pdf失败:{}", e);

@ -309,12 +309,12 @@ public class SupplierController {
public ActionResult<SupplierInfoVO> info(@PathVariable("id") String id){
SupplierEntity entity= supplierService.getInfo(id);
SupplierInfoVO vo=JsonUtil.getJsonToBean(entity, SupplierInfoVO.class);
if(vo.getCreatorTime()!=null){
vo.setCreatorTime(vo.getCreatorTime());
}
if(vo.getLastModifyTime()!=null){
vo.setLastModifyTime(vo.getLastModifyTime());
}
// if(vo.getCreatorTime()!=null){
// vo.setCreatorTime(vo.getCreatorTime());
// }
// if(vo.getLastModifyTime()!=null){
// vo.setLastModifyTime(vo.getLastModifyTime());
// }
//子表
//副表

@ -1,8 +1,6 @@
package jnpf.supplier.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import java.util.Date;
@ -23,34 +21,35 @@ public class SupplierEntity {
@TableId("ID")
private String id;
@TableField("CREATOR_USER_ID")
@TableField(value = "CREATOR_USER_ID",fill = FieldFill.INSERT)
private String creatorUserId;
@TableField("CREATOR_USER_NAME")
@TableField(value = "CREATOR_USER_NAME",fill = FieldFill.INSERT)
private String creatorUserName;
@TableField("CREATOR_TIME")
@TableField(value = "CREATOR_TIME",fill = FieldFill.INSERT)
private Date creatorTime;
@TableField("LAST_MODIFY_USER_ID")
@TableField(value = "LAST_MODIFY_USER_ID",fill = FieldFill.UPDATE)
private String lastModifyUserId;
@TableField("LAST_MODIFY_USER_NAME")
@TableField(value = "LAST_MODIFY_USER_NAME",fill = FieldFill.UPDATE)
private String lastModifyUserName;
@TableField("LAST_MODIFY_TIME")
@TableField(value = "LAST_MODIFY_TIME",fill = FieldFill.UPDATE)
private Date lastModifyTime;
@TableField("DELETE_USER_ID")
@TableField(value = "DELETE_USER_ID",fill = FieldFill.UPDATE)
private String deleteUserId;
@TableField("DELETE_USER_NAME")
@TableField(value = "DELETE_USER_NAME",fill = FieldFill.UPDATE)
private String deleteUserName;
@TableField("DELETE_TIME")
@TableField(value = "DELETE_TIME",fill = FieldFill.UPDATE)
private Date deleteTime;
@TableField("DELETE_MARK")
@TableLogic
private String deleteMark;
@TableField("SUPPLIER_CODE")

@ -1,13 +1,9 @@
package jnpf.vehicle.entity;
import com.alibaba.fastjson.annotation.JSONField;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonProperty;
/**
@ -25,34 +21,35 @@ public class VehicleEntity {
@TableId("ID")
private String id;
@TableField("CREATOR_USER_ID")
@TableField(value = "CREATOR_USER_ID",fill = FieldFill.INSERT)
private String creatoruserid;
@TableField("CREATOR_USER_NAME")
@TableField(value = "CREATOR_USER_NAME",fill = FieldFill.INSERT)
private String creatorusername;
@TableField("CREATOR_TIME")
@TableField(value = "CREATOR_TIME",fill = FieldFill.INSERT)
private Date creatortime;
@TableField("LAST_MODIFY_USER_ID")
@TableField(value = "LAST_MODIFY_USER_ID",fill = FieldFill.UPDATE)
private String lastmodifyuserid;
@TableField("LAST_MODIFY_USER_NAME")
@TableField(value = "LAST_MODIFY_USER_NAME",fill = FieldFill.UPDATE)
private String lastmodifyusername;
@TableField("LAST_MODIFY_TIME")
@TableField(value = "LAST_MODIFY_TIME",fill = FieldFill.UPDATE)
private Date lastmodifytime;
@TableField("DELETE_USER_ID")
@TableField(value = "DELETE_USER_ID",fill = FieldFill.UPDATE)
private String deleteuserid;
@TableField("DELETE_USER_NAME")
@TableField(value = "DELETE_USER_NAME",fill = FieldFill.UPDATE)
private String deleteusername;
@TableField("DELETE_TIME")
@TableField(value = "DELETE_TIME",fill = FieldFill.UPDATE)
private Date deletetime;
@TableField("DELETE_MARK")
@TableLogic
private String deletemark;
@TableField("ORGNIZE_ID")

@ -57,6 +57,8 @@
AND ( b.purchase_status != 0 OR b.purchase_status IS NULL )
AND ( b.purchase_status != 99 OR b.purchase_status IS NULL )
AND ( b.pound_status != '1' OR b.pound_status IS NULL )
WHERE
a.delete_mark != '1'
GROUP BY
a.id
) aaa

@ -30,9 +30,9 @@
<p style="font-weight: bold">业务部门:${name!""}</p>
<table border="1" cellspacing="0" width="100%">
<tr bgcolor="#6495ed" style="line-height: 44px" >
<td colspan="2" rowspan="2">订单日期</td>
<td colspan="3" rowspan="2">${creatorTime!""}</td>
<td colspan="4" rowspan="2">对方合同编号</td>
<td colspan="1" rowspan="2">订单日期</td>
<td colspan="5" rowspan="2">${creatorTime!""}</td>
<td colspan="3" rowspan="2">对方合同编号</td>
<td colspan="5" rowspan="2">${contractNo!""}</td>
<td colspan="4" rowspan="2">合同编号</td>
<td colspan="5" rowspan="2">${contractCode!""}</td>
@ -42,21 +42,21 @@
</tr>
<tr bgcolor="#6495ed" style="line-height: 44px">
<td colspan="2" rowspan="2">供货单位</td>
<td colspan="21" rowspan="2">${supplierName!""}</td>
<td colspan="1" rowspan="2">供货单位</td>
<td colspan="22" rowspan="2">${supplierName!""}</td>
</tr>
<tr bgcolor="#6495ed" style="">
</tr>
<tr bgcolor="#6495ed" style="line-height: 22px">
<td colspan="4">订单号</td>
<td colspan="3">订单号</td>
<td colspan="1">行号</td>
<td colspan="7">物料名称、规格型号</td>
<td colspan="5">物料名称、规格型号</td>
<td colspan="2">数量</td>
<td colspan="2">单位</td>
<td colspan="3">单价(含税)</td>
<td colspan="3">金额(含税)</td>
<td colspan="1">税率(含税)</td>
<td colspan="1">税率</td>
</tr>
<tr>
@ -68,29 +68,34 @@
<#if reportData??>
<#if reportData_index == 0>
<tr bgcolor="#6495ed" style="line-height: 22px">
<td colspan="4">${reportData.documentNo!""}</td>
<td colspan="1">${reportData_index+1!""}</td>
<td colspan="7">${reportData.materialName!""}</td>
<td colspan="2">${reportData.settlement!""}</td>
<td colspan="2">${reportData.unit!""}</td>
<td colspan="3">${reportData.price!""}</td>
<td colspan="3">${reportData.amount!""}</td>
<td colspan="1">${reportData.rate!""}</td>
<td colspan="3">${documentNo!""}</td>
<td colspan="1" style="text-align: center">${reportData_index+1!""}</td>
<td colspan="5">${reportData.materialName!""}</td>
<td colspan="2" style="text-align: center">${reportData.settlement!""}</td>
<td colspan="2" style="text-align: center">${reportData.unit!""}</td>
<td colspan="3" style="text-align: center">${reportData.price!""}</td>
<td colspan="3" style="text-align: center">${reportData.amount!""}</td>
<td colspan="1" style="text-align: center">${reportData.rate!""}</td>
</tr>
<tr>
</tr>
</#if>
</#if>
</#list>
</#if>
<tr bgcolor="#6495ed" style="line-height: 22px">
<td colspan="4">合计</td>
<td colspan="3">合计</td>
<td colspan="1"></td>
<td colspan="7"></td>
<td colspan="2">${settlementSum!""}</td>
<td colspan="5"></td>
<td colspan="2" style="text-align: center">${settlementSum!""}</td>
<td colspan="2"></td>
<td colspan="3"></td>
<td colspan="3">${amountSum!""}</td>
<td colspan="3" style="text-align: center">${amountSum!""}</td>
<td colspan="1"></td>
</tr>

Loading…
Cancel
Save