mirror of
http://192.168.1.205:9980/cf_devdept2/cf_imes_server.git
synced 2026-08-12 21:02:08 +08:00
Merge remote-tracking branch 'origin/main'
This commit is contained in:
+1
@@ -40,6 +40,7 @@ public class ErrorCodeConstants {
|
||||
// ========== 生产单 TODO 补充编号 ==========
|
||||
public static final ErrorCode PHONE_NOT_LAWFUL = new ErrorCode(1_001_116_000, "手机号不合法");
|
||||
public static final ErrorCode CUSTOM_ORDER_EXISTS = new ErrorCode(1_001_117_000, "自定义生产单号存在");
|
||||
public static final ErrorCode ORDER_EXISTS = new ErrorCode(1_001_117_000, "api导入生产单已存在");
|
||||
public static final ErrorCode ORDER_PROCESS_NOT_EXISTS = new ErrorCode(1_001_119_001, "工序组不存在");
|
||||
public static final ErrorCode ORDER_PROCESS_EXISTS = new ErrorCode(1_001_119_002, "该生产单工序组已经存在");
|
||||
public static final ErrorCode PROCESS_GROUP_NOT_EXISTS = new ErrorCode(1_002_029_003, "工序组不存在");
|
||||
|
||||
+3
@@ -24,6 +24,9 @@ public class OrderPlatesDetailReqVO {
|
||||
@Schema(description = "板编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "晨丰")
|
||||
private String plateNo;
|
||||
|
||||
@Schema(description = "自定义板编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "00001")
|
||||
private String customPlateNo;
|
||||
|
||||
@Schema(description = "材质", requiredMode = Schema.RequiredMode.REQUIRED, example = "晨丰")
|
||||
private String material;
|
||||
|
||||
|
||||
+5
-2
@@ -29,10 +29,13 @@ public class PlateRespVO extends PageParam {
|
||||
@ExcelProperty("板名称")
|
||||
private String name;
|
||||
|
||||
@Schema(description = "自定义板编号,设计有板编号,则保留设计板编号;设计没有且在机台设置中设置了自定义板编号规则,则按规则自动生成", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@ExcelProperty("自定义板编号,设计有板编号,则保留设计板编号;设计没有且在机台设置中设置了自定义板编号规则,则按规则自动生成")
|
||||
@Schema(description = "板编号", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@ExcelProperty("板编号")
|
||||
private String plateNo;
|
||||
|
||||
@Schema(description = "自定义板编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "00001")
|
||||
private String customPlateNo;
|
||||
|
||||
@Schema(description = "板类型,0 层板 1 立板 2 背板", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
|
||||
@ExcelProperty("板类型,0 层板 1 立板 2 背板")
|
||||
private Integer type;
|
||||
|
||||
+41
-40
@@ -50,6 +50,7 @@ import com.cf.imes.module.executor.dal.mysql.plate.PlateMapper;
|
||||
import com.cf.imes.module.executor.dal.mysql.rawgoods.RawGoodsMapper;
|
||||
import com.cf.imes.module.executor.enums.OrderDeletedEnum;
|
||||
import com.cf.imes.module.executor.enums.OrderStatusEnum;
|
||||
import com.cf.imes.module.executor.service.customplateno.CustomPlateNoGenerateService;
|
||||
import com.cf.imes.module.executor.service.plan.PlanService;
|
||||
import com.cf.imes.module.executor.util.deviseData.structure.FieldConstants;
|
||||
import com.cf.imes.module.executor.util.deviseData.structure.PlateDetail;
|
||||
@@ -135,6 +136,9 @@ public class OrderServiceImpl implements OrderService {
|
||||
@Resource
|
||||
private PartsMapper partsMapper;
|
||||
|
||||
@Resource
|
||||
private CustomPlateNoGenerateService customPlateNoGenerateService;
|
||||
|
||||
|
||||
private static final String SUBMIT_STATE = "1"; // 空订单 原生产系统
|
||||
|
||||
@@ -148,10 +152,6 @@ public class OrderServiceImpl implements OrderService {
|
||||
@Resource
|
||||
private PlanService planService;
|
||||
|
||||
// 重复使用的常量
|
||||
private static final String PLATE_GOODS_LIST_KEY = "plateGoodDOLists";
|
||||
private static final String GOODSDO_KEY = "goodsDO";
|
||||
|
||||
@Override
|
||||
public void updateOrder(OrderSaveReqVO updateReqVO) {
|
||||
// 校验存在, 生产单未删除
|
||||
@@ -383,8 +383,13 @@ public class OrderServiceImpl implements OrderService {
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public Long importApiData(Map<String, Object> listMap) {
|
||||
OrderDO order = (OrderDO) listMap.get("orderDO");
|
||||
OrderDO order = (OrderDO) listMap.get(FieldConstants.ORDER);
|
||||
if (order != null) {
|
||||
//判断是否已经导入
|
||||
// if (!validateOrderNoExists(order.getApiOrderId(), OrganContextHolder.getOrganId())) {
|
||||
// throw exception(ORDER_EXISTS);
|
||||
// }
|
||||
|
||||
validateCustomOrderNoExists(order.getCustomOrderNo());
|
||||
String nickName = SecurityFrameworkUtils.getLoginUser().getNickname();
|
||||
if (order.getSalesman() == null || order.getSalesman().equals("")) {
|
||||
@@ -393,25 +398,25 @@ public class OrderServiceImpl implements OrderService {
|
||||
if (order.getSplitter() == null || order.getSplitter().equals("")) {
|
||||
order.setSplitter(nickName);
|
||||
}
|
||||
orderMapper.insert(order);
|
||||
}
|
||||
List<GoodsDO> goodsDO = (List<GoodsDO>) listMap.get(GOODSDO_KEY);
|
||||
List<RawGoodsDO> rawGoodsDO = (List<RawGoodsDO>) listMap.get("rawGoodsDO");
|
||||
List<OrderBodyDO> bodyDO = (List<OrderBodyDO>) listMap.get("bodyDO");
|
||||
List<OrderGroupDO> groupDO = (List<OrderGroupDO>) listMap.get("groupDO");
|
||||
List<OrderPartsDO> partsDO = (List<OrderPartsDO>) listMap.get("partsDO");
|
||||
List<GoodsDO> goodsDO = (List<GoodsDO>) listMap.get(FieldConstants.GOODS);
|
||||
List<RawGoodsDO> rawGoodsDO = (List<RawGoodsDO>) listMap.get(FieldConstants.RAW_GOODS);
|
||||
List<OrderBodyDO> bodyDO = (List<OrderBodyDO>) listMap.get(FieldConstants.BODY);
|
||||
List<OrderGroupDO> groupDO = (List<OrderGroupDO>) listMap.get(FieldConstants.GROUP);
|
||||
List<OrderPartsDO> partsDO = (List<OrderPartsDO>) listMap.get(FieldConstants.PARTS);
|
||||
List<PlateDO> plateDO = (List<PlateDO>) listMap.get(FieldConstants.PLATE);
|
||||
List<PlateDetail> plateDetail = (List<PlateDetail>) listMap.get("plateDetail");
|
||||
List<OrderItemDO> itemDO = (List<OrderItemDO>) listMap.get("itemDO");
|
||||
List<OrderPartsRemark> partsRemark = (List<OrderPartsRemark>) listMap.get("partsRemark");
|
||||
List<PlateDetail> plateDetail = (List<PlateDetail>) listMap.get(FieldConstants.PLATE_DETAIL);
|
||||
List<OrderItemDO> itemDO = (List<OrderItemDO>) listMap.get(FieldConstants.ITEM);
|
||||
List<OrderPartsRemark> partsRemark = (List<OrderPartsRemark>) listMap.get(FieldConstants.PARTS_REMARK);
|
||||
|
||||
Map<String, List<?>> map = getPlateGoods(goodsDO);// 检验商品板材信息是否存在
|
||||
goodsDO = (List<GoodsDO>) map.get(GOODSDO_KEY);
|
||||
List<PlateGoodDO> plateGoodDOS = (List<PlateGoodDO>) map.get(PLATE_GOODS_LIST_KEY);
|
||||
goodsDO = (List<GoodsDO>) map.get(FieldConstants.GOODS);
|
||||
List<PlateGoodDO> plateGoodDOS = (List<PlateGoodDO>) map.get(FieldConstants.PLATE_GOODS_LIST_KEY);
|
||||
// 配件信息
|
||||
List<PartsDO> partsDOS = getPartsGoods(partsDO);
|
||||
|
||||
|
||||
customPlateNoGenerateService.generateCustomPlateNo(order, plateDO);
|
||||
orderMapper.insert(order);
|
||||
orderInputProcessor.batchInsert(rawGoodsDO, bodyDO, groupDO, partsDO, plateDO, itemDO, goodsDO, plateGoodDOS, partsDOS);
|
||||
List<OrderModelDO> orderModelDOs = BeanUtils.toBean(plateDetail, OrderModelDO.class);
|
||||
|
||||
@@ -443,28 +448,27 @@ public class OrderServiceImpl implements OrderService {
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void importExcelData(OrderDO orderDO, Integer index, Map<String, Object> listMap) {
|
||||
insertOrder(orderDO, index);
|
||||
|
||||
|
||||
if (!Objects.equals(orderDO.getStatus(), OrderStatusEnum.NEW_ORDER.getStatus())) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
List<RawGoodsDO> rawGoodsDO = (List<RawGoodsDO>) listMap.get("rawGoodsDOS");
|
||||
List<GoodsDO> goodsDO = (List<GoodsDO>) listMap.get("goodsDOS");
|
||||
List<RawGoodsDO> rawGoodsDO = (List<RawGoodsDO>) listMap.get(FieldConstants.RAW_GOODS);
|
||||
List<GoodsDO> goodsDO = (List<GoodsDO>) listMap.get(FieldConstants.GOODS);
|
||||
|
||||
List<OrderBodyDO> bodyDO = (List<OrderBodyDO>) listMap.get("orderBodyDOS");
|
||||
List<OrderGroupDO> groupDO = (List<OrderGroupDO>) listMap.get("orderGroupDOS");
|
||||
List<PlateDO> plateDO = (List<PlateDO>) listMap.get("plateDOS");
|
||||
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");
|
||||
List<PlateDetail> plateDetail = (List<PlateDetail>) listMap.get("plateDetail");
|
||||
List<OrderBodyDO> bodyDO = (List<OrderBodyDO>) listMap.get(FieldConstants.BODY);
|
||||
List<OrderGroupDO> groupDO = (List<OrderGroupDO>) listMap.get(FieldConstants.GROUP);
|
||||
List<PlateDO> plateDO = (List<PlateDO>) listMap.get(FieldConstants.PLATE);
|
||||
List<OrderPartsDO> partsDO = (List<OrderPartsDO>) listMap.get(FieldConstants.PARTS);
|
||||
List<OrderItemDO> itemDO = (List<OrderItemDO>) listMap.get(FieldConstants.ITEM);
|
||||
List<OrderPartsRemark> orderPartsRemarks = (List<OrderPartsRemark>) listMap.get(FieldConstants.PARTS_REMARK);
|
||||
List<PlateDetail> plateDetail = (List<PlateDetail>) listMap.get(FieldConstants.PLATE_DETAIL);
|
||||
// 板材库匹配
|
||||
Map<String, List<?>> map = getPlateGoods(goodsDO);// 检验商品板材信息是否存在 excel
|
||||
goodsDO = (List<GoodsDO>) map.get(GOODSDO_KEY);
|
||||
List<PlateGoodDO> plateGoodDOS = (List<PlateGoodDO>) map.get(PLATE_GOODS_LIST_KEY);
|
||||
goodsDO = (List<GoodsDO>) map.get(FieldConstants.GOODS);
|
||||
List<PlateGoodDO> plateGoodDOS = (List<PlateGoodDO>) map.get(FieldConstants.PLATE_GOODS_LIST_KEY);
|
||||
// 配件库匹配
|
||||
List<PartsDO> partsDOList = getPartsGoods(partsDO);
|
||||
|
||||
@@ -483,17 +487,14 @@ public class OrderServiceImpl implements OrderService {
|
||||
updateOrder(BeanUtils.toBean(orderDO, OrderSaveReqVO.class));
|
||||
}
|
||||
}
|
||||
|
||||
customPlateNoGenerateService.generateCustomPlateNo(orderDO, plateDO);
|
||||
insertOrder(orderDO, index);
|
||||
orderInputProcessor.batchInsert(rawGoodsDO, bodyDO, groupDO, partsDO, plateDO, itemDO, goodsDO, plateGoodDOS, partsDOList);
|
||||
// if (orderModelDOS != null && !orderModelDOS.isEmpty()) {
|
||||
// orderInputProcessor.batchSaveModel(orderModelDOS);
|
||||
// }
|
||||
|
||||
if (plateDetail != null && !plateDetail.isEmpty()){
|
||||
List<OrderModelDO> orderModelDOs = BeanUtils.toBean(plateDetail, OrderModelDO.class);
|
||||
// if (!orderModelDOs.isEmpty()) {
|
||||
// orderModelDOs.forEach(orderModelDO -> orderModelDO.setOrderId(orderDO.getId()));
|
||||
// System.out.println("----" + orderModelDOs);
|
||||
orderInputProcessor.batchSaveModel(orderModelDOs);
|
||||
// }
|
||||
}
|
||||
if (orderPartsRemarks != null && !orderPartsRemarks.isEmpty()) {
|
||||
orderInputProcessor.batchSaveOrderPartsModel(orderPartsRemarks);
|
||||
@@ -782,8 +783,8 @@ public class OrderServiceImpl implements OrderService {
|
||||
}
|
||||
|
||||
}
|
||||
map.put(GOODSDO_KEY, goodsLists);
|
||||
map.put(PLATE_GOODS_LIST_KEY, plateGoodLists);
|
||||
map.put(FieldConstants.GOODS, goodsLists);
|
||||
map.put(FieldConstants.PLATE_GOODS_LIST_KEY, plateGoodLists);
|
||||
return map;
|
||||
}
|
||||
|
||||
@@ -867,7 +868,7 @@ public class OrderServiceImpl implements OrderService {
|
||||
}
|
||||
|
||||
// 判断是否已经导入
|
||||
private Boolean validateOrderNoExists(String orderNo, Long organId) {
|
||||
private boolean validateOrderNoExists(String orderNo, Long organId) {
|
||||
if (orderMapper.selectCount(new LambdaQueryWrapper<OrderDO>()
|
||||
.eq(OrderDO::getApiOrderId, orderNo)
|
||||
.eq(OrderDO::getDeleted, false)
|
||||
|
||||
+1
@@ -16,5 +16,6 @@ public class FieldConstants {
|
||||
public static final String PLATE_DETAIL = "plateDetail";
|
||||
|
||||
public static final String PARTS_REMARK = "partsRemark";
|
||||
public static final String PLATE_GOODS_LIST_KEY = "plateGoodDOLists";
|
||||
|
||||
}
|
||||
|
||||
+5
-8
@@ -14,12 +14,10 @@ import com.cf.imes.module.executor.dal.dataobject.orderParts.OrderPartsDO;
|
||||
import com.cf.imes.module.executor.dal.dataobject.plate.PlateDO;
|
||||
import com.cf.imes.module.executor.dal.dataobject.rawgoods.RawGoodsDO;
|
||||
import com.cf.imes.module.executor.enums.*;
|
||||
import com.cf.imes.module.executor.service.customplateno.CustomPlateNoGenerateService;
|
||||
import com.cf.imes.module.executor.util.fileConversion.admin.SnowflakeIdWorker3rd;
|
||||
import com.cf.imes.module.executor.util.deviseData.structure.*;
|
||||
import com.cf.imes.module.system.api.dict.DictDataApi;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.security.core.parameters.P;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
@@ -50,8 +48,6 @@ public class ApiTypeRealize {
|
||||
@Resource
|
||||
private ApiDataAchieve apiDataAchieve;
|
||||
|
||||
@Resource
|
||||
private CustomPlateNoGenerateService customPlateNoGenerateService;
|
||||
|
||||
private static final Integer X = 0;
|
||||
private static final Integer Y = 1;
|
||||
@@ -144,7 +140,7 @@ public class ApiTypeRealize {
|
||||
Map<Long, PlateDO> orderPlatesDO = (Map<Long, PlateDO>) platesDO.get("platesInfos");
|
||||
if (orderPlatesDO != null) {
|
||||
// 需要添加自定义板编号
|
||||
plateAddGroupName(orderGroupDO, groupLists, orderPlatesDO);
|
||||
// plateAddGroupName(orderGroupDO, groupLists, orderPlatesDO);
|
||||
map.put(FieldConstants.PLATE, new ArrayList<>(orderPlatesDO.values()));
|
||||
}
|
||||
|
||||
@@ -782,8 +778,9 @@ public class ApiTypeRealize {
|
||||
.filterType("")
|
||||
.remark(remark)
|
||||
.organId(organId)
|
||||
// .roomName(bodyInfos.get(plate.getLong(ProduceApiConstants.BD_BOX_ID)).getRoomName())
|
||||
// .bodyName(bodyInfos.get(plate.getLong(ProduceApiConstants.BD_BOX_ID)).getName())
|
||||
.roomName(bodyInfos.get(plate.getLong(ProduceApiConstants.BD_BOX_ID)).getRoomName())
|
||||
.bodyName(bodyInfos.get(plate.getLong(ProduceApiConstants.BD_BOX_ID)).getName())
|
||||
.customPlateNoBuilder(new StringBuilder())
|
||||
.build();
|
||||
// item 明细
|
||||
OrderItemDO itemPlate = OrderItemDO.builder()
|
||||
@@ -913,7 +910,7 @@ public class ApiTypeRealize {
|
||||
map.put(Long.valueOf(blockNo), block);
|
||||
}
|
||||
}
|
||||
System.out.println("map 板材 " + map);
|
||||
// System.out.println("map 板材 " + map);
|
||||
return map;
|
||||
}
|
||||
|
||||
|
||||
+19
-40
@@ -17,6 +17,7 @@ import com.cf.imes.module.executor.dal.dataobject.plate.PlateGoodDO;
|
||||
import com.cf.imes.module.executor.dal.dataobject.rawgoods.RawGoodsDO;
|
||||
import com.cf.imes.module.executor.enums.OrderItemTypeEnum;
|
||||
import com.cf.imes.module.executor.service.customplateno.CustomPlateNoGenerateService;
|
||||
import com.cf.imes.module.executor.util.deviseData.structure.FieldConstants;
|
||||
import com.cf.imes.module.executor.util.deviseData.structure.PlateDetail;
|
||||
import com.cf.imes.module.executor.util.fileConversion.admin.SnowflakeIdWorker3rd;
|
||||
import com.cf.imes.module.system.api.dict.DictDataApi;
|
||||
@@ -49,8 +50,6 @@ public class ExcelTypeRealize {
|
||||
@Resource
|
||||
private DictDataApi dictDataApi;
|
||||
|
||||
@Resource
|
||||
private CustomPlateNoGenerateService customPlateNoGenerateService;
|
||||
|
||||
final String NOT_ASSIGNED = "未命名";
|
||||
final String PLATE = "plate";
|
||||
@@ -63,19 +62,18 @@ public class ExcelTypeRealize {
|
||||
return null;
|
||||
}
|
||||
|
||||
// List<OrderPlateImportExcelVO> excelVOS = (List<OrderPlateImportExcelVO>) list;
|
||||
long startTime = System.currentTimeMillis();
|
||||
|
||||
Map<String, Object> map = new HashMap<>();
|
||||
|
||||
Long organId = OrganContextHolder.getOrganId();
|
||||
ArrayList<RawGoodsDO> rawGoodsDOS = new ArrayList<>();
|
||||
ArrayList<GoodsDO> goodsDOS = new ArrayList<>();
|
||||
ArrayList<PlateGoodDO> plateGoodDOS = new ArrayList<>();
|
||||
ArrayList<OrderBodyDO> orderBodyDOS = new ArrayList<>();
|
||||
ArrayList<OrderGroupDO> orderGroupDOS = new ArrayList<>();
|
||||
ArrayList<PlateDO> plateDOS = new ArrayList<>();
|
||||
ArrayList<OrderPartsDO> orderPartsDOS = new ArrayList<>();
|
||||
ArrayList<OrderItemDO> orderItemDOS = new ArrayList<>();
|
||||
ArrayList<OrderModuleExtraDO> orderModuleExtraDOS = new ArrayList<>();
|
||||
ArrayList<PlateDetail> plateDetail = new ArrayList<>();
|
||||
ArrayList<OrderPartsRemark> orderPartsRemarks = new ArrayList<>();
|
||||
|
||||
@@ -316,9 +314,9 @@ public class ExcelTypeRealize {
|
||||
.isSpecialShaped(false)
|
||||
.isSculpt(false)
|
||||
.remark(remarkExtract(combination.remarkJSON()))
|
||||
// .roomName(roomName)
|
||||
// .bodyName(bodyName)
|
||||
// .processGroupName(combinationName)
|
||||
.roomName(roomName)
|
||||
.bodyName(bodyName)
|
||||
.customPlateNoBuilder(new StringBuilder())
|
||||
.build();
|
||||
plateDOS.add(plateDO);
|
||||
|
||||
@@ -334,22 +332,6 @@ public class ExcelTypeRealize {
|
||||
|
||||
} else {
|
||||
//配件
|
||||
|
||||
// Long partsId = (Long) snowFlakeGenerator.nextId(null);
|
||||
// OrderPartsDO orderPartsDO = OrderPartsDO.builder().id(partsId).orderId(orderId).goodsId(combination.getGoodsId())
|
||||
// .color(combination.getColor()).category(combination.getCategory()).type(combination.getType())
|
||||
// .length(Double.valueOf(StringUtils.isEmpty(combination.getGoodsHeight()) ? "0" : combination.getGoodsHeight()))
|
||||
// .width(Double.valueOf(StringUtils.isEmpty(combination.getGoodsWidth()) ? "0" : combination.getGoodsWidth()))
|
||||
// .thickness(Double.valueOf(StringUtils.isEmpty(combination.getGoodsThickness()) ? "0" : combination.getGoodsThickness()))
|
||||
// .isComposite(Boolean.valueOf(combination.getIsComposite()))
|
||||
// .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(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(roomName != " " ? roomId : null).bodyId(bodyName != " " ? bodyId : null).partsId(combination.getGoodId()).groupId(synthesisTypeName != " " ? groupId : null)
|
||||
.num(Double.valueOf(combination.getGoodsNumber())).build();
|
||||
@@ -365,26 +347,23 @@ public class ExcelTypeRealize {
|
||||
});
|
||||
});
|
||||
orderBodyDO.setPlateNum(Integer.valueOf(plateCountByCabinetName[0].intValue()));
|
||||
// if (orderBodyDO.getName() != null && !orderBodyDO.getName().trim().isEmpty()) {
|
||||
orderBodyDOS.add(orderBodyDO);
|
||||
// }
|
||||
// System.out.println(" ban-num " + plateCountByCabinetName[0]);
|
||||
});
|
||||
});
|
||||
|
||||
// 添加板材自定义板编号
|
||||
// customPlateNoGenerateService.generateCustomPlateNo(plateDOS);
|
||||
map.put("rawGoodsDOS", rawGoodsDOS);
|
||||
map.put("goodsDOS", goodsDOS);
|
||||
map.put("plateGoodDOS", plateGoodDOS);
|
||||
map.put("orderBodyDOS", orderBodyDOS);
|
||||
map.put("orderGroupDOS", orderGroupDOS);
|
||||
map.put("plateDOS", plateDOS);
|
||||
map.put("orderPartsDOS", orderPartsDOS);
|
||||
map.put("orderItemDOS", orderItemDOS);
|
||||
map.put("orderModuleExtraDOS", orderModuleExtraDOS);
|
||||
map.put("plateDetail", plateDetail);
|
||||
map.put("orderPartsRemarks", orderPartsRemarks);
|
||||
map.put(FieldConstants.RAW_GOODS, rawGoodsDOS);
|
||||
map.put(FieldConstants.GOODS, goodsDOS);
|
||||
map.put(FieldConstants.BODY, orderBodyDOS);
|
||||
map.put(FieldConstants.GROUP, orderGroupDOS);
|
||||
map.put(FieldConstants.PLATE, plateDOS);
|
||||
map.put(FieldConstants.PARTS, orderPartsDOS);
|
||||
map.put(FieldConstants.ITEM, orderItemDOS);
|
||||
map.put(FieldConstants.PLATE_DETAIL, plateDetail);
|
||||
map.put(FieldConstants.PARTS_REMARK, orderPartsRemarks);
|
||||
long endTime = System.currentTimeMillis();
|
||||
long duration = endTime - startTime;
|
||||
|
||||
System.out.println("方法运行耗时 excel 转换: " + duration + " 毫秒");
|
||||
return map;
|
||||
}
|
||||
|
||||
|
||||
+2
-2
@@ -136,8 +136,8 @@ public class BlockXmlVO implements Serializable {
|
||||
private String boxCode;
|
||||
|
||||
// 加工组号
|
||||
@XmlAttribute(name = "groupCode")
|
||||
private String groupCode;
|
||||
@XmlAttribute(name = "groupCodes")
|
||||
private String groupCodes;
|
||||
|
||||
// 柜体名称
|
||||
@XmlAttribute(name = "groupName")
|
||||
|
||||
+120
-54
@@ -25,6 +25,8 @@ import java.time.temporal.ChronoUnit;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.CompletableFuture;
|
||||
import java.util.concurrent.ExecutionException;
|
||||
import java.util.concurrent.atomic.AtomicBoolean;
|
||||
import java.util.function.Consumer;
|
||||
import java.util.function.Supplier;
|
||||
@@ -72,9 +74,8 @@ public class XMLUtil {
|
||||
}
|
||||
|
||||
// XML转为JAVA对象
|
||||
Object odfBody = XmlBuilder.xmlStrToOject(clazz, builder.toString());
|
||||
|
||||
return odfBody;
|
||||
return XmlBuilder.xmlStrToOject(clazz, builder.toString());
|
||||
} catch (IOException e) {
|
||||
log.error("Error reading the file: " + file.getOriginalFilename(), e);
|
||||
} catch (Exception e) {
|
||||
@@ -186,53 +187,131 @@ public class XMLUtil {
|
||||
long startTime = System.currentTimeMillis();
|
||||
AtomicBoolean error = new AtomicBoolean(true);
|
||||
|
||||
RoomXmlVOS roomXmlVOS = orderXmlVO.getRoomXmlVOS();
|
||||
if (roomXmlVOS != null) {
|
||||
checkRoom(roomXmlVOS, error);
|
||||
}
|
||||
// 创建一个 CompletableFuture 来表示所有任务的组合
|
||||
CompletableFuture<Void> allTasks = CompletableFuture.allOf(
|
||||
checkRoomAsync(orderXmlVO.getRoomXmlVOS(), error),
|
||||
checkModulesAsync(orderXmlVO.getModuleXmlVOS(), error),
|
||||
checkGroupsAsync(orderXmlVO.getGroupXmlVOS(), error),
|
||||
checkMaterialsAsync(orderXmlVO.getMaterialXmlVO(), error)
|
||||
);
|
||||
|
||||
ModuleXmlVOS moduleXmlVOS = orderXmlVO.getModuleXmlVOS();
|
||||
if (moduleXmlVOS != null) {
|
||||
checkModules(moduleXmlVOS, error);
|
||||
}
|
||||
|
||||
GroupXmlVOS grooveXmlVOS = orderXmlVO.getGroupXmlVOS();
|
||||
if (grooveXmlVOS != null) {
|
||||
checkGroups(grooveXmlVOS, error);
|
||||
}
|
||||
|
||||
MaterialXmlVO materialXmlVO = orderXmlVO.getMaterialXmlVO();
|
||||
if (materialXmlVO != null) {
|
||||
PlateXmlVOS plateXmlVOS = materialXmlVO.getPlateXmlVOS();
|
||||
|
||||
Map<String, Object> map = extractPlateDate(plateXmlVOS);
|
||||
if (map != null) {
|
||||
// 判断板块和归属code是否相匹配
|
||||
}
|
||||
|
||||
if (plateXmlVOS != null && plateXmlVOS.getPlateXmlVOList().size() > 0) {
|
||||
checkPlates(plateXmlVOS.getPlateXmlVOList(), error);
|
||||
}
|
||||
|
||||
AccessoryXmlVO accessoryXmlVO = materialXmlVO.getAccessoryXmlVO(); //配件
|
||||
if (accessoryXmlVO != null) {
|
||||
checkEdgings(accessoryXmlVO.getEdgingXmlVOS(), error);
|
||||
checkHardwares(accessoryXmlVO.getHardwareXmlVOS(), error);
|
||||
}
|
||||
|
||||
AssemblieXmlVOS assemblieXmlVOS = materialXmlVO.getAssemblieXmlVOS(); // 组件
|
||||
if (assemblieXmlVOS != null && assemblieXmlVOS.getAssemblyXmlVOList() != null && assemblieXmlVOS.getAssemblyXmlVOList().size() > 0) {
|
||||
checkAssemblies(assemblieXmlVOS, error);
|
||||
}
|
||||
try {
|
||||
// 等待所有任务完成
|
||||
allTasks.get();
|
||||
} catch (InterruptedException | ExecutionException e) {
|
||||
e.printStackTrace();
|
||||
return false; // 如果有异常发生,返回 false
|
||||
}
|
||||
|
||||
long endTime = System.currentTimeMillis();
|
||||
long duration = endTime - startTime;
|
||||
|
||||
System.out.println("方法运行耗时: " + duration + " 毫秒");
|
||||
System.out.println("方法运行耗时 xml: " + duration + " 毫秒");
|
||||
return error.get();
|
||||
}
|
||||
|
||||
private CompletableFuture<Void> checkRoomAsync(RoomXmlVOS roomXmlVOS, AtomicBoolean error) {
|
||||
return CompletableFuture.runAsync(() -> {
|
||||
if (roomXmlVOS != null) {
|
||||
checkRoom(roomXmlVOS, error);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private CompletableFuture<Void> checkModulesAsync(ModuleXmlVOS moduleXmlVOS, AtomicBoolean error) {
|
||||
return CompletableFuture.runAsync(() -> {
|
||||
if (moduleXmlVOS != null) {
|
||||
checkModules(moduleXmlVOS, error);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private CompletableFuture<Void> checkGroupsAsync(GroupXmlVOS groupXmlVOS, AtomicBoolean error) {
|
||||
return CompletableFuture.runAsync(() -> {
|
||||
if (groupXmlVOS != null) {
|
||||
checkGroups(groupXmlVOS, error);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private CompletableFuture<Void> checkMaterialsAsync(MaterialXmlVO materialXmlVO, AtomicBoolean error) {
|
||||
return CompletableFuture.runAsync(() -> {
|
||||
if (materialXmlVO != null) {
|
||||
PlateXmlVOS plateXmlVOS = materialXmlVO.getPlateXmlVOS();
|
||||
|
||||
Map<String, Object> map = extractPlateDate(plateXmlVOS);
|
||||
if (map != null) {
|
||||
// 判断板块和归属code是否相匹配
|
||||
}
|
||||
|
||||
if (plateXmlVOS != null && !plateXmlVOS.getPlateXmlVOList().isEmpty()) {
|
||||
checkPlates(plateXmlVOS.getPlateXmlVOList(), error);
|
||||
}
|
||||
|
||||
AccessoryXmlVO accessoryXmlVO = materialXmlVO.getAccessoryXmlVO(); // 配件
|
||||
if (accessoryXmlVO != null) {
|
||||
checkEdgings(accessoryXmlVO.getEdgingXmlVOS(), error);
|
||||
checkHardwares(accessoryXmlVO.getHardwareXmlVOS(), error);
|
||||
}
|
||||
|
||||
AssemblieXmlVOS assemblieXmlVOS = materialXmlVO.getAssemblieXmlVOS(); // 组件
|
||||
if (assemblieXmlVOS != null && assemblieXmlVOS.getAssemblyXmlVOList() != null && !assemblieXmlVOS.getAssemblyXmlVOList().isEmpty()) {
|
||||
checkAssemblies(assemblieXmlVOS, error);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
// public Boolean checkVO(OrderXmlVO orderXmlVO) {
|
||||
// long startTime = System.currentTimeMillis();
|
||||
// AtomicBoolean error = new AtomicBoolean(true);
|
||||
//
|
||||
// RoomXmlVOS roomXmlVOS = orderXmlVO.getRoomXmlVOS();
|
||||
// if (roomXmlVOS != null) {
|
||||
// checkRoom(roomXmlVOS, error);
|
||||
// }
|
||||
//
|
||||
// ModuleXmlVOS moduleXmlVOS = orderXmlVO.getModuleXmlVOS();
|
||||
// if (moduleXmlVOS != null) {
|
||||
// checkModules(moduleXmlVOS, error);
|
||||
// }
|
||||
//
|
||||
// GroupXmlVOS grooveXmlVOS = orderXmlVO.getGroupXmlVOS();
|
||||
// if (grooveXmlVOS != null) {
|
||||
// checkGroups(grooveXmlVOS, error);
|
||||
// }
|
||||
//
|
||||
// MaterialXmlVO materialXmlVO = orderXmlVO.getMaterialXmlVO();
|
||||
// if (materialXmlVO != null) {
|
||||
// PlateXmlVOS plateXmlVOS = materialXmlVO.getPlateXmlVOS();
|
||||
//
|
||||
// Map<String, Object> map = extractPlateDate(plateXmlVOS);
|
||||
// if (map != null) {
|
||||
// // 判断板块和归属code是否相匹配
|
||||
// }
|
||||
//
|
||||
// if (plateXmlVOS != null && !plateXmlVOS.getPlateXmlVOList().isEmpty()) {
|
||||
// checkPlates(plateXmlVOS.getPlateXmlVOList(), error);
|
||||
// }
|
||||
//
|
||||
// AccessoryXmlVO accessoryXmlVO = materialXmlVO.getAccessoryXmlVO(); //配件
|
||||
// if (accessoryXmlVO != null) {
|
||||
// checkEdgings(accessoryXmlVO.getEdgingXmlVOS(), error);
|
||||
// checkHardwares(accessoryXmlVO.getHardwareXmlVOS(), error);
|
||||
// }
|
||||
//
|
||||
// AssemblieXmlVOS assemblieXmlVOS = materialXmlVO.getAssemblieXmlVOS(); // 组件
|
||||
// if (assemblieXmlVOS != null && assemblieXmlVOS.getAssemblyXmlVOList() != null && !assemblieXmlVOS.getAssemblyXmlVOList().isEmpty()) {
|
||||
// checkAssemblies(assemblieXmlVOS, error);
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// long endTime = System.currentTimeMillis();
|
||||
// long duration = endTime - startTime;
|
||||
//
|
||||
// System.out.println("方法运行耗时 xml: " + duration + " 毫秒");
|
||||
// return error.get();
|
||||
// }
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
@@ -1139,19 +1218,6 @@ public class XMLUtil {
|
||||
|
||||
}
|
||||
}
|
||||
// 数据格式+数据正数判断
|
||||
private Boolean checkNumber(String numberStr, Class<?> targetType) {
|
||||
boolean error = true;
|
||||
if (ToolUtil.convertToType(numberStr, targetType)) {
|
||||
if (!ToolUtil.checkNumber(numberStr)) {
|
||||
error = false;
|
||||
}
|
||||
} else {
|
||||
error = false;
|
||||
}
|
||||
return error;
|
||||
}
|
||||
|
||||
|
||||
// point 验证
|
||||
private void checkPointRemoveZ(PointXmlVO pointXmlVO, AtomicBoolean flag, String name) {
|
||||
@@ -1186,7 +1252,7 @@ public class XMLUtil {
|
||||
code.put(ROOM_CODE, blockXmlVO.getRoomCode());
|
||||
code.put(BODY_CODE, blockXmlVO.getBoxCode());
|
||||
code.put(MODULE_CODE, blockXmlVO.getModuleCode());
|
||||
code.put(GROUP_CODE, blockXmlVO.getGroupCode());
|
||||
code.put(GROUP_CODE, blockXmlVO.getGroupCodes());
|
||||
map.put(blockXmlVO.getProductionCode(), code); // 生产编号
|
||||
}
|
||||
}
|
||||
|
||||
+35
-30
@@ -410,19 +410,28 @@ public class XmlTypeRealize {
|
||||
List<Object> partDOList = new ArrayList<>(partsDOInfos.values());
|
||||
List<Object> partRemarks = new ArrayList<>(orderPartsRemarks.values());
|
||||
|
||||
map.put("rawGoodsDOS", rawGoodsDOs);
|
||||
map.put("goodsDOS", goodsDOs);
|
||||
map.put("orderBodyDOS", orderBodyDOList);
|
||||
map.put("orderGroupDOS", groupDOList);
|
||||
map.put("plateDOS", plateDOs);
|
||||
map.put("orderPartsDOS", partDOList);
|
||||
map.put("orderItemDOS", itemDOList);
|
||||
map.put("plateDetail", plateDetail);
|
||||
map.put("orderPartsRemarks", partRemarks);
|
||||
map.put(FieldConstants.RAW_GOODS, rawGoodsDOs);
|
||||
map.put(FieldConstants.GOODS, goodsDOs);
|
||||
map.put(FieldConstants.BODY, orderBodyDOList);
|
||||
map.put(FieldConstants.GROUP, groupDOList);
|
||||
map.put(FieldConstants.PLATE, plateDOs);
|
||||
map.put(FieldConstants.PARTS, partDOList);
|
||||
map.put(FieldConstants.ITEM, itemDOList);
|
||||
map.put(FieldConstants.PLATE_DETAIL, plateDetail);
|
||||
map.put(FieldConstants.PARTS_REMARK, partRemarks);
|
||||
|
||||
return map;
|
||||
}
|
||||
|
||||
// groupCodes提取code
|
||||
private String[] getGroupCode(String groupCode) {
|
||||
if (groupCode == null) {
|
||||
return new String[]{};
|
||||
}
|
||||
groupCode = groupCode.replaceAll("\\[|\\]", "");
|
||||
return groupCode.split(",");
|
||||
}
|
||||
|
||||
// id得到
|
||||
private Map<String, Long> getId(PositionVO positionVO, Map<String, Map<String, OrderBodyDO>> roomInfos, Map<String, OrderGroupDO> groupInfos,
|
||||
Double plateNum, Double unregularNum, Long orderId, Long organId) {
|
||||
@@ -766,10 +775,18 @@ public class XmlTypeRealize {
|
||||
}
|
||||
|
||||
|
||||
public List<Object> plateInfoChange(List<Object> plateDetails, Long organId, Long orderId, Long goodsId, BlockXmlVOS blockXmlVOS,
|
||||
List<Object> plateDOs, Map<String, Object> orderItemMap, Map<String, Object> partsDO,
|
||||
Map<String, Map<String, OrderBodyDO>> roomInfos, Map<String, OrderGroupDO> groupInfos,
|
||||
Map<String, Map<String, BasePosition>> boxBasePositionMap, Map<String, BasePosition> roomBasePositions) {
|
||||
public List<Object> plateInfoChange(List<Object> plateDetails,
|
||||
Long organId,
|
||||
Long orderId,
|
||||
Long goodsId,
|
||||
BlockXmlVOS blockXmlVOS,
|
||||
List<Object> plateDOs,
|
||||
Map<String, Object> orderItemMap,
|
||||
Map<String, Object> partsDO,
|
||||
Map<String, Map<String, OrderBodyDO>> roomInfos,
|
||||
Map<String, OrderGroupDO> groupInfos,
|
||||
Map<String, Map<String, BasePosition>> boxBasePositionMap,
|
||||
Map<String, BasePosition> roomBasePositions) {
|
||||
|
||||
if (blockXmlVOS != null && blockXmlVOS.getBlockXmlVOList() == null || blockXmlVOS.getBlockXmlVOList().isEmpty()) {
|
||||
|
||||
@@ -808,7 +825,7 @@ public class XmlTypeRealize {
|
||||
.boxName(blockXmlVO.getBoxName())
|
||||
.boxCode(blockXmlVO.getBoxCode())
|
||||
.groupName(blockXmlVO.getGroupName())
|
||||
.groupCode(blockXmlVO.getGroupCode())
|
||||
.groupCode(blockXmlVO.getGroupCodes())
|
||||
.moduleName(blockXmlVO.getModuleName())
|
||||
.moduleCode(blockXmlVO.getModuleCode())
|
||||
.build();
|
||||
@@ -850,6 +867,9 @@ public class XmlTypeRealize {
|
||||
.isDoor(doorType != 0)
|
||||
.openDoorType(doorType)
|
||||
.isSpecialShaped(convertToBoolean(blockXmlVO.getUnregular()))
|
||||
.roomName(positionVO.getRoomName())
|
||||
.bodyName(positionVO.getBoxName())
|
||||
.customPlateNoBuilder(new StringBuilder())
|
||||
.build();
|
||||
|
||||
orderItemMap.put(blockXmlVO.getProductionCode(), OrderItemDO.builder()
|
||||
@@ -886,7 +906,7 @@ public class XmlTypeRealize {
|
||||
.roomsName(blockXmlVO.getRoomName())
|
||||
.bodyNo(blockXmlVO.getBoxCode())
|
||||
.bodyName(blockXmlVO.getBoxName())
|
||||
.groupNo(blockXmlVO.getGroupCode())
|
||||
.groupNo(blockXmlVO.getGroupCodes())
|
||||
.groupName(blockXmlVO.getGroupName())
|
||||
.has2DModel(false)
|
||||
.has3DModel(false)
|
||||
@@ -942,21 +962,6 @@ public class XmlTypeRealize {
|
||||
}
|
||||
|
||||
|
||||
|
||||
// private void addIslandDetail(PlateDetail plateDetail, IsletXmlVOS isletXmlVOS) {
|
||||
// if (isletXmlVOS != null && ObjectUtils.allNull(isletXmlVOS)) {
|
||||
// if (isletXmlVOS.getIsletXmlVOList() != null && !isletXmlVOS.getIsletXmlVOList().isEmpty()) {
|
||||
// for (IsletXmlVO isletXmlVO : isletXmlVOS.getIsletXmlVOList()) {
|
||||
// ModelDetail modelDetail = ModelDetail.builder()
|
||||
// .id(Integer.valueOf(isletXmlVO.getId()))
|
||||
//// .parentId(Integer.valueOf(isletXmlVO.getSubIDs()))
|
||||
// .pointList(addPointDetail(isletXmlVO.getPointXmlVOS())).build();
|
||||
// plateDetail.getContourDetail().add(modelDetail);
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
|
||||
// 小板关联配件添加
|
||||
private void addParts(PlateDetail plateDetail, CorrelationXmlVOS correlationXmlVOS, Map<String, Object> partsDOMap) {
|
||||
List<PartsInfo> partsInfos = new ArrayList<>();
|
||||
|
||||
+1
-1
@@ -6,7 +6,7 @@
|
||||
<select id="selectPlatesDetailByOrderId" resultType="com.cf.imes.module.executor.controller.admin.plate.vo.PlateRespVO">
|
||||
SELECT DISTINCT i.order_id, p.id, p.plate_no, g.material, p.name, p.area, p.seal_left, p.seal_down,
|
||||
p.seal_right, p.seal_up, p.texture, p.is_special_shaped, p.is_sculpt, p.unregular_point_count, p.front_hole_count,
|
||||
p.back_hole_count, p.side_hole_count,p.width,p.height,p.thickness,p.remark,g.color,p.is_row_hole
|
||||
p.back_hole_count, p.side_hole_count,p.width,p.height,p.thickness,p.remark,g.color,p.is_row_hole, p.custom_plate_no
|
||||
FROM order_item i
|
||||
RIGHT JOIN `order_plate` p ON i.plate_id = p.id
|
||||
LEFT JOIN `order_goods` g ON g.id = p.goods_id
|
||||
|
||||
Reference in New Issue
Block a user