优化相关报表的扩展字段,使其分为3个字段分别展示

This commit is contained in:
jishenghua
2025-03-27 22:18:39 +08:00
parent 3c267b1ef6
commit b39fd7840a
4 changed files with 36 additions and 57 deletions

View File

@@ -1416,15 +1416,14 @@ public class DepotHeadService {
//导出明细数据
if(idList.size()>0) {
List<DepotItemVo4WithInfoEx> dataList = depotItemMapperEx.getBillDetailListByIds(idList);
String[] mpArr = mpList.split(",");
String twoTip = "";
String sheetTwoStr = "";
if ("采购".equals(subType)) {
twoTip = "供应商单据明细";
sheetTwoStr = "供应商,单据编号,单据日期,仓库名称,条码,名称,规格,型号,颜色,品牌,制造商,扩展信息,单位,序列号,批号,有效期,多属性,数量,单价,金额,税率(%),税额,价税合计,重量,备注";
sheetTwoStr = "供应商,单据编号,单据日期,仓库名称,条码,名称,规格,型号,颜色,品牌,制造商," + mpList + ",单位,序列号,批号,有效期,多属性,数量,单价,金额,税率(%),税额,价税合计,重量,备注";
} else if ("销售".equals(subType)) {
twoTip = "客户单据明细";
sheetTwoStr = "客户,单据编号,单据日期,仓库名称,条码,名称,规格,型号,颜色,品牌,制造商,扩展信息,单位,序列号,批号,有效期,多属性,数量,单价,金额,税率(%),税额,价税合计,重量,备注";
sheetTwoStr = "客户,单据编号,单据日期,仓库名称,条码,名称,规格,型号,颜色,品牌,制造商," + mpList + ",单位,序列号,批号,有效期,多属性,数量,单价,金额,税率(%),税额,价税合计,重量,备注";
}
if (StringUtil.isNotEmpty(beginTime) && StringUtil.isNotEmpty(endTime)) {
twoTip = twoTip + "" + beginTime + "" + endTime + "";
@@ -1446,21 +1445,23 @@ public class DepotHeadService {
objs[8] = diEx.getMColor();
objs[9] = diEx.getBrand();
objs[10] = diEx.getMMfrs();
objs[11] = depotItemService.getOtherInfo(mpArr, diEx);
objs[12] = diEx.getMaterialUnit();
objs[13] = diEx.getSnList();
objs[14] = diEx.getBatchNumber();
objs[15] = Tools.parseDateToStr(diEx.getExpirationDate());
objs[16] = diEx.getSku();
objs[17] = parseDecimalToStr(diEx.getOperNumber(), 2);
objs[18] = parseDecimalToStr(roleService.parseBillPriceByLimit(diEx.getUnitPrice(), billCategory, priceLimit, request), 2);
objs[19] = parseDecimalToStr(roleService.parseBillPriceByLimit(diEx.getAllPrice(), billCategory, priceLimit, request), 2);
objs[20] = parseDecimalToStr(roleService.parseBillPriceByLimit(diEx.getTaxRate(), billCategory, priceLimit, request), 2);
objs[21] = parseDecimalToStr(roleService.parseBillPriceByLimit(diEx.getTaxMoney(), billCategory, priceLimit, request), 2);
objs[22] = parseDecimalToStr(roleService.parseBillPriceByLimit(diEx.getTaxLastMoney(), billCategory, priceLimit, request), 2);
objs[11] = diEx.getMOtherField1();
objs[12] = diEx.getMOtherField2();
objs[13] = diEx.getMOtherField3();
objs[14] = diEx.getMaterialUnit();
objs[15] = diEx.getSnList();
objs[16] = diEx.getBatchNumber();
objs[17] = Tools.parseDateToStr(diEx.getExpirationDate());
objs[18] = diEx.getSku();
objs[19] = parseDecimalToStr(diEx.getOperNumber(), 2);
objs[20] = parseDecimalToStr(roleService.parseBillPriceByLimit(diEx.getUnitPrice(), billCategory, priceLimit, request), 2);
objs[21] = parseDecimalToStr(roleService.parseBillPriceByLimit(diEx.getAllPrice(), billCategory, priceLimit, request), 2);
objs[22] = parseDecimalToStr(roleService.parseBillPriceByLimit(diEx.getTaxRate(), billCategory, priceLimit, request), 2);
objs[23] = parseDecimalToStr(roleService.parseBillPriceByLimit(diEx.getTaxMoney(), billCategory, priceLimit, request), 2);
objs[24] = parseDecimalToStr(roleService.parseBillPriceByLimit(diEx.getTaxLastMoney(), billCategory, priceLimit, request), 2);
BigDecimal allWeight = diEx.getBasicNumber() == null || diEx.getWeight() == null ? BigDecimal.ZERO : diEx.getBasicNumber().multiply(diEx.getWeight());
objs[23] = parseDecimalToStr(allWeight, 2);
objs[24] = diEx.getRemark();
objs[25] = parseDecimalToStr(allWeight, 2);
objs[26] = diEx.getRemark();
billDetail.add(objs);
}
ExcelUtils.exportObjectsManySheet(wtwb, twoTip, sheetTwoArr, "单据明细", 1, billDetail);

View File

@@ -1409,25 +1409,4 @@ public class DepotItemService {
BigDecimal stock = depotItemMapperEx.getCurrentStockByParam(depotId, mId);
return stock!=null? stock: BigDecimal.ZERO;
}
/**
* 获取扩展信息
*
* @return
*/
public String getOtherInfo(String[] mpArr, DepotItemVo4WithInfoEx diEx)throws Exception {
String materialOther = "";
for (int i = 0; i < mpArr.length; i++) {
if (mpArr[i].equals("自定义1")) {
materialOther = materialOther + ((diEx.getMOtherField1() == null || diEx.getMOtherField1().equals("")) ? "" : "(" + diEx.getMOtherField1() + ")");
}
if (mpArr[i].equals("自定义2")) {
materialOther = materialOther + ((diEx.getMOtherField2() == null || diEx.getMOtherField2().equals("")) ? "" : "(" + diEx.getMOtherField2() + ")");
}
if (mpArr[i].equals("自定义3")) {
materialOther = materialOther + ((diEx.getMOtherField3() == null || diEx.getMOtherField3().equals("")) ? "" : "(" + diEx.getMOtherField3() + ")");
}
}
return materialOther;
}
}

View File

@@ -480,7 +480,7 @@ public class MaterialService {
otherMaterialMap.putIfAbsent(me.getMaterialId(), me);
}
String nameStr = "名称*,规格,型号,颜色,品牌,类别,基础重量(kg),保质期(天),基本单位*,副单位,基本条码*,副条码,比例,多属性," +
"采购价,零售价,销售价,最低售价,状态*,序列号,批号,仓位货架,制造商,自定义1,自定义2,自定义3,备注";
"采购价,零售价,销售价,最低售价,状态*,序列号,批号,仓位货架,制造商,扩展1,扩展2,扩展3,备注";
List<String> nameList = StringUtil.strToStringList(nameStr);
//仓库列表
List<Depot> depotList = depotService.getAllList();