From c28fbbb20ecd5812d81596acad8133549f9849ac Mon Sep 17 00:00:00 2001 From: gsz Date: Thu, 6 Jun 2024 17:24:48 +0800 Subject: [PATCH] =?UTF-8?q?bug=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/base/MesMediaFileCfgController.java | 109 ++++++++++++++++++++- .../base/MesPartTransferDetailService.java | 2 +- .../serviceimpl/busi/MesSpotCheckOrderService.java | 25 +++-- 3 files changed, 127 insertions(+), 9 deletions(-) diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesMediaFileCfgController.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesMediaFileCfgController.java index 8695393..01005bc 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesMediaFileCfgController.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesMediaFileCfgController.java @@ -1,10 +1,27 @@ package cn.estsh.i3plus.ext.mes.apiservice.controller.base; import cn.estsh.i3plus.ext.mes.pojo.constant.MesCommonConstant; +import cn.estsh.i3plus.icloud.core.sdk.ICoreSysFileCloud; +import cn.estsh.i3plus.platform.common.exception.ImppExceptionEnum; +import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; +import cn.estsh.i3plus.pojo.base.enumutil.ResourceEnumUtil; import cn.estsh.i3plus.pojo.mes.bean.MesMediaFileCfg; +import cn.estsh.i3plus.pojo.mes.repository.MesMediaFileCfgRepository; +import cn.estsh.impp.framework.boot.exception.ImppBusiException; +import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder; +import cn.estsh.impp.framework.boot.util.ResultBean; import io.swagger.annotations.Api; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import io.swagger.annotations.ApiOperation; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.net.URLEncoder; +import java.util.UUID; /** * @Description: 媒体文件维护 @@ -15,4 +32,92 @@ import org.springframework.web.bind.annotation.RestController; @RestController @RequestMapping(MesCommonConstant.MES_YANFEN + "/mesMediaFileCfg") public class MesMediaFileCfgController extends BaseMesController{ + public static final Logger LOGGER = LoggerFactory.getLogger(MesMediaFileCfgController.class); + @Autowired + private MesMediaFileCfgRepository mediaFileCfgRepository; + + @Autowired + private ICoreSysFileCloud coreSysFileCloud; + + //默认大小 + private static final long FILE_SIZE = 1024 * 1024; + + @PostMapping(value = "/media-file/insert") + @ApiOperation(value = "上传媒体文件") + public ResultBean insertProduceCtgyPicture(@RequestParam("file") MultipartFile file, MesMediaFileCfg mesMediaFileCfg) { + try { + + if (file.isEmpty()) { + throw ImppExceptionBuilder.newInstance() + .setSystemID(CommonEnumUtil.SOFT_TYPE.REPORT.getCode()) + .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode()) + .setErrorDetail("不允许上传空文件") + .build(); + } + // 校验文件大小 + long size = file.getSize(); + if(size > FILE_SIZE){ + throw ImppExceptionBuilder.newInstance() + .setSystemID(CommonEnumUtil.SOFT_TYPE.REPORT.getCode()) + .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode()) + .setErrorDetail("文件过大,请重新上传!") + .build(); + } + + String fileName = file.getOriginalFilename(); + String newName= UUID.randomUUID().toString()+fileName.substring(fileName.indexOf(".")); + + String path="/tmp/media-file/"; + + File saveFile=new File(path + newName); + if(!saveFile.getParentFile().exists()){ + saveFile.getParentFile().mkdirs(); + } + file.transferTo(saveFile); + + MesMediaFileCfg mesMediaFileCfg1=new MesMediaFileCfg(); + mesMediaFileCfg1.setFileName(fileName); + mesMediaFileCfg1.setFileUrl(saveFile.getPath()); + mesMediaFileCfg1.setFileType(mesMediaFileCfg.getFileType()); + mediaFileCfgRepository.save(mesMediaFileCfg1); + + return ResultBean.success("添加成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()).setResultObject(mesMediaFileCfg1); + } catch (ImppBusiException imppException) { + LOGGER.error(imppException.getErrorMsg() + ":{}", imppException.getErrorDetail(), imppException); + return ResultBean.fail(imppException); + } catch (Exception e) { + return ImppExceptionBuilder.newInstance().buildExceptionResult(e); + } + } + + @ApiOperation("下载文件") + @GetMapping("/download") + public ResultBean download(@RequestParam("filePath") String filePath, HttpServletResponse response){ + + InputStream inputStream = null; + OutputStream outputStream = null; + try { + // 读取文件 + File file = new File(filePath); + inputStream = new FileInputStream(file); + outputStream = response.getOutputStream(); + response.setContentType("application/octet-stream"); + response.setHeader("Content-Disposition", "attachment; filename=" + URLEncoder.encode(file.getName(), "UTF-8")); + byte[] buffer = new byte[4096]; + int bytesRead; + while ((bytesRead = inputStream.read(buffer)) != -1) { + outputStream.write(buffer, 0, bytesRead); + } + outputStream.flush(); + inputStream.close(); + outputStream.close(); + return ResultBean.success("下载成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); + } catch (ImppBusiException imppException) { + LOGGER.error(imppException.getErrorMsg() + ":{}", imppException.getErrorDetail(), imppException); + return ResultBean.fail(imppException); + } catch (Exception e) { + return ImppExceptionBuilder.newInstance().buildExceptionResult(e); + } + + } } diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesPartTransferDetailService.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesPartTransferDetailService.java index b6622a4..61017b2 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesPartTransferDetailService.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesPartTransferDetailService.java @@ -11,7 +11,7 @@ import org.springframework.stereotype.Service; @Slf4j public class MesPartTransferDetailService extends BaseMesService implements IMesPartTransferDetailService { protected void setPackQueryBean(MesPartTransferDetail bean, DdlPackBean packBean) { - DdlPreparedPack.getStringEqualPack(bean.getPid(),"pid",packBean); + DdlPreparedPack.getNumEqualPack(bean.getPid(),"pid",packBean); } } diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/busi/MesSpotCheckOrderService.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/busi/MesSpotCheckOrderService.java index 063fd2a..e792eb6 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/busi/MesSpotCheckOrderService.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/busi/MesSpotCheckOrderService.java @@ -6,9 +6,13 @@ import cn.estsh.i3plus.ext.mes.api.busi.IMesSpotCheckOrderResultService; import cn.estsh.i3plus.ext.mes.api.busi.IMesSpotCheckOrderService; import cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.base.BaseMesService; import cn.estsh.i3plus.ext.mes.pojo.constant.MesCommonConstant; +import cn.estsh.i3plus.icloud.core.sdk.ICoreUtilCloud; import cn.estsh.i3plus.mes.api.iservice.busi.ISyncFuncService; import cn.estsh.i3plus.platform.common.convert.ConvertBean; import cn.estsh.i3plus.platform.common.exception.ImppExceptionEnum; +import cn.estsh.i3plus.platform.common.tool.TimeTool; +import cn.estsh.i3plus.platform.common.util.WmsConstWords; +import cn.estsh.i3plus.pojo.base.bean.BaseResultBean; import cn.estsh.i3plus.pojo.base.bean.DdlPackBean; import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack; @@ -30,6 +34,7 @@ import org.springframework.util.CollectionUtils; import org.springframework.util.StringUtils; import java.util.ArrayList; +import java.util.LinkedHashMap; import java.util.List; @Service @@ -57,7 +62,8 @@ public class MesSpotCheckOrderService extends BaseMesService @Autowired private ISyncFuncService syncFuncService; - + @Autowired + private ICoreUtilCloud sysOrderNoRuleCloud; @Override public MesSpotCheckOrder insert(MesSpotCheckOrder bean) { onInsertBean(bean); @@ -109,13 +115,20 @@ public class MesSpotCheckOrderService extends BaseMesService } //生成单据号 - GenSerialNoModel genSerialNoModel = new GenSerialNoModel(MesCommonConstant.SPOT_CHECK_ORDER_NO_RULE); - List resultList = syncFuncService.syncSerialNo(genSerialNoModel, bean.getCreateUser(), bean.getOrganizeCode(), 1).getResultList(); - +// GenSerialNoModel genSerialNoModel = new GenSerialNoModel(MesCommonConstant.SPOT_CHECK_ORDER_NO_RULE); +// List resultList = syncFuncService.syncSerialNo(genSerialNoModel, bean.getCreateUser(), bean.getOrganizeCode(), 1).getResultList(); + + String orderNo=""; + BaseResultBean orderResutlBean = sysOrderNoRuleCloud.getOrderNo(MesCommonConstant.SPOT_CHECK_ORDER_NO_RULE); + if (orderResutlBean != null && orderResutlBean.isSuccess()) { + orderNo = orderResutlBean.getResultObject().get(WmsConstWords.CORE_ORDER_NO).toString(); + } else { + orderNo = TimeTool.getDateTime().replaceAll("-", "") + String.valueOf((int) (Math.random() * 9000) + 1000); + } //保存单据 BeanUtils.copyProperties(equipmentSpotCheck, bean, "id"); -// bean.setSpotCheckOrderNo("SPOT_CHECK_ORDER_NO_0003"); - bean.setSpotCheckOrderNo(resultList.get(0)); + + bean.setSpotCheckOrderNo(orderNo); ConvertBean.serviceModelInitialize(bean, AuthUtil.getSessionUser().getUserName()); bean = baseRDao.insert(bean);