|
@@ -1,8 +1,9 @@
|
|
|
package com.jjt.order.utils;
|
|
|
|
|
|
+import com.jjt.biz.vo.GramMassDetail;
|
|
|
import com.jjt.calc.domain.TwinCalcDay;
|
|
|
-import com.jjt.calc.domain.TwinFormulaInfo;
|
|
|
import com.jjt.common.utils.DateUtils;
|
|
|
+import com.jjt.common.utils.StringUtils;
|
|
|
import com.jjt.order.domain.TwinOrder;
|
|
|
import com.jjt.order.domain.TwinOrderDetail;
|
|
|
import com.jjt.order.domain.VmsStock;
|
|
@@ -39,10 +40,9 @@ public class OrderGsmExportUtil {
|
|
|
p2.setVerticalAlignment(VerticalAlignment.CENTER);
|
|
|
}
|
|
|
|
|
|
- public void process(XSSFWorkbook wb, String sheetTitle, List<TwinOrder> orderList, List<TwinFormulaInfo> infos, Map<Long, TwinOrder> orderMap, Map<Long, TwinCalcDay> dayMap, List<VmsStock> stocks, Integer days) {
|
|
|
+ public void process(XSSFWorkbook wb, String sheetTitle, List<TwinOrder> orderList, List<GramMassDetail> infos, Map<Long, TwinOrder> orderMap, Map<Long, TwinCalcDay> dayMap, List<VmsStock> stocks, Integer days) {
|
|
|
init(wb);
|
|
|
- infos.forEach(info -> info.setGsm());
|
|
|
- infos.sort(Comparator.comparing(TwinFormulaInfo::getDeviceId));
|
|
|
+ infos.sort(Comparator.comparing(GramMassDetail::getFormula_data_2));
|
|
|
List<TwinOrderDetail> all = new ArrayList<>();
|
|
|
orderList.forEach(to -> all.addAll(to.getTwinOrderDetailList().stream().filter(tod -> tod.getBomSpec() != null).collect(Collectors.toList())));
|
|
|
//按规格分组
|
|
@@ -59,15 +59,15 @@ public class OrderGsmExportUtil {
|
|
|
kc = stock.getQty();
|
|
|
}
|
|
|
//匹配生产设备
|
|
|
- List<TwinFormulaInfo> matchFormula = matchFormula(spec, infos);
|
|
|
+ List<GramMassDetail> matchFormula = matchFormula(spec, infos);
|
|
|
BigDecimal cl = BigDecimal.ZERO;
|
|
|
String deviceIds = "";
|
|
|
- for (TwinFormulaInfo match : matchFormula) {
|
|
|
- if (org.apache.commons.lang3.StringUtils.isNotEmpty(deviceIds)) {
|
|
|
+ for (GramMassDetail match : matchFormula) {
|
|
|
+ if (StringUtils.isNotEmpty(deviceIds)) {
|
|
|
deviceIds += ",";
|
|
|
}
|
|
|
- deviceIds += match.getDeviceId();
|
|
|
- TwinCalcDay day = dayMap.get(match.getDeviceId());
|
|
|
+ deviceIds += match.getFormula_data_2();
|
|
|
+ TwinCalcDay day = dayMap.get(match.getFormula_data_2());
|
|
|
if (day != null) {
|
|
|
cl = cl.add(day.getWeight());
|
|
|
}
|
|
@@ -419,7 +419,7 @@ public class OrderGsmExportUtil {
|
|
|
* @param sheet sheet
|
|
|
* @param infos 库存
|
|
|
*/
|
|
|
- public void sheet4(Sheet sheet, List<TwinFormulaInfo> infos) {
|
|
|
+ public void sheet4(Sheet sheet, List<GramMassDetail> infos) {
|
|
|
AtomicInteger num = new AtomicInteger(3);
|
|
|
// infos.sort(Comparator.comparing(TwinFormulaInfo::getFd18).reversed().thenComparing(TwinFormulaInfo::getFd16).thenComparing(TwinFormulaInfo::getFd17).thenComparing(TwinFormulaInfo::getFd3));
|
|
|
infos.forEach(info -> {
|
|
@@ -428,21 +428,23 @@ public class OrderGsmExportUtil {
|
|
|
for (int i = 0; i < cells.length; i++) {
|
|
|
cells[i] = row.createCell(i);
|
|
|
}
|
|
|
- cells[0].setCellValue(info.getFd2());
|
|
|
- cells[1].setCellValue(info.getFd18());
|
|
|
- cells[2].setCellValue(info.getFd16());
|
|
|
- cells[3].setCellValue(info.getFd17());
|
|
|
- cells[4].setCellValue(info.getGsm().floatValue());
|
|
|
- cells[5].setCellValue(info.getFd3());
|
|
|
- cells[6].setCellValue(info.getFd15());
|
|
|
- cells[7].setCellValue(info.getFd4());
|
|
|
- cells[8].setCellValue(info.getFd5());
|
|
|
- cells[9].setCellValue(info.getFd6());
|
|
|
- cells[10].setCellValue(info.getFd1());
|
|
|
- cells[11].setCellValue(info.getFd13());
|
|
|
- cells[12].setCellValue(info.getFd14());
|
|
|
- cells[13].setCellValue(info.getFd24());
|
|
|
- cells[14].setCellValue(info.getFd25());
|
|
|
+ cells[0].setCellValue(info.getFormula_data_2());
|
|
|
+ cells[1].setCellValue(info.getFormula_data_18());
|
|
|
+ cells[2].setCellValue(info.getFormula_data_16());
|
|
|
+ cells[3].setCellValue(info.getFormula_data_17());
|
|
|
+ cells[4].setCellValue(info.getGramMass());
|
|
|
+ cells[5].setCellValue(info.getFormula_data_3());
|
|
|
+ cells[6].setCellValue(info.getFormula_data_15());
|
|
|
+ cells[7].setCellValue(info.getFormula_data_4());
|
|
|
+ cells[8].setCellValue(info.getFormula_data_5());
|
|
|
+ cells[9].setCellValue(info.getFormula_data_6());
|
|
|
+ cells[10].setCellValue(info.getFormula_data_1());
|
|
|
+ cells[11].setCellValue(info.getFormula_data_13());
|
|
|
+ cells[12].setCellValue(info.getFormula_data_14());
|
|
|
+ cells[13].setCellValue(info.getFormula_data_24());
|
|
|
+ if (info.getFormula_data_25() != null) {
|
|
|
+ cells[14].setCellValue(info.getFormula_data_25());
|
|
|
+ }
|
|
|
|
|
|
// cells[15].setCellValue(info.getCd10());
|
|
|
// cells[16].setCellValue(info.getCd11());
|
|
@@ -461,12 +463,12 @@ public class OrderGsmExportUtil {
|
|
|
// cells[28].setCellValue(info.getFd22());
|
|
|
// cells[29].setCellValue(info.getFd23());
|
|
|
|
|
|
- cells[15].setCellValue(info.getFd7());
|
|
|
- cells[16].setCellValue(info.getFd8());
|
|
|
- cells[17].setCellValue(info.getFd9());
|
|
|
- cells[18].setCellValue(info.getFd10());
|
|
|
- cells[19].setCellValue(info.getFd11());
|
|
|
- cells[20].setCellValue(info.getFd12());
|
|
|
+ cells[15].setCellValue(info.getFormula_data_7());
|
|
|
+ cells[16].setCellValue(info.getFormula_data_8());
|
|
|
+ cells[17].setCellValue(info.getFormula_data_9());
|
|
|
+ cells[18].setCellValue(info.getFormula_data_10());
|
|
|
+ cells[19].setCellValue(info.getFormula_data_11());
|
|
|
+ cells[20].setCellValue(info.getFormula_data_12());
|
|
|
});
|
|
|
}
|
|
|
|
|
@@ -533,29 +535,29 @@ public class OrderGsmExportUtil {
|
|
|
* @param list 产线
|
|
|
* @return 结果
|
|
|
*/
|
|
|
- private List<TwinFormulaInfo> matchFormula(String spec, List<TwinFormulaInfo> list) {
|
|
|
- List<TwinFormulaInfo> result = new ArrayList<>();
|
|
|
+ private List<GramMassDetail> matchFormula(String spec, List<GramMassDetail> list) {
|
|
|
+ List<GramMassDetail> result = new ArrayList<>();
|
|
|
//按平方米克重分组
|
|
|
- Map<BigDecimal, List<TwinFormulaInfo>> formulaMap = list.stream().collect(Collectors.groupingBy(TwinFormulaInfo::getGsm, LinkedHashMap::new, Collectors.toList()));
|
|
|
+ Map<Float, List<GramMassDetail>> formulaMap = list.stream().collect(Collectors.groupingBy(GramMassDetail::getGramMass, LinkedHashMap::new, Collectors.toList()));
|
|
|
if (spec != null) {
|
|
|
String[] tmp = spec.split("\\*");
|
|
|
if (tmp.length == 3) {
|
|
|
Float length = Float.parseFloat(tmp[0]);
|
|
|
Float width = Float.parseFloat(tmp[1]);
|
|
|
BigDecimal gsm = CalcUtil.calcGsm(spec);
|
|
|
- List<TwinFormulaInfo> tempList = new ArrayList<>();
|
|
|
- for (BigDecimal key : formulaMap.keySet()) {
|
|
|
+ List<GramMassDetail> tempList = new ArrayList<>();
|
|
|
+ for (Float key : formulaMap.keySet()) {
|
|
|
// 计算 gsm 和 key 的差值
|
|
|
- BigDecimal difference = gsm.subtract(key).abs();
|
|
|
+ BigDecimal difference = gsm.subtract(BigDecimal.valueOf(key)).abs();
|
|
|
// 如果差值在正负10之间
|
|
|
if (difference.compareTo(new BigDecimal(10)) <= 0) {
|
|
|
// 将对应的 VmsStock 列表添加到 tempList 中
|
|
|
tempList.addAll(formulaMap.get(key));
|
|
|
}
|
|
|
}
|
|
|
- for (TwinFormulaInfo info : tempList) {
|
|
|
- if (info.getFd16() >= length && info.getFd17() >= width ||
|
|
|
- info.getFd17() >= length && info.getFd16() >= width) {
|
|
|
+ for (GramMassDetail info : tempList) {
|
|
|
+ if (info.getFormula_data_16() >= length && info.getFormula_data_17() >= width ||
|
|
|
+ info.getFormula_data_17() >= length && info.getFormula_data_16() >= width) {
|
|
|
result.add(info);
|
|
|
}
|
|
|
}
|