diff --git a/dispatch/src/main/java/com/foreverwin/mesnac/dispatch/controller/ShopOrderReleaseController.java b/dispatch/src/main/java/com/foreverwin/mesnac/dispatch/controller/ShopOrderReleaseController.java index 2f65260b..1c4c7378 100644 --- a/dispatch/src/main/java/com/foreverwin/mesnac/dispatch/controller/ShopOrderReleaseController.java +++ b/dispatch/src/main/java/com/foreverwin/mesnac/dispatch/controller/ShopOrderReleaseController.java @@ -13,13 +13,16 @@ import com.foreverwin.modular.core.util.R; import com.sap.me.production.ChangeProductionContext; import com.sap.me.production.ChangeProductionRequest; import com.sap.me.production.ChangeProductionServiceInterface; +import org.apache.ibatis.annotations.Param; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.interceptor.TransactionAspectSupport; import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; +import javax.websocket.server.PathParam; import java.text.SimpleDateFormat; import java.time.LocalDateTime; import java.util.*; @@ -193,6 +196,35 @@ public class ShopOrderReleaseController { } + /** + * 更改工艺及BOM文件导入 + * @param fileType + * @param site + * @param user + * @param multipartFile + * @return + */ + @PostMapping("/import") + public R importFile(@PathParam("fileType") String fileType, @Param("site") String site, @Param("user") String user, @RequestParam("file") MultipartFile multipartFile) { + Boolean flag; + StringBuffer message = new StringBuffer(); + try { + + flag = shopOrderReleaseService.importRouter(site, user, fileType, message, multipartFile); + } catch (Exception e) { + return R.failed(e.getMessage()); + } + if (flag) { + message.insert(0, "工单编号导入成功"); + return R.ok(message.toString()); + } else { + message.insert(0, "工单编号导入失败:"); + return R.failed(message.toString()); + } + + } + + /** * 批量更改工艺路线 */ diff --git a/dispatch/src/main/java/com/foreverwin/mesnac/dispatch/model/SfcDispatch.java b/dispatch/src/main/java/com/foreverwin/mesnac/dispatch/model/SfcDispatch.java index a9217fbf..83538e3a 100644 --- a/dispatch/src/main/java/com/foreverwin/mesnac/dispatch/model/SfcDispatch.java +++ b/dispatch/src/main/java/com/foreverwin/mesnac/dispatch/model/SfcDispatch.java @@ -9,6 +9,7 @@ import java.time.LocalDateTime; import com.baomidou.mybatisplus.annotation.TableField; import java.io.Serializable; import com.baomidou.mybatisplus.annotation.IdType; +import com.foreverwin.mesnac.common.model.ExcelColumn; /** *

@@ -38,6 +39,7 @@ public class SfcDispatch extends Model { * 工单 */ @TableField("SHOP_ORDER") + @ExcelColumn("工单编号") private String shopOrder; /** * 生产批次 diff --git a/dispatch/src/main/java/com/foreverwin/mesnac/dispatch/service/ShopOrderReleaseService.java b/dispatch/src/main/java/com/foreverwin/mesnac/dispatch/service/ShopOrderReleaseService.java index 49d7c79e..4548c16a 100644 --- a/dispatch/src/main/java/com/foreverwin/mesnac/dispatch/service/ShopOrderReleaseService.java +++ b/dispatch/src/main/java/com/foreverwin/mesnac/dispatch/service/ShopOrderReleaseService.java @@ -4,6 +4,7 @@ import com.foreverwin.mesnac.dispatch.dto.RouterDTO; import com.foreverwin.mesnac.dispatch.model.ShopOrderRelease; import com.foreverwin.mesnac.meapi.model.Sfc; import com.foreverwin.mesnac.meapi.model.ShopOrder; +import org.springframework.web.multipart.MultipartFile; import java.io.IOException; import java.util.List; @@ -50,6 +51,17 @@ public interface ShopOrderReleaseService { */ List findShopOrderListBatchUpdate(ShopOrderRelease shopOrderRelease); + /** + * 工艺数据导入 + * + * @param site + * @param user + * @param fileType + * @param message + * @param multipartFile + */ + Boolean importRouter(String site, String user, String fileType, StringBuffer message, MultipartFile multipartFile) throws Exception; + /** * 工单整理- 更新工单BOM组件数据 diff --git a/dispatch/src/main/java/com/foreverwin/mesnac/dispatch/service/impl/ShopOrderReleaseServiceImpl.java b/dispatch/src/main/java/com/foreverwin/mesnac/dispatch/service/impl/ShopOrderReleaseServiceImpl.java index f0cfe101..da8dccf4 100644 --- a/dispatch/src/main/java/com/foreverwin/mesnac/dispatch/service/impl/ShopOrderReleaseServiceImpl.java +++ b/dispatch/src/main/java/com/foreverwin/mesnac/dispatch/service/impl/ShopOrderReleaseServiceImpl.java @@ -3,8 +3,11 @@ package com.foreverwin.mesnac.dispatch.service.impl; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.foreverwin.mesnac.common.constant.Constants; import com.foreverwin.mesnac.common.dto.SfcDispatchDto; +import com.foreverwin.mesnac.common.dto.shopOrderReleaseDto; +import com.foreverwin.mesnac.common.enums.DispatchStatusEnum; import com.foreverwin.mesnac.common.enums.HandleEnum; import com.foreverwin.mesnac.common.ftp.CappFtpClient; +import com.foreverwin.mesnac.common.util.ExcelUtils; import com.foreverwin.mesnac.common.util.ExceptionUtil; import com.foreverwin.mesnac.common.util.GetDrawingVersionUtil; import com.foreverwin.mesnac.common.util.StringUtil; @@ -38,8 +41,10 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.interceptor.TransactionAspectSupport; +import org.springframework.web.multipart.MultipartFile; import java.io.IOException; +import java.io.InputStream; import java.math.BigDecimal; import java.time.LocalDateTime; import java.util.*; @@ -104,6 +109,42 @@ public class ShopOrderReleaseServiceImpl implements ShopOrderReleaseService { } + /** + * 工艺数据导入 + * @param site + * @param user + * @param fileType + * @param message + * @param multipartFile + * @return + * @throws Exception + */ + @Override + public Boolean importRouter(String site, String user, String fileType, StringBuffer message, MultipartFile multipartFile) throws Exception { + InputStream inputStream = null; + //工单List + List shopOrderList; + try { + shopOrderList = ExcelUtils.readExcel(fileType, shopOrderReleaseDto.class, multipartFile, null); + } finally { + if (inputStream != null){ + try { + inputStream.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } + if (shopOrderList == null || shopOrderList.size() <= 0) { + throw BusinessException.build("上传的Excel没有数据,或者数据格式不正确!"); + }else { + //导入数据成功 + return true; + } + + } + + @Override public void shopOrderBomComponentUpdate(String site, String user, List shopOrderList) { if (shopOrderList == null || shopOrderList.size() <= 0) {