新增备注es

This commit is contained in:
lym
2024-06-19 17:44:19 +08:00
parent ebd9bfec25
commit 24dc1f728f
5 changed files with 88 additions and 20 deletions
@@ -0,0 +1,37 @@
package com.cf.imes.module.executor.controller.admin.orderParts.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
@Schema(description = "管理后台 - 生产单配件 备注信息")
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class OrderPartsRemark {
@Schema(description = "配件 ID")
private Long partsId;
@Schema(description = "生产单号")
private Long orderId;
@Schema(description = "备注")
private String remark;
@Schema(description = "五金额外规格")
private String specExtras;
@Schema(description = "门板组件铰链备注")
private String doorRemark;
@Schema(description = "门板组件拉手备注")
private String hingeRemark;
@Schema(description = "特殊备注(Json字符串)")
private String specialRemark;
}
@@ -9,6 +9,7 @@ import com.cf.imes.framework.organ.core.context.OrganContextHolder;
import com.cf.imes.module.executor.controller.admin.order.vo.order.*;
import com.cf.imes.framework.datapermission.core.util.DataPermissionUtils;
import com.cf.imes.module.executor.controller.admin.order.vo.product.OrderBodyRespVO;
import com.cf.imes.module.executor.controller.admin.orderParts.vo.OrderPartsRemark;
import com.cf.imes.module.executor.controller.admin.orderParts.vo.OrderPartsRespVO;
import com.cf.imes.module.executor.controller.admin.plate.vo.PlateRespVO;
import com.cf.imes.module.executor.dal.dataobject.goods.GoodsDO;
@@ -354,10 +355,10 @@ public class OrderServiceImpl implements OrderService {
List<PlateGoodDO> plateGoodDOS = (List<PlateGoodDO>) map.get("plateGoodDOLists");
validateCustomOrderNoExists(order.get(0).getCustomOrderNo());
orderInputProcessor.batchInsert(rawGoodsDO, bodyDO, groupDO, partsDO, plateDO, null, itemDO, order.get(0), goodsDO, plateGoodDOS);
List<OrderModelDO> orderModelDOs = BeanUtils.toBean(plateDetail, OrderModelDO.class);
orderModelDOs.forEach(orderModelDO -> orderModelDO.setOrderId(order.get(0).getId()));
orderInputProcessor.batchSaveModel(orderModelDOs);
// orderInputProcessor.batchInsert(rawGoodsDO, bodyDO, groupDO, partsDO, plateDO, null, itemDO, order.get(0), goodsDO, plateGoodDOS);
// List<OrderModelDO> orderModelDOs = BeanUtils.toBean(plateDetail, OrderModelDO.class);
// orderModelDOs.forEach(orderModelDO -> orderModelDO.setOrderId(order.get(0).getId()));
// orderInputProcessor.batchSaveModel(orderModelDOs);
return order.get(0).getId();
}
@@ -521,14 +522,15 @@ public class OrderServiceImpl implements OrderService {
List<OrderPartsDO> partsDO = (List<OrderPartsDO>) listMap.get("orderPartsDOS");
List<OrderItemDO> itemDO = (List<OrderItemDO>) listMap.get("orderItemDOS");
List<OrderModelDO> orderModelDOS = (List<OrderModelDO>) listMap.get("orderModelDOS");
List<OrderPartsRemark> orderPartsRemarks = (List<OrderPartsRemark>) listMap.get("orderPartsRemarks");
// 板材库匹配
Map<String, List<?>> map = getPlateGoods(goodsDO);// 检验商品板材信息是否存在
goodsDO = (List<GoodsDO>) map.get("goodsDO");
List<PlateGoodDO> plateGoodDOS = (List<PlateGoodDO>) map.get("plateGoodDOLists");
validateCustomOrderNoExists(orderDO.getCustomOrderNo());
orderInputProcessor.batchInsert(rawGoodsDO, bodyDO, groupDO, partsDO, plateDO, null, itemDO, orderDO, goodsDO, plateGoodDOS);
orderInputProcessor.batchSaveModel(orderModelDOS);
// validateCustomOrderNoExists(orderDO.getCustomOrderNo());
// orderInputProcessor.batchInsert(rawGoodsDO, bodyDO, groupDO, partsDO, plateDO, null, itemDO, orderDO, goodsDO, plateGoodDOS);
// orderInputProcessor.batchSaveModel(orderModelDOS);
}
@@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.incrementer.IdentifierGenerator;
import com.cf.imes.module.executor.controller.admin.orderParts.vo.OrderPartsRemark;
import com.cf.imes.module.executor.dal.dataobject.goods.GoodsDO;
import com.cf.imes.module.executor.dal.dataobject.order.OrderDO;
import com.cf.imes.module.executor.dal.dataobject.orderBody.OrderBodyDO;
@@ -98,6 +99,8 @@ public class ApiTypeRealize {
// 配件
Map<String, Map<Integer, ?>> partsDO = partsInfoChange(dataParts, orderId,
(Map<Integer, GoodsDO>) goodsInfoChange.get("goodsDOS"), bodyInfoChange);
Map<Integer, OrderPartsRemark> partsRemark = (Map<Integer, OrderPartsRemark>) partsDO.get("remarks"); // 配件备注
map.put("partsRemark", partsRemark.values().stream().collect(Collectors.toList()));
Map<Integer, OrderPartsDO> orderPartsDO = (Map<Integer, OrderPartsDO>) partsDO.get("partsInfos");
map.put("partsDO", orderPartsDO.values().stream().collect(Collectors.toList()));
Map<Integer, OrderItemDO> partsItems = (Map<Integer, OrderItemDO>) partsDO.get("partsItems");
@@ -385,6 +388,7 @@ public class ApiTypeRealize {
Map<String, Map<Integer, ?>> map = new HashMap<>();
Map<Integer, OrderPartsDO> partsInfos = new HashMap<>();
Map<Integer, OrderItemDO> partsItem = new HashMap<>();
Map<Integer, OrderPartsRemark> remarks =new HashMap<>();
if (value != null && !value.isEmpty()) {
JSONArray partsLists = value.getJSONArray("List");
@@ -409,6 +413,7 @@ public class ApiTypeRealize {
.isComposite(parts.getBoolean("IsComposite"))
.remark(parts.getString("Remark"))
.build();
remarks.put(parts.getInteger("DataID"),partsRemarkChange(parts, orderId, partsId));
partsInfos.put(parts.getInteger("DataID"), partsInfo);
// item 明细
@@ -430,23 +435,22 @@ public class ApiTypeRealize {
map.put("partsInfos", partsInfos);
map.put("partsItems", partsItem);
map.put("remarks", remarks);
return map;
}
// 配件备注集合
private String partsRemarkChange(JSONObject value) {
List<Map<String, String>> mapList = new ArrayList<>();
private OrderPartsRemark partsRemarkChange(JSONObject value, Long orderId, Long partsId) {
OrderPartsRemark remark = new OrderPartsRemark();
if (value != null && !value.isEmpty()) {
Map<String, String> map = new HashMap<>();
map.put("Remark", value.getString("Remark"));
map.put("SpecExtras", value.getString("SpecExtras"));
map.put("SpecialRemark", value.getString("SpecialRemark"));
map.put("DoorRemark", value.getString("DoorRemark"));
map.put("HingeRemark", value.getString("HingeRemark"));
mapList.add(map);
remark.setPartsId(partsId);
remark.setOrderId(orderId);
remark.setRemark(value.getString("Remark"));
remark.setSpecExtras(value.getString("SpecExtras"));
remark.setSpecialRemark(value.getString("SpecialRemark"));
remark.setDoorRemark(value.getString("DoorRemark"));
remark.setHingeRemark(value.getString("HingeRemark"));
}
// 转String
String remark = JSON.toJSONString(mapList);
return remark;
}
@@ -1,7 +1,9 @@
package com.cf.imes.module.executor.util.fileConversion.admin.files.excel;
import cn.hutool.json.JSONObject;
import com.cf.imes.framework.mybatis.core.generator.SnowFlakeGenerator;
import com.cf.imes.framework.organ.core.context.OrganContextHolder;
import com.cf.imes.module.executor.controller.admin.orderParts.vo.OrderPartsRemark;
import com.cf.imes.module.executor.dal.dataobject.goods.GoodsDO;
import com.cf.imes.module.executor.dal.dataobject.orderBody.OrderBodyDO;
import com.cf.imes.module.executor.dal.dataobject.orderGroup.OrderGroupDO;
@@ -59,6 +61,7 @@ public class ExcelTypeRealize {
ArrayList<OrderItemDO> orderItemDOS = new ArrayList<>();
ArrayList<OrderModuleExtraDO> orderModuleExtraDOS = new ArrayList<>();
ArrayList<OrderModelDO> orderModelDOS = new ArrayList<>();
ArrayList<OrderPartsRemark> orderPartsRemarks = new ArrayList<>();
HashMap<String, List<OrderPlateImportExcelVO>> checkMap = classifyGoods(excelVOS);
@@ -195,7 +198,7 @@ public class ExcelTypeRealize {
.openDoorType(Integer.valueOf(combination.getOpenDoorType()))
.isSpecialShaped(false)
.isSculpt(false)
.remark(combination.remarkJSON())
.remark(remarkExtract(combination.remarkJSON()))
.build();
plateDOS.add(plateDO);
@@ -211,11 +214,16 @@ public class ExcelTypeRealize {
} else {
//配件
Long partsId = (Long) snowFlakeGenerator.nextId(null);
System.err.println(" remark " + combination.remarkJSON());
OrderPartsDO orderPartsDO = OrderPartsDO.builder().id(partsId).orderId(orderId).goodsId(combination.getGoodsId())
.name(combination.getGoodsName()).material(combination.getMaterial()).type(combination.getGoodType())
.model(combination.getModel()).spec(combination.getSpec()).brand(combination.getBrand()).factory(combination.getFactory())
.unit(combination.getUnit()).price(0.0).isComposite(false).remark(combination.remarkJSON()).isComposite(false).build();
.unit(combination.getUnit()).price(0.0).isComposite(false).remark(remarkExtract(combination.remarkJSON())).isComposite(false).build();
orderPartsDOS.add(orderPartsDO);
// 配件备注信息存储
OrderPartsRemark orderPartsRemark = OrderPartsRemark.builder().partsId(partsId).orderId(orderId)
.remark(remarkExtract(combination.remarkJSON())).build();
orderPartsRemarks.add(orderPartsRemark);
OrderItemDO orderItemDO = OrderItemDO.builder().orderId(orderId).type(OrderItemTypeEnum.PARTS_ITEM.getStatus())
.roomId(roomId).bodyId(bodyId).partsId(partsId).groupId(groupId)
.num(Double.valueOf(combination.getGoodsNumber())).build();
@@ -242,9 +250,25 @@ public class ExcelTypeRealize {
map.put("orderItemDOS", orderItemDOS);
map.put("orderModuleExtraDOS", orderModuleExtraDOS);
map.put("orderModelDOS", orderModelDOS);
map.put("orderPartsRemarks", orderPartsRemarks);
return map;
}
// 备注提取
private String remarkExtract(String remark) {
JSONObject jsonObject = new JSONObject(remark);
JSONObject nonNullJsonObject = new JSONObject();
for (String key : jsonObject.keySet()) {
Object value = jsonObject.get(key);
if (value != null) {
nonNullJsonObject.put(key, value);
}
}
return nonNullJsonObject.toString();
}
// 板材库数据
private PlateGoodDO setPlateGoodDO(OrderPlateImportExcelVO excelVO) {
return PlateGoodDO.builder()
@@ -38,6 +38,7 @@ public class OrderPlateImportExcelVO {
@JsonIgnore
private String goodsId;
@ExcelIgnore
private Long goodId;//商品id
@ExcelProperty(value = "商品名称")