mirror of
http://192.168.1.205:9980/cf_devdept2/cf_imes_server.git
synced 2026-08-12 12:52:07 +08:00
配件新增、删除逻辑修改
This commit is contained in:
+111
-97
@@ -99,6 +99,10 @@ public class OrderController {
|
||||
@Resource
|
||||
private RedisLockUtil redisLockUtil;
|
||||
|
||||
private String lockKey = "order:1631:lock:";
|
||||
private String errKey = "api数据导入异常";
|
||||
private String errValue = "当前存在导入情况,请稍后";
|
||||
|
||||
@PutMapping("/update")
|
||||
@Operation(summary = "更新生产单")
|
||||
@PreAuthorize("@ss.hasPermission('production:manager-list:edit')")
|
||||
@@ -200,7 +204,11 @@ public class OrderController {
|
||||
@PreAuthorize("@ss.hasPermission('production:manager-list:create')")
|
||||
public CommonResult<String> getApiData(@RequestParam(value = "orderNo") String orderNo){
|
||||
|
||||
redisLockUtil.lock(orderNo);
|
||||
boolean isLocked = redisLockUtil.lock(lockKey);
|
||||
if (!isLocked) {
|
||||
log.error(errKey, errValue);
|
||||
return success(errValue);
|
||||
}
|
||||
try {
|
||||
Long orderId = (Long) identifierGenerator.nextId(null);
|
||||
Long organId = getUserOrganId();
|
||||
@@ -237,10 +245,10 @@ public class OrderController {
|
||||
Long id = orderService.importApiData(listMap);
|
||||
return success(String.valueOf(id));
|
||||
} catch (Exception e) {
|
||||
log.error("api数据导入异常", e);
|
||||
log.error(errKey, e);
|
||||
return success(e.getMessage());
|
||||
} finally {
|
||||
redisLockUtil.unlock(orderNo);
|
||||
redisLockUtil.unlock(lockKey);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -269,115 +277,121 @@ public class OrderController {
|
||||
|
||||
Boolean flag = true;
|
||||
String customOrderNoKey = "自定义单号";
|
||||
redisLockUtil.lock(file.getOriginalFilename());
|
||||
try {
|
||||
if (type == 0) { //excel
|
||||
excelReadUtil.setErr(0);
|
||||
Map<String, Object> map = excelReadUtil.read(file);
|
||||
list = (List<OrderPlateImportExcelVO>) map.get("plate");
|
||||
mapOrder = (Map<String, Object>) map.get("orderPri");
|
||||
boolean isLocked = redisLockUtil.lock(lockKey);
|
||||
if (!isLocked) {
|
||||
log.error(errKey, errValue);
|
||||
|
||||
if (index == 0) { // 全部
|
||||
if (mapOrder != null) {
|
||||
Map<String, Object> mapChange = excelReadUtil.changeOrderDO(mapOrder);
|
||||
mapOrder = (Map<String, Object>) mapChange.get("file");
|
||||
orderDO = (OrderDO) mapChange.get("order");
|
||||
orderDO.setId((Long) snowFlakeGenerator.nextId(null));
|
||||
AtomicBoolean error = (AtomicBoolean) mapChange.get("error");
|
||||
flag = error.get();
|
||||
} else {
|
||||
try {
|
||||
if (type == 0) { //excel
|
||||
excelReadUtil.setErr(0);
|
||||
Map<String, Object> map = excelReadUtil.read(file);
|
||||
list = (List<OrderPlateImportExcelVO>) map.get("plate");
|
||||
mapOrder = (Map<String, Object>) map.get("orderPri");
|
||||
|
||||
if (index == 0) { // 全部
|
||||
if (mapOrder != null) {
|
||||
Map<String, Object> mapChange = excelReadUtil.changeOrderDO(mapOrder);
|
||||
mapOrder = (Map<String, Object>) mapChange.get("file");
|
||||
orderDO = (OrderDO) mapChange.get("order");
|
||||
orderDO.setId((Long) snowFlakeGenerator.nextId(null));
|
||||
AtomicBoolean error = (AtomicBoolean) mapChange.get("error");
|
||||
flag = error.get();
|
||||
}
|
||||
} else {
|
||||
orderDO = orderService.getOrder(orderId);
|
||||
if (orderDO == null) {
|
||||
mapOrder = new HashMap<>();
|
||||
mapOrder.put("自定义单号", "生产单号不存在");
|
||||
flag = false;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
orderDO = orderService.getOrder(orderId);
|
||||
if (orderDO == null) {
|
||||
|
||||
if (mapOrder == null) {
|
||||
mapOrder = new HashMap<>();
|
||||
mapOrder.put("自定义单号", "生产单号不存在");
|
||||
mapOrder.put(customOrderNoKey, "生产单内容解析为空");
|
||||
flag = false;
|
||||
}else if (orderDO == null) {
|
||||
mapOrder.put(customOrderNoKey, "生产单内为空");
|
||||
flag = false;
|
||||
} else if (orderDO.getCustomOrderNo() != null && !orderService.customOrderNoIsExists(orderDO.getCustomOrderNo())) {
|
||||
mapOrder.put(customOrderNoKey, mapOrder.get(customOrderNoKey) + customOrderNoKey + "重复");
|
||||
flag = false;
|
||||
} else if ( excelReadUtil.isErr() > 0 ){
|
||||
flag = false;
|
||||
} else if ( excelReadUtil.isErr() == 0 && flag ){
|
||||
if (list.size() == 0) {
|
||||
orderDO.setStatus(OrderStatusEnum.EMPTY.getStatus());
|
||||
} else {
|
||||
orderDO.setStatus(OrderStatusEnum.NEW_ORDER.getStatus());
|
||||
listMap = excelTypeRealize.changeDate(list, orderDO.getId());
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!flag) {
|
||||
ExcelWriterUtil.write(response, mapOrder, list, orderService.getSavePath() + File.separator + "order_add_excel_err.xlsx");
|
||||
return;
|
||||
}
|
||||
} else if (type == 1) { // json
|
||||
|
||||
if (mapOrder == null) {
|
||||
mapOrder = new HashMap<>();
|
||||
mapOrder.put(customOrderNoKey, "生产单内容解析为空");
|
||||
flag = false;
|
||||
}else if (orderDO == null) {
|
||||
mapOrder.put(customOrderNoKey, "生产单内为空");
|
||||
flag = false;
|
||||
} else if (orderDO.getCustomOrderNo() != null && !orderService.customOrderNoIsExists(orderDO.getCustomOrderNo())) {
|
||||
mapOrder.put(customOrderNoKey, mapOrder.get(customOrderNoKey) + customOrderNoKey + "重复");
|
||||
flag = false;
|
||||
} else if ( excelReadUtil.isErr() > 0 ){
|
||||
flag = false;
|
||||
} else if ( excelReadUtil.isErr() == 0 && flag ){
|
||||
if (list.size() == 0) {
|
||||
orderDO.setStatus(OrderStatusEnum.EMPTY.getStatus());
|
||||
} else if (type == 2) { // xml
|
||||
orderXmlVO = (OrderXmlVO) XMLUtil.read(file, OrderXmlVO.class);
|
||||
|
||||
if (index == 0){
|
||||
if (orderXmlVO != null) {
|
||||
mapOrder = xmlUtil.changeDate(orderXmlVO, getUserOrganId()); // 生产单数据格式验证
|
||||
orderDO = (OrderDO) mapOrder.get("order");
|
||||
orderDO.setId((Long) snowFlakeGenerator.nextId(null));
|
||||
flag = (Boolean) mapOrder.get("error");
|
||||
}
|
||||
} else {
|
||||
orderDO.setStatus(OrderStatusEnum.NEW_ORDER.getStatus());
|
||||
listMap = excelTypeRealize.changeDate(list, orderDO.getId());
|
||||
orderDO = orderService.getOrder(orderId);
|
||||
if (orderDO == null) {
|
||||
orderXmlVO = new OrderXmlVO().setMemo("---< 生产单号不存在 >---");
|
||||
flag = false;
|
||||
}
|
||||
}
|
||||
|
||||
// 生产数据格式验证
|
||||
if (orderXmlVO == null) {
|
||||
orderXmlVO = new OrderXmlVO().setMemo("文件内容解析为空");
|
||||
flag = false;
|
||||
} else if (orderDO == null) {
|
||||
orderXmlVO = new OrderXmlVO().setMemo("生产单内容为空");
|
||||
flag = false;
|
||||
} else if (orderDO.getCustomOrderNo() != null && !orderService.customOrderNoIsExists(orderDO.getCustomOrderNo())) {
|
||||
orderXmlVO.setOrderCode(orderXmlVO.getOrderCode() + "---< 自定义单号重复 >---");
|
||||
flag = false;
|
||||
} else if (flag){ // 生产单的内容正确
|
||||
if (orderXmlVO.getMaterialXmlVO() == null || orderXmlVO.getMaterialXmlVO().getPlateXmlVOS() == null ||
|
||||
orderXmlVO.getMaterialXmlVO().getPlateXmlVOS().getPlateXmlVOList() == null ||
|
||||
orderXmlVO.getMaterialXmlVO().getPlateXmlVOS().getPlateXmlVOList().size() == 0) {
|
||||
orderDO.setStatus(OrderStatusEnum.EMPTY.getStatus());
|
||||
} else {
|
||||
orderDO.setStatus(OrderStatusEnum.NEW_ORDER.getStatus());
|
||||
flag = xmlUtil.checkVO(orderXmlVO);
|
||||
listMap = xmlTypeRealize.goodsInfoChange(orderXmlVO, orderDO.getId(), getUserOrganId());
|
||||
}
|
||||
}
|
||||
if (!flag){
|
||||
String xmlStr = XmlBuilder.objectToXmlStr(orderXmlVO);
|
||||
XMLUtil.writeErr(response, xmlStr, " order_add_xml_err.xml");
|
||||
return;
|
||||
}
|
||||
}
|
||||
if (!flag) {
|
||||
orderService.importExcelData(orderDO, index, listMap);
|
||||
} catch (Exception e) {
|
||||
log.error("文件导入异常", e);
|
||||
if (type == 0) {
|
||||
ExcelWriterUtil.write(response, mapOrder, list, orderService.getSavePath() + File.separator + "order_add_excel_err.xlsx");
|
||||
return;
|
||||
}
|
||||
} else if (type == 1) { // json
|
||||
|
||||
} else if (type == 2) { // xml
|
||||
orderXmlVO = (OrderXmlVO) XMLUtil.read(file, OrderXmlVO.class);
|
||||
|
||||
if (index == 0){
|
||||
if (orderXmlVO != null) {
|
||||
mapOrder = xmlUtil.changeDate(orderXmlVO, getUserOrganId()); // 生产单数据格式验证
|
||||
orderDO = (OrderDO) mapOrder.get("order");
|
||||
orderDO.setId((Long) snowFlakeGenerator.nextId(null));
|
||||
flag = (Boolean) mapOrder.get("error");
|
||||
}
|
||||
} else {
|
||||
orderDO = orderService.getOrder(orderId);
|
||||
if (orderDO == null) {
|
||||
orderXmlVO = new OrderXmlVO().setMemo("---< 生产单号不存在 >---");
|
||||
flag = false;
|
||||
}
|
||||
}
|
||||
|
||||
// 生产数据格式验证
|
||||
if (orderXmlVO == null) {
|
||||
orderXmlVO = new OrderXmlVO().setMemo("文件内容解析为空");
|
||||
flag = false;
|
||||
} else if (orderDO == null) {
|
||||
orderXmlVO = new OrderXmlVO().setMemo("生产单内容为空");
|
||||
flag = false;
|
||||
} else if (orderDO.getCustomOrderNo() != null && !orderService.customOrderNoIsExists(orderDO.getCustomOrderNo())) {
|
||||
orderXmlVO.setOrderCode(orderXmlVO.getOrderCode() + "---< 自定义单号重复 >---");
|
||||
flag = false;
|
||||
} else if (flag){ // 生产单的内容正确
|
||||
if (orderXmlVO.getMaterialXmlVO() == null || orderXmlVO.getMaterialXmlVO().getPlateXmlVOS() == null ||
|
||||
orderXmlVO.getMaterialXmlVO().getPlateXmlVOS().getPlateXmlVOList() == null ||
|
||||
orderXmlVO.getMaterialXmlVO().getPlateXmlVOS().getPlateXmlVOList().size() == 0) {
|
||||
orderDO.setStatus(OrderStatusEnum.EMPTY.getStatus());
|
||||
} else {
|
||||
orderDO.setStatus(OrderStatusEnum.NEW_ORDER.getStatus());
|
||||
flag = xmlUtil.checkVO(orderXmlVO);
|
||||
listMap = xmlTypeRealize.goodsInfoChange(orderXmlVO, orderDO.getId(), getUserOrganId());
|
||||
}
|
||||
}
|
||||
if (!flag){
|
||||
} else if (type == 2) {
|
||||
String xmlStr = XmlBuilder.objectToXmlStr(orderXmlVO);
|
||||
XMLUtil.writeErr(response, xmlStr, " order_add_xml_err.xml");
|
||||
return;
|
||||
}
|
||||
} finally {
|
||||
redisLockUtil.unlock(lockKey);
|
||||
}
|
||||
orderService.importExcelData(orderDO, index, listMap);
|
||||
} catch (Exception e) {
|
||||
log.error("文件导入异常", e);
|
||||
if (type == 0) {
|
||||
ExcelWriterUtil.write(response, mapOrder, list, orderService.getSavePath() + File.separator + "order_add_excel_err.xlsx");
|
||||
} else if (type == 2) {
|
||||
String xmlStr = XmlBuilder.objectToXmlStr(orderXmlVO);
|
||||
XMLUtil.writeErr(response, xmlStr, " order_add_xml_err.xml");
|
||||
}
|
||||
} finally {
|
||||
redisLockUtil.unlock(file.getOriginalFilename());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
+20
@@ -33,6 +33,14 @@ public class OrderPartsRespVO {
|
||||
@ExcelProperty("材质")
|
||||
private String material;
|
||||
|
||||
@Schema(description = "颜色", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@ExcelProperty("颜色")
|
||||
private String color;
|
||||
|
||||
@Schema(description = "配件主类", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@ExcelProperty("配件主类")
|
||||
private String category;
|
||||
|
||||
@Schema(description = "配件类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
|
||||
@ExcelProperty("配件类型")
|
||||
private String type;
|
||||
@@ -41,6 +49,18 @@ public class OrderPartsRespVO {
|
||||
@ExcelProperty("型号")
|
||||
private String model;
|
||||
|
||||
@Schema(description = "宽度", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@ExcelProperty("宽度")
|
||||
private Double width;
|
||||
|
||||
@Schema(description = "长度", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@ExcelProperty("长度")
|
||||
private Double length;
|
||||
|
||||
@Schema(description = "厚度", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@ExcelProperty("厚度")
|
||||
private Double thickness;
|
||||
|
||||
@Schema(description = "规格", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@ExcelProperty("规格")
|
||||
private String spec;
|
||||
|
||||
+2
-3
@@ -128,7 +128,6 @@ public interface OrderItemMapper extends BaseMapperX<OrderItemDO> {
|
||||
@Param("bodyId") Set<Long> bodyId, @Param("groupId") Set<Long> groupId, @Param("goodsId") Set<Long> goodsId,
|
||||
@Param("organId") Long organId, @Param("deleted") Integer deleted);
|
||||
|
||||
List<Long> selectPartsNotId(@Param("orderId") Long orderId, @Param("roomId") Long roomId,
|
||||
@Param("bodyId") Long bodyId, @Param("groupId") Long groupId, @Param("goodsId") Long goodsId,
|
||||
@Param("organId") Long organId, @Param("deleted") Integer deleted);
|
||||
Integer countPartsNotId(@Param("orderId") Long orderId, @Param("bodyId") Set<Long> bodyIds, @Param("goodsId") Long partsId,
|
||||
@Param("organId") Long organId, @Param("deleted") Integer deleted);
|
||||
}
|
||||
+28
-20
@@ -292,13 +292,17 @@ public class OrderServiceImpl implements OrderService {
|
||||
|
||||
if (!partsList.isEmpty()){
|
||||
// // 判断是否含有重复的配件
|
||||
// List<Long> partsNot = new ArrayList<>();
|
||||
// for (Long partsId : partsList) {
|
||||
// Long partNot = orderItemMapper.selectPartsNotId(partsId, getUserOrganId(), orderId);
|
||||
// if (!groupIds.isEmpty()) {
|
||||
// orderGroupMapper.updateDeletedGroup(groupIds, getUserOrganId(), orderId);
|
||||
// }
|
||||
// }
|
||||
Iterator<Long> iterator = partsList.iterator();
|
||||
while (iterator.hasNext()) {
|
||||
Long id = iterator.next(); // 配件id判断是否重复
|
||||
// 判断不符合删除配件的规则
|
||||
Integer partsCount = orderItemMapper.countPartsNotId(orderId, new HashSet<>(bodyIds), id, getUserOrganId(), 0);
|
||||
if (partsCount > 0){
|
||||
iterator.remove();
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!partsList.isEmpty()) {
|
||||
orderPartsMapper.updateDeletedParts(partsList, getUserOrganId(),orderId);
|
||||
}
|
||||
|
||||
@@ -731,7 +735,7 @@ public class OrderServiceImpl implements OrderService {
|
||||
return partsDOS;
|
||||
}
|
||||
|
||||
private Map<String, List<?>> getPlateGoods(List<GoodsDO> goodsLists) {
|
||||
private Map<String, List<?>> getPlateGoods(List<GoodsDO> goodsLists) { // order_goods list
|
||||
Map<String, List<?>> map = new HashMap<>();
|
||||
List<PlateGoodDO> plateGoodLists = new ArrayList<>();
|
||||
|
||||
@@ -739,17 +743,15 @@ public class OrderServiceImpl implements OrderService {
|
||||
return Collections.emptyMap();
|
||||
}
|
||||
for (GoodsDO goodsDO : goodsLists) {
|
||||
PlateGoodDO plateGoodDO = null;
|
||||
List<PlateGoodDO> plateGoodDOS = null;
|
||||
if (goodsDO.getGoodsId() != null) { // 有goodsId
|
||||
PlateGoodDO plateGoodDO = null; // plate
|
||||
List<PlateGoodDO> plateGoodDOS = null; // plate list
|
||||
if (goodsDO.getGoodsId() != null && !goodsDO.getGoodsId().isEmpty()) { // 有goodsId
|
||||
plateGoodDO = getPlateGood(goodsDO.getGoodsId(), OrganContextHolder.getOrganId());
|
||||
} else { // 没有goodsId 其他信息匹配
|
||||
plateGoodDOS = plateGoodMapper.selectGood(goodsDO.getGoodsName(), goodsDO.getMaterial(), goodsDO.getColor(),
|
||||
goodsDO.getTexture(), goodsDO.getWidth(), goodsDO.getThickness(), goodsDO.getHeight(), goodsDO.getBrand(),
|
||||
goodsDO.getSpec(), OrganContextHolder.getOrganId());
|
||||
long plateNo = idWorker.nextId();
|
||||
long obtainingTime = idWorker.obtainingTime();
|
||||
goodsDO.setGoodsId((obtainingTime) + Long.toString(plateNo).substring(2));
|
||||
|
||||
}
|
||||
|
||||
if (plateGoodDOS != null && !plateGoodDOS.isEmpty()) {//存在板材
|
||||
@@ -757,7 +759,13 @@ public class OrderServiceImpl implements OrderService {
|
||||
} else if (plateGoodDO != null) { // 存在板材
|
||||
goodsDO.setGoodsId(plateGoodDO.getGoodsId());
|
||||
} else { // 不存在板材
|
||||
String goodsId = goodsDO.getGoodsId();
|
||||
|
||||
long plateNo = idWorker.nextId();
|
||||
long obtainingTime = idWorker.obtainingTime();
|
||||
|
||||
String goodsId = (obtainingTime) + Long.toString(plateNo).substring(2);
|
||||
goodsDO.setGoodsId(goodsId);
|
||||
|
||||
|
||||
Long plateGoods = (Long) identifierGenerator.nextId(null);
|
||||
|
||||
@@ -765,11 +773,11 @@ public class OrderServiceImpl implements OrderService {
|
||||
.setId(plateGoods)
|
||||
.setGoodsId(goodsId);
|
||||
// 判断是否存在raw_goods_id
|
||||
if (goodsDO.getGoodsId() != null) {
|
||||
plateGoodDO.setGoodsId(goodsDO.getGoodsId());
|
||||
} else {
|
||||
goodsDO.setGoodsId(plateGoodDO.getGoodsId());
|
||||
}
|
||||
// if (goodsDO.getGoodsId() != null) {
|
||||
// plateGoodDO.setGoodsId(goodsDO.getGoodsId());
|
||||
// } else {
|
||||
// goodsDO.setGoodsId(plateGoodDO.getGoodsId());
|
||||
// }
|
||||
plateGoodLists.add(plateGoodDO);
|
||||
}
|
||||
|
||||
|
||||
+403
-359
@@ -61,6 +61,9 @@ public class ApiTypeRealize {
|
||||
private static String PART_THICKNESS = "thickness";
|
||||
private static String PART_COLOR = "color";
|
||||
private static String PART_MATERIAL = "material";
|
||||
private static String PART_CATEGORY_ONE = "封边条";
|
||||
private static String PART_CATEGORY_TWO = "五金";
|
||||
private static String PART_CATEGORY_THREE = "组件";
|
||||
/**
|
||||
* @param dataPlates: 板件生产信息 造型数据
|
||||
* @param dataParts: 配件信息
|
||||
@@ -93,7 +96,7 @@ public class ApiTypeRealize {
|
||||
|
||||
|
||||
// 商品信息数据 信息以全
|
||||
Map<String, Object> goodsInfoChange = rawGoodsInfoChange(dataGoods, orderId, organId);
|
||||
Map<String, Object> goodsInfoChange = rawGoodsInfoChange(dataGoods, orderId, organId, token);
|
||||
Map<Long, RawGoodsDO> rawGoodsDOS = (Map<Long, RawGoodsDO>) goodsInfoChange.get(FieldConstants.RAW_GOODS);
|
||||
Map<Long, GoodsDO> goodsDOS = (Map<Long, GoodsDO>) goodsInfoChange.get(FieldConstants.GOODS);
|
||||
|
||||
@@ -163,6 +166,8 @@ public class ApiTypeRealize {
|
||||
map.put(FieldConstants.ITEM, itemsList);
|
||||
if (bodyItemsPlates != null) {
|
||||
map.put(FieldConstants.BODY, new ArrayList<>(bodyItemsPlates.values()));
|
||||
} else {
|
||||
map.put(FieldConstants.BODY, new ArrayList<>(bodyInfoChange.values())); // Map<Long, OrderBodyDO> bodyInfoChange
|
||||
}
|
||||
|
||||
return map;
|
||||
@@ -374,7 +379,8 @@ public class ApiTypeRealize {
|
||||
*/
|
||||
public Map<String, Object> rawGoodsInfoChange(JSONObject dataRawGoods,
|
||||
Long orderId,
|
||||
Long organId) {
|
||||
Long organId,
|
||||
String token) {
|
||||
|
||||
JSONArray goodsLists = dataRawGoods.getJSONArray(ProduceApiConstants.LIST);
|
||||
if (goodsLists == null || goodsLists.isEmpty()) {
|
||||
@@ -386,44 +392,52 @@ public class ApiTypeRealize {
|
||||
Map<Long, GoodsDO> goodsDOS = new HashMap<>();
|
||||
|
||||
|
||||
for (int i = 0; i < goodsLists.size(); i++) {
|
||||
JSONObject goods = goodsLists.getJSONObject(i);
|
||||
|
||||
RawGoodsDO rawGoodsDO = RawGoodsDO.builder()
|
||||
.id((Long) identifierGenerator.nextId(null))
|
||||
.orderId(orderId)
|
||||
.rawGoodsId(goods.getString(ProduceApiConstants.G_DOOR_ID))
|
||||
.goodsName(goods.getString(ProduceApiConstants.G_GOODS_NAME))
|
||||
.material(goods.getString(ProduceApiConstants.G_MATERIAL))
|
||||
.color(goods.getString(ProduceApiConstants.G_COLOR))
|
||||
.texture(getTexture( goods.getJSONObject(ProduceApiConstants.G_EXTRA_PROP)))
|
||||
.thickness(goods.getDouble(ProduceApiConstants.G_THICKNESS))
|
||||
.brand(goods.getString(ProduceApiConstants.G_BRAND))
|
||||
.spec(goods.getString(ProduceApiConstants.G_SPEC))
|
||||
.organId(organId)
|
||||
.build();
|
||||
rawGoodsDOS.put(goods.getLong(ProduceApiConstants.G_DOOR_ID), rawGoodsDO);
|
||||
|
||||
GoodsDO goodsDO = GoodsDO.builder()
|
||||
.id((Long) identifierGenerator.nextId(null))
|
||||
.orderId(orderId)
|
||||
.rawGoodsId(String.valueOf(rawGoodsDO.getId()))
|
||||
.goodsId(goods.getString(ProduceApiConstants.G_DOOR_ID)) // 先填这个,后面改
|
||||
.goodsName(goods.getString(ProduceApiConstants.G_GOODS_NAME))
|
||||
.material(goods.getString(ProduceApiConstants.G_MATERIAL))
|
||||
.color(goods.getString(ProduceApiConstants.G_COLOR))
|
||||
.texture(getTexture( goods.getJSONObject(ProduceApiConstants.G_EXTRA_PROP)))
|
||||
.width(BigDecimal.valueOf(goods.getDouble(ProduceApiConstants.G_WIDTH)))
|
||||
.height(BigDecimal.valueOf(goods.getDouble(ProduceApiConstants.G_HEIGHT)))
|
||||
.thickness(BigDecimal.valueOf(goods.getDouble(ProduceApiConstants.G_THICKNESS)))
|
||||
.brand(goods.getString(ProduceApiConstants.G_BRAND))
|
||||
.spec(goods.getString(ProduceApiConstants.G_SPEC))
|
||||
.organId(organId)
|
||||
.build();
|
||||
goodsDOS.put(goods.getLong(ProduceApiConstants.G_DOOR_ID), goodsDO);
|
||||
for (int i = 0; i < goodsLists.size(); i++) {
|
||||
JSONObject goods = goodsLists.getJSONObject(i);
|
||||
|
||||
Long goodsId = goods.getLong(ProduceApiConstants.G_DOOR_ID);
|
||||
String goodsSn = null;
|
||||
if (goodsId != null) {
|
||||
goodsSn = getGoodsSn(goods.getLong(ProduceApiConstants.G_DOOR_ID), token);
|
||||
}
|
||||
|
||||
RawGoodsDO rawGoodsDO = RawGoodsDO.builder()
|
||||
.id((Long) identifierGenerator.nextId(null))
|
||||
.orderId(orderId)
|
||||
// .rawGoodsId(goods.getString(ProduceApiConstants.G_DOOR_ID))
|
||||
.rawGoodsId(goodsSn)
|
||||
.goodsName(goods.getString(ProduceApiConstants.G_GOODS_NAME))
|
||||
.material(goods.getString(ProduceApiConstants.G_MATERIAL))
|
||||
.color(goods.getString(ProduceApiConstants.G_COLOR))
|
||||
.texture(getTexture( goods.getJSONObject(ProduceApiConstants.G_EXTRA_PROP)))
|
||||
.thickness(goods.getDouble(ProduceApiConstants.G_THICKNESS))
|
||||
.brand(goods.getString(ProduceApiConstants.G_BRAND))
|
||||
.spec(goods.getString(ProduceApiConstants.G_SPEC))
|
||||
.organId(organId)
|
||||
.build();
|
||||
rawGoodsDOS.put(goods.getLong(ProduceApiConstants.G_DOOR_ID), rawGoodsDO);
|
||||
|
||||
GoodsDO goodsDO = GoodsDO.builder()
|
||||
.id((Long) identifierGenerator.nextId(null))
|
||||
.orderId(orderId)
|
||||
.rawGoodsId(String.valueOf(rawGoodsDO.getId()))
|
||||
// .goodsId(goods.getString(ProduceApiConstants.G_DOOR_ID)) // 先填这个,后面改
|
||||
.goodsId(goodsSn)
|
||||
.goodsName(goods.getString(ProduceApiConstants.G_GOODS_NAME))
|
||||
.material(goods.getString(ProduceApiConstants.G_MATERIAL))
|
||||
.color(goods.getString(ProduceApiConstants.G_COLOR))
|
||||
.texture(getTexture( goods.getJSONObject(ProduceApiConstants.G_EXTRA_PROP)))
|
||||
.width(BigDecimal.valueOf(goods.getDouble(ProduceApiConstants.G_WIDTH)))
|
||||
.height(BigDecimal.valueOf(goods.getDouble(ProduceApiConstants.G_HEIGHT)))
|
||||
.thickness(BigDecimal.valueOf(goods.getDouble(ProduceApiConstants.G_THICKNESS)))
|
||||
.brand(goods.getString(ProduceApiConstants.G_BRAND))
|
||||
.spec(goods.getString(ProduceApiConstants.G_SPEC))
|
||||
.organId(organId)
|
||||
.build();
|
||||
goodsDOS.put(goods.getLong(ProduceApiConstants.G_DOOR_ID), goodsDO);
|
||||
|
||||
}
|
||||
|
||||
|
||||
map.put(FieldConstants.RAW_GOODS, rawGoodsDOS);
|
||||
map.put(FieldConstants.GOODS, goodsDOS);
|
||||
@@ -447,27 +461,27 @@ public class ApiTypeRealize {
|
||||
}
|
||||
Map<Long, OrderBodyDO> bodyInfos = new HashMap<>();
|
||||
|
||||
for (int i = 0; i < bodyLists.size(); i++) {
|
||||
JSONObject body = bodyLists.getJSONObject(i);
|
||||
OrderBodyDO bodyInfo = OrderBodyDO.builder()
|
||||
.id((Long) identifierGenerator.nextId(null))
|
||||
.orderId(orderId)
|
||||
.roomId(Long.valueOf(body.getString(ProduceApiConstants.B_ROOM_ID)))
|
||||
.roomName(body.getString(ProduceApiConstants.B_ROOM_NAME))
|
||||
.name(body.getString(ProduceApiConstants.B_NAME))
|
||||
.width(body.getDouble(ProduceApiConstants.B_WIDTH))
|
||||
.height(body.getDouble(ProduceApiConstants.B_HEIGHT))
|
||||
.depth(body.getDouble(ProduceApiConstants.B_DEPTH))
|
||||
.multiNum(0)
|
||||
.plateNum(0)
|
||||
.unregularNum(0)
|
||||
.filename("")
|
||||
.remark("")
|
||||
.organId(organId)
|
||||
.build();
|
||||
bodyInfos.put(body.getLong(ProduceApiConstants.B_BOX_ID), bodyInfo);
|
||||
for (int i = 0; i < bodyLists.size(); i++) {
|
||||
JSONObject body = bodyLists.getJSONObject(i);
|
||||
OrderBodyDO bodyInfo = OrderBodyDO.builder()
|
||||
.id((Long) identifierGenerator.nextId(null))
|
||||
.orderId(orderId)
|
||||
.roomId(Long.valueOf(body.getString(ProduceApiConstants.B_ROOM_ID)))
|
||||
.roomName(body.getString(ProduceApiConstants.B_ROOM_NAME))
|
||||
.name(body.getString(ProduceApiConstants.B_NAME))
|
||||
.width(body.getDouble(ProduceApiConstants.B_WIDTH))
|
||||
.height(body.getDouble(ProduceApiConstants.B_HEIGHT))
|
||||
.depth(body.getDouble(ProduceApiConstants.B_DEPTH))
|
||||
.multiNum(0)
|
||||
.plateNum(0)
|
||||
.unregularNum(0)
|
||||
.filename("")
|
||||
.remark("")
|
||||
.organId(organId)
|
||||
.build();
|
||||
bodyInfos.put(body.getLong(ProduceApiConstants.B_BOX_ID), bodyInfo);
|
||||
|
||||
}
|
||||
}
|
||||
return bodyInfos;
|
||||
}
|
||||
|
||||
@@ -489,9 +503,13 @@ public class ApiTypeRealize {
|
||||
private Map<String,Object> getPartsSize(JSONObject size, JSONObject spec) {
|
||||
Map<String,Object> map = new HashMap<>();
|
||||
if (size != null && !size.isEmpty()) {
|
||||
map.put(PART_WIDTH, size.getInteger(ProduceApiConstants.PD_WIDTH));
|
||||
map.put(PART_LENGTH, size.getInteger(ProduceApiConstants.PD_LENGTH));
|
||||
map.put(PART_THICKNESS, size.getInteger(ProduceApiConstants.PD_THICKNESS));
|
||||
map.put(PART_WIDTH, size.getDouble(ProduceApiConstants.PD_WIDTH));
|
||||
map.put(PART_LENGTH, size.getDouble(ProduceApiConstants.PD_LENGTH));
|
||||
map.put(PART_THICKNESS, size.getDouble(ProduceApiConstants.PD_THICKNESS));
|
||||
} else {
|
||||
map.put(PART_WIDTH, 0.0);
|
||||
map.put(PART_LENGTH, 0.0);
|
||||
map.put(PART_THICKNESS, 0.0);
|
||||
}
|
||||
if (spec != null && !spec.isEmpty()) {
|
||||
map.put(PART_COLOR, spec.getString(ProduceApiConstants.PD_PARTS_SPEC_COLOR));
|
||||
@@ -532,77 +550,104 @@ public class ApiTypeRealize {
|
||||
Long organId,
|
||||
String token) {
|
||||
|
||||
if (value == null || value.isEmpty()) {
|
||||
return Collections.emptyMap();
|
||||
}
|
||||
|
||||
Map<String, Object> map = new HashMap<>();
|
||||
Map<Long, OrderPartsDO> partsInfos = new HashMap<>();
|
||||
Map<Long, OrderItemDO> partsItem = new HashMap<>();
|
||||
Map<Long, OrderPartsRemark> remarks = new HashMap<>();
|
||||
|
||||
|
||||
JSONArray partsLists = value.getJSONArray(ProduceApiConstants.LIST);
|
||||
for (int i = 0; i < partsLists.size(); i++) {
|
||||
JSONObject parts = partsLists.getJSONObject(i);
|
||||
Long partsId = (Long) identifierGenerator.nextId(null);
|
||||
// 这边用的配件详情接口的数据,可能存在多种配件的goodsId相同
|
||||
// 配件长宽厚颜色赋值
|
||||
Map<String, Object> sizeMap = getPartsSize(parts.getJSONObject(ProduceApiConstants.PD_SIZE), parts.getJSONObject(ProduceApiConstants.PD_PARTS_SPEC_OB));
|
||||
// goods_id转换,需要调用接口
|
||||
// Long goodsId = goodsDOMap.get(parts.getLong(ProduceApiConstants.PD_GOODS_ID)) != null
|
||||
// ? goodsDOMap.get(parts.getLong(ProduceApiConstants.PD_GOODS_ID)).getId() : parts.getLong(ProduceApiConstants.PD_GOODS_ID);
|
||||
Long goodsId = parts.getLong(ProduceApiConstants.PD_GOODS_ID);
|
||||
String goodsSn = null;
|
||||
if (goodsId != null) {
|
||||
goodsSn = getGoodsSn(parts.getLong(ProduceApiConstants.PD_GOODS_ID), token);
|
||||
}
|
||||
OrderPartsDO partsInfo = OrderPartsDO.builder()
|
||||
.id(partsId)
|
||||
.orderId(orderId)
|
||||
.goodsId(goodsSn)
|
||||
.name(parts.getString(ProduceApiConstants.PD_NAME))
|
||||
// .material(String.valueOf(goodsDOMap.get(parts.getLong(ProduceApiConstants.PD_GOODS_ID)) != null
|
||||
// ? goodsDOMap.get(parts.getLong(ProduceApiConstants.PD_GOODS_ID)).getMaterial() : ""))
|
||||
.material((String) sizeMap.get(PART_MATERIAL))
|
||||
.type(parts.getString(ProduceApiConstants.PD_OBJECT_TYPE))
|
||||
.model(parts.getString(ProduceApiConstants.PD_MODEL))
|
||||
.color((String) sizeMap.get(PART_COLOR))
|
||||
.width((Double) sizeMap.get(PART_WIDTH))
|
||||
.length((Double) sizeMap.get(PART_LENGTH))
|
||||
.thickness((Double) sizeMap.get(PART_THICKNESS))
|
||||
.spec(parts.getString(ProduceApiConstants.PD_SPEC))
|
||||
.brand(parts.getString(ProduceApiConstants.PD_BRAND))
|
||||
.factory(parts.getString(ProduceApiConstants.PD_FACTORY))
|
||||
.unit(parts.getString(ProduceApiConstants.PD_UNITS))
|
||||
.isComposite(parts.getBoolean(ProduceApiConstants.PD_IS_COMPOSITE))
|
||||
.remark(parts.getString(ProduceApiConstants.PD_REMARK))
|
||||
.organId(organId)
|
||||
.build();
|
||||
remarks.put(parts.getLong(ProduceApiConstants.PD_ITEM_NO), partsRemarkChange(parts, orderId, partsId));
|
||||
partsInfos.put(parts.getLong(ProduceApiConstants.PD_ITEM_NO), partsInfo);
|
||||
|
||||
// item 明细
|
||||
OrderItemDO item = OrderItemDO.builder()
|
||||
.id((Long) identifierGenerator.nextId(null))
|
||||
.orderId(orderId)
|
||||
.type(OrderItemTypeEnum.PARTS_ITEM.getStatus())
|
||||
.roomId(bodyInfos.get(parts.getLong(ProduceApiConstants.PD_BOX_ID)).getRoomId())
|
||||
.bodyId(bodyInfos.get(parts.getLong(ProduceApiConstants.PD_BOX_ID)).getId())
|
||||
.planId(0L)
|
||||
.packageId(0L)
|
||||
.groupId(0L)
|
||||
.partsId(partsId)
|
||||
.num(parts.getDouble(ProduceApiConstants.PD_NUM))
|
||||
.organId(organId)
|
||||
.build();
|
||||
partsItem.put(parts.getLong(ProduceApiConstants.PD_ITEM_NO), item);
|
||||
}
|
||||
|
||||
|
||||
map.put("partsInfos", partsInfos);
|
||||
map.put("partsItems", partsItem);
|
||||
map.put("remarks", remarks);
|
||||
|
||||
if (value == null || value.isEmpty()) {
|
||||
return map;
|
||||
}
|
||||
|
||||
|
||||
|
||||
JSONArray partsLists = value.getJSONArray(ProduceApiConstants.LIST);
|
||||
for (int i = 0; i < partsLists.size(); i++) {
|
||||
JSONObject parts = partsLists.getJSONObject(i);
|
||||
Long partsId = (Long) identifierGenerator.nextId(null);
|
||||
// 这边用的配件详情接口的数据,可能存在多种配件的goodsId相同
|
||||
// 配件长宽厚颜色赋值
|
||||
Map<String, Object> sizeMap = getPartsSize(parts.getJSONObject(ProduceApiConstants.PD_SIZE), parts.getJSONObject(ProduceApiConstants.PD_PARTS_SPEC_OB));
|
||||
// goods_id转换,需要调用接口
|
||||
// Long goodsId = goodsDOMap.get(parts.getLong(ProduceApiConstants.PD_GOODS_ID)) != null
|
||||
// ? goodsDOMap.get(parts.getLong(ProduceApiConstants.PD_GOODS_ID)).getId() : parts.getLong(ProduceApiConstants.PD_GOODS_ID);
|
||||
Long goodsId = parts.getLong(ProduceApiConstants.PD_GOODS_ID);
|
||||
|
||||
String goodsSn = null;
|
||||
Long key = parts.getLong(ProduceApiConstants.PD_ITEM_NO);
|
||||
// goods_id不为0时,要判断是否有存相同的goods_id,为0时,新增一条order_parts
|
||||
if (goodsId != 0) {
|
||||
goodsSn = getGoodsSn(parts.getLong(ProduceApiConstants.PD_GOODS_ID), token);
|
||||
key = goodsId;
|
||||
}
|
||||
|
||||
OrderPartsDO partsInfo = OrderPartsDO.builder()
|
||||
.id(partsId)
|
||||
.orderId(orderId)
|
||||
.goodsId(goodsSn)
|
||||
.name(parts.getString(ProduceApiConstants.PD_NAME))
|
||||
// .material(String.valueOf(goodsDOMap.get(parts.getLong(ProduceApiConstants.PD_GOODS_ID)) != null
|
||||
// ? goodsDOMap.get(parts.getLong(ProduceApiConstants.PD_GOODS_ID)).getMaterial() : ""))
|
||||
.material((String) sizeMap.get(PART_MATERIAL))
|
||||
.type(parts.getString(ProduceApiConstants.PD_OBJECT_TYPE))
|
||||
.model(parts.getString(ProduceApiConstants.PD_MODEL))
|
||||
.color((String) sizeMap.get(PART_COLOR))
|
||||
.width((Double) sizeMap.get(PART_WIDTH))
|
||||
.length((Double) sizeMap.get(PART_LENGTH))
|
||||
.thickness((Double) sizeMap.get(PART_THICKNESS))
|
||||
.spec(parts.getString(ProduceApiConstants.PD_SPEC))
|
||||
.brand(parts.getString(ProduceApiConstants.PD_BRAND))
|
||||
.factory(parts.getString(ProduceApiConstants.PD_FACTORY))
|
||||
.unit(parts.getString(ProduceApiConstants.PD_UNITS))
|
||||
.isComposite(parts.getBoolean(ProduceApiConstants.PD_IS_COMPOSITE))
|
||||
.remark(parts.getString(ProduceApiConstants.PD_REMARK))
|
||||
.organId(organId)
|
||||
.build();
|
||||
|
||||
// 主分类赋值
|
||||
if (parts.getString(ProduceApiConstants.PD_OBJECT_TYPE).equals(PART_CATEGORY_ONE)) {
|
||||
partsInfo.setCategory(PART_CATEGORY_ONE);
|
||||
} else {
|
||||
if (parts.getBoolean(ProduceApiConstants.PD_IS_COMPOSITE)) {
|
||||
partsInfo.setCategory(PART_CATEGORY_THREE);
|
||||
} else {
|
||||
partsInfo.setCategory(PART_CATEGORY_TWO);
|
||||
}
|
||||
}
|
||||
|
||||
// item 明细
|
||||
OrderItemDO item = OrderItemDO.builder()
|
||||
.id((Long) identifierGenerator.nextId(null))
|
||||
.orderId(orderId)
|
||||
.type(OrderItemTypeEnum.PARTS_ITEM.getStatus())
|
||||
.roomId(bodyInfos.get(parts.getLong(ProduceApiConstants.PD_BOX_ID)).getRoomId())
|
||||
.bodyId(bodyInfos.get(parts.getLong(ProduceApiConstants.PD_BOX_ID)).getId())
|
||||
.planId(0L)
|
||||
.packageId(0L)
|
||||
.groupId(0L)
|
||||
.partsId(partsId)
|
||||
.num(parts.getDouble(ProduceApiConstants.PD_NUM))
|
||||
.organId(organId)
|
||||
.build();
|
||||
partsItem.put(parts.getLong(ProduceApiConstants.PD_ITEM_NO), item);
|
||||
|
||||
if (partsInfos.get(goodsId) != null) { //有存,下一条
|
||||
partsId = partsInfos.get(goodsId).getId();
|
||||
partsItem.get(parts.getLong(ProduceApiConstants.PD_ITEM_NO)).setPartsId(partsId);
|
||||
continue;
|
||||
}
|
||||
remarks.put(key, partsRemarkChange(parts, orderId, partsId));
|
||||
partsInfos.put(key, partsInfo);
|
||||
}
|
||||
|
||||
|
||||
// map.put("partsInfos", partsInfos);
|
||||
// map.put("partsItems", partsItem);
|
||||
// map.put("remarks", remarks);
|
||||
return map;
|
||||
}
|
||||
|
||||
@@ -651,130 +696,130 @@ public class ApiTypeRealize {
|
||||
}
|
||||
|
||||
|
||||
JSONArray plateLists = dataPlates.getJSONArray(ProduceApiConstants.LIST);
|
||||
for (int i = 0; i < plateLists.size(); i++) {
|
||||
long plateNo = idWorker.nextId();
|
||||
long obtainingTime = idWorker.obtainingTime();
|
||||
JSONArray plateLists = dataPlates.getJSONArray(ProduceApiConstants.LIST);
|
||||
for (int i = 0; i < plateLists.size(); i++) {
|
||||
long plateNo = idWorker.nextId();
|
||||
long obtainingTime = idWorker.obtainingTime();
|
||||
|
||||
JSONObject plate = plateLists.getJSONObject(i);
|
||||
JSONObject plate = plateLists.getJSONObject(i);
|
||||
|
||||
Integer type = Integer.valueOf(dictDataApi.parseDictData(DictTypeConstants.PLATE_TYPE,
|
||||
plate.getString(ProduceApiConstants.BD_BOARD_TYPE))
|
||||
.getData().getValue());
|
||||
Long plateId = (Long) identifierGenerator.nextId(null);
|
||||
Integer type = Integer.valueOf(dictDataApi.parseDictData(DictTypeConstants.PLATE_TYPE,
|
||||
plate.getString(ProduceApiConstants.BD_BOARD_TYPE))
|
||||
.getData().getValue());
|
||||
Long plateId = (Long) identifierGenerator.nextId(null);
|
||||
|
||||
String remarkJson = plate.getString(ProduceApiConstants.BD_REMARK_JSON).replace("\"", "").trim();
|
||||
String remark = !remarkJson.trim().isEmpty() ? remarkJson : "";
|
||||
String remarkJson = plate.getString(ProduceApiConstants.BD_REMARK_JSON).replace("\"", "").trim();
|
||||
String remark = !remarkJson.trim().isEmpty() ? remarkJson : "";
|
||||
|
||||
PlateDO plateInfo = PlateDO.builder()
|
||||
.id(plateId)
|
||||
.orderId(orderId)
|
||||
.name(plate.getString(ProduceApiConstants.BD_BOARD_NAME))
|
||||
.plateNo((obtainingTime) + Long.toString(plateNo).substring(2))
|
||||
.type(type)
|
||||
.goodsId(goodsDOMap.get(plate.getLong(ProduceApiConstants.BD_GOODS_ID)) != null ?
|
||||
goodsDOMap.get(plate.getLong(ProduceApiConstants.BD_GOODS_ID)).getId() : plate.getLong(ProduceApiConstants.BD_GOODS_ID))
|
||||
.splitHeight(BigDecimal.valueOf(plate.getDouble(ProduceApiConstants.BD_SPLIT_HEIGHT)))
|
||||
.splitThickness(BigDecimal.valueOf(plate.getDouble(ProduceApiConstants.BD_SPLIT_THICKNESS)))
|
||||
.splitWidth(BigDecimal.valueOf(plate.getDouble(ProduceApiConstants.BD_SPLIT_WIDTH)))
|
||||
.sealLeft(BigDecimal.valueOf(plate.getDouble(ProduceApiConstants.BD_SEALED_LEFT)))
|
||||
.sealRight(BigDecimal.valueOf(plate.getDouble(ProduceApiConstants.BD_SEALED_RIGHT)))
|
||||
.sealUp(BigDecimal.valueOf(plate.getDouble(ProduceApiConstants.BD_SEALED_UP)))
|
||||
.sealDown(BigDecimal.valueOf(plate.getDouble(ProduceApiConstants.BD_SEALED_DOWN)))
|
||||
.holeArrange(0) // 排孔类型 值无实际含义,默认初始化值
|
||||
.unregularPointCount(0)// 异形孔个数 值无实际含义,默认初始化值
|
||||
.frontHoleCount(plate.getInteger(ProduceApiConstants.BD_FRONT_HOLE_COUNT))
|
||||
.sideHoleCount(plate.getInteger(ProduceApiConstants.BD_BACK_HOLE_COUNT))
|
||||
.sideHoleCount(plate.getInteger(ProduceApiConstants.BD_SIDE_HOLE_COUNT))
|
||||
.frontModelCount(plate.getInteger(ProduceApiConstants.BD_FRONT_MODEL_COUNT))
|
||||
.backModelCount(plate.getInteger(ProduceApiConstants.BD_BACK_MODEL_COUNT))
|
||||
.isDoor(plate.getInteger(ProduceApiConstants.BD_OPEN_DOOR_TYPE) != 0)
|
||||
.openDoorType(plate.getInteger(ProduceApiConstants.BD_OPEN_DOOR_TYPE))
|
||||
.isArcAcross(false)
|
||||
.moduleTypeId(0L)
|
||||
.isSculpt(plate.getBoolean(ProduceApiConstants.BD_IS_MODEL))
|
||||
.isSpecialShaped(plate.getBoolean(ProduceApiConstants.BD_IS_UN_REGULAR))
|
||||
.isCancel(false)
|
||||
.filterType("")
|
||||
.remark(remark)
|
||||
.organId(organId)
|
||||
.build();
|
||||
// item 明细
|
||||
OrderItemDO itemPlate = OrderItemDO.builder()
|
||||
.id((Long) identifierGenerator.nextId(null))
|
||||
.orderId(orderId)
|
||||
.type(OrderItemTypeEnum.PLATE_ITEM.getStatus())
|
||||
.roomId(bodyInfos.get(plate.getLong(ProduceApiConstants.BD_BOX_ID)).getRoomId())
|
||||
.bodyId(bodyInfos.get(plate.getLong(ProduceApiConstants.BD_BOX_ID)).getId())
|
||||
.planId(0L)
|
||||
.packageId(0L)
|
||||
.groupId(0L)
|
||||
.partsId(0L)
|
||||
.plateId(plateId)
|
||||
.num(1.0)
|
||||
.organId(organId)
|
||||
.build();
|
||||
PlateDO plateInfo = PlateDO.builder()
|
||||
.id(plateId)
|
||||
.orderId(orderId)
|
||||
.name(plate.getString(ProduceApiConstants.BD_BOARD_NAME))
|
||||
.plateNo((obtainingTime) + Long.toString(plateNo).substring(2))
|
||||
.type(type)
|
||||
.goodsId(goodsDOMap.get(plate.getLong(ProduceApiConstants.BD_GOODS_ID)) != null ?
|
||||
goodsDOMap.get(plate.getLong(ProduceApiConstants.BD_GOODS_ID)).getId() : plate.getLong(ProduceApiConstants.BD_GOODS_ID))
|
||||
.splitHeight(BigDecimal.valueOf(plate.getDouble(ProduceApiConstants.BD_SPLIT_HEIGHT)))
|
||||
.splitThickness(BigDecimal.valueOf(plate.getDouble(ProduceApiConstants.BD_SPLIT_THICKNESS)))
|
||||
.splitWidth(BigDecimal.valueOf(plate.getDouble(ProduceApiConstants.BD_SPLIT_WIDTH)))
|
||||
.sealLeft(BigDecimal.valueOf(plate.getDouble(ProduceApiConstants.BD_SEALED_LEFT)))
|
||||
.sealRight(BigDecimal.valueOf(plate.getDouble(ProduceApiConstants.BD_SEALED_RIGHT)))
|
||||
.sealUp(BigDecimal.valueOf(plate.getDouble(ProduceApiConstants.BD_SEALED_UP)))
|
||||
.sealDown(BigDecimal.valueOf(plate.getDouble(ProduceApiConstants.BD_SEALED_DOWN)))
|
||||
.holeArrange(0) // 排孔类型 值无实际含义,默认初始化值
|
||||
.unregularPointCount(0)// 异形孔个数 值无实际含义,默认初始化值
|
||||
.frontHoleCount(plate.getInteger(ProduceApiConstants.BD_FRONT_HOLE_COUNT))
|
||||
.sideHoleCount(plate.getInteger(ProduceApiConstants.BD_BACK_HOLE_COUNT))
|
||||
.sideHoleCount(plate.getInteger(ProduceApiConstants.BD_SIDE_HOLE_COUNT))
|
||||
.frontModelCount(plate.getInteger(ProduceApiConstants.BD_FRONT_MODEL_COUNT))
|
||||
.backModelCount(plate.getInteger(ProduceApiConstants.BD_BACK_MODEL_COUNT))
|
||||
.isDoor(plate.getInteger(ProduceApiConstants.BD_OPEN_DOOR_TYPE) != 0)
|
||||
.openDoorType(plate.getInteger(ProduceApiConstants.BD_OPEN_DOOR_TYPE))
|
||||
.isArcAcross(false)
|
||||
.moduleTypeId(0L)
|
||||
.isSculpt(plate.getBoolean(ProduceApiConstants.BD_IS_MODEL))
|
||||
.isSpecialShaped(plate.getBoolean(ProduceApiConstants.BD_IS_UN_REGULAR))
|
||||
.isCancel(false)
|
||||
.filterType("")
|
||||
.remark(remark)
|
||||
.organId(organId)
|
||||
.build();
|
||||
// item 明细
|
||||
OrderItemDO itemPlate = OrderItemDO.builder()
|
||||
.id((Long) identifierGenerator.nextId(null))
|
||||
.orderId(orderId)
|
||||
.type(OrderItemTypeEnum.PLATE_ITEM.getStatus())
|
||||
.roomId(bodyInfos.get(plate.getLong(ProduceApiConstants.BD_BOX_ID)).getRoomId())
|
||||
.bodyId(bodyInfos.get(plate.getLong(ProduceApiConstants.BD_BOX_ID)).getId())
|
||||
.planId(0L)
|
||||
.packageId(0L)
|
||||
.groupId(0L)
|
||||
.partsId(0L)
|
||||
.plateId(plateId)
|
||||
.num(1.0)
|
||||
.organId(organId)
|
||||
.build();
|
||||
|
||||
if (plateDetail != null){
|
||||
Long blockNo = plate.getLong(ProduceApiConstants.BD_BLOCK_NO);
|
||||
PlateDetail plateDetailInfo = plateDetail.get(blockNo);
|
||||
if (plateDetail != null){
|
||||
Long blockNo = plate.getLong(ProduceApiConstants.BD_BLOCK_NO);
|
||||
PlateDetail plateDetailInfo = plateDetail.get(blockNo);
|
||||
|
||||
if (plateDetailInfo != null) {
|
||||
plateDetailInfo.setPlateId(plateId)
|
||||
.setExtraRemark(plate.getString(ProduceApiConstants.BD_EXTRA_REMARK).replace("\"", "").trim())
|
||||
.setSpecialRemarkDei(plate.getString(ProduceApiConstants.BD_SPECIAL_REMARK).replace("\"", "").trim())
|
||||
.setExtraHandleRemark(plate.getString(ProduceApiConstants.BD_EXTRA_HANDLE_REMARK).replace("\"", "").trim())
|
||||
.setDrillsRemark(plate.getString(ProduceApiConstants.BD_DRILLS_REMARK).replace("\"", "").trim())
|
||||
.setInfoRemark(plate.getString(ProduceApiConstants.BD_INFO_REMARK).replace("\"", "").trim())
|
||||
.setRemarkJsonDei(remarkJson);
|
||||
if (plateDetailInfo != null) {
|
||||
plateDetailInfo.setPlateId(plateId)
|
||||
.setExtraRemark(plate.getString(ProduceApiConstants.BD_EXTRA_REMARK).replace("\"", "").trim())
|
||||
.setSpecialRemarkDei(plate.getString(ProduceApiConstants.BD_SPECIAL_REMARK).replace("\"", "").trim())
|
||||
.setExtraHandleRemark(plate.getString(ProduceApiConstants.BD_EXTRA_HANDLE_REMARK).replace("\"", "").trim())
|
||||
.setDrillsRemark(plate.getString(ProduceApiConstants.BD_DRILLS_REMARK).replace("\"", "").trim())
|
||||
.setInfoRemark(plate.getString(ProduceApiConstants.BD_INFO_REMARK).replace("\"", "").trim())
|
||||
.setRemarkJsonDei(remarkJson);
|
||||
|
||||
plateInfo.setHoleFace(plateDetailInfo.getTypographicFace())
|
||||
.setOffsetX(plateDetailInfo.getOffsetX())
|
||||
.setOffsetY(plateDetailInfo.getOffsetY());
|
||||
|
||||
if (plateDetailInfo.getThroughModelCount() != null
|
||||
&& plateDetailInfo.getThroughModelCount() > 0){
|
||||
plateInfo.setFilterType(plateInfo.getFilterType() + ",1");
|
||||
}
|
||||
if (plateDetailInfo.getThroughHoleCount() != null
|
||||
&& plateDetailInfo.getThroughHoleCount() > 0){
|
||||
plateInfo.setFilterType(plateInfo.getFilterType() + ",2");
|
||||
}
|
||||
if (plateDetailInfo.getHas2DModel() != null
|
||||
&& plateDetailInfo.getHas2DModel()){
|
||||
plateInfo.setFilterType(plateInfo.getFilterType() + ",4");
|
||||
}
|
||||
plateInfo.setHoleFace(plateDetailInfo.getTypographicFace())
|
||||
.setOffsetX(plateDetailInfo.getOffsetX())
|
||||
.setOffsetY(plateDetailInfo.getOffsetY());
|
||||
|
||||
if (plateDetailInfo.getThroughModelCount() != null
|
||||
&& plateDetailInfo.getThroughModelCount() > 0){
|
||||
plateInfo.setFilterType(plateInfo.getFilterType() + ",1");
|
||||
}
|
||||
if (plateDetailInfo.getThroughHoleCount() != null
|
||||
&& plateDetailInfo.getThroughHoleCount() > 0){
|
||||
plateInfo.setFilterType(plateInfo.getFilterType() + ",2");
|
||||
}
|
||||
if (plateDetailInfo.getHas2DModel() != null
|
||||
&& plateDetailInfo.getHas2DModel()){
|
||||
plateInfo.setFilterType(plateInfo.getFilterType() + ",4");
|
||||
}
|
||||
|
||||
if (plateMap.get(blockNo) != null) {
|
||||
JSONObject jsonObject = plateMap.get(blockNo);
|
||||
if (plateDetailInfo != null){
|
||||
plateDetailInfo.setRemarkJson(jsonObject.getString(ProduceApiConstants.BG_REMARK_JSON).replace("\"", "").trim())
|
||||
.setSpecialRemark(jsonObject.getString(ProduceApiConstants.BG_SPECIAL_REMARK).replace("\"", "").trim());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (plateMap != null){
|
||||
Long blockNo = plate.getLong(ProduceApiConstants.BD_BLOCK_NO);
|
||||
if (plateMap.get(blockNo) != null) {
|
||||
JSONObject jsonObject = plateMap.get(blockNo);
|
||||
plateInfo.setHeight(BigDecimal.valueOf(jsonObject.getDouble(ProduceApiConstants.BG_HEIGHT)))
|
||||
.setWidth(BigDecimal.valueOf(jsonObject.getDouble(ProduceApiConstants.BG_WIDTH)))
|
||||
.setThickness(BigDecimal.valueOf(jsonObject.getDouble(ProduceApiConstants.BG_THICKNESS)))
|
||||
.setArea(BigDecimal.valueOf(jsonObject.getDouble(ProduceApiConstants.BG_AREA)))
|
||||
.setTexture(jsonObject.getInteger(ProduceApiConstants.BG_WAVE))
|
||||
.setIsRowHole(jsonObject.getBoolean(ProduceApiConstants.BG_IS_HOLE));
|
||||
if (plateMap.get(blockNo) != null) {
|
||||
JSONObject jsonObject = plateMap.get(blockNo);
|
||||
if (plateDetailInfo != null){
|
||||
plateDetailInfo.setRemarkJson(jsonObject.getString(ProduceApiConstants.BG_REMARK_JSON).replace("\"", "").trim())
|
||||
.setSpecialRemark(jsonObject.getString(ProduceApiConstants.BG_SPECIAL_REMARK).replace("\"", "").trim());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
platesInfos.put(plate.getLong(ProduceApiConstants.BD_ITEM_ID), plateInfo);
|
||||
platesItem.put(plate.getLong(ProduceApiConstants.BD_ITEM_ID), itemPlate);
|
||||
|
||||
}
|
||||
|
||||
if (plateMap != null){
|
||||
Long blockNo = plate.getLong(ProduceApiConstants.BD_BLOCK_NO);
|
||||
if (plateMap.get(blockNo) != null) {
|
||||
JSONObject jsonObject = plateMap.get(blockNo);
|
||||
plateInfo.setHeight(BigDecimal.valueOf(jsonObject.getDouble(ProduceApiConstants.BG_HEIGHT)))
|
||||
.setWidth(BigDecimal.valueOf(jsonObject.getDouble(ProduceApiConstants.BG_WIDTH)))
|
||||
.setThickness(BigDecimal.valueOf(jsonObject.getDouble(ProduceApiConstants.BG_THICKNESS)))
|
||||
.setArea(BigDecimal.valueOf(jsonObject.getDouble(ProduceApiConstants.BG_AREA)))
|
||||
.setTexture(jsonObject.getInteger(ProduceApiConstants.BG_WAVE))
|
||||
.setIsRowHole(jsonObject.getBoolean(ProduceApiConstants.BG_IS_HOLE));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
platesInfos.put(plate.getLong(ProduceApiConstants.BD_ITEM_ID), plateInfo);
|
||||
platesItem.put(plate.getLong(ProduceApiConstants.BD_ITEM_ID), itemPlate);
|
||||
|
||||
}
|
||||
|
||||
|
||||
List<OrderItemDO> platesList = platesItem.values().stream().toList();
|
||||
List<PlateDO> plateDOList = platesInfos.values().stream().toList();
|
||||
@@ -842,83 +887,82 @@ public class ApiTypeRealize {
|
||||
|
||||
Map<Long, PlateDetail> plateDetails = new HashMap<>();
|
||||
|
||||
// 获取 Orders 字段对应的数组
|
||||
JSONArray ordersArray = dataPlates.getJSONObject(ProduceApiConstants.VALUE).getJSONArray(ProduceApiConstants.OPD_ORDER);
|
||||
if (ordersArray == null || ordersArray.isEmpty()) {
|
||||
return Collections.emptyMap();
|
||||
// 获取 Orders 字段对应的数组
|
||||
JSONArray ordersArray = dataPlates.getJSONObject(ProduceApiConstants.VALUE).getJSONArray(ProduceApiConstants.OPD_ORDER);
|
||||
if (ordersArray == null || ordersArray.isEmpty()) {
|
||||
return Collections.emptyMap();
|
||||
}
|
||||
|
||||
for (int i = 0; i < ordersArray.size(); i++) {
|
||||
|
||||
JSONObject order = ordersArray.getJSONObject(i);
|
||||
// 获取材料信息
|
||||
JSONArray materialJson = order.getJSONArray(ProduceApiConstants.BPD_MATERIALS);
|
||||
if (materialJson == null || materialJson.isEmpty()) {
|
||||
return plateDetails;
|
||||
}
|
||||
for (int j = 0; j < materialJson.size(); j++) {
|
||||
JSONObject material = materialJson.getJSONObject(j);
|
||||
|
||||
for (int i = 0; i < ordersArray.size(); i++) {
|
||||
// 板件信息
|
||||
JSONArray blocks = material.getJSONArray(ProduceApiConstants.BPD_BLOCKS);
|
||||
if (blocks == null || blocks.isEmpty()) {
|
||||
return plateDetails;
|
||||
}
|
||||
for (int k = 0; k < blocks.size(); k++) {
|
||||
JSONObject block = blocks.getJSONObject(k);// 每块板
|
||||
|
||||
JSONObject order = ordersArray.getJSONObject(i);
|
||||
// 获取材料信息
|
||||
JSONArray materialJson = order.getJSONArray(ProduceApiConstants.BPD_MATERIALS);
|
||||
if (materialJson != null && !materialJson.isEmpty()) {
|
||||
for (int j = 0; j < materialJson.size(); j++) {
|
||||
JSONObject material = materialJson.getJSONObject(j);
|
||||
|
||||
// 板件信息
|
||||
JSONArray blocks = material.getJSONArray(ProduceApiConstants.BPD_BLOCKS);
|
||||
if (blocks != null && !blocks.isEmpty()) {
|
||||
for (int k = 0; k < blocks.size(); k++) {
|
||||
JSONObject block = blocks.getJSONObject(k);// 每块板
|
||||
|
||||
PlateDetail plateDetail = PlateDetail.builder()
|
||||
.bodyNo(block.getString(ProduceApiConstants.BPD_BOX_NO))
|
||||
.plateNo(block.getString(ProduceApiConstants.BPD_BLOCK_NO))
|
||||
.name(block.getString(ProduceApiConstants.BPD_BLOCK_NAME))
|
||||
.customPlateNo(block.getString(ProduceApiConstants.BPD_CUSTOM_BLOCK_NO))
|
||||
.roomsName(block.getString(ProduceApiConstants.BPD_ROOM_NAME))
|
||||
.bodyName(block.getString(ProduceApiConstants.BPD_BOX_NAME))
|
||||
.group(block.getString(ProduceApiConstants.BPD_PROCESS_GROUP_NAME))
|
||||
.multiNum(1)
|
||||
.plateWidth(block.getBigDecimal(ProduceApiConstants.BPD_WIDTH))
|
||||
.plateLength(block.getBigDecimal(ProduceApiConstants.BPD_LENGTH))
|
||||
.acreage(block.getBigDecimal(ProduceApiConstants.BPD_SIZE))
|
||||
.splitWidth(block.getBigDecimal(ProduceApiConstants.BPD_CUTTING_WIDTH))
|
||||
.splitLength(block.getBigDecimal(ProduceApiConstants.BPD_CUTTING_LENGTH))
|
||||
.sealAcreage(block.getBigDecimal(ProduceApiConstants.BPD_CUTTING_SIZE))
|
||||
.isUnRegular(block.getBoolean(ProduceApiConstants.BPD_IS_UN_REGULAR))
|
||||
.sealLeft(block.getBigDecimal(ProduceApiConstants.BPD_BORDER_LEFT))
|
||||
.sealRight(block.getBigDecimal(ProduceApiConstants.BPD_BORDER_RIGHT))
|
||||
.sealUp(block.getBigDecimal(ProduceApiConstants.BPD_BORDER_UPPER))
|
||||
.sealDown(block.getBigDecimal(ProduceApiConstants.BPD_BORDER_UNDER))
|
||||
.texture(block.getInteger(ProduceApiConstants.BPD_WAVE))
|
||||
.typographicFace(Integer.valueOf(block.getString(ProduceApiConstants.BPD_PLACE_FACE)))
|
||||
.openDoorType(Integer.valueOf(block.getString(ProduceApiConstants.BPD_OPEN_DOOR_TYPE)))
|
||||
.offsetX(block.getBigDecimal(ProduceApiConstants.BPD_OFFSET_X))
|
||||
.offsetY(block.getBigDecimal(ProduceApiConstants.BPD_OFFSET_Y))
|
||||
.pointDetail(getPointDetail(block, true))
|
||||
.rawPointDetail(getPointDetail(block, false))
|
||||
.holeDetail(getHoleDetail(block, true))
|
||||
.sideHoleDetail(getHoleDetail(block, false))
|
||||
.contourDetail(getModelDetail(block.getJSONArray(ProduceApiConstants.BPD_MODEL)))
|
||||
.sideDetail(getModelDetail(block.getJSONArray(ProduceApiConstants.BPD_SIDE_MODEL)))
|
||||
.build();
|
||||
|
||||
if (block.getJSONObject(ProduceApiConstants.BPD_EXTRA_REMARK) != null) {
|
||||
JSONObject extraRemark = block.getJSONObject(ProduceApiConstants.BPD_EXTRA_REMARK).getJSONObject(ProduceApiConstants.BPD_EXTRA);
|
||||
if (extraRemark != null)
|
||||
plateDetail.setBoardType(extraRemark.getString(ProduceApiConstants.BPD_EXTRA_BOARD_TYPE))
|
||||
.setThroughHoleCount(Double.valueOf(extraRemark.getString(ProduceApiConstants.BPD_EXTRA_THROUGH_HOLE_COUNT)))
|
||||
.setThroughModelCount(Double.valueOf(extraRemark.getString(ProduceApiConstants.BPD_EXTRA_THROUGH_MODEL_COUNT)))
|
||||
.setHas2DModel(Boolean.valueOf(extraRemark.getString(ProduceApiConstants.BPD_EXTRA_HAS_2D_MODEL)))
|
||||
.setHas3DModel(Boolean.valueOf(extraRemark.getString(ProduceApiConstants.BPD_EXTRA_HAS_3D_MODEL)))
|
||||
.setPlateExtraRemark(block.getJSONObject(ProduceApiConstants.BPD_EXTRA_REMARK))
|
||||
.setSideRemark(remarkToMap(block))
|
||||
.setDrillsInfos(getDrillsInfo(block.getJSONObject(ProduceApiConstants.BPD_EXTRA_REMARK)));
|
||||
}
|
||||
plateDetails.put(block.getLong(ProduceApiConstants.BPD_BLOCK_NO), plateDetail);
|
||||
}
|
||||
}
|
||||
}
|
||||
PlateDetail plateDetail = PlateDetail.builder()
|
||||
.bodyNo(block.getString(ProduceApiConstants.BPD_BOX_NO))
|
||||
.plateNo(block.getString(ProduceApiConstants.BPD_BLOCK_NO))
|
||||
.name(block.getString(ProduceApiConstants.BPD_BLOCK_NAME))
|
||||
.customPlateNo(block.getString(ProduceApiConstants.BPD_CUSTOM_BLOCK_NO))
|
||||
.roomsName(block.getString(ProduceApiConstants.BPD_ROOM_NAME))
|
||||
.bodyName(block.getString(ProduceApiConstants.BPD_BOX_NAME))
|
||||
.group(block.getString(ProduceApiConstants.BPD_PROCESS_GROUP_NAME))
|
||||
.multiNum(1)
|
||||
.plateWidth(block.getBigDecimal(ProduceApiConstants.BPD_WIDTH))
|
||||
.plateLength(block.getBigDecimal(ProduceApiConstants.BPD_LENGTH))
|
||||
.acreage(block.getBigDecimal(ProduceApiConstants.BPD_SIZE))
|
||||
.splitWidth(block.getBigDecimal(ProduceApiConstants.BPD_CUTTING_WIDTH))
|
||||
.splitLength(block.getBigDecimal(ProduceApiConstants.BPD_CUTTING_LENGTH))
|
||||
.sealAcreage(block.getBigDecimal(ProduceApiConstants.BPD_CUTTING_SIZE))
|
||||
.isUnRegular(block.getBoolean(ProduceApiConstants.BPD_IS_UN_REGULAR))
|
||||
.sealLeft(block.getBigDecimal(ProduceApiConstants.BPD_BORDER_LEFT))
|
||||
.sealRight(block.getBigDecimal(ProduceApiConstants.BPD_BORDER_RIGHT))
|
||||
.sealUp(block.getBigDecimal(ProduceApiConstants.BPD_BORDER_UPPER))
|
||||
.sealDown(block.getBigDecimal(ProduceApiConstants.BPD_BORDER_UNDER))
|
||||
.texture(block.getInteger(ProduceApiConstants.BPD_WAVE))
|
||||
.typographicFace(Integer.valueOf(block.getString(ProduceApiConstants.BPD_PLACE_FACE)))
|
||||
.openDoorType(Integer.valueOf(block.getString(ProduceApiConstants.BPD_OPEN_DOOR_TYPE)))
|
||||
.offsetX(block.getBigDecimal(ProduceApiConstants.BPD_OFFSET_X))
|
||||
.offsetY(block.getBigDecimal(ProduceApiConstants.BPD_OFFSET_Y))
|
||||
.pointDetail(getPointDetail(block, true))
|
||||
.rawPointDetail(getPointDetail(block, false))
|
||||
.holeDetail(getHoleDetail(block, true))
|
||||
.sideHoleDetail(getHoleDetail(block, false))
|
||||
.contourDetail(getModelDetail(block.getJSONArray(ProduceApiConstants.BPD_MODEL)))
|
||||
.sideDetail(getModelDetail(block.getJSONArray(ProduceApiConstants.BPD_SIDE_MODEL)))
|
||||
.build();
|
||||
|
||||
if (block.getJSONObject(ProduceApiConstants.BPD_EXTRA_REMARK) != null) {
|
||||
JSONObject extraRemark = block.getJSONObject(ProduceApiConstants.BPD_EXTRA_REMARK).getJSONObject(ProduceApiConstants.BPD_EXTRA);
|
||||
if (extraRemark != null)
|
||||
plateDetail.setBoardType(extraRemark.getString(ProduceApiConstants.BPD_EXTRA_BOARD_TYPE))
|
||||
.setThroughHoleCount(Double.valueOf(extraRemark.getString(ProduceApiConstants.BPD_EXTRA_THROUGH_HOLE_COUNT)))
|
||||
.setThroughModelCount(Double.valueOf(extraRemark.getString(ProduceApiConstants.BPD_EXTRA_THROUGH_MODEL_COUNT)))
|
||||
.setHas2DModel(Boolean.valueOf(extraRemark.getString(ProduceApiConstants.BPD_EXTRA_HAS_2D_MODEL)))
|
||||
.setHas3DModel(Boolean.valueOf(extraRemark.getString(ProduceApiConstants.BPD_EXTRA_HAS_3D_MODEL)))
|
||||
.setPlateExtraRemark(block.getJSONObject(ProduceApiConstants.BPD_EXTRA_REMARK))
|
||||
.setSideRemark(remarkToMap(block))
|
||||
.setDrillsInfos(getDrillsInfo(block.getJSONObject(ProduceApiConstants.BPD_EXTRA_REMARK)));
|
||||
}
|
||||
// System.out.println("板块 " + plateDetails);
|
||||
plateDetails.put(block.getLong(ProduceApiConstants.BPD_BLOCK_NO), plateDetail);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
return plateDetails;
|
||||
@@ -936,14 +980,14 @@ public class ApiTypeRealize {
|
||||
return pointDetailList;
|
||||
}
|
||||
|
||||
for (int i = 0; i < pointsJson.size(); i++) {
|
||||
JSONObject point = pointsJson.getJSONObject(i);
|
||||
pointDetailList.add(PointDetail.builder()
|
||||
.pointX(Double.valueOf(point.getString(ProduceApiConstants.BPD_POINTS_X)))
|
||||
.pointY(Double.valueOf(point.getString(ProduceApiConstants.BPD_POINTS_Y)))
|
||||
.curve(Double.valueOf(point.getString(ProduceApiConstants.BPD_POINTS_CURVE)))
|
||||
.build());
|
||||
}
|
||||
for (int i = 0; i < pointsJson.size(); i++) {
|
||||
JSONObject point = pointsJson.getJSONObject(i);
|
||||
pointDetailList.add(PointDetail.builder()
|
||||
.pointX(Double.valueOf(point.getString(ProduceApiConstants.BPD_POINTS_X)))
|
||||
.pointY(Double.valueOf(point.getString(ProduceApiConstants.BPD_POINTS_Y)))
|
||||
.curve(Double.valueOf(point.getString(ProduceApiConstants.BPD_POINTS_CURVE)))
|
||||
.build());
|
||||
}
|
||||
|
||||
} else { // 含封边
|
||||
JSONArray orgPointsJson = block.getJSONArray(ProduceApiConstants.BPD_ORG_POINTS);
|
||||
@@ -951,16 +995,16 @@ public class ApiTypeRealize {
|
||||
return pointDetailList;
|
||||
}
|
||||
|
||||
for (int i = 0; i < orgPointsJson.size(); i++) {
|
||||
JSONObject rawPoint = orgPointsJson.getJSONObject(i);
|
||||
pointDetailList.add(PointDetail.builder()
|
||||
.pointX(Double.valueOf(rawPoint.getString(ProduceApiConstants.BPD_POINTS_X)))
|
||||
.pointY(Double.valueOf(rawPoint.getString(ProduceApiConstants.BPD_POINTS_Y)))
|
||||
.curve(Double.valueOf(rawPoint.getString(ProduceApiConstants.BPD_POINTS_CURVE)))
|
||||
.sealSize(BigDecimal.valueOf(Double.valueOf(rawPoint.getString(ProduceApiConstants.BPD_POINTS_EDGE))))
|
||||
.build());
|
||||
for (int i = 0; i < orgPointsJson.size(); i++) {
|
||||
JSONObject rawPoint = orgPointsJson.getJSONObject(i);
|
||||
pointDetailList.add(PointDetail.builder()
|
||||
.pointX(Double.valueOf(rawPoint.getString(ProduceApiConstants.BPD_POINTS_X)))
|
||||
.pointY(Double.valueOf(rawPoint.getString(ProduceApiConstants.BPD_POINTS_Y)))
|
||||
.curve(Double.valueOf(rawPoint.getString(ProduceApiConstants.BPD_POINTS_CURVE)))
|
||||
.sealSize(BigDecimal.valueOf(Double.valueOf(rawPoint.getString(ProduceApiConstants.BPD_POINTS_EDGE))))
|
||||
.build());
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
return pointDetailList;
|
||||
@@ -975,44 +1019,44 @@ public class ApiTypeRealize {
|
||||
if (holes == null || holes.isEmpty()) {
|
||||
return Collections.emptyList();
|
||||
}
|
||||
for (int i = 0; i < holes.size(); i++) {
|
||||
JSONObject hole = holes.getJSONObject(i);
|
||||
holeDetails.add(HoleDetail.builder()
|
||||
.startX(Double.valueOf(hole.getString(ProduceApiConstants.BPD_HOLE_X)))
|
||||
.startY(Double.valueOf(hole.getString(ProduceApiConstants.BPD_HOLE_Y)))
|
||||
.faceType(hole.getInteger(ProduceApiConstants.BPD_HOLE_FACE))
|
||||
.radius(Double.parseDouble(hole.getString(ProduceApiConstants.BPD_HOLE_DIAMETER)) / 2)
|
||||
.depth(Double.valueOf(hole.getString(ProduceApiConstants.BPD_HOLE_DEPTH)))
|
||||
.build());
|
||||
for (int i = 0; i < holes.size(); i++) {
|
||||
JSONObject hole = holes.getJSONObject(i);
|
||||
holeDetails.add(HoleDetail.builder()
|
||||
.startX(Double.valueOf(hole.getString(ProduceApiConstants.BPD_HOLE_X)))
|
||||
.startY(Double.valueOf(hole.getString(ProduceApiConstants.BPD_HOLE_Y)))
|
||||
.faceType(hole.getInteger(ProduceApiConstants.BPD_HOLE_FACE))
|
||||
.radius(Double.parseDouble(hole.getString(ProduceApiConstants.BPD_HOLE_DIAMETER)) / 2)
|
||||
.depth(Double.valueOf(hole.getString(ProduceApiConstants.BPD_HOLE_DEPTH)))
|
||||
.build());
|
||||
}
|
||||
} else {
|
||||
JSONArray sideHoles = block.getJSONArray(ProduceApiConstants.BPD_SIDE_HOLES);
|
||||
if (sideHoles == null || sideHoles.isEmpty()) {
|
||||
return Collections.emptyList();
|
||||
}
|
||||
for (int i = 0; i < sideHoles.size(); i++) {
|
||||
JSONObject hole = sideHoles.getJSONObject(i);
|
||||
String[] startPoints = splitAndTrim(hole.getString(ProduceApiConstants.BPD_HOLE_START_POINT));
|
||||
String[] endPoints = splitAndTrim(hole.getString(ProduceApiConstants.BPD_HOLE_END_POINT));
|
||||
try {
|
||||
holeDetails.add(HoleDetail.builder()
|
||||
.startX(Double.valueOf(startPoints[X]))
|
||||
.startY(Double.valueOf(startPoints[Y]))
|
||||
.startZ(Double.valueOf(startPoints[Z]))
|
||||
.endX(Double.valueOf(endPoints[X]))
|
||||
.endY(Double.valueOf(endPoints[Y]))
|
||||
.endZ(Double.valueOf(endPoints[Z]))
|
||||
.faceType(2)
|
||||
.direction(hole.getInteger(ProduceApiConstants.BPD_HOLE_DIRECTION))
|
||||
.radius(Double.parseDouble(hole.getString(ProduceApiConstants.BPD_HOLE_DIAMETER)) / 2)
|
||||
.depth(Double.valueOf(hole.getString(ProduceApiConstants.BPD_HOLE_DEPTH)))
|
||||
.build());
|
||||
} catch (Exception e) {
|
||||
for (int i = 0; i < sideHoles.size(); i++) {
|
||||
JSONObject hole = sideHoles.getJSONObject(i);
|
||||
String[] startPoints = splitAndTrim(hole.getString(ProduceApiConstants.BPD_HOLE_START_POINT));
|
||||
String[] endPoints = splitAndTrim(hole.getString(ProduceApiConstants.BPD_HOLE_END_POINT));
|
||||
try {
|
||||
holeDetails.add(HoleDetail.builder()
|
||||
.startX(Double.valueOf(startPoints[X]))
|
||||
.startY(Double.valueOf(startPoints[Y]))
|
||||
.startZ(Double.valueOf(startPoints[Z]))
|
||||
.endX(Double.valueOf(endPoints[X]))
|
||||
.endY(Double.valueOf(endPoints[Y]))
|
||||
.endZ(Double.valueOf(endPoints[Z]))
|
||||
.faceType(2)
|
||||
.direction(hole.getInteger(ProduceApiConstants.BPD_HOLE_DIRECTION))
|
||||
.radius(Double.parseDouble(hole.getString(ProduceApiConstants.BPD_HOLE_DIAMETER)) / 2)
|
||||
.depth(Double.valueOf(hole.getString(ProduceApiConstants.BPD_HOLE_DEPTH)))
|
||||
.build());
|
||||
} catch (Exception e) {
|
||||
// System.out.println("HoleDetail " + hole);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
return holeDetails;
|
||||
@@ -1175,15 +1219,15 @@ public class ApiTypeRealize {
|
||||
return null;
|
||||
}
|
||||
List<DrillsInfo> drillsInfos = new ArrayList<>();
|
||||
for (int i = 0; i < drills.size(); i++) {
|
||||
JSONObject drill = drills.getJSONObject(i);
|
||||
drillsInfos.add(DrillsInfo.builder()
|
||||
.name(drill.getString(ProduceApiConstants.BPD_DRILL_NAME))
|
||||
.type(drill.getString(ProduceApiConstants.BPD_DRILL_TYPE))
|
||||
.face(drill.getString(ProduceApiConstants.BPD_DRILL_FACE))
|
||||
.count(Double.valueOf(drill.getString(ProduceApiConstants.BPD_DRILL_COUNT)))
|
||||
.build());
|
||||
}
|
||||
for (int i = 0; i < drills.size(); i++) {
|
||||
JSONObject drill = drills.getJSONObject(i);
|
||||
drillsInfos.add(DrillsInfo.builder()
|
||||
.name(drill.getString(ProduceApiConstants.BPD_DRILL_NAME))
|
||||
.type(drill.getString(ProduceApiConstants.BPD_DRILL_TYPE))
|
||||
.face(drill.getString(ProduceApiConstants.BPD_DRILL_FACE))
|
||||
.count(Double.valueOf(drill.getString(ProduceApiConstants.BPD_DRILL_COUNT)))
|
||||
.build());
|
||||
}
|
||||
return drillsInfos;
|
||||
}
|
||||
|
||||
@@ -1216,11 +1260,11 @@ public class ApiTypeRealize {
|
||||
return null;
|
||||
}
|
||||
Map<String, String> map = new HashMap<>();
|
||||
for (int i = 0; i < jsonArray.size(); i++) {
|
||||
if (jsonArray.getString(i) != null && !jsonArray.getString(i).isEmpty()) {
|
||||
map.put(String.valueOf(i), jsonArray.getString(i));
|
||||
}
|
||||
for (int i = 0; i < jsonArray.size(); i++) {
|
||||
if (jsonArray.getString(i) != null && !jsonArray.getString(i).isEmpty()) {
|
||||
map.put(String.valueOf(i), jsonArray.getString(i));
|
||||
}
|
||||
}
|
||||
return map;
|
||||
}
|
||||
|
||||
|
||||
+111
-24
@@ -42,12 +42,15 @@ public class ExcelTypeRealize {
|
||||
private SnowFlakeGenerator snowFlakeGenerator;
|
||||
|
||||
@Resource
|
||||
SnowflakeIdWorker3rd idWorker;
|
||||
private SnowflakeIdWorker3rd idWorker;
|
||||
|
||||
@Resource
|
||||
private DictDataApi dictDataApi;
|
||||
|
||||
final String NOT_ASSIGNED = "未命名";
|
||||
final String PLATE = "plate";
|
||||
final String PARTS = "parts";
|
||||
|
||||
|
||||
// 数据转换 + 错误验证
|
||||
public Map<String, Object> changeDate(List<OrderPlateImportExcelVO> excelVOS, Long orderId) {
|
||||
@@ -73,23 +76,21 @@ public class ExcelTypeRealize {
|
||||
|
||||
HashMap<String, List<OrderPlateImportExcelVO>> checkMap = classifyGoods(excelVOS);
|
||||
|
||||
Map<String, List<OrderPlateImportExcelVO>> goodsIdMap = checkMap.get("plate").stream().collect(
|
||||
Map<String, List<OrderPlateImportExcelVO>> goodsIdMap = checkMap.get(PLATE).stream().collect(
|
||||
Collectors.groupingBy(
|
||||
excelVO -> excelVO.getGoodsId() != null ? excelVO.getGoodsId() : " ",
|
||||
Collectors.toList()
|
||||
));
|
||||
goodsIdMap.forEach((key, value) -> {
|
||||
if (value.get(0).getGoodsId() == null) { // 没有商品编号的
|
||||
if (key.equals(" ")) { // 没有商品编号的 value.get(0).getGoodsId() == null
|
||||
// 将相同条件的元素归为一个集合
|
||||
Map<List<Object>, List<OrderPlateImportExcelVO>> goodsMap = value.stream()
|
||||
.collect(Collectors.groupingBy(
|
||||
p -> Arrays.asList(p.getGoodsName(),
|
||||
p.getGoodsName(),
|
||||
p.getThickness(),
|
||||
p.getMaterial(),
|
||||
p.getWave(), // 纹理
|
||||
p.getColor(),
|
||||
p.getSpec(),
|
||||
p.getWave(), // 纹理
|
||||
p.getGoodsHeight(),
|
||||
p.getGoodsWidth(),
|
||||
p.getGoodsThickness(),
|
||||
@@ -131,6 +132,92 @@ public class ExcelTypeRealize {
|
||||
}
|
||||
});
|
||||
|
||||
// 配件信息合集,添加生产单id,添加生产单配件设计端商品编码,配件信息写入order_parts
|
||||
Map<String, List<OrderPlateImportExcelVO>> partsIdMap = checkMap.get(PARTS).stream().collect(
|
||||
Collectors.groupingBy(
|
||||
excelVO -> excelVO.getGoodsId() != null ? excelVO.getGoodsId() : " ",
|
||||
Collectors.toList()
|
||||
));
|
||||
partsIdMap.forEach((key, value) -> {
|
||||
if (key.equals(" ")) { // 没有商品编号的 value.get(0).getGoodsId() == null
|
||||
// 将相同条件的元素归为一个集合
|
||||
Map<List<Object>, List<OrderPlateImportExcelVO>> partsMap = value.stream()
|
||||
.collect(Collectors.groupingBy(
|
||||
p -> Arrays.asList(p.getGoodsName(),
|
||||
p.getMaterial(),
|
||||
p.getColor(),
|
||||
p.getIsComposite(),
|
||||
p.getCategory(),
|
||||
p.getType(),
|
||||
p.getFactory(),
|
||||
p.getModel(),
|
||||
p.getSpec(),
|
||||
p.getGoodsHeight(),
|
||||
p.getGoodsWidth(),
|
||||
p.getGoodsThickness(),
|
||||
p.getUnit(),
|
||||
p.getBrand()),
|
||||
Collectors.toList()
|
||||
));
|
||||
|
||||
partsMap.forEach((partKey, partValue) -> {
|
||||
// 配件信息集合,key不同,生成不同的id,写入order_parts表中
|
||||
Long partId = (Long) snowFlakeGenerator.nextId(null);
|
||||
OrderPlateImportExcelVO part = partValue.get(0);
|
||||
OrderPartsDO orderPartsDO = OrderPartsDO.builder().id(partId).orderId(orderId)
|
||||
.color(part.getColor()).category(part.getCategory()).type(part.getType())
|
||||
.length(Double.valueOf(StringUtils.isEmpty(part.getGoodsHeight()) ? "0" : part.getGoodsHeight()))
|
||||
.width(Double.valueOf(StringUtils.isEmpty(part.getGoodsWidth()) ? "0" : part.getGoodsWidth()))
|
||||
.thickness(Double.valueOf(StringUtils.isEmpty(part.getGoodsThickness()) ? "0" : part.getGoodsThickness()))
|
||||
.isComposite(Boolean.valueOf(part.getIsComposite()))
|
||||
.name(part.getGoodsName()).material(part.getMaterial())
|
||||
.model(part.getModel()).spec(part.getSpec()).brand(part.getBrand()).factory(part.getFactory())
|
||||
.unit(part.getUnit()).price(0.0).isComposite(false).remark(remarkExtract(part.remarkJSON())).isComposite(false).build();
|
||||
orderPartsDOS.add(orderPartsDO);
|
||||
// 赋值给板件未对应前order_raw_goods的id
|
||||
StringBuilder remark = new StringBuilder();
|
||||
for (OrderPlateImportExcelVO reqVO : partValue) {
|
||||
reqVO.setGoodId(partId);
|
||||
String extractedRemark = remarkExtract(reqVO.remarkJSON());
|
||||
if (extractedRemark != null) {
|
||||
remark.append(extractedRemark);
|
||||
}
|
||||
}
|
||||
// 配件备注信息存储
|
||||
OrderPartsRemark orderPartsRemark = OrderPartsRemark.builder().partsId(partId).orderId(orderId)
|
||||
.remark(String.valueOf(remark)).build();
|
||||
orderPartsRemarks.add(orderPartsRemark);
|
||||
});
|
||||
} else { // 商品编码有的
|
||||
// 板材信息合集,添加生产单id,添加生产单板材设计端商品编码,板材信息写入order_raw_goods
|
||||
Long partId = (Long) snowFlakeGenerator.nextId(null);
|
||||
OrderPlateImportExcelVO part = value.get(0);
|
||||
OrderPartsDO orderPartsDO = OrderPartsDO.builder().id(partId).orderId(orderId)
|
||||
.color(part.getColor()).category(part.getCategory()).type(part.getType()).goodsId(part.getGoodsId())
|
||||
.length(Double.valueOf(StringUtils.isEmpty(part.getGoodsHeight()) ? "0" : part.getGoodsHeight()))
|
||||
.width(Double.valueOf(StringUtils.isEmpty(part.getGoodsWidth()) ? "0" : part.getGoodsWidth()))
|
||||
.thickness(Double.valueOf(StringUtils.isEmpty(part.getGoodsThickness()) ? "0" : part.getGoodsThickness()))
|
||||
.isComposite(Boolean.valueOf(part.getIsComposite()))
|
||||
.name(part.getGoodsName()).material(part.getMaterial())
|
||||
.model(part.getModel()).spec(part.getSpec()).brand(part.getBrand()).factory(part.getFactory())
|
||||
.unit(part.getUnit()).price(0.0).isComposite(false).remark(remarkExtract(part.remarkJSON())).isComposite(false).build();
|
||||
orderPartsDOS.add(orderPartsDO);
|
||||
// 赋值给板件未对应前order_raw_goods的id
|
||||
StringBuilder remark = new StringBuilder();
|
||||
for (OrderPlateImportExcelVO reqVO : value) {
|
||||
reqVO.setGoodId(partId);
|
||||
String extractedRemark = remarkExtract(reqVO.remarkJSON());
|
||||
if (extractedRemark != null) {
|
||||
remark.append(extractedRemark);
|
||||
}
|
||||
}
|
||||
// 配件备注信息存储
|
||||
OrderPartsRemark orderPartsRemark = OrderPartsRemark.builder().partsId(partId).orderId(orderId)
|
||||
.remark(String.valueOf(remark)).build();
|
||||
orderPartsRemarks.add(orderPartsRemark);
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
// 房间名称为条件进行分组
|
||||
Map<String, List<OrderPlateImportExcelVO>> roomCollect = excelVOS.stream().collect(
|
||||
@@ -239,23 +326,23 @@ 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);
|
||||
// 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(partsId).groupId(synthesisTypeName != " " ? groupId : null)
|
||||
.roomId(roomName != " " ? roomId : null).bodyId(bodyName != " " ? bodyId : null).partsId(combination.getGoodId()).groupId(synthesisTypeName != " " ? groupId : null)
|
||||
.num(Double.valueOf(combination.getGoodsNumber())).build();
|
||||
orderItemDOS.add(orderItemDO);
|
||||
}
|
||||
@@ -382,8 +469,8 @@ public class ExcelTypeRealize {
|
||||
partsLists.add(detail);
|
||||
}
|
||||
}
|
||||
map.put("plate", plateLists);
|
||||
map.put("parts", partsLists);
|
||||
map.put(PLATE, plateLists);
|
||||
map.put(PARTS, partsLists);
|
||||
return map;
|
||||
}
|
||||
}
|
||||
|
||||
+104
-104
@@ -620,21 +620,21 @@ public class XMLUtil {
|
||||
isEmptyAndAdd(room::getCode, room::setCode, NOT_ASSIGNED_CODE);
|
||||
isEmptyAndAdd(room::getName, room::setName, NOT_ASSIGNED);
|
||||
|
||||
isEmptyAddAndPositiveNumberSize(room::getHeight, room::setHeight, "0", Double.class, "房间高度", 8, 3, flag);
|
||||
isEmptyAddAndPositiveNumberSize(room::getLength, room::setLength, "0", Double.class, "房间长度", 8, 3, flag);
|
||||
isEmptyAddAndPositiveNumberSize(room::getWidth, room::setWidth, "0", Double.class, "房间宽度", 8, 3, flag);
|
||||
isEmptyAddAndPositiveNumber(room::getMultipleNumber, room::setMultipleNumber, "1", Integer.class, "房间成倍拆单数量", flag);
|
||||
isEmptyAddAndPositiveNumber(room::getMultipleNo, room::setMultipleNo, "1", Integer.class, "房间成倍拆单序号", flag);
|
||||
isEmptyAddAndNumber(room::getBasePointX, room::setBasePointX, "0", Double.class, "基点坐标X", flag);
|
||||
isEmptyAddAndNumber(room::getBasePointY, room::setBasePointY, "0", Double.class, "基点坐标Y", flag);
|
||||
isEmptyAddAndNumber(room::getBasePointZ, room::setBasePointZ, "0", Double.class, "基点坐标Z", flag);
|
||||
isEmptyAddAndNumber(room::getAxisXrotate, room::setAxisXrotate, "0", Double.class, "绕X轴旋转角度", flag);
|
||||
isEmptyAddAndNumber(room::getAxisYrotate, room::setAxisYrotate, "0", Double.class, "绕Y轴旋转角度", flag);
|
||||
isEmptyAddAndNumber(room::getAxisZrotate, room::setAxisZrotate, "0", Double.class, "绕Z轴旋转角度", flag);
|
||||
isEmptyAddAndPositiveNumberSize(room::getHeight, room::setHeight, "0", Double.class, "房间高度", 8, 3, flag);
|
||||
isEmptyAddAndPositiveNumberSize(room::getLength, room::setLength, "0", Double.class, "房间长度", 8, 3, flag);
|
||||
isEmptyAddAndPositiveNumberSize(room::getWidth, room::setWidth, "0", Double.class, "房间宽度", 8, 3, flag);
|
||||
isEmptyAddAndPositiveNumber(room::getMultipleNumber, room::setMultipleNumber, "1", Integer.class, "房间成倍拆单数量", flag);
|
||||
isEmptyAddAndPositiveNumber(room::getMultipleNo, room::setMultipleNo, "1", Integer.class, "房间成倍拆单序号", flag);
|
||||
isEmptyAddAndNumber(room::getBasePointX, room::setBasePointX, "0", Double.class, "基点坐标X", flag);
|
||||
isEmptyAddAndNumber(room::getBasePointY, room::setBasePointY, "0", Double.class, "基点坐标Y", flag);
|
||||
isEmptyAddAndNumber(room::getBasePointZ, room::setBasePointZ, "0", Double.class, "基点坐标Z", flag);
|
||||
isEmptyAddAndNumber(room::getAxisXrotate, room::setAxisXrotate, "0", Double.class, "绕X轴旋转角度", flag);
|
||||
isEmptyAddAndNumber(room::getAxisYrotate, room::setAxisYrotate, "0", Double.class, "绕Y轴旋转角度", flag);
|
||||
isEmptyAddAndNumber(room::getAxisZrotate, room::setAxisZrotate, "0", Double.class, "绕Z轴旋转角度", flag);
|
||||
|
||||
// 柜体数据格式验证
|
||||
if (room.getBoxXmlVOList() != null && room.getBoxXmlVOList().size() > 0) {
|
||||
checkBoxList(room.getBoxXmlVOList(), flag);
|
||||
// 柜体数据格式验证
|
||||
if (room.getBoxXmlVOList() != null && room.getBoxXmlVOList().size() > 0) {
|
||||
checkBoxList(room.getBoxXmlVOList(), flag);
|
||||
|
||||
}
|
||||
}
|
||||
@@ -706,7 +706,7 @@ public class XMLUtil {
|
||||
// 板材数据格式验证
|
||||
public void checkPlates(List<PlateXmlVO> plateXmlVOList, AtomicBoolean flag) {
|
||||
for (PlateXmlVO plate : plateXmlVOList) {
|
||||
isEmptyAndBack(plate::getItemCode, "板材名称", plate::setItemCode, flag);
|
||||
isEmptyAndBack(plate::getName, "板材名称", plate::setName, flag);
|
||||
isEmptyAndBack(plate::getMaterial, "板材材质", plate::setMaterial, flag);
|
||||
|
||||
// 纹理有效性判断
|
||||
@@ -747,72 +747,72 @@ public class XMLUtil {
|
||||
if (blockXmlVOList.isEmpty()) {
|
||||
return;
|
||||
}
|
||||
for (BlockXmlVO blockXmlVO : blockXmlVOList) {
|
||||
isEmptyAndAdd(blockXmlVO::getName, blockXmlVO::setName, NOT_ASSIGNED);
|
||||
isEmptyAddAndInvalid(blockXmlVO::getType, blockXmlVO::setType, "背板", DictTypeConstants.PLATE_TYPE, "板块类型", flag);
|
||||
isEmptyAddAndInvalid(blockXmlVO::getOpenDirection, blockXmlVO::setOpenDirection, "非门板", DictTypeConstants.DOOR_OPENING_DIRECTIONS, "板块开门方向", flag);
|
||||
isEmptyAddAndInvalid(blockXmlVO::getTexture, blockXmlVO::setTexture, "正纹", DictTypeConstants.GRAIN_TYPE, "板块设计纹路", flag);
|
||||
isEmptyAddAndInvalid(blockXmlVO::getLayoutFace, blockXmlVO::setLayoutFace, "随意面", DictTypeConstants.TYPOGRAPHY_TYPE, "板块排版面", flag);
|
||||
isEmptyAddAndInvalid(blockXmlVO::getCoatingType, blockXmlVO::setCoatingType, "双面", DictTypeConstants.COATING_TYPE, "板块设计饰面", flag);
|
||||
isEmptyAndPositiveNumber(blockXmlVO::getLength, "板块长度", blockXmlVO::setLength, Double.class, 5, 3, flag);
|
||||
isEmptyAndPositiveNumber(blockXmlVO::getWidth, "板块宽度", blockXmlVO::setWidth, Double.class, 5, 3, flag);
|
||||
isEmptyAndPositiveNumber(blockXmlVO::getThickness, "板块厚度", blockXmlVO::setThickness, Double.class, 5, 3, flag);
|
||||
isEmptyAndPositiveNumber(blockXmlVO::getCuttingLength, "板块开料长", blockXmlVO::setCuttingLength, Double.class, 5, 3, flag);
|
||||
isEmptyAndPositiveNumber(blockXmlVO::getCuttingWidth, "板块开料宽", blockXmlVO::setCuttingWidth, Double.class, 5, 3, flag);
|
||||
isEmptyAndPositiveNumber(blockXmlVO::getCuttingThickness, "板块开料厚", blockXmlVO::setCuttingThickness, Double.class, 5, 3, flag);
|
||||
isEmptyAndPositiveNumber(blockXmlVO::getRawLength, "板块胚料长", blockXmlVO::setRawLength, Double.class, 5, 3, flag);
|
||||
isEmptyAndPositiveNumber(blockXmlVO::getRawWidth, "板块胚料宽", blockXmlVO::setRawWidth, Double.class, 5, 3, flag);
|
||||
isEmptyAndPositiveNumber(blockXmlVO::getRawThickness, "板块胚料厚", blockXmlVO::setRawThickness, Double.class, 5, 3, flag);
|
||||
isEmptyAddAndInvalid(blockXmlVO::getUnit, blockXmlVO::setUnit, "mm", DictTypeConstants.UNIT_LENGTH, "小板长度单位", flag);
|
||||
isEmptyAddAndPositiveNumber(blockXmlVO::getMultipleNumber, blockXmlVO::setMultipleNumber, "1", Integer.class, "小板成倍拆单数量", flag);
|
||||
isEmptyAddAndPositiveNumber(blockXmlVO::getMultipleNo, blockXmlVO::setMultipleNo, "1", Integer.class, "小板成倍拆单序号", flag);
|
||||
isEmptyAddAndInvalid(blockXmlVO::getUnregular, blockXmlVO::setUnregular, "否", DictTypeConstants.IS_NOT_MARK, "板块是否异形数据", flag);
|
||||
isEmptyAddAndInvalid(blockXmlVO::getDrilling, blockXmlVO::setDrilling, "否", DictTypeConstants.IS_NOT_MARK, "板块是否钻孔数据", flag);
|
||||
isEmptyAddAndInvalid(blockXmlVO::getSlotting, blockXmlVO::setSlotting, "否", DictTypeConstants.IS_NOT_MARK, "板块是否挖槽数据", flag);
|
||||
for (BlockXmlVO blockXmlVO : blockXmlVOList) {
|
||||
isEmptyAndAdd(blockXmlVO::getName, blockXmlVO::setName, NOT_ASSIGNED);
|
||||
isEmptyAddAndInvalid(blockXmlVO::getType, blockXmlVO::setType, "背板", DictTypeConstants.PLATE_TYPE, "板块类型", flag);
|
||||
isEmptyAddAndInvalid(blockXmlVO::getOpenDirection, blockXmlVO::setOpenDirection, "非门板", DictTypeConstants.DOOR_OPENING_DIRECTIONS, "板块开门方向", flag);
|
||||
isEmptyAddAndInvalid(blockXmlVO::getTexture, blockXmlVO::setTexture, "正纹", DictTypeConstants.GRAIN_TYPE, "板块设计纹路", flag);
|
||||
isEmptyAddAndInvalid(blockXmlVO::getLayoutFace, blockXmlVO::setLayoutFace, "随意面", DictTypeConstants.TYPOGRAPHY_TYPE, "板块排版面", flag);
|
||||
isEmptyAddAndInvalid(blockXmlVO::getCoatingType, blockXmlVO::setCoatingType, "双面", DictTypeConstants.COATING_TYPE, "板块设计饰面", flag);
|
||||
isEmptyAndPositiveNumber(blockXmlVO::getLength, "板块长度", blockXmlVO::setLength, Double.class, 5, 3, flag);
|
||||
isEmptyAndPositiveNumber(blockXmlVO::getWidth, "板块宽度", blockXmlVO::setWidth, Double.class, 5, 3, flag);
|
||||
isEmptyAndPositiveNumber(blockXmlVO::getThickness, "板块厚度", blockXmlVO::setThickness, Double.class, 5, 3, flag);
|
||||
isEmptyAndPositiveNumber(blockXmlVO::getCuttingLength, "板块开料长", blockXmlVO::setCuttingLength, Double.class, 5, 3, flag);
|
||||
isEmptyAndPositiveNumber(blockXmlVO::getCuttingWidth, "板块开料宽", blockXmlVO::setCuttingWidth, Double.class, 5, 3, flag);
|
||||
isEmptyAndPositiveNumber(blockXmlVO::getCuttingThickness, "板块开料厚", blockXmlVO::setCuttingThickness, Double.class, 5, 3, flag);
|
||||
isEmptyAndPositiveNumber(blockXmlVO::getRawLength, "板块胚料长", blockXmlVO::setRawLength, Double.class, 5, 3, flag);
|
||||
isEmptyAndPositiveNumber(blockXmlVO::getRawWidth, "板块胚料宽", blockXmlVO::setRawWidth, Double.class, 5, 3, flag);
|
||||
isEmptyAndPositiveNumber(blockXmlVO::getRawThickness, "板块胚料厚", blockXmlVO::setRawThickness, Double.class, 5, 3, flag);
|
||||
isEmptyAddAndInvalid(blockXmlVO::getUnit, blockXmlVO::setUnit, "mm", DictTypeConstants.UNIT_LENGTH, "小板长度单位", flag);
|
||||
isEmptyAddAndPositiveNumber(blockXmlVO::getMultipleNumber, blockXmlVO::setMultipleNumber, "1", Integer.class, "小板成倍拆单数量", flag);
|
||||
isEmptyAddAndPositiveNumber(blockXmlVO::getMultipleNo, blockXmlVO::setMultipleNo, "1", Integer.class, "小板成倍拆单序号", flag);
|
||||
isEmptyAddAndInvalid(blockXmlVO::getUnregular, blockXmlVO::setUnregular, "否", DictTypeConstants.IS_NOT_MARK, "板块是否异形数据", flag);
|
||||
isEmptyAddAndInvalid(blockXmlVO::getDrilling, blockXmlVO::setDrilling, "否", DictTypeConstants.IS_NOT_MARK, "板块是否钻孔数据", flag);
|
||||
isEmptyAddAndInvalid(blockXmlVO::getSlotting, blockXmlVO::setSlotting, "否", DictTypeConstants.IS_NOT_MARK, "板块是否挖槽数据", flag);
|
||||
|
||||
isEmptyAndAdd(blockXmlVO::getRoomCode, blockXmlVO::setRoomCode, NOT_ASSIGNED_CODE);
|
||||
isEmptyAndAdd(blockXmlVO::getRoomName, blockXmlVO::setRoomName, NOT_ASSIGNED);
|
||||
isEmptyAndAdd(blockXmlVO::getBoxCode, blockXmlVO::setBoxCode, NOT_ASSIGNED_CODE);
|
||||
isEmptyAndAdd(blockXmlVO::getBoxName, blockXmlVO::setBoxName, NOT_ASSIGNED);
|
||||
isEmptyAndAdd(blockXmlVO::getRoomCode, blockXmlVO::setRoomCode, NOT_ASSIGNED_CODE);
|
||||
isEmptyAndAdd(blockXmlVO::getRoomName, blockXmlVO::setRoomName, NOT_ASSIGNED);
|
||||
isEmptyAndAdd(blockXmlVO::getBoxCode, blockXmlVO::setBoxCode, NOT_ASSIGNED_CODE);
|
||||
isEmptyAndAdd(blockXmlVO::getBoxName, blockXmlVO::setBoxName, NOT_ASSIGNED);
|
||||
|
||||
isEmptyAddAndNumber(blockXmlVO::getBasePointX, blockXmlVO::setBasePointX, "0", Double.class, "小板基点坐标X", flag);
|
||||
isEmptyAddAndNumber(blockXmlVO::getBasePointY, blockXmlVO::setBasePointY, "0", Double.class, "小板基点坐标Y", flag);
|
||||
isEmptyAddAndNumber(blockXmlVO::getBasePointZ, blockXmlVO::setBasePointZ, "0", Double.class, "小板基点坐标Z", flag);
|
||||
isEmptyAddAndNumber(blockXmlVO::getAxisXrotate, blockXmlVO::setAxisXrotate, "0", Double.class, "小板绕X轴旋转角度", flag);
|
||||
isEmptyAddAndNumber(blockXmlVO::getAxisYrotate, blockXmlVO::setAxisYrotate, "0", Double.class, "小板绕Y轴旋转角度", flag);
|
||||
isEmptyAddAndNumber(blockXmlVO::getAxisZrotate, blockXmlVO::setAxisZrotate, "0", Double.class, "小板绕Z轴旋转角度", flag);
|
||||
isEmptyAddAndNumber(blockXmlVO::getBasePointX, blockXmlVO::setBasePointX, "0", Double.class, "小板基点坐标X", flag);
|
||||
isEmptyAddAndNumber(blockXmlVO::getBasePointY, blockXmlVO::setBasePointY, "0", Double.class, "小板基点坐标Y", flag);
|
||||
isEmptyAddAndNumber(blockXmlVO::getBasePointZ, blockXmlVO::setBasePointZ, "0", Double.class, "小板基点坐标Z", flag);
|
||||
isEmptyAddAndNumber(blockXmlVO::getAxisXrotate, blockXmlVO::setAxisXrotate, "0", Double.class, "小板绕X轴旋转角度", flag);
|
||||
isEmptyAddAndNumber(blockXmlVO::getAxisYrotate, blockXmlVO::setAxisYrotate, "0", Double.class, "小板绕Y轴旋转角度", flag);
|
||||
isEmptyAddAndNumber(blockXmlVO::getAxisZrotate, blockXmlVO::setAxisZrotate, "0", Double.class, "小板绕Z轴旋转角度", flag);
|
||||
|
||||
|
||||
|
||||
if (blockXmlVO.getOutlineXmlVO() != null) {
|
||||
checkOutline(blockXmlVO.getOutlineXmlVO(), flag);
|
||||
}
|
||||
|
||||
if (blockXmlVO.getCuttingOutlineXmlVO() != null) {
|
||||
checkCuttingOutline(blockXmlVO.getCuttingOutlineXmlVO(), flag);
|
||||
}
|
||||
|
||||
if (blockXmlVO.getRawOutlineXmlVO() != null && blockXmlVO.getRawOutlineXmlVO().getPointXmlVOList() != null && !blockXmlVO.getRawOutlineXmlVO().getPointXmlVOList().isEmpty()) {
|
||||
checkRawOutline(blockXmlVO.getRawOutlineXmlVO(), flag);
|
||||
}
|
||||
|
||||
if (blockXmlVO.getHoleXmlVOS() != null) {
|
||||
checkHoles(blockXmlVO.getHoleXmlVOS(), flag);
|
||||
}
|
||||
|
||||
if (blockXmlVO.getGrooveXmlVOS() != null) {
|
||||
checkGrooves(blockXmlVO.getGrooveXmlVOS(), flag);
|
||||
}
|
||||
|
||||
if (blockXmlVO.getIsletXmlVOS() != null && blockXmlVO.getIsletXmlVOS().getIsletXmlVOList() != null && !blockXmlVO.getIsletXmlVOS().getIsletXmlVOList().isEmpty()) {
|
||||
checkIslets(blockXmlVO.getIsletXmlVOS(), flag);
|
||||
}
|
||||
|
||||
if (blockXmlVO.getCorrelationXmlVOS() != null) {
|
||||
checkCorrelations(blockXmlVO.getCorrelationXmlVOS(), flag);
|
||||
}
|
||||
|
||||
if (blockXmlVO.getOutlineXmlVO() != null) {
|
||||
checkOutline(blockXmlVO.getOutlineXmlVO(), flag);
|
||||
}
|
||||
|
||||
if (blockXmlVO.getCuttingOutlineXmlVO() != null) {
|
||||
checkCuttingOutline(blockXmlVO.getCuttingOutlineXmlVO(), flag);
|
||||
}
|
||||
|
||||
if (blockXmlVO.getRawOutlineXmlVO() != null && blockXmlVO.getRawOutlineXmlVO().getPointXmlVOList() != null && !blockXmlVO.getRawOutlineXmlVO().getPointXmlVOList().isEmpty()) {
|
||||
checkRawOutline(blockXmlVO.getRawOutlineXmlVO(), flag);
|
||||
}
|
||||
|
||||
if (blockXmlVO.getHoleXmlVOS() != null) {
|
||||
checkHoles(blockXmlVO.getHoleXmlVOS(), flag);
|
||||
}
|
||||
|
||||
if (blockXmlVO.getGrooveXmlVOS() != null) {
|
||||
checkGrooves(blockXmlVO.getGrooveXmlVOS(), flag);
|
||||
}
|
||||
|
||||
if (blockXmlVO.getIsletXmlVOS() != null && blockXmlVO.getIsletXmlVOS().getIsletXmlVOList() != null && !blockXmlVO.getIsletXmlVOS().getIsletXmlVOList().isEmpty()) {
|
||||
checkIslets(blockXmlVO.getIsletXmlVOS(), flag);
|
||||
}
|
||||
|
||||
if (blockXmlVO.getCorrelationXmlVOS() != null) {
|
||||
checkCorrelations(blockXmlVO.getCorrelationXmlVOS(), flag);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
private void checkCorrelations(CorrelationXmlVOS correlationXmlVOS, AtomicBoolean flag) {
|
||||
@@ -857,25 +857,25 @@ public class XMLUtil {
|
||||
return;
|
||||
}
|
||||
|
||||
PointXmlVOS pointXmlVOS = isletXmlVO.getPointXmlVOS();
|
||||
boolean index = isEmptyBackAndPositiveNumberAndBack(pointXmlVOS::getCount, "孤岛点阵数量 "+ pointXmlVOS.getCount(), pointXmlVOS::setCount, Integer.class, flag);
|
||||
PointXmlVOS pointXmlVOS = isletXmlVO.getPointXmlVOS();
|
||||
boolean index = isEmptyBackAndPositiveNumberAndBack(pointXmlVOS::getCount, "孤岛点阵数量 "+ pointXmlVOS.getCount(), pointXmlVOS::setCount, Integer.class, flag);
|
||||
|
||||
|
||||
if (index) {
|
||||
if (pointXmlVOS.getPointXmlVOList() == null) {
|
||||
if (index) {
|
||||
if (pointXmlVOS.getPointXmlVOList() == null) {
|
||||
pointXmlVOS.setCount("---< 孤岛点阵数量与孤岛点阵列表数量不一致 >---");
|
||||
flag.set(false);
|
||||
} else if (pointXmlVOS.getPointXmlVOList().size() > 0) {
|
||||
if (Integer.parseInt(pointXmlVOS.getCount()) != pointXmlVOS.getPointXmlVOList().size()) {
|
||||
pointXmlVOS.setCount("---< 孤岛点阵数量与孤岛点阵列表数量不一致 >---");
|
||||
flag.set(false);
|
||||
} else if (pointXmlVOS.getPointXmlVOList().size() > 0) {
|
||||
if (Integer.parseInt(pointXmlVOS.getCount()) != pointXmlVOS.getPointXmlVOList().size()) {
|
||||
pointXmlVOS.setCount("---< 孤岛点阵数量与孤岛点阵列表数量不一致 >---");
|
||||
flag.set(false);
|
||||
} else {
|
||||
for (PointXmlVO pointXmlVO : pointXmlVOS.getPointXmlVOList()) {
|
||||
checkPointRemoveZ(pointXmlVO, flag, "孤岛");
|
||||
}
|
||||
} else {
|
||||
for (PointXmlVO pointXmlVO : pointXmlVOS.getPointXmlVOList()) {
|
||||
checkPointRemoveZ(pointXmlVO, flag, "孤岛");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -1063,21 +1063,21 @@ public class XMLUtil {
|
||||
flag.set(false);
|
||||
return;
|
||||
}
|
||||
if (index) {
|
||||
if (Integer.parseInt(outlineXmlVO.getCount()) != outlineXmlVO.getPointXmlVOList().size()) {
|
||||
outlineXmlVO.setCount("---< 小板轮廓点阵数量与实际数量不一致 >---");
|
||||
flag.set(false);
|
||||
return;
|
||||
}
|
||||
if (index) {
|
||||
if (Integer.parseInt(outlineXmlVO.getCount()) != outlineXmlVO.getPointXmlVOList().size()) {
|
||||
outlineXmlVO.setCount("---< 小板轮廓点阵数量与实际数量不一致 >---");
|
||||
flag.set(false);
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
for (PointXmlVO pointXmlVO : outlineXmlVO.getPointXmlVOList()) {
|
||||
isEmptyBackAndNumber(pointXmlVO::getPointX, pointXmlVO::setPointX, Double.class, "小板起点坐标X", flag);
|
||||
isEmptyBackAndNumber(pointXmlVO::getPointY, pointXmlVO::setPointY, Double.class, "小板起点坐标Y", flag);
|
||||
isEmptyBackAndNumber(pointXmlVO::getCurvature, pointXmlVO::setCurvature, Double.class, "小板轮廓边圆弧凹凸度", flag);
|
||||
isEmptyBackAndNumber(pointXmlVO::getRadius, pointXmlVO::setRadius, Double.class, "小板轮廓边圆弧半径", flag);
|
||||
for (PointXmlVO pointXmlVO : outlineXmlVO.getPointXmlVOList()) {
|
||||
isEmptyBackAndNumber(pointXmlVO::getPointX, pointXmlVO::setPointX, Double.class, "小板起点坐标X", flag);
|
||||
isEmptyBackAndNumber(pointXmlVO::getPointY, pointXmlVO::setPointY, Double.class, "小板起点坐标Y", flag);
|
||||
isEmptyBackAndNumber(pointXmlVO::getCurvature, pointXmlVO::setCurvature, Double.class, "小板轮廓边圆弧凹凸度", flag);
|
||||
isEmptyBackAndNumber(pointXmlVO::getRadius, pointXmlVO::setRadius, Double.class, "小板轮廓边圆弧半径", flag);
|
||||
|
||||
checkEdging(pointXmlVO, flag);
|
||||
checkEdging(pointXmlVO, flag);
|
||||
// if (!(StringUtils.isEmpty(pointXmlVO.getItemCode()) && StringUtils.isEmpty(pointXmlVO.getEdgingName()) &&
|
||||
// StringUtils.isEmpty(pointXmlVO.getEdgingColor()) && StringUtils.isEmpty(pointXmlVO.getEdgingMaterial()) &&
|
||||
// (StringUtils.isEmpty(pointXmlVO.getEdgingThickness()) || pointXmlVO.getEdgingThickness().trim().equals("0")))) {
|
||||
@@ -1095,13 +1095,13 @@ public class XMLUtil {
|
||||
//
|
||||
// }
|
||||
|
||||
isEmptyAddAndPositiveNumber(pointXmlVO::getPreMilling, pointXmlVO::setPreMilling, "0", Double.class, "预铣/精修量", flag);
|
||||
isEmptyAddAndNumber(pointXmlVO::getScale, pointXmlVO::setScale, "0", Double.class, "延展/收缩量", flag);
|
||||
isEmptyAddAndPositiveNumber(pointXmlVO::getCount, pointXmlVO::setCount, "0", Double.class, "单边封边尺寸", flag);
|
||||
isEmptyAddAndPositiveNumber(pointXmlVO::getCountUnit, pointXmlVO::setCountUnit, "m", String.class, "封边条长度单位", flag);
|
||||
isEmptyAddAndPositiveNumber(pointXmlVO::getPreMilling, pointXmlVO::setPreMilling, "0", Double.class, "预铣/精修量", flag);
|
||||
isEmptyAddAndNumber(pointXmlVO::getScale, pointXmlVO::setScale, "0", Double.class, "延展/收缩量", flag);
|
||||
isEmptyAddAndPositiveNumber(pointXmlVO::getCount, pointXmlVO::setCount, "0", Double.class, "单边封边尺寸", flag);
|
||||
isEmptyAddAndPositiveNumber(pointXmlVO::getCountUnit, pointXmlVO::setCountUnit, "m", String.class, "封边条长度单位", flag);
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 板材中封边条的处理
|
||||
|
||||
+119
-74
@@ -36,11 +36,12 @@
|
||||
</select>
|
||||
|
||||
<select id="selectPartsDetailByOrderId" resultType="com.cf.imes.module.executor.controller.admin.orderParts.vo.OrderPartsRespVO">
|
||||
SELECT DISTINCT i.order_id, p.id, p.model, p.spec, p.name,i.num, p.unit, p.brand, p.factory, p.remark,p.type,p.price,
|
||||
p.is_composite,p.create_time
|
||||
SELECT i.order_id, p.id, p.model, p.spec, p.name, SUM(i.num) AS num, p.unit, p.brand, p.factory, p.remark,p.type,p.price,
|
||||
p.is_composite,p.create_time, p.color, p.category, p.length, p.width, p.thickness, p.material, p.goods_id
|
||||
FROM order_item i
|
||||
RIGHT JOIN `order_parts` p ON i.parts_id = p.id
|
||||
WHERE i.order_id = #{orderId} AND i.organ_id = #{organId} AND p.deleted = #{deleted}
|
||||
RIGHT JOIN `order_parts` p ON i.organ_id = p.organ_id AND i.order_id = p.order_id AND i.parts_id = p.id
|
||||
RIGHT JOIN `order_body` ob ON i.organ_id = ob.organ_id AND i.order_id = ob.order_id AND i.body_id = ob.id
|
||||
WHERE i.organ_id = #{organId} AND i.order_id = #{orderId} AND ob.deleted = #{deleted}
|
||||
<if test="roomId != null and roomId.size() > 0">
|
||||
AND i.room_id IN
|
||||
<foreach item="roomIdItem" collection="roomId" open="(" separator="," close=")">
|
||||
@@ -62,14 +63,36 @@
|
||||
<if test="name != null">
|
||||
AND p.name = #{name}
|
||||
</if>
|
||||
GROUP BY
|
||||
i.order_id,
|
||||
p.id,
|
||||
p.model,
|
||||
p.spec,
|
||||
p.name,
|
||||
p.unit,
|
||||
p.brand,
|
||||
p.factory,
|
||||
p.remark,
|
||||
p.type,
|
||||
p.price,
|
||||
p.is_composite,
|
||||
p.create_time
|
||||
</select>
|
||||
|
||||
<select id="selectPartsByOrderId"
|
||||
resultType="com.cf.imes.module.executor.controller.admin.order.vo.order.OrderPlatesDetailRespVO">
|
||||
SELECT DISTINCT i.order_id, i.room_id, i.body_id, i.parts_id, p.`name` as part_name, i.num as plate_num, p.unit
|
||||
SELECT DISTINCT i.order_id, i.room_id, i.body_id, i.parts_id, p.`name` as part_name, SUM(i.num) AS plate_num, p.unit
|
||||
FROM `order_item` i
|
||||
RIGHT JOIN `order_parts` p ON i.parts_id = p.id
|
||||
WHERE i.order_id = #{orderId} AND i.organ_id = #{organId} AND p.deleted = #{deleted}
|
||||
RIGHT JOIN `order_parts` p ON i.organ_id = p.organ_id AND i.order_id = p.order_id AND i.parts_id = p.id
|
||||
RIGHT JOIN `order_body` ob ON i.organ_id = ob.organ_id AND i.order_id = ob.order_id AND i.body_id = ob.id
|
||||
WHERE i.organ_id = #{organId} AND i.order_id = #{orderId} AND ob.deleted = #{deleted}
|
||||
GROUP BY
|
||||
i.order_id,
|
||||
i.room_id,
|
||||
i.body_id,
|
||||
i.parts_id,
|
||||
p.name,
|
||||
p.unit
|
||||
</select>
|
||||
|
||||
|
||||
@@ -109,12 +132,12 @@
|
||||
og.width as bigPlateWidth,
|
||||
og.spec as spec
|
||||
from order_item oi
|
||||
join order_plate op on oi.plate_id = op.id and oi.organ_id = op.organ_id
|
||||
join order_body ob on oi.body_id = ob.id and oi.organ_id = ob.organ_id
|
||||
join order_goods og on op.goods_id = og.id and op.organ_id = og.organ_id
|
||||
join plate p on og.goods_id = p.id and og.organ_id = p.organ_id
|
||||
join order_plate op on oi.plate_id = op.id and oi.organ_id = op.organ_id
|
||||
join order_body ob on oi.body_id = ob.id and oi.organ_id = ob.organ_id
|
||||
join order_goods og on op.goods_id = og.id and op.organ_id = og.organ_id
|
||||
join plate p on og.goods_id = p.id and og.organ_id = p.organ_id
|
||||
<where>
|
||||
oi.organ_id = #{organId}
|
||||
oi.organ_id = #{organId}
|
||||
<if test="reqVO.orderId != null and reqVO.orderId != ''">
|
||||
AND oi.order_id = #{reqVO.orderId}
|
||||
</if>
|
||||
@@ -198,9 +221,9 @@
|
||||
SUM(p.area) AS totalArea
|
||||
FROM
|
||||
order_item i
|
||||
RIGHT JOIN
|
||||
RIGHT JOIN
|
||||
order_plate p ON i.organ_id = p.organ_id AND i.order_id = p.order_id AND i.plate_id = p.id
|
||||
RIGHT JOIN
|
||||
RIGHT JOIN
|
||||
order_goods g ON i.organ_id = g.organ_id AND i.order_id = g.order_id AND p.goods_id = g.id
|
||||
WHERE
|
||||
i.order_id = #{orderId} AND i.organ_id = #{organId} AND p.deleted = #{deleted}
|
||||
@@ -211,71 +234,93 @@
|
||||
|
||||
<select id="selectGoodsDetailByOrderId" resultType="com.cf.imes.module.executor.controller.admin.order.vo.order.OrderGoodsDetailRespVO">
|
||||
SELECT
|
||||
g.id,
|
||||
g.order_id,
|
||||
g.brand,
|
||||
g.goods_id,
|
||||
g.goods_name,
|
||||
g.material,
|
||||
g.texture,
|
||||
g.color,
|
||||
g.color_black,
|
||||
g.width,
|
||||
g.height,
|
||||
g.thickness,
|
||||
g.remark,
|
||||
g.spec,
|
||||
SUM(sub.totalPlates) AS number,
|
||||
SUM(sub.totalArea) AS area
|
||||
g.id,
|
||||
g.order_id,
|
||||
g.brand,
|
||||
g.goods_id,
|
||||
g.goods_name,
|
||||
g.material,
|
||||
g.texture,
|
||||
g.color,
|
||||
g.color_black,
|
||||
g.width,
|
||||
g.height,
|
||||
g.thickness,
|
||||
g.remark,
|
||||
g.spec,
|
||||
SUM(sub.totalPlates) AS number,
|
||||
SUM(sub.totalArea) AS area
|
||||
|
||||
FROM (
|
||||
SELECT
|
||||
i.room_id,
|
||||
i.body_id,
|
||||
i.group_id,
|
||||
i.organ_id,
|
||||
i.order_id,
|
||||
p.goods_id,
|
||||
COUNT(p.id) AS totalPlates,
|
||||
SUM(p.area) AS totalArea
|
||||
FROM
|
||||
order_item i
|
||||
RIGHT JOIN
|
||||
order_plate p ON i.organ_id = p.organ_id AND i.order_id = p.order_id AND i.plate_id = p.id
|
||||
WHERE
|
||||
i.organ_id = #{organId} AND i.order_id = #{orderId} AND p.deleted = #{deleted}
|
||||
<if test="roomId != null and roomId.size() > 0">
|
||||
AND i.room_id IN
|
||||
<foreach item="roomIdItem" collection="roomId" open="(" separator="," close=")">
|
||||
#{roomIdItem}
|
||||
</foreach>
|
||||
</if>
|
||||
<if test="bodyId != null and bodyId.size() > 0">
|
||||
AND i.body_id IN
|
||||
<foreach item="bodyIdItem" collection="bodyId" open="(" separator="," close=")">
|
||||
#{bodyIdItem}
|
||||
</foreach>
|
||||
</if>
|
||||
<if test="groupId != null and groupId.size() > 0">
|
||||
AND i.group_id IN
|
||||
<foreach item="groupIdItem" collection="groupId" open="(" separator="," close=")">
|
||||
#{groupIdItem}
|
||||
</foreach>
|
||||
</if>
|
||||
<if test="goodsId != null and goodsId.size() > 0">
|
||||
AND p.goods_id IN
|
||||
<foreach item="goodIdItem" collection="goodsId" open="(" separator="," close=")">
|
||||
#{goodIdItem}
|
||||
</foreach>
|
||||
</if>
|
||||
SELECT
|
||||
i.room_id,
|
||||
i.body_id,
|
||||
i.group_id,
|
||||
i.organ_id,
|
||||
i.order_id,
|
||||
p.goods_id,
|
||||
COUNT(p.id) AS totalPlates,
|
||||
SUM(p.area) AS totalArea
|
||||
FROM
|
||||
order_item i
|
||||
RIGHT JOIN
|
||||
order_plate p ON i.organ_id = p.organ_id AND i.order_id = p.order_id AND i.plate_id = p.id
|
||||
WHERE
|
||||
i.organ_id = #{organId} AND i.order_id = #{orderId} AND p.deleted = #{deleted}
|
||||
<if test="roomId != null and roomId.size() > 0">
|
||||
AND i.room_id IN
|
||||
<foreach item="roomIdItem" collection="roomId" open="(" separator="," close=")">
|
||||
#{roomIdItem}
|
||||
</foreach>
|
||||
</if>
|
||||
<if test="bodyId != null and bodyId.size() > 0">
|
||||
AND i.body_id IN
|
||||
<foreach item="bodyIdItem" collection="bodyId" open="(" separator="," close=")">
|
||||
#{bodyIdItem}
|
||||
</foreach>
|
||||
</if>
|
||||
<if test="groupId != null and groupId.size() > 0">
|
||||
AND i.group_id IN
|
||||
<foreach item="groupIdItem" collection="groupId" open="(" separator="," close=")">
|
||||
#{groupIdItem}
|
||||
</foreach>
|
||||
</if>
|
||||
<if test="goodsId != null and goodsId.size() > 0">
|
||||
AND p.goods_id IN
|
||||
<foreach item="goodIdItem" collection="goodsId" open="(" separator="," close=")">
|
||||
#{goodIdItem}
|
||||
</foreach>
|
||||
</if>
|
||||
|
||||
GROUP BY
|
||||
i.room_id, i.body_id, i.group_id, p.goods_id, i.organ_id, i.order_id
|
||||
) sub
|
||||
LEFT JOIN
|
||||
order_goods g ON sub.organ_id = g.organ_id AND sub.order_id = g.order_id AND sub.goods_id = g.id
|
||||
GROUP BY
|
||||
i.room_id, i.body_id, i.group_id, p.goods_id, i.organ_id, i.order_id
|
||||
) sub
|
||||
LEFT JOIN
|
||||
order_goods g ON sub.organ_id = g.organ_id AND sub.order_id = g.order_id AND sub.goods_id = g.id
|
||||
GROUP BY
|
||||
g.id, g.order_id, g.brand, g.goods_id, g.goods_name, g.material, g.texture, g.color, g.color_black, g.width, g.height, g.thickness, g.remark, g.spec;
|
||||
</select>
|
||||
|
||||
|
||||
<select id="countPartsNotId" resultType="java.lang.Integer">
|
||||
|
||||
SELECT COUNT(i.id)
|
||||
FROM order_item i
|
||||
LEFT JOIN order_body ob
|
||||
ON i.organ_id = ob.organ_id
|
||||
AND i.order_id = ob.order_id
|
||||
AND i.body_id = ob.id
|
||||
WHERE i.organ_id = #{organId}
|
||||
AND i.order_id = #{orderId}
|
||||
|
||||
<if test="bodyId != null and bodyId.size() > 0">
|
||||
AND i.body_id NOT IN
|
||||
<foreach item="bodyIdItem" collection="bodyId" open="(" separator="," close=")">
|
||||
#{bodyIdItem}
|
||||
</foreach>
|
||||
</if>
|
||||
|
||||
AND ob.deleted = #{deleted}
|
||||
AND i.parts_id = #{goodsId};
|
||||
</select>
|
||||
</mapper>
|
||||
Reference in New Issue
Block a user