From 7f7ac18ed371f0319c03e339bdcc42c49425cf57 Mon Sep 17 00:00:00 2001 From: lym <1994302445@qq.com> Date: Wed, 26 Jun 2024 17:51:26 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9D=BF=E6=9D=90=E7=BA=B9=E8=B7=AF=E5=AD=97?= =?UTF-8?q?=E6=AE=B5=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../admin/order/OrderController.java | 5 + .../order/vo/order/OrderImportRespVO.java | 6 +- .../dal/dataobject/goods/GoodsDO.java | 2 +- .../dal/dataobject/plate/PlateGoodDO.java | 2 +- .../dal/dataobject/rawgoods/RawGoodsDO.java | 2 +- .../dal/mysql/plate/PlateGoodMapper.java | 2 +- .../executor/service/order/OrderService.java | 4 + .../service/order/OrderServiceImpl.java | 17 +++- .../admin/api/webcad/ApiTypeRealize.java | 4 +- .../admin/files/excel/ExcelReadUtil.java | 92 ++++++++++-------- .../admin/files/excel/ExcelTypeRealize.java | 59 +++++------ .../files/excel/OrderPlateImportExcelVO.java | 4 + .../type/生产单Excel导入错误导出模板.xlsx | Bin 24257 -> 24381 bytes .../resources/type/生产单新增Excel模板.xlsx | Bin 27784 -> 28163 bytes .../admin/plate/PlateController.java | 12 ++- .../plate/vo/plate/PlateImportExcelVO.java | 4 +- .../admin/plate/vo/plate/PlatePageReqVO.java | 4 +- .../admin/plate/vo/plate/PlateRespVO.java | 4 +- .../admin/plate/vo/plate/PlateSaveReqVO.java | 6 +- .../manage/dal/dataobject/plate/PlateDO.java | 4 +- .../manage/dal/mysql/plate/PlateMapper.java | 2 +- .../service/plate/PlateExcelListener.java | 17 ++++ .../service/plate/PlateServiceImpl.java | 11 ++- 23 files changed, 158 insertions(+), 105 deletions(-) diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/order/OrderController.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/order/OrderController.java index 6806ceed4..957ec5462 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/order/OrderController.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/order/OrderController.java @@ -241,6 +241,7 @@ public class OrderController { public void exportTest(@RequestPart("file") MultipartFile file, @RequestParam(value = "type", required = false, defaultValue = "true") Integer type, HttpServletResponse response) throws IOException { + System.out.println("kkkkkkkk"); List list = null; OrderDO orderDO = new OrderDO(); @@ -263,6 +264,10 @@ public class OrderController { // 获取数据 list = (List) map.get("plate"); orderDO = excelReadUtil.changeOrderDO((Map) map.get("order")).setOrderType(0).setStatus(1); + if (!orderService.customOrderNoIsExists(orderDO.getCustomOrderNo())){ + ExcelWriterUtil.writeErr(response, "自定义生产单号存在", orderService.getSavePath() + File.separator + "错误文件.xlsx"); + + } } } else if (type == 1) { // json diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/order/vo/order/OrderImportRespVO.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/order/vo/order/OrderImportRespVO.java index 25a681df4..cf6233fc8 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/order/vo/order/OrderImportRespVO.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/order/vo/order/OrderImportRespVO.java @@ -7,11 +7,7 @@ import lombok.Data; import java.util.List; import java.util.Map; -/** - * @projectName: cf_imes_server - * @author: 晨丰科技 - * @date: 2024/3/6 10:03 - */ + @Schema(description = "管理后台 - 生产单导入 Response VO") @Data @Builder diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/dataobject/goods/GoodsDO.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/dataobject/goods/GoodsDO.java index 92ce8b1c8..a1ee9cb97 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/dataobject/goods/GoodsDO.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/dataobject/goods/GoodsDO.java @@ -56,7 +56,7 @@ public class GoodsDO extends BaseDO { /** * 纹路 0 正纹 1 可翻转 2 反纹 */ - private Integer texture; + private Boolean texture; /** * 颜色 */ diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/dataobject/plate/PlateGoodDO.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/dataobject/plate/PlateGoodDO.java index 51c08a1c2..5fd6ef9c4 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/dataobject/plate/PlateGoodDO.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/dataobject/plate/PlateGoodDO.java @@ -43,7 +43,7 @@ public class PlateGoodDO extends BaseDO { /** * 纹路 */ - private String texture; + private Boolean texture; /** * 宽度 */ diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/dataobject/rawgoods/RawGoodsDO.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/dataobject/rawgoods/RawGoodsDO.java index 02a04a719..f45aa14ad 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/dataobject/rawgoods/RawGoodsDO.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/dataobject/rawgoods/RawGoodsDO.java @@ -54,7 +54,7 @@ public class RawGoodsDO extends BaseDO { /** * 纹路 0 正纹 1 可翻转 2 反纹 */ - private Integer texture; + private Boolean texture; /** * 厚度 */ diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/mysql/plate/PlateGoodMapper.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/mysql/plate/PlateGoodMapper.java index 5f7228172..9bd13eba0 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/mysql/plate/PlateGoodMapper.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/mysql/plate/PlateGoodMapper.java @@ -25,7 +25,7 @@ public interface PlateGoodMapper extends BaseMapperX { } // 其他信息匹配 - default PlateGoodDO selectGood(String goodsName, String material, String color, Integer texture, BigDecimal width, + default PlateGoodDO selectGood(String goodsName, String material, String color, Boolean texture, BigDecimal width, BigDecimal thickness, BigDecimal height, String brand, String spec, Long organId) { return selectOne(new LambdaQueryWrapper() .eq(PlateGoodDO::getGoodsName, goodsName) diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/order/OrderService.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/order/OrderService.java index 229585640..5938373b5 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/order/OrderService.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/order/OrderService.java @@ -157,4 +157,8 @@ public interface OrderService { } + /** + * 自定义单号是否存在 + */ + Boolean customOrderNoIsExists(String customOrderNo); } \ No newline at end of file diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/order/OrderServiceImpl.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/order/OrderServiceImpl.java index a97900695..d64ce8f15 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/order/OrderServiceImpl.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/order/OrderServiceImpl.java @@ -3,7 +3,6 @@ package com.cf.imes.module.executor.service.order; import cn.smallbun.screw.core.util.CollectionUtils; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.incrementer.IdentifierGenerator; -import com.cf.imes.framework.common.pojo.PageParam; import com.cf.imes.framework.mybatis.core.generator.SnowFlakeGenerator; import com.cf.imes.framework.organ.core.context.OrganContextHolder; import com.cf.imes.module.executor.controller.admin.order.vo.order.*; @@ -34,10 +33,8 @@ import com.cf.imes.module.executor.dal.mysql.processStep.ProcessStepMapper; import com.cf.imes.module.executor.dal.mysql.rawgoods.RawGoodsMapper; import com.cf.imes.module.executor.enums.OrderDeletedEnum; import com.cf.imes.module.executor.enums.OrderStatusEnum; -import com.cf.imes.module.executor.util.ExcelWriterUtil; import com.cf.imes.module.executor.util.deviseData.dataTwo.PlateDetail; import com.cf.imes.module.executor.util.fileConversion.admin.files.excel.ExcelTypeRealize; -import com.cf.imes.module.executor.util.fileConversion.admin.files.excel.OrderPlateImportExcelVO; import com.cf.imes.module.system.api.dict.DictDataApi; import com.cf.imes.module.system.api.user.AdminUserApi; import org.springframework.stereotype.Service; @@ -486,6 +483,20 @@ public class OrderServiceImpl implements OrderService { } } + @Override + public Boolean customOrderNoIsExists(String customOrderNo) { + if (customOrderNo != null) { + if (!customOrderNo.isEmpty()) { + if (orderMapper.selectCount(new LambdaQueryWrapper() + .eq(OrderDO::getCustomOrderNo, customOrderNo) + .eq(OrderDO::getDeleted, false) + .eq(OrderDO::getOrganId, OrganContextHolder.getOrganId())) > 0) { + return false; + } + } + } + return true; + } // 业务员是否存在 private void validateSalesmanOrderNoExists(String salesman, Long organId) { if (adminUserApi.validateUser(salesman, organId).getData() == null) { diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/fileConversion/admin/api/webcad/ApiTypeRealize.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/fileConversion/admin/api/webcad/ApiTypeRealize.java index bca433831..c672551e4 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/fileConversion/admin/api/webcad/ApiTypeRealize.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/fileConversion/admin/api/webcad/ApiTypeRealize.java @@ -341,7 +341,7 @@ public class ApiTypeRealize { .goodsName(goods.getString("GoodsName")) .material(goods.getString("Material")) .color(goods.getString("Color")) - .texture(goods.getInteger("Wave")) + .texture(false) .thickness(goods.getDouble("Thickness")) .price(goods.getDouble("Price")) .brand(goods.getString("Brand")) @@ -357,7 +357,7 @@ public class ApiTypeRealize { .goodsName(goods.getString("GoodsName")) .material(goods.getString("Material")) .color(goods.getString("Color")) - .texture(goods.getInteger("Wave")) + .texture(false) .width(BigDecimal.valueOf(goods.getDouble("Width"))) .height(BigDecimal.valueOf(goods.getDouble("Height"))) .thickness(BigDecimal.valueOf(goods.getDouble("Thickness"))) diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/fileConversion/admin/files/excel/ExcelReadUtil.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/fileConversion/admin/files/excel/ExcelReadUtil.java index aa1211d3e..734550347 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/fileConversion/admin/files/excel/ExcelReadUtil.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/fileConversion/admin/files/excel/ExcelReadUtil.java @@ -53,7 +53,7 @@ public class ExcelReadUtil { // 文件读取 } if (index.get()) { orderMap.put(item.get(0), item.get(1)); - orderMap.put(item.get(12), item.get(13)); + orderMap.put(item.get(13), item.get(14)); } else { if (!(item.get(0).equals("序号") || item.get(0).equals("###"))) { list.add(changeValue(item)); @@ -130,110 +130,112 @@ public class ExcelReadUtil { // 文件读取 case 4:// 材质 vo.setMaterial(value); break; - case 5:// 颜色 + case 5:// 纹理 + vo.setWave(value); + break; + case 6:// 颜色 vo.setColor(value); break; - case 6:// 厂家 + case 7:// 厂家 vo.setFactory(value); break; - case 7:// 品牌 + case 8:// 品牌 vo.setBrand(value); break; - case 8:// 型号 + case 9:// 型号 vo.setModel(value); break; - case 9:// 规格 + case 10:// 规格 vo.setSpec(value); break; - case 10:// 单位 + case 11:// 单位 vo.setUnit(value); break; - case 11:// 数量 + case 12:// 数量 vo.setGoodsNumber(value); break; - case 12:// 房间 + case 13:// 房间 vo.setRoomsName(value); break; - case 13:// 柜体 + case 14:// 柜体 vo.setCabinetsName(value); break; - case 14:// 加工组类型 - + case 15:// 加工组类型 vo.setSynthesisTypeName(value); break; - case 15:// 加工组名称 + case 16:// 加工组名称 vo.setCombinationName(value); break; - case 16://板名称 + case 17://板名称 vo.setName(value); break; - case 17:// 自定义板编号 + case 18:// 自定义板编号 vo.setPlateNo(value); break; - case 18:// 成品长 + case 19:// 成品长 vo.setHeight(value); break; - case 19:// 成品宽 + case 20:// 成品宽 vo.setWidth(value); break; - case 20:// 拆单长 + case 21:// 拆单长 vo.setSplitHeight(value); break; - case 21:// 拆单宽 + case 22:// 拆单宽 vo.setSplitWidth(value); break; - case 22:// 厚 + case 23:// 厚 vo.setThickness(value); break; - case 23:// 左封边 + case 24:// 左封边 vo.setSealLeft(value); break; - case 24:// 右封边 + case 25:// 右封边 vo.setSealRight(value); break; - case 25:// 上封边 + case 26:// 上封边 vo.setSealUp(value); break; - case 26:// 下封边 + case 27:// 下封边 vo.setSealDown(value); break; - case 27:// 排版面 + case 28:// 排版面 vo.setTypographicFace(value); break; - case 28:// 纹路 + case 29:// 纹路 vo.setTexture(value); break; - case 29:// 开门方向 + case 30:// 开门方向 vo.setOpenDoorType(value); break; - case 30://备注1 + case 31://备注1 vo.setRemark1(value); break; - case 31://备注2 + case 32://备注2 vo.setRemark2(value); break; - case 32://备注3 + case 33://备注3 vo.setRemark3(value); break; - case 33://备注4 + case 34://备注4 vo.setRemark4(value); break; - case 34://备注5 + case 35://备注5 vo.setRemark5(value); break; - case 35://备注6 + case 36://备注6 vo.setRemark6(value); break; - case 36://备注7 + case 37://备注7 vo.setRemark7(value); break; - case 37://备注8 + case 38://备注8 vo.setRemark8(value); break; - case 38://备注9 + case 39://备注9 vo.setRemark9(value); break; - case 39://备注10 + case 40://备注10 vo.setRemark10(value); break; default: @@ -262,6 +264,16 @@ public class ExcelReadUtil { // 文件读取 } // 若商品类型为板材,需检查房间、柜体、板名称、成品长、成品宽、拆单长、拆单宽、厚、左封边、右封边、上封边、下封边、排版面、纹路、开门方向不能为空 if (StringUtils.equals(vo.getGoodType(), "板材")) { + // 纹理有效性判断 + if (StringUtils.isEmpty(vo.getWave())) { + errList.add("板材纹理不可为空"); + flag = false; + }else { + if (!StringUtils.equals(vo.getWave().trim(), "无") && !StringUtils.equals(vo.getWave().trim(), "有")) { + flag = false; + errList.add("纹理无效"); + } + } if (StringUtils.isEmpty(vo.getRoomsName()) && StringUtils.isEmpty(vo.getCabinetsName()) && StringUtils.isEmpty(vo.getName())) { flag = false; errList.add("房间、柜体、板名称不能为空"); @@ -365,22 +377,16 @@ public class ExcelReadUtil { // 文件读取 if (typographyDTO == null) { flag = false; errList.add("排版面数据不存在"); - } else { - vo.setTypographicFace(typographyDTO.getValue()); } DictDataRespDTO grainDTO = dictDataApi.parseDictData(DictTypeConstants.GRAIN_TYPE, vo.getTexture()).getData();// 纹路 if (grainDTO == null) { flag = false; errList.add("纹路数据不存在"); - } else { - vo.setTexture(grainDTO.getValue()); } DictDataRespDTO doorDTO = dictDataApi.parseDictData(DictTypeConstants.DOOR_OPENING_DIRECTIONS, vo.getOpenDoorType()).getData(); if (doorDTO == null) { flag = false; errList.add("开门方向数据不存在"); - } else { - vo.setOpenDoorType(doorDTO.getValue()); } } } diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/fileConversion/admin/files/excel/ExcelTypeRealize.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/fileConversion/admin/files/excel/ExcelTypeRealize.java index de94cfd72..59c603e6b 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/fileConversion/admin/files/excel/ExcelTypeRealize.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/fileConversion/admin/files/excel/ExcelTypeRealize.java @@ -1,6 +1,7 @@ package com.cf.imes.module.executor.util.fileConversion.admin.files.excel; import cn.hutool.json.JSONObject; +import com.alibaba.nacos.common.utils.StringUtils; import com.cf.imes.framework.mybatis.core.generator.SnowFlakeGenerator; import com.cf.imes.framework.organ.core.context.OrganContextHolder; import com.cf.imes.module.executor.controller.admin.orderParts.vo.OrderPartsRemark; @@ -16,6 +17,9 @@ import com.cf.imes.module.executor.dal.dataobject.plate.PlateGoodDO; import com.cf.imes.module.executor.dal.dataobject.rawgoods.RawGoodsDO; import com.cf.imes.module.executor.enums.OrderItemTypeEnum; import com.cf.imes.module.executor.util.fileConversion.admin.SnowflakeIdWorker3rd; +import com.cf.imes.module.system.api.dict.DictDataApi; +import com.cf.imes.module.system.api.dict.dto.DictDataRespDTO; +import com.cf.imes.module.system.enums.DictTypeConstants; import io.swagger.v3.oas.models.security.SecurityScheme; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; @@ -41,6 +45,9 @@ public class ExcelTypeRealize { @Resource SnowflakeIdWorker3rd idWorker; + @Resource + private DictDataApi dictDataApi; + // 数据转换 + 错误验证 public Map> changeDate(List list, Long orderId) { if (list.isEmpty()){ @@ -82,7 +89,7 @@ public class ExcelTypeRealize { p.getMaterial(), p.getColor(), p.getSpec(), - p.getTexture(), + p.getWave(), // 纹理 // p.getModel(), p.getBrand()), Collectors.toList() @@ -114,7 +121,6 @@ public class ExcelTypeRealize { .setRawGoodsId(String.valueOf(rawGoodsDO.getId())).setGoodsId(String.valueOf(rawGoodsDO.getRawGoodsId())) .setHeight(BigDecimal.valueOf(specList.get(0))).setWidth(BigDecimal.valueOf(specList.get(1))); goodsDOS.add(plateDO); - // 赋值给板件未对应前order_raw_goods的id for (OrderPlateImportExcelVO reqVO : value) { reqVO.setGoodId(goodId); @@ -186,6 +192,11 @@ public class ExcelTypeRealize { .movePointLeft(6) .setScale(2, RoundingMode.HALF_UP); Long plateId = (Long) snowFlakeGenerator.nextId(null); + // 排版面 纹路 开门方向转换 + DictDataRespDTO typographyDTO = dictDataApi.parseDictData(DictTypeConstants.TYPOGRAPHY_TYPE, combination.getTypographicFace()).getData();// 排版面 + DictDataRespDTO grainDTO = dictDataApi.parseDictData(DictTypeConstants.GRAIN_TYPE, combination.getTexture()).getData();// 纹路 + DictDataRespDTO doorDTO = dictDataApi.parseDictData(DictTypeConstants.DOOR_OPENING_DIRECTIONS, combination.getOpenDoorType()).getData(); + PlateDO plateDO = PlateDO.builder() .id(plateId).orderId(orderId) .name(combination.getName()) @@ -202,10 +213,10 @@ public class ExcelTypeRealize { .sealRight(BigDecimal.valueOf(Double.parseDouble(combination.getSealRight()))) .sealUp(BigDecimal.valueOf(Double.parseDouble(combination.getSealUp()))) .sealDown(BigDecimal.valueOf(Double.parseDouble(combination.getSealDown()))) - .holeFace(Integer.valueOf(combination.getTypographicFace())) - .texture(Integer.valueOf(combination.getTexture())) + .holeFace(Integer.valueOf(typographyDTO.getValue())) + .texture(Integer.valueOf(grainDTO.getValue())) .area(area) - .openDoorType(Integer.valueOf(combination.getOpenDoorType())) + .openDoorType(Integer.valueOf(doorDTO.getValue())) .isSpecialShaped(false) .isSculpt(false) .remark(remarkExtract(combination.remarkJSON())) @@ -217,14 +228,13 @@ public class ExcelTypeRealize { .num(1.0).groupId(groupId).build(); orderItemDOS.add(orderItemDO); orderModelDOS.add(OrderModelDO.builder().orderId(orderId).plateId(plateId) - .typographicFace(Integer.valueOf(combination.getTypographicFace())).build()); + .typographicFace(Integer.valueOf(typographyDTO.getValue())).build()); } plateCountByCabinetName[0] = plateCountByCabinetName[0] + plateCountByCombination[0]; } else { //配件 Long partsId = (Long) snowFlakeGenerator.nextId(null); - System.err.println(" remark " + combination.remarkJSON()); OrderPartsDO orderPartsDO = OrderPartsDO.builder().id(partsId).orderId(orderId).goodsId(combination.getGoodsId()) .name(combination.getGoodsName()).material(combination.getMaterial()).type(combination.getGoodType()) .model(combination.getModel()).spec(combination.getSpec()).brand(combination.getBrand()).factory(combination.getFactory()) @@ -265,7 +275,8 @@ public class ExcelTypeRealize { map.put("orderModuleExtraDOS", orderModuleExtraDOS); map.put("orderModelDOS", orderModelDOS); map.put("orderPartsRemarks", orderPartsRemarks); - System.out.println(" orderGroupDOS " + orderGroupDOS); + System.out.println(" goodsDOS " + goodsDOS); + System.out.println(" rawGoodsDOS " + rawGoodsDOS); return map; } @@ -284,43 +295,35 @@ public class ExcelTypeRealize { return nonNullJsonObject.toString(); } - // 板材库数据 - private PlateGoodDO setPlateGoodDO(OrderPlateImportExcelVO excelVO) { - return PlateGoodDO.builder() -// .id(plateGoodId) - .goodsId("") - .goodsName(excelVO.getGoodsName()) - .material(excelVO.getMaterial()) - .color(excelVO.getColor()) - .width(Double.valueOf(excelVO.getWidth())) - .height(Double.valueOf(excelVO.getHeight())) - .thickness(Double.valueOf(excelVO.getThickness())) - .spec(excelVO.getSpec()) - .brand(excelVO.getBrand()) - .texture(excelVO.getTexture()) -// .organId(organId) - .build(); - } // RawGoodsDO数据 private RawGoodsDO setRawGoodsDO(OrderPlateImportExcelVO excelVO) { + if (StringUtils.equals(excelVO.getWave().trim(), "无")) { + excelVO.setWave("false"); + } else if (StringUtils.equals(excelVO.getWave().trim(), "有")) { + excelVO.setWave("true"); + } return RawGoodsDO.builder() // .id(rawGoodsId) // .orderId(orderId) .rawGoodsId(excelVO.getGoodsId()) .goodsName(excelVO.getGoodsName()) .material(excelVO.getMaterial()) - .texture(Integer.valueOf(excelVO.getTexture())) + .texture(Boolean.valueOf(excelVO.getWave())) .color(excelVO.getColor()) .thickness(Double.valueOf(excelVO.getThickness())) .spec(excelVO.getSpec()) .brand(excelVO.getBrand()) - .texture(Integer.valueOf(excelVO.getTexture())) .build(); } // GoodsDO数据 private GoodsDO setGoodsDO(OrderPlateImportExcelVO excelVO) { + if (StringUtils.equals(excelVO.getWave().trim(), "无")) { + excelVO.setWave("false"); + } else if (StringUtils.equals(excelVO.getWave().trim(), "有")) { + excelVO.setWave("true"); + } return GoodsDO.builder() // .id(goodId) // .orderId(orderId) @@ -328,7 +331,7 @@ public class ExcelTypeRealize { // .goodsId(plateGoodId) .goodsName(excelVO.getGoodsName()) .material(excelVO.getMaterial()) - .texture(Integer.valueOf(excelVO.getTexture())) + .texture(Boolean.valueOf(excelVO.getWave())) .color(excelVO.getColor()) .width(BigDecimal.valueOf(Double.valueOf(excelVO.getWidth()))) .height(BigDecimal.valueOf(Double.valueOf(excelVO.getHeight()))) diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/fileConversion/admin/files/excel/OrderPlateImportExcelVO.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/fileConversion/admin/files/excel/OrderPlateImportExcelVO.java index 5cc86d402..049f65965 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/fileConversion/admin/files/excel/OrderPlateImportExcelVO.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/fileConversion/admin/files/excel/OrderPlateImportExcelVO.java @@ -49,6 +49,10 @@ public class OrderPlateImportExcelVO { @JsonIgnore private String material; + @ExcelProperty(value = "纹理") + @JsonIgnore + private String wave; + @ExcelProperty(value = "颜色") @JsonIgnore private String color; diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/type/生产单Excel导入错误导出模板.xlsx b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/type/生产单Excel导入错误导出模板.xlsx index ad259bfdcb62f88c73120a347d1c0fe33b040206..643be051e218f0f92d7d312f459967ce0e2bb15b 100644 GIT binary patch delta 11391 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 DzH9tq diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/type/生产单新增Excel模板.xlsx b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/type/生产单新增Excel模板.xlsx index e6ddea9af463cfa9be84b1fc76bd30571f9657ac..9aa231dbcd4679915a339b1bdc8bdbcbacdc2080 100644 GIT binary patch delta 14072 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 delta 13683 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 diff --git a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/plate/PlateController.java b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/plate/PlateController.java index 30db06841..1ea2c327e 100644 --- a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/plate/PlateController.java +++ b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/plate/PlateController.java @@ -114,9 +114,9 @@ public class PlateController { // 手动创建导出 demo List list = Arrays.asList( PlateImportExcelVO.builder().goodsId("SP1123456").goodsName("xixih").material("颗粒板").width(String.valueOf(1212.3)).height(String.valueOf(12131.6)) - .thickness(String.valueOf(0.2)).brand("鹅厂").spec("大厂").remark("测试").price(String.valueOf(33333.2)).color("黑色").texture("交换机1").build(), + .thickness(String.valueOf(0.2)).brand("鹅厂").spec("大厂").remark("测试").price(String.valueOf(33333.2)).color("黑色").texture("有").build(), PlateImportExcelVO.builder().goodsId("SP1123457").goodsName("2L").material("yuanma@cf.com").width(String.valueOf(21.6)).height(String.valueOf(12231.6)) - .thickness(String.valueOf(5.3)).brand("kkkkkk").spec("大厂").remark("测试").price(String.valueOf(333.555)).color("黑色").texture("交换机2").build() + .thickness(String.valueOf(5.3)).brand("kkkkkk").spec("大厂").remark("测试").price(String.valueOf(333.555)).color("黑色").texture("无").build() ); // 输出 ExcelUtils.write(response, "板材导入模板.xlsx", "板材列表", PlateImportExcelVO.class, list); @@ -141,7 +141,13 @@ public class PlateController { if (!plateExcelUtil.getFlag()) ExcelUtils.write(response, "板材导入模板.xlsx", "板材列表", PlateImportExcelVO.class, list); else { - PlateImportRespVO respVO = plateService.importPlateList(list, updateSupport, organId);// 成功,批量导入 + if (list.size() == 0){ + PlateImportExcelVO plateImportExcelVO = PlateImportExcelVO.builder().result("导入失败,请保证导入文件中包含板材数据").build(); + list.add(plateImportExcelVO); + ExcelUtils.write(response, "板材导入模板.xlsx", "板材列表", PlateImportExcelVO.class, list); + }else { + plateService.importPlateList(list, updateSupport, organId);// 成功,批量导入 + } } plateExcelUtil.clear(); diff --git a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/plate/vo/plate/PlateImportExcelVO.java b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/plate/vo/plate/PlateImportExcelVO.java index 52db4d7e8..fa3fd8be7 100644 --- a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/plate/vo/plate/PlateImportExcelVO.java +++ b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/plate/vo/plate/PlateImportExcelVO.java @@ -36,8 +36,8 @@ public class PlateImportExcelVO { @NotEmpty(message = "颜色不能为空") private String color; - @ExcelProperty("纹路") - @NotEmpty(message = "纹路不能为空") + @ExcelProperty("纹理") + @NotEmpty(message = "纹路不能为空,填 有 无") private String texture; @ExcelProperty("宽度") diff --git a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/plate/vo/plate/PlatePageReqVO.java b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/plate/vo/plate/PlatePageReqVO.java index d1606e343..b75ed638d 100644 --- a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/plate/vo/plate/PlatePageReqVO.java +++ b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/plate/vo/plate/PlatePageReqVO.java @@ -30,8 +30,8 @@ public class PlatePageReqVO extends PageParam { @Schema(description = "颜色") private String color; - @Schema(description = "纹路") - private String texture; + @Schema(description = "纹理") + private Boolean texture; @Schema(description = "宽度") private Double width; diff --git a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/plate/vo/plate/PlateRespVO.java b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/plate/vo/plate/PlateRespVO.java index e975e0e25..fa99b7612 100644 --- a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/plate/vo/plate/PlateRespVO.java +++ b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/plate/vo/plate/PlateRespVO.java @@ -31,8 +31,8 @@ public class PlateRespVO { @ExcelProperty("颜色") private String color; - @Schema(description = "纹路", requiredMode = Schema.RequiredMode.REQUIRED) - @ExcelProperty("纹路") + @Schema(description = "纹理", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("纹理") private String texture; @Schema(description = "宽度", requiredMode = Schema.RequiredMode.REQUIRED) diff --git a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/plate/vo/plate/PlateSaveReqVO.java b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/plate/vo/plate/PlateSaveReqVO.java index ee5497baa..a76664703 100644 --- a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/plate/vo/plate/PlateSaveReqVO.java +++ b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/plate/vo/plate/PlateSaveReqVO.java @@ -29,9 +29,9 @@ public class PlateSaveReqVO { @NotEmpty(message = "颜色不能为空") private String color; - @Schema(description = "纹路", requiredMode = Schema.RequiredMode.REQUIRED) - @NotEmpty(message = "纹路不能为空") - private String texture; + @Schema(description = "纹理", requiredMode = Schema.RequiredMode.REQUIRED) + @NotEmpty(message = "纹理路不能为空") + private Boolean texture; @Schema(description = "宽度", requiredMode = Schema.RequiredMode.REQUIRED) @NotNull(message = "宽度不能为空") diff --git a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/dal/dataobject/plate/PlateDO.java b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/dal/dataobject/plate/PlateDO.java index 8e1fe3bf4..eb0a60b8f 100644 --- a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/dal/dataobject/plate/PlateDO.java +++ b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/dal/dataobject/plate/PlateDO.java @@ -42,9 +42,9 @@ public class PlateDO extends BaseDO { */ private String color; /** - * 纹路 + * 纹理 */ - private String texture; + private Boolean texture; /** * 宽度 */ diff --git a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/dal/mysql/plate/PlateMapper.java b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/dal/mysql/plate/PlateMapper.java index 0d518347d..b1925d6c5 100644 --- a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/dal/mysql/plate/PlateMapper.java +++ b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/dal/mysql/plate/PlateMapper.java @@ -34,7 +34,7 @@ public interface PlateMapper extends BaseMapperX { .likeIfPresent(PlateDO::getSpec, reqVO.getSpec()) .likeIfPresent(PlateDO::getRemark, reqVO.getRemark()) .eqIfPresent(PlateDO::getPrice, reqVO.getPrice()) - .likeIfPresent(PlateDO::getTexture, reqVO.getTexture()) + .eqIfPresent(PlateDO::getTexture, reqVO.getTexture()) .betweenIfPresent(PlateDO::getCreateTime, reqVO.getCreateTime()); if (reqVO.getOrder() == null) { diff --git a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/service/plate/PlateExcelListener.java b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/service/plate/PlateExcelListener.java index ac9974011..0f39a08c4 100644 --- a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/service/plate/PlateExcelListener.java +++ b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/service/plate/PlateExcelListener.java @@ -36,6 +36,7 @@ public final class PlateExcelListener extends AnalysisEventListener extends AnalysisEventListener importPlates, boolean isUpdateSupport , Long organId) { - if (CollUtil.isEmpty(importPlates)) { - throw ServiceExceptionUtil.exception(ErrorCodeConstants.PLATE_IMPORT_LIST_IS_EMPTY); - } + System.out.println(" importPlates " + importPlates); +// if (CollUtil.isEmpty(importPlates)) { +// throw ServiceExceptionUtil.exception(ErrorCodeConstants.PLATE_IMPORT_LIST_IS_EMPTY); +// } validateOrganExists(organId); PlateImportRespVO respVO = PlateImportRespVO.builder().createPlateNames(new ArrayList<>()) .updatePlateNames(new ArrayList<>()).failurePlateNames(new LinkedHashMap<>()).build(); @@ -131,13 +132,13 @@ public class PlateServiceImpl implements PlateService { PlateDO existPlate = plateMapper.selectByGoodID(importPlate.getGoodsId(), organId); if (existPlate == null) { respVO.getCreatePlateNames().add(importPlate.getGoodsName()); - insertList.add(BeanUtils.toBean(importPlate, PlateDO.class).setOrganId(organId)); + insertList.add(BeanUtils.toBean(importPlate, PlateDO.class).setOrganId(organId).setTexture(Boolean.valueOf(importPlate.getTexture()))); return; } // 判断是否允许更新 if (!isUpdateSupport) { respVO.getFailurePlateNames().put(importPlate.getGoodsName(), ErrorCodeConstants.PLATE_EXISTS.getMsg()); - PlateDO plateDO = BeanUtils.toBean(importPlate, PlateDO.class).setOrganId(organId).setId(existPlate.getId()); + PlateDO plateDO = BeanUtils.toBean(importPlate, PlateDO.class).setOrganId(organId).setId(existPlate.getId()).setTexture(Boolean.valueOf(importPlate.getTexture())); updateList.add(plateDO); } });