From def92011b74ef50aa1d9d48ae680c8d5eb160bef Mon Sep 17 00:00:00 2001 From: jun Date: Sat, 15 Jun 2024 11:45:47 +0800 Subject: [PATCH 01/10] =?UTF-8?q?=E9=97=AE=E9=A2=98=E6=B8=85=E5=8D=95?= =?UTF-8?q?=E9=97=AE=E9=A2=98=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/base/MesWorkOrderController.java | 23 ++++++++++++---------- .../serviceimpl/base/MesWorkOrderService.java | 1 + 2 files changed, 14 insertions(+), 10 deletions(-) diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesWorkOrderController.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesWorkOrderController.java index 372d013..9113498 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesWorkOrderController.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesWorkOrderController.java @@ -8,6 +8,7 @@ import cn.estsh.i3plus.ext.mes.pojo.constant.MesCommonConstant; import cn.estsh.i3plus.platform.common.convert.ConvertBean; import cn.estsh.i3plus.pojo.base.enumutil.ResourceEnumUtil; import cn.estsh.i3plus.pojo.mes.bean.MesWorkOrder; +import cn.estsh.i3plus.pojo.mes.model.MesWorkOrderModel; import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil; import cn.estsh.i3plus.pojo.model.wms.WmsProductModel; import cn.estsh.impp.framework.boot.auth.AuthUtil; @@ -18,11 +19,13 @@ import cn.estsh.impp.framework.boot.util.ResultBean; import cn.estsh.impp.framework.boot.util.ValidatorBean; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; +import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.util.CollectionUtils; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; +import java.util.ArrayList; import java.util.List; @Api(description = "工单主页面") @@ -41,26 +44,26 @@ public class MesWorkOrderController extends BaseMesController { public ResultBean importMesWorkOrderExcel(@RequestParam("file") MultipartFile file, @RequestParam("status") Integer type) { try { MesExcelTool excelTool = new MesExcelTool(entityManager, RedisCacheTool.getImppRedis()); - List beanList = excelTool.importData(file.getOriginalFilename(), file.getInputStream(), MesWorkOrder.class); + List beanList = excelTool.importData(file.getOriginalFilename(), file.getInputStream(), MesWorkOrderModel.class); - // 校验导入数据 - validateImport(beanList); String userName = AuthUtil.getSessionUser().getUserName(); String organizeCode = AuthUtil.getOrganize().getOrganizeCode(); //非排序工单导入前删除 if (MesExtEnumUtil.ORDER_TYPE.UN_SORT.getValue() == type) { mesWorkOrderService.deleteUnSortOrder(userName,organizeCode); } + List mesWorkOrderList = new ArrayList<>(); // 导入数据初始化 - for (MesWorkOrder bean : beanList) { - bean.setWorkOrderType(type); - ConvertBean.serviceModelInitialize(bean, userName); - bean.setOrganizeCode(organizeCode); + for (MesWorkOrderModel bean : beanList) { + MesWorkOrder mesWorkOrder = new MesWorkOrder(); + BeanUtils.copyProperties(bean, mesWorkOrder); + mesWorkOrder.setWorkOrderType(type); + ConvertBean.serviceModelInitialize(mesWorkOrder, userName); + mesWorkOrder.setOrganizeCode(organizeCode); + mesWorkOrderList.add(mesWorkOrder); } - baseService.insertBatch(beanList); + baseService.insertBatch(mesWorkOrderList); - // 导入后 - afterImport(beanList); return ResultBean.success("导入成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); } catch (ImppBusiException e) { return ResultBean.fail(e); diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkOrderService.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkOrderService.java index 6381bdf..40ecfb2 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkOrderService.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkOrderService.java @@ -293,6 +293,7 @@ public class MesWorkOrderService extends BaseMesService implements // 数据校验 ValidatorBean.checkNotNull(item.getWorkOrderType(), "工单类型不能为空"); ValidatorBean.checkNotNull(item.getWorkCenterCode(), "产线不能为空"); + ValidatorBean.checkNotNull(item.getPartNo(), "零件号不能为空"); ValidatorBean.checkNotNull(item.getShiftCode(), "班次不能为空"); From 9f4b6b049bb9c8c00478c9658e66b70f9dee45ed Mon Sep 17 00:00:00 2001 From: jun Date: Sat, 15 Jun 2024 13:30:38 +0800 Subject: [PATCH 02/10] =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E6=98=A0=E5=B0=84?= =?UTF-8?q?=E5=87=BD=E6=95=B0=E6=B7=BB=E5=8A=A0NotTrans=E5=A4=84=E7=90=86?= =?UTF-8?q?=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ext/mes/apiservice/dbinterface/WmsSAPDbTranslator.java | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/dbinterface/WmsSAPDbTranslator.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/dbinterface/WmsSAPDbTranslator.java index c0143cf..65312f4 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/dbinterface/WmsSAPDbTranslator.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/dbinterface/WmsSAPDbTranslator.java @@ -14,6 +14,7 @@ import org.springframework.stereotype.Component; import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.Objects; /** * @Description : 接口数据转换 @@ -208,6 +209,14 @@ public class WmsSAPDbTranslator extends WmsSAPDbSyncBase { return defaultValue; } + //表达式包含 :NotTrans 或 NotTrans + boolean hasNotTrans = false; + if (defaultValue.toString().endsWith(WmsSAPDbExpression.NOT_TRANS)) { + defaultValue = defaultValue.toString().replace(":" + WmsSAPDbExpression.NOT_TRANS, ""); + defaultValue = defaultValue.toString().replace(WmsSAPDbExpression.NOT_TRANS, ""); + hasNotTrans = true; + } + Object objResult; try { @@ -221,6 +230,10 @@ public class WmsSAPDbTranslator extends WmsSAPDbSyncBase { + JSONObject.toJSONString(rowMap)); } + //添加NotTrans + if (!Objects.isNull(objResult) && hasNotTrans) { + objResult = objResult + ":" + WmsSAPDbExpression.NOT_TRANS; + } // 计算后返回 return objResult; } From c9075c7803bf9e67ba5e1024d3409afe3953451f Mon Sep 17 00:00:00 2001 From: jun Date: Sat, 15 Jun 2024 14:54:15 +0800 Subject: [PATCH 03/10] =?UTF-8?q?=E5=B7=A5=E5=8D=95=E6=BC=94=E7=A4=BA?= =?UTF-8?q?=E9=97=AE=E9=A2=98=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ext/mes/api/base/IMesWorkOrderService.java | 2 +- .../controller/base/MesWorkOrderController.java | 12 +++++- .../serviceimpl/base/MesWorkOrderService.java | 49 +++++++++------------- 3 files changed, 31 insertions(+), 32 deletions(-) diff --git a/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesWorkOrderService.java b/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesWorkOrderService.java index f317351..1681455 100644 --- a/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesWorkOrderService.java +++ b/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesWorkOrderService.java @@ -16,7 +16,7 @@ public interface IMesWorkOrderService extends IBaseMesService { void doProductReportExt(MesWorkOrder mesWorkOrder); - void deleteUnSortOrder(String userName,String organizeCode); + void deleteUnSortOrder(String userName, String organizeCode, List partNoList); List sumMesWorkOrderQtyToSap(String organizeCode); diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesWorkOrderController.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesWorkOrderController.java index 9113498..cdaf255 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesWorkOrderController.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesWorkOrderController.java @@ -4,6 +4,7 @@ import cn.estsh.i3plus.ext.mes.api.base.IMesWorkOrderService; import cn.estsh.i3plus.ext.mes.api.base.IMesWorkOrderToSapService; import cn.estsh.i3plus.ext.mes.apiservice.config.AuthUtilExt; import cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.excel.MesExcelTool; +import cn.estsh.i3plus.ext.mes.apiservice.unit.exception.MesException; import cn.estsh.i3plus.ext.mes.pojo.constant.MesCommonConstant; import cn.estsh.i3plus.platform.common.convert.ConvertBean; import cn.estsh.i3plus.pojo.base.enumutil.ResourceEnumUtil; @@ -22,11 +23,13 @@ import io.swagger.annotations.ApiOperation; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.util.CollectionUtils; +import org.springframework.util.StringUtils; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import java.util.ArrayList; import java.util.List; +import java.util.stream.Collectors; @Api(description = "工单主页面") @RestController @@ -46,11 +49,18 @@ public class MesWorkOrderController extends BaseMesController { MesExcelTool excelTool = new MesExcelTool(entityManager, RedisCacheTool.getImppRedis()); List beanList = excelTool.importData(file.getOriginalFilename(), file.getInputStream(), MesWorkOrderModel.class); + if(CollectionUtils.isEmpty(beanList)){ + MesException.throwMesBusiException("导入数据不存在"); + } String userName = AuthUtil.getSessionUser().getUserName(); String organizeCode = AuthUtil.getOrganize().getOrganizeCode(); //非排序工单导入前删除 if (MesExtEnumUtil.ORDER_TYPE.UN_SORT.getValue() == type) { - mesWorkOrderService.deleteUnSortOrder(userName,organizeCode); + List partNoList = beanList.stream().map(MesWorkOrderModel::getPartNo).filter(partNo -> !StringUtils.isEmpty(partNo)).distinct().collect(Collectors.toList()); + if(CollectionUtils.isEmpty(partNoList)){ + MesException.throwMesBusiException("导入物料信息数据无效"); + } + mesWorkOrderService.deleteUnSortOrder(userName,organizeCode,partNoList); } List mesWorkOrderList = new ArrayList<>(); // 导入数据初始化 diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkOrderService.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkOrderService.java index 40ecfb2..c8fb95e 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkOrderService.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkOrderService.java @@ -232,7 +232,7 @@ public class MesWorkOrderService extends BaseMesService implements if (result.getWorkOrderStatus() >= MesExtEnumUtil.ORDER_STATUS.PROCESS.getValue()) { if (!Objects.equals(bean.getPartNo(), result.getPartNo())) { MesException.throwMesBusiException(String.format("工单状态为【%s】不允许修改物料", - MesExtEnumUtil.ORDER_TYPE.valueOfDescription(result.getWorkOrderStatus()))); + MesExtEnumUtil.ORDER_STATUS.valueOfDescription(result.getWorkOrderStatus()))); } } @@ -249,12 +249,6 @@ public class MesWorkOrderService extends BaseMesService implements } //更新状态 if (bean.getWorkOrderStatus() > 0) { - if (MesExtEnumUtil.ORDER_STATUS.RELEASE.getValue() == bean.getWorkOrderStatus()) { - if (MesExtEnumUtil.ORDER_STATUS.CREATE.getValue() != result.getWorkOrderStatus()) { - MesException.throwMesBusiException(String.format("工单状态为【%s】不为创建,不允许发布", - MesExtEnumUtil.ORDER_TYPE.valueOfDescription(result.getWorkOrderStatus()))); - } - } result.setWorkOrderStatus(bean.getWorkOrderStatus()); } ConvertBean.serviceModelInitialize(bean, AuthUtil.getSessionUser().getUserName()); @@ -309,19 +303,15 @@ public class MesWorkOrderService extends BaseMesService implements if (item.getWorkOrderType() == MesExtEnumUtil.ORDER_TYPE.SORT.getValue()) { ValidatorBean.checkNotNull(item.getOrderFlag(), "标识不能为空"); //若工单类型为排序 标识为 N E P S - if (item.getOrderFlag() != MesExtEnumUtil.ORDER_TYPE_IDENTIFICATION.S.getValue() && - item.getOrderFlag() != MesExtEnumUtil.ORDER_TYPE_IDENTIFICATION.E.getValue() && - item.getOrderFlag() != MesExtEnumUtil.ORDER_TYPE_IDENTIFICATION.P.getValue() && - item.getOrderFlag() != MesExtEnumUtil.ORDER_TYPE_IDENTIFICATION.N.getValue()) { - throw ImppExceptionBuilder.newInstance() - .setErrorCode(ImppExceptionEnum.BUSINESS_EXCEPTION_DATA_ERROR.getCode()) - .setErrorDetail(String.format("工单标识为【%s】请选择 【%s】、【%s】、【%s】、【%s】 标识", - item.getOrderFlag(), MesExtEnumUtil.ORDER_TYPE_IDENTIFICATION.S.getDescription() - , MesExtEnumUtil.ORDER_TYPE_IDENTIFICATION.E.getDescription(), - MesExtEnumUtil.ORDER_TYPE_IDENTIFICATION.P.getDescription(), - MesExtEnumUtil.ORDER_TYPE_IDENTIFICATION.N.getDescription())) - .setSystemID(CommonEnumUtil.SOFT_TYPE.MES.getCode()) - .build(); + if (!MesExtEnumUtil.ORDER_TYPE_IDENTIFICATION.E.getValue().equals(item.getOrderFlag())&& + !MesExtEnumUtil.ORDER_TYPE_IDENTIFICATION.N.getValue().equals(item.getOrderFlag())&& + !MesExtEnumUtil.ORDER_TYPE_IDENTIFICATION.S.getValue().equals(item.getOrderFlag())&& + !MesExtEnumUtil.ORDER_TYPE_IDENTIFICATION.P.getValue().equals(item.getOrderFlag())){ + MesException.throwMesBusiException(String.format("工单标识为【%s】请选择 【%s】、【%s】、【%s】、【%s】 标识", + item.getOrderFlag(), MesExtEnumUtil.ORDER_TYPE_IDENTIFICATION.E.getValue() + , MesExtEnumUtil.ORDER_TYPE_IDENTIFICATION.N.getValue(), + MesExtEnumUtil.ORDER_TYPE_IDENTIFICATION.S.getValue(), + MesExtEnumUtil.ORDER_TYPE_IDENTIFICATION.P.getValue())); } if (StringUtil.isEmpty(item.getPlanStartTime()) || StringUtil.isEmpty(item.getPlanEndTime())) { packPlanTime(item); @@ -354,15 +344,13 @@ public class MesWorkOrderService extends BaseMesService implements } else if (item.getWorkOrderType() == MesExtEnumUtil.ORDER_TYPE.UN_SORT.getValue()) { ValidatorBean.checkNotNull(item.getOrderFlag(), "标识不能为空"); ValidatorBean.checkNotNull(item.getProductVersion(), "生产版本不能为空"); - if (item.getOrderFlag() != MesExtEnumUtil.ORDER_TYPE_IDENTIFICATION.E.getValue() && - item.getOrderFlag() != MesExtEnumUtil.ORDER_TYPE_IDENTIFICATION.P.getValue()) { - throw ImppExceptionBuilder.newInstance() - .setErrorCode(ImppExceptionEnum.BUSINESS_EXCEPTION_DATA_ERROR.getCode()) - .setErrorDetail(String.format("工单标识为【%s】请选择 【%s】、【%s】 标识", - item.getOrderFlag(), MesExtEnumUtil.ORDER_TYPE_IDENTIFICATION.E.getDescription(), - MesExtEnumUtil.ORDER_TYPE_IDENTIFICATION.P.getDescription())) - .setSystemID(CommonEnumUtil.SOFT_TYPE.MES.getCode()) - .build(); + if (!MesExtEnumUtil.ORDER_TYPE_IDENTIFICATION.E.getValue().equals(item.getOrderFlag())&& + !MesExtEnumUtil.ORDER_TYPE_IDENTIFICATION.N.getValue().equals(item.getOrderFlag())&& + !MesExtEnumUtil.ORDER_TYPE_IDENTIFICATION.P.getValue().equals(item.getOrderFlag())){ + MesException.throwMesBusiException(String.format("工单标识为【%s】请选择 【%s】、【%s】、【%s】 标识", + item.getOrderFlag(), MesExtEnumUtil.ORDER_TYPE_IDENTIFICATION.E.getValue() + , MesExtEnumUtil.ORDER_TYPE_IDENTIFICATION.N.getValue(), + MesExtEnumUtil.ORDER_TYPE_IDENTIFICATION.P.getValue())); } if (StringUtil.isEmpty(item.getPlanStartTime()) || StringUtil.isEmpty(item.getPlanEndTime())) { packPlanTime(item); @@ -731,8 +719,9 @@ public class MesWorkOrderService extends BaseMesService implements } @Override - public void deleteUnSortOrder(String userName, String organizeCode) { + public void deleteUnSortOrder(String userName, String organizeCode, List partNoList) { DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(organizeCode); + DdlPreparedPack.getInPackList(partNoList, "partNo", ddlPackBean); DdlPreparedPack.getNumEqualPack(MesExtEnumUtil.ORDER_TYPE.UN_SORT.getValue(), "workOrderType", ddlPackBean); DdlPreparedPack.getStringSmallerNotEqualPack(TimeTool.getToday(), "planStartTime", ddlPackBean); DdlPreparedPack.getNumberSmallerPack(MesExtEnumUtil.ORDER_STATUS.CLOSE.getValue(), "workOrderStatus", ddlPackBean); From 566d9d8b0d5b7e3320dca3fbdc8de002b3844729 Mon Sep 17 00:00:00 2001 From: jun Date: Sat, 15 Jun 2024 15:16:35 +0800 Subject: [PATCH 04/10] =?UTF-8?q?=E5=B7=A5=E5=8D=95=E6=BC=94=E7=A4=BA?= =?UTF-8?q?=E9=97=AE=E9=A2=98=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkOrderService.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkOrderService.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkOrderService.java index c8fb95e..3c8a70c 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkOrderService.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkOrderService.java @@ -85,7 +85,7 @@ public class MesWorkOrderService extends BaseMesService implements //获取相同类型 相同标识 生产序号最大值的 DdlPackBean orderPackBean = DdlPackBean.getDdlPackBean(bean.getOrganizeCode()); DdlPreparedPack.getNumEqualPack(bean.getWorkOrderStatus(), "workOrderStatus", orderPackBean); - DdlPreparedPack.getNumEqualPack(bean.getOrderFlag(), "orderFlag", orderPackBean); + DdlPreparedPack.getStringEqualPack(bean.getOrderFlag(), "orderFlag", orderPackBean); DdlPreparedPack.getOrderByPack(new Object[]{CommonEnumUtil.ASC_OR_DESC.DESC.getValue()}, new String[]{"produceSeq"}, orderPackBean); MesWorkOrder result = baseRDao.getByProperty(orderPackBean); From 1194039fff98832b40817027f490a1d72e6ebafe Mon Sep 17 00:00:00 2001 From: jun Date: Sat, 15 Jun 2024 17:17:10 +0800 Subject: [PATCH 05/10] =?UTF-8?q?=E5=8C=85=E8=A3=85=E5=AE=9A=E4=B9=89?= =?UTF-8?q?=E7=BB=B4=E6=8A=A4--=E5=A2=9E=E5=8A=A0=E6=98=AF=E5=90=A6?= =?UTF-8?q?=E9=AA=8C=E8=AF=81LOT=20Number=E6=9F=A5=E8=AF=A2=E6=9D=A1?= =?UTF-8?q?=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ext/mes/apiservice/serviceimpl/base/MesPackingDefineServiceImpl.java | 1 + 1 file changed, 1 insertion(+) diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesPackingDefineServiceImpl.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesPackingDefineServiceImpl.java index 75b0b82..d737cd9 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesPackingDefineServiceImpl.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesPackingDefineServiceImpl.java @@ -24,6 +24,7 @@ public class MesPackingDefineServiceImpl extends BaseMesService Date: Sat, 15 Jun 2024 18:59:58 +0800 Subject: [PATCH 06/10] =?UTF-8?q?MES=E8=AE=BE=E5=A4=87=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E6=9F=A5=E8=AF=A2=E6=8A=A5=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mes/api/busi/report/IMesYfReportService.java | 25 +++++ .../report/MesDeviceDataQueryReportController.java | 70 +++++++++++++ .../mes/apiservice/dao/report/IMesYfReportDao.java | 25 +++++ .../daoimpl/report/MesYfReportDaoImpl.java | 109 +++++++++++++++++++++ .../serviceimpl/report/MesYfReportServiceImpl.java | 30 ++++++ .../MesDeviceDataQueryReportConditionModel.java | 48 +++++++++ .../MesDeviceDataQueryReportResultModel.java | 71 ++++++++++++++ 7 files changed, 378 insertions(+) create mode 100644 modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/busi/report/IMesYfReportService.java create mode 100644 modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/report/MesDeviceDataQueryReportController.java create mode 100644 modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/dao/report/IMesYfReportDao.java create mode 100644 modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/daoimpl/report/MesYfReportDaoImpl.java create mode 100644 modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/report/MesYfReportServiceImpl.java create mode 100644 modules/i3plus-ext-mes-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pojo/model/report/MesDeviceDataQueryReportConditionModel.java create mode 100644 modules/i3plus-ext-mes-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pojo/model/report/MesDeviceDataQueryReportResultModel.java diff --git a/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/busi/report/IMesYfReportService.java b/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/busi/report/IMesYfReportService.java new file mode 100644 index 0000000..1cf7195 --- /dev/null +++ b/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/busi/report/IMesYfReportService.java @@ -0,0 +1,25 @@ +package cn.estsh.i3plus.ext.mes.api.busi.report; + +import cn.estsh.i3plus.ext.mes.pojo.model.report.MesDeviceDataQueryReportConditionModel; +import cn.estsh.i3plus.ext.mes.pojo.model.report.MesDeviceDataQueryReportResultModel; +import cn.estsh.i3plus.pojo.base.bean.ListPager; +import cn.estsh.i3plus.pojo.base.common.Pager; + +/** + * @Description : 报表-业务方法 + * @Reference : + * @Author : logic + * @CreateDate : 2024/6/15 11:30 + * @Modify: + **/ +public interface IMesYfReportService { + + /** + * 设备数据查询报表-查询 + * @param queryReportModel 查询条件封装 + * @param pager 分页信息 + * @return 分页查询结果 + */ + ListPager queryMesDeviceDataByPager(MesDeviceDataQueryReportConditionModel queryReportModel, Pager pager); + +} diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/report/MesDeviceDataQueryReportController.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/report/MesDeviceDataQueryReportController.java new file mode 100644 index 0000000..3feadd5 --- /dev/null +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/report/MesDeviceDataQueryReportController.java @@ -0,0 +1,70 @@ +package cn.estsh.i3plus.ext.mes.apiservice.controller.report; + +import cn.estsh.i3plus.ext.mes.api.busi.report.IMesYfReportService; +import cn.estsh.i3plus.ext.mes.pojo.constant.MesCommonConstant; +import cn.estsh.i3plus.ext.mes.pojo.model.report.MesDeviceDataQueryReportConditionModel; +import cn.estsh.i3plus.ext.mes.pojo.model.report.MesDeviceDataQueryReportResultModel; +import cn.estsh.i3plus.platform.common.exception.ImppExceptionEnum; +import cn.estsh.i3plus.pojo.base.bean.ListPager; +import cn.estsh.i3plus.pojo.base.common.Pager; +import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; +import cn.estsh.i3plus.pojo.base.enumutil.ResourceEnumUtil; +import cn.estsh.impp.framework.base.controller.MesBaseController; +import cn.estsh.impp.framework.boot.auth.AuthUtil; +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 io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.util.StringUtils; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +/** + * @Description : 设备数据查询报表 + * @Reference : + * @Author : logic + * @CreateDate : 2024/6/15 11:23 + * @Modify: + **/ +@Api("设备数据查询报表") +@RestController +@RequestMapping(MesCommonConstant.MES_YANFEN + "/device-data-query-report") +public class MesDeviceDataQueryReportController extends MesBaseController { + + @Autowired + private IMesYfReportService mesYfReportService; + + @ApiOperation(value = "查询设备数据", notes = "查询设备数据") + @GetMapping("/query") + public ResultBean queryMesDeviceDataByPager(MesDeviceDataQueryReportConditionModel conditionModel, Pager pager){ + try { + //查询条件核验 + if (StringUtils.isEmpty(conditionModel.getCreateDateTimeStart()) || StringUtils.isEmpty(conditionModel.getCreateDateTimeEnd())) { + throw ImppExceptionBuilder.newInstance() + .setSystemID(CommonEnumUtil.SOFT_TYPE.MES.getCode()) + .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode()) + .setErrorDetail("【查询时间区间】条件必填!") + .build(); + } + if (StringUtils.isEmpty(conditionModel.getWorkCellCode()) && StringUtils.isEmpty(conditionModel.getEquipmentCode())) { + throw ImppExceptionBuilder.newInstance() + .setSystemID(CommonEnumUtil.SOFT_TYPE.MES.getCode()) + .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode()) + .setErrorDetail("请至少指定【工位】与【设备编号】其中一个查询条件!") + .build(); + } + String organizeCode = AuthUtil.getOrganize().getOrganizeCode(); + conditionModel.setOrganizeCode(organizeCode); + ListPager queryResultListPager = mesYfReportService.queryMesDeviceDataByPager(conditionModel, pager); + return ResultBean.success("查询设备数据成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()).setListPager(queryResultListPager); + } catch (ImppBusiException e) { + return ResultBean.fail(e); + } 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/dao/report/IMesYfReportDao.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/dao/report/IMesYfReportDao.java new file mode 100644 index 0000000..cc405ab --- /dev/null +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/dao/report/IMesYfReportDao.java @@ -0,0 +1,25 @@ +package cn.estsh.i3plus.ext.mes.apiservice.dao.report; + +import cn.estsh.i3plus.ext.mes.pojo.model.report.MesDeviceDataQueryReportConditionModel; +import cn.estsh.i3plus.ext.mes.pojo.model.report.MesDeviceDataQueryReportResultModel; +import cn.estsh.i3plus.pojo.base.bean.ListPager; +import cn.estsh.i3plus.pojo.base.common.Pager; + +/** + * @Description : 报表-数据方法 + * @Reference : + * @Author : logic + * @CreateDate : 2024/6/15 13:30 + * @Modify: + **/ +public interface IMesYfReportDao { + + /** + * 设备数据查询报表-查询 + * @param queryReportModel 查询条件封装 + * @param pager 分页信息 + * @return 分页查询结果 + */ + ListPager queryMesDeviceDataByPager(MesDeviceDataQueryReportConditionModel queryReportModel, Pager pager); + +} diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/daoimpl/report/MesYfReportDaoImpl.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/daoimpl/report/MesYfReportDaoImpl.java new file mode 100644 index 0000000..02231ee --- /dev/null +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/daoimpl/report/MesYfReportDaoImpl.java @@ -0,0 +1,109 @@ +package cn.estsh.i3plus.ext.mes.apiservice.daoimpl.report; + +import cn.estsh.i3plus.ext.mes.apiservice.dao.report.IMesYfReportDao; +import cn.estsh.i3plus.ext.mes.pojo.model.report.MesDeviceDataQueryReportConditionModel; +import cn.estsh.i3plus.ext.mes.pojo.model.report.MesDeviceDataQueryReportResultModel; +import cn.estsh.i3plus.pojo.base.bean.ListPager; +import cn.estsh.i3plus.pojo.base.common.Pager; +import cn.estsh.i3plus.pojo.base.common.PagerHelper; +import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.util.StringUtils; + +import javax.persistence.EntityManager; +import javax.persistence.Query; +import java.util.List; + +/** + * @Description : 报表-数据方法实现 + * @Reference : + * @Author : logic + * @CreateDate : 2024/6/15 13:30 + * @Modify: + **/ +@Service +public class MesYfReportDaoImpl implements IMesYfReportDao { + + @Autowired + private EntityManager entityManager; + + @Override + public ListPager queryMesDeviceDataByPager(MesDeviceDataQueryReportConditionModel queryReportModel, Pager pager) { + StringBuilder dataQuerySql = new StringBuilder(); + StringBuilder countQuerySql = new StringBuilder(); + StringBuilder commonQuerySql = new StringBuilder(); + dataQuerySql.append("select new ") + .append(MesDeviceDataQueryReportResultModel.class.getName()) + .append("(organizeCode, workCenterCode, workCellCode, workOrderNo, serialNumber, ") + .append("logType, message, errorType, equipmentCode, equipmentName, createDatetime, createUser) "); + countQuerySql.append("select count(1) "); + commonQuerySql.append("from MesWorkCellScanMonitorLog " + + "where isValid = :isValid and isDeleted = :isDeleted and organizeCode = :organizeCode " + + "and createDatetime >= :createDateTimeStart and createDatetime <= :createDateTimeEnd "); + //非空查询条件拼接语句 + if (!StringUtils.isEmpty(queryReportModel.getWorkCenterCode())) { + commonQuerySql.append("and workCenterCode = :workCenterCode "); + } + if (!StringUtils.isEmpty(queryReportModel.getWorkCellCode())) { + commonQuerySql.append("and workCellCode = :workCellCode "); + } + if (!StringUtils.isEmpty(queryReportModel.getWorkOrderNo())) { + commonQuerySql.append("and workOrderNo = :workOrderNo "); + } + if (!StringUtils.isEmpty(queryReportModel.getSerialNumber())) { + commonQuerySql.append("and serialNumber = :serialNumber "); + } + if (!StringUtils.isEmpty(queryReportModel.getEquipmentCode())) { + commonQuerySql.append("and equipmentCode = :equipmentCode "); + } + if (!StringUtils.isEmpty(queryReportModel.getLogType())) { + commonQuerySql.append("and logType = :logType "); + } + Query dataQuery = entityManager.createQuery(dataQuerySql.append(commonQuerySql).toString(), MesDeviceDataQueryReportResultModel.class); + dataQuery.setParameter("isValid", CommonEnumUtil.IS_VAILD.VAILD.getValue()); + dataQuery.setParameter("isDeleted", CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue()); + dataQuery.setParameter("organizeCode", queryReportModel.getOrganizeCode()); + dataQuery.setParameter("createDateTimeStart", queryReportModel.getCreateDateTimeStart()); + dataQuery.setParameter("createDateTimeEnd", queryReportModel.getCreateDateTimeEnd()); + Query countQuery = entityManager.createQuery(countQuerySql.append(commonQuerySql).toString()); + countQuery.setParameter("isValid", CommonEnumUtil.IS_VAILD.VAILD.getValue()); + countQuery.setParameter("isDeleted", CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue()); + countQuery.setParameter("organizeCode", queryReportModel.getOrganizeCode()); + countQuery.setParameter("createDateTimeStart", queryReportModel.getCreateDateTimeStart()); + countQuery.setParameter("createDateTimeEnd", queryReportModel.getCreateDateTimeEnd()); + if (!StringUtils.isEmpty(queryReportModel.getWorkCenterCode())) { + dataQuery.setParameter("workCenterCode", queryReportModel.getWorkCenterCode()); + countQuery.setParameter("workCenterCode", queryReportModel.getWorkCenterCode()); + } + if (!StringUtils.isEmpty(queryReportModel.getWorkCellCode())) { + dataQuery.setParameter("workCellCode", queryReportModel.getWorkCellCode()); + countQuery.setParameter("workCellCode", queryReportModel.getWorkCellCode()); + } + if (!StringUtils.isEmpty(queryReportModel.getWorkOrderNo())) { + dataQuery.setParameter("workOrderNo", queryReportModel.getWorkOrderNo()); + countQuery.setParameter("workOrderNo", queryReportModel.getWorkOrderNo()); + } + if (!StringUtils.isEmpty(queryReportModel.getSerialNumber())) { + dataQuery.setParameter("serialNumber", queryReportModel.getSerialNumber()); + countQuery.setParameter("serialNumber", queryReportModel.getSerialNumber()); + } + if (!StringUtils.isEmpty(queryReportModel.getEquipmentCode())) { + dataQuery.setParameter("equipmentCode", queryReportModel.getEquipmentCode()); + countQuery.setParameter("equipmentCode", queryReportModel.getEquipmentCode()); + } + if (!StringUtils.isEmpty(queryReportModel.getLogType())) { + dataQuery.setParameter("logType", queryReportModel.getLogType()); + countQuery.setParameter("logType", queryReportModel.getLogType()); + } + //本次查询满足条件的总数 + int count = Integer.parseInt(String.valueOf(countQuery.getSingleResult())); + pager = PagerHelper.getPager(pager, count); + //查询本页数据 + dataQuery.setMaxResults(pager.getPageSize()); + dataQuery.setFirstResult(pager.getCurrentPage() * pager.getPageSize() - pager.getPageSize()); + List resultList = dataQuery.getResultList(); + return new ListPager<>(resultList, pager); + } + +} diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/report/MesYfReportServiceImpl.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/report/MesYfReportServiceImpl.java new file mode 100644 index 0000000..3f77032 --- /dev/null +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/report/MesYfReportServiceImpl.java @@ -0,0 +1,30 @@ +package cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.report; + +import cn.estsh.i3plus.ext.mes.api.busi.report.IMesYfReportService; +import cn.estsh.i3plus.ext.mes.apiservice.dao.report.IMesYfReportDao; +import cn.estsh.i3plus.ext.mes.pojo.model.report.MesDeviceDataQueryReportConditionModel; +import cn.estsh.i3plus.ext.mes.pojo.model.report.MesDeviceDataQueryReportResultModel; +import cn.estsh.i3plus.pojo.base.bean.ListPager; +import cn.estsh.i3plus.pojo.base.common.Pager; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +/** + * @Description : 报表-业务方法实现 + * @Reference : + * @Author : logic + * @CreateDate : 2024/6/15 11:31 + * @Modify: + **/ +@Service +public class MesYfReportServiceImpl implements IMesYfReportService { + + @Autowired + private IMesYfReportDao mesYfReportDao; + + @Override + public ListPager queryMesDeviceDataByPager(MesDeviceDataQueryReportConditionModel queryReportModel, Pager pager) { + return mesYfReportDao.queryMesDeviceDataByPager(queryReportModel, pager); + } + +} diff --git a/modules/i3plus-ext-mes-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pojo/model/report/MesDeviceDataQueryReportConditionModel.java b/modules/i3plus-ext-mes-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pojo/model/report/MesDeviceDataQueryReportConditionModel.java new file mode 100644 index 0000000..9c5fd18 --- /dev/null +++ b/modules/i3plus-ext-mes-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pojo/model/report/MesDeviceDataQueryReportConditionModel.java @@ -0,0 +1,48 @@ +package cn.estsh.i3plus.ext.mes.pojo.model.report; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiParam; +import lombok.Data; + +/** + * @Description : 设备数据查询报表-查询条件封装 + * @Reference : + * @Author : logic + * @CreateDate : 2024/6/15 11:38 + * @Modify: + **/ +@Data +@ApiModel("设备数据查询报表-查询条件封装") +public class MesDeviceDataQueryReportConditionModel { + + @ApiParam(value = "组织代码") + private String organizeCode; + + /** + * 查询条件 + */ + @ApiParam(value = "工作中心(产线)") + private String workCenterCode; + + @ApiParam(value = "工作单元代码(工位)") + private String workCellCode; + + @ApiParam(value = "生产工单号(工单)") + private String workOrderNo; + + @ApiParam(value = "过程条码(主条码)") + private String serialNumber; + + @ApiParam(value = "设备代码(设备编号)") + private String equipmentCode; + + @ApiParam(value = "日志类型") + private Integer logType; + + @ApiParam(value = "创建日期查询用,查询起始日期") + private String createDateTimeStart; + + @ApiParam(value = "创建日期查询用,查询结束日期") + private String createDateTimeEnd; + +} diff --git a/modules/i3plus-ext-mes-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pojo/model/report/MesDeviceDataQueryReportResultModel.java b/modules/i3plus-ext-mes-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pojo/model/report/MesDeviceDataQueryReportResultModel.java new file mode 100644 index 0000000..38f79fa --- /dev/null +++ b/modules/i3plus-ext-mes-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pojo/model/report/MesDeviceDataQueryReportResultModel.java @@ -0,0 +1,71 @@ +package cn.estsh.i3plus.ext.mes.pojo.model.report; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiParam; +import lombok.Data; + +/** + * @Description : 设备数据查询报表-查询结果封装 + * @Reference : + * @Author : logic + * @CreateDate : 2024/6/15 13:23 + * @Modify: + **/ +@Data +@ApiModel("设备数据查询报表-查询结果封装") +public class MesDeviceDataQueryReportResultModel { + + @ApiParam(value = "ERP工厂号(组织代码)") + private String organizeCode; + + @ApiParam(value = "工作中心(产线)") + private String workCenterCode; + + @ApiParam(value = "工作单元代码(工位)") + private String workCellCode; + + @ApiParam(value = "生产工单号(工单)") + private String workOrderNo; + + @ApiParam(value = "过程条码(主条码)") + private String serialNumber; + + @ApiParam(value = "日志类型") + private Integer logType; + + @ApiParam(value = "日志内容") + private String message; + + @ApiParam(value = "错误类型") + private String errorType; + + @ApiParam(value = "设备代码(设备编号)") + private String equipmentCode; + + @ApiParam(value = "设备名称") + private String equipmentName; + + @ApiParam(value = "创建时间") + private String createDatetime; + + @ApiParam(value = "创建人") + private String createUser; + + public MesDeviceDataQueryReportResultModel(String organizeCode, String workCenterCode, String workCellCode, + String workOrderNo, String serialNumber, Integer logType, String message, + String errorType, String equipmentCode, String equipmentName, + String createDatetime, String createUser) { + this.organizeCode = organizeCode; + this.workCenterCode = workCenterCode; + this.workCellCode = workCellCode; + this.workOrderNo = workOrderNo; + this.serialNumber = serialNumber; + this.logType = logType; + this.message = message; + this.errorType = errorType; + this.equipmentCode = equipmentCode; + this.equipmentName = equipmentName; + this.createDatetime = createDatetime; + this.createUser = createUser; + } +} From be13f191fdc085141c5acf39650a3da374df0fa7 Mon Sep 17 00:00:00 2001 From: jun Date: Mon, 17 Jun 2024 11:51:01 +0800 Subject: [PATCH 07/10] =?UTF-8?q?41388=20=E5=B7=A5=E5=8D=95=E7=95=8C?= =?UTF-8?q?=E9=9D=A2=E4=B8=8D=E6=98=BE=E7=A4=BA=E4=BA=A7=E7=BA=BF=E5=90=8D?= =?UTF-8?q?=E7=A7=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../serviceimpl/base/MesWorkOrderService.java | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkOrderService.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkOrderService.java index 3c8a70c..e1526c5 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkOrderService.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkOrderService.java @@ -7,7 +7,6 @@ import cn.estsh.i3plus.ext.mes.pojo.constant.MesCommonConstant; import cn.estsh.i3plus.mes.api.iservice.busi.ISyncFuncService; import cn.estsh.i3plus.mes.apiservice.util.DateUtil; import cn.estsh.i3plus.platform.common.convert.ConvertBean; -import cn.estsh.i3plus.platform.common.exception.ImppExceptionEnum; import cn.estsh.i3plus.platform.common.tool.MathOperation; import cn.estsh.i3plus.platform.common.tool.TimeTool; import cn.estsh.i3plus.pojo.base.bean.DdlPackBean; @@ -22,13 +21,13 @@ import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil; import cn.estsh.i3plus.pojo.model.wms.WmsProductModel; import cn.estsh.impp.framework.boot.auth.AuthUtil; import cn.estsh.impp.framework.boot.exception.ImppBusiException; -import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder; import cn.estsh.impp.framework.boot.util.ValidatorBean; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections.CollectionUtils; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.util.StringUtils; import java.math.BigDecimal; import java.math.RoundingMode; @@ -280,6 +279,25 @@ public class MesWorkOrderService extends BaseMesService implements DdlPreparedPack.getStringSmallerPack(bean.getEndTimeEnd(), "planEndTime", packBean); packBean.setOrderByStr(" order by createDatetime desc,workOrderSeq asc,workOrderNo asc "); } + @Override + protected void setBeanModel(List mesWorkOrderList) { + //查询工作中心名称 + if(CollectionUtils.isEmpty(mesWorkOrderList)){ + return; + } + MesWorkOrder mesWorkOrder = mesWorkOrderList.iterator().next(); + DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(mesWorkOrder.getOrganizeCode()); + DdlPreparedPack.getInPackList(mesWorkOrderList.stream().map(MesWorkOrder::getWorkCenterCode).filter(workCenterCode -> !StringUtils.isEmpty(workCenterCode)).distinct().collect(Collectors.toList()), "workCenterCode", ddlPackBean); + List mesWorkCenterList = mesWorkCenterRDao.findByHqlWhere(ddlPackBean); + if (CollectionUtils.isEmpty(mesWorkCenterList)) { + return; + } + Map mesWorkCenterMap = mesWorkCenterList.stream().collect(Collectors.toMap(MesWorkCenter::getWorkCenterCode, MesWorkCenter::getWorkCenterName)); + mesWorkOrderList.forEach(t->{ + t.setWorkCenterName(mesWorkCenterMap.get(t.getWorkCenterCode())); + }); + + } @Override protected void onInsertBean(MesWorkOrder item) { From 665a0369a6cd23f0abf267959b7476ceb23136d6 Mon Sep 17 00:00:00 2001 From: gsz Date: Mon, 17 Jun 2024 15:31:24 +0800 Subject: [PATCH 08/10] =?UTF-8?q?41404=20=E4=B8=BB=E5=B7=A5=E4=BD=8D?= =?UTF-8?q?=E4=B8=8E=E5=AD=90=E5=B7=A5=E4=BD=8D=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../base/MesWorkCellExtendCfgService.java | 26 +++++++++++++++++++--- .../serviceimpl/base/MesWorkCellService.java | 1 + 2 files changed, 24 insertions(+), 3 deletions(-) diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkCellExtendCfgService.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkCellExtendCfgService.java index 71a1bf3..8f7237a 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkCellExtendCfgService.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkCellExtendCfgService.java @@ -18,23 +18,43 @@ public class MesWorkCellExtendCfgService extends BaseMesService implements DdlPreparedPack.getStringEqualPack(bean.getWorkCellCode(), "workCellCode", packBean); DdlPreparedPack.getStringEqualPack(bean.getWorkCenterCode(), "workCenterCode", packBean); DdlPreparedPack.getStringLikerPack(bean.getWorkCellName(), "workCellName", packBean); + DdlPreparedPack.getNumEqualPack(bean.getGrade(), "grade", packBean); } } From 4bd046e4076fcd26b97ebc14f7246d26317a8f49 Mon Sep 17 00:00:00 2001 From: jun Date: Mon, 17 Jun 2024 16:05:05 +0800 Subject: [PATCH 09/10] =?UTF-8?q?1=E3=80=81=E5=B7=A5=E5=8D=95=E6=B1=87?= =?UTF-8?q?=E6=80=BB=E5=9B=9E=E4=BC=A0SAP=E5=BC=82=E5=B8=B8=E9=97=AE?= =?UTF-8?q?=E9=A2=98=E4=BF=AE=E5=A4=8D=202=E3=80=81=E5=AF=BC=E5=85=A5?= =?UTF-8?q?=E6=A8=A1=E6=9D=BF=E5=8A=9F=E8=83=BD=E5=BC=80=E5=8F=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ext/mes/api/base/IMesWorkOrderService.java | 3 +- .../mes/api/base/IMesWorkOrderToSapService.java | 5 +- .../ext/mes/api/base/file/IMesFileService.java | 33 +++++ .../mes/api/base/file/IMesModuleExcelService.java | 69 +++++++++++ .../controller/base/MesWorkOrderController.java | 2 +- .../base/file/MesModuleExcelController.java | 118 ++++++++++++++++++ .../ext/mes/apiservice/dao/IMesModuleExcelDao.java | 37 ++++++ .../ext/mes/apiservice/dao/IMesWorkOrderDao.java | 4 +- .../apiservice/daoimpl/MesModuleExcelDaoImpl.java | 91 ++++++++++++++ .../apiservice/daoimpl/MesWorkOrderDaoImpl.java | 16 +-- .../schedulejob/MesWorkOrderToSapJob.java | 10 +- .../serviceimpl/base/MesWorkOrderService.java | 3 +- .../base/MesWorkOrderToSapServiceImpl.java | 8 +- .../serviceimpl/base/file/MesFileServiceImpl.java | 136 +++++++++++++++++++++ .../base/file/MesModuleExcelServiceImpl.java | 135 ++++++++++++++++++++ 15 files changed, 646 insertions(+), 24 deletions(-) create mode 100644 modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/file/IMesFileService.java create mode 100644 modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/file/IMesModuleExcelService.java create mode 100644 modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/file/MesModuleExcelController.java create mode 100644 modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/dao/IMesModuleExcelDao.java create mode 100644 modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/daoimpl/MesModuleExcelDaoImpl.java create mode 100644 modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/file/MesFileServiceImpl.java create mode 100644 modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/file/MesModuleExcelServiceImpl.java diff --git a/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesWorkOrderService.java b/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesWorkOrderService.java index 1681455..a161f1f 100644 --- a/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesWorkOrderService.java +++ b/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesWorkOrderService.java @@ -1,6 +1,7 @@ package cn.estsh.i3plus.ext.mes.api.base; import cn.estsh.i3plus.pojo.mes.bean.MesWorkOrder; +import cn.estsh.i3plus.pojo.mes.model.MesWorkOrderModel; import cn.estsh.i3plus.pojo.model.wms.WmsProductModel; import java.util.List; @@ -18,7 +19,7 @@ public interface IMesWorkOrderService extends IBaseMesService { void deleteUnSortOrder(String userName, String organizeCode, List partNoList); - List sumMesWorkOrderQtyToSap(String organizeCode); + List sumMesWorkOrderQtyToSap(String organizeCode); List queryMesWorkOrderProcessToSap(String organizeCode); diff --git a/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesWorkOrderToSapService.java b/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesWorkOrderToSapService.java index 2f60d89..9b9860a 100644 --- a/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesWorkOrderToSapService.java +++ b/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesWorkOrderToSapService.java @@ -2,6 +2,7 @@ package cn.estsh.i3plus.ext.mes.api.base; import cn.estsh.i3plus.pojo.mes.bean.MesWorkOrder; import cn.estsh.i3plus.pojo.mes.bean.MesWorkOrderToSap; +import cn.estsh.i3plus.pojo.mes.model.MesWorkOrderModel; import java.util.List; @@ -13,7 +14,7 @@ import java.util.List; * @Modify: **/ public interface IMesWorkOrderToSapService extends IBaseMesService { - MesWorkOrderToSap insert(MesWorkOrder mesWorkOrder); + MesWorkOrderToSap insert(MesWorkOrderModel mesWorkOrder); - void doMesWorkOrder(String organizeCode,List mesWorkOrderList); + void doMesWorkOrder(String organizeCode,List mesWorkOrderList); } diff --git a/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/file/IMesFileService.java b/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/file/IMesFileService.java new file mode 100644 index 0000000..b89978c --- /dev/null +++ b/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/file/IMesFileService.java @@ -0,0 +1,33 @@ +package cn.estsh.i3plus.ext.mes.api.base.file; + +import cn.estsh.i3plus.pojo.platform.bean.SysFile; +import io.swagger.annotations.ApiOperation; +import org.springframework.web.multipart.MultipartFile; + +import javax.servlet.http.HttpServletResponse; + +/** + * @Description : 文件上传下载 + * @Reference : + * @Author : junsheng.li + * @CreateDate 2024/6/17 14:19 + * @Modify: + **/ +public interface IMesFileService { + + /** + * 上传文件 + * @param file 文件 + * @return 文件信息 + */ + @ApiOperation(value = "上传文件", notes = "上传文件") + SysFile uploadFile(MultipartFile file); + + /** + * 获取文件 + * @param resp + * @param fileUrl 文件url + * @return 文件流 + */ + void getFileByUrl(HttpServletResponse resp, String fileUrl); +} diff --git a/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/file/IMesModuleExcelService.java b/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/file/IMesModuleExcelService.java new file mode 100644 index 0000000..43df9cb --- /dev/null +++ b/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/file/IMesModuleExcelService.java @@ -0,0 +1,69 @@ +package cn.estsh.i3plus.ext.mes.api.base.file; + +import cn.estsh.i3plus.ext.mes.api.base.IBaseMesService; +import cn.estsh.i3plus.pojo.base.bean.ListPager; +import cn.estsh.i3plus.pojo.base.common.Pager; +import cn.estsh.i3plus.pojo.mes.bean.MesFile; +import cn.estsh.i3plus.pojo.mes.bean.MesModuleExcel; +import cn.estsh.i3plus.pojo.mes.model.MesModuleExcelModel; +import io.swagger.annotations.ApiOperation; +import org.springframework.web.multipart.MultipartFile; + +import javax.servlet.http.HttpServletResponse; + +/** + * @Description : 模块EXCEL管理表 + * @Reference : + * @Author : junsheng.li + * @CreateDate 2024/6/17 15:02 + * @Modify: + **/ +public interface IMesModuleExcelService extends IBaseMesService { + + /** + * 按条件分页查询模块EXCEL模板信息 + * + * @param mesModuleExcel 查询条件 + * @param pager 分页条件 + * @return SOP分页数据 + */ + @ApiOperation(value = "按条件分页查询模块EXCEL模板信息", notes = "按条件分页查询模块EXCEL模板信息") + ListPager queryModuleExcelByPager(MesModuleExcel mesModuleExcel, Pager pager); + + /** + * 新增模块EXCEL模板信息 + * + * @param file 文件 + * @param mesModuleExcel 模块EXCEL模板信息 + */ + @ApiOperation(value = "新增模块EXCEL模板信息", notes = "新增模块EXCEL模板信息") + void insertModuleExcel(MultipartFile file, MesModuleExcel mesModuleExcel); + + /** + * 更新模块EXCEL模板信息 + * + * @param file 文件 + * @param mesModuleExcel 模块EXCEL模板信息 + */ + @ApiOperation(value = "更新模块EXCEL模板信息", notes = "更新模块EXCEL模板信息") + void updateModuleExcel(MultipartFile file, MesModuleExcel mesModuleExcel); + + /** + * 下载模块EXCEL模板 + * + * @param resp + * @param fileUrl 文件URL + */ + @ApiOperation(value = "下载模块EXCEL模板", notes = "下载模块EXCEL模板") + void doDownLoadModuleExcel(HttpServletResponse resp, String fileUrl); + + /** + * 获取文件 + * + * @param organizeCode 组织代码 + * @param templateCode 模版代码 + * @return + */ + @ApiOperation(value = "获取文件", notes = "获取文件") + MesFile getTemplateFile(String organizeCode, String templateCode); +} diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesWorkOrderController.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesWorkOrderController.java index cdaf255..978458d 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesWorkOrderController.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesWorkOrderController.java @@ -125,7 +125,7 @@ public class MesWorkOrderController extends BaseMesController { public ResultBean sendToSap(String organizeCode) { try { //查询汇总工单数量 - List mesWorkOrderList = mesWorkOrderService.sumMesWorkOrderQtyToSap(organizeCode); + List mesWorkOrderList = mesWorkOrderService.sumMesWorkOrderQtyToSap(organizeCode); if (!CollectionUtils.isEmpty(mesWorkOrderList)){ mesWorkOrderToSapService.doMesWorkOrder(organizeCode,mesWorkOrderList); } diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/file/MesModuleExcelController.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/file/MesModuleExcelController.java new file mode 100644 index 0000000..4755d6c --- /dev/null +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/file/MesModuleExcelController.java @@ -0,0 +1,118 @@ +package cn.estsh.i3plus.ext.mes.apiservice.controller.base.file; + +import cn.estsh.i3plus.ext.mes.api.base.file.IMesModuleExcelService; +import cn.estsh.i3plus.ext.mes.apiservice.controller.base.BaseMesController; +import cn.estsh.i3plus.ext.mes.apiservice.unit.exception.MesException; +import cn.estsh.i3plus.ext.mes.pojo.constant.MesCommonConstant; +import cn.estsh.i3plus.ext.mes.pojo.util.MesExtConstWords; +import cn.estsh.i3plus.pojo.base.common.Pager; +import cn.estsh.i3plus.pojo.base.enumutil.ResourceEnumUtil; +import cn.estsh.i3plus.pojo.mes.bean.MesModuleExcel; +import cn.estsh.impp.framework.boot.auth.AuthUtil; +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 cn.estsh.impp.framework.boot.util.ValidatorBean; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.util.StringUtils; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.multipart.MultipartFile; + +import javax.servlet.http.HttpServletResponse; + +/** + * @Description : 模块EXCEL管理表 + * @Reference : + * @Author : junsheng.li + * @CreateDate 2024/6/17 14:54 + * @Modify: + **/ +@RestController +@RequestMapping(MesCommonConstant.MES_YANFEN + "/mesModuleExcel") +@Api(tags = "模块EXCEL模板管理") +public class MesModuleExcelController extends BaseMesController { + + @Autowired + private IMesModuleExcelService moduleExcelService; + + @GetMapping(value = "/queryExt") + @ApiOperation(value = "按条件分页查询模块EXCEL模板信息") + public ResultBean queryModuleExcelByPager(MesModuleExcel mesModuleExcel, Pager pager) { + try { + mesModuleExcel.setOrganizeCode(AuthUtil.getOrganize().getOrganizeCode()); + return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()) + .setListPager(moduleExcelService.queryModuleExcelByPager(mesModuleExcel, pager)); + } catch (ImppBusiException busExcep) { + return ResultBean.fail(busExcep); + } catch (Exception e) { + return ImppExceptionBuilder.newInstance().buildExceptionResult(e); + } + } + + @PostMapping(value = "/insertExt") + @ApiOperation(value = "新增模块EXCEL模板信息") + public ResultBean insertModuleExcel(MultipartFile file, MesModuleExcel mesModuleExcel) { + try { + if (file == null) { + MesException.throwMesBusiException("上传的文件为null,后台未能接收到"); + } + + ValidatorBean.beginValid(mesModuleExcel) + .notNull(MesExtConstWords.MODULE_CODE, mesModuleExcel.getModuleCode()) + .notNull(MesExtConstWords.MODULE_NAME, mesModuleExcel.getModuleName()); + + mesModuleExcel.setOrganizeCode(AuthUtil.getOrganize().getOrganizeCode()); + mesModuleExcel.setCreateUser(AuthUtil.getSessionUser().getUserName()); + moduleExcelService.insertModuleExcel(file, mesModuleExcel); + + return ResultBean.success("添加成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); + } catch (ImppBusiException busExcep) { + return ResultBean.fail(busExcep); + } catch (Exception e) { + return ImppExceptionBuilder.newInstance().buildExceptionResult(e); + } + } + + @PostMapping(value = "/updateExt") + @ApiOperation(value = "更新模块EXCEL模板信息") + public ResultBean updateModuleExcel(MultipartFile file, MesModuleExcel mesModuleExcel) { + try { + ValidatorBean.beginValid(mesModuleExcel) + .notNull(MesExtConstWords.ID, mesModuleExcel.getId()) + .notNull(MesExtConstWords.MODULE_CODE, mesModuleExcel.getModuleCode()) + .notNull(MesExtConstWords.MODULE_NAME, mesModuleExcel.getModuleName()); + + mesModuleExcel.setOrganizeCode(AuthUtil.getOrganize().getOrganizeCode()); + mesModuleExcel.setModifyUser(AuthUtil.getSessionUser().getUserName()); + moduleExcelService.updateModuleExcel(file, mesModuleExcel); + return ResultBean.success("修改成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); + } catch (ImppBusiException busExcep) { + return ResultBean.fail(busExcep); + } catch (Exception e) { + return ImppExceptionBuilder.newInstance().buildExceptionResult(e); + } + } + + @PostMapping(value = "/down-load") + @ApiOperation(value = "下载模块EXCEL模板") + public ResultBean doDownLoadModuleExcelManage(HttpServletResponse resp, String fileUrl) { + try { + if (StringUtils.isEmpty(fileUrl)) { + MesException.throwMesBusiException("请选择需要操作的资源。"); + } + + moduleExcelService.doDownLoadModuleExcel(resp, fileUrl); + return ResultBean.success("下载成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); + } catch (ImppBusiException busExcep) { + return ResultBean.fail(busExcep); + } 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/dao/IMesModuleExcelDao.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/dao/IMesModuleExcelDao.java new file mode 100644 index 0000000..de2d68a --- /dev/null +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/dao/IMesModuleExcelDao.java @@ -0,0 +1,37 @@ +package cn.estsh.i3plus.ext.mes.apiservice.dao; + +import cn.estsh.i3plus.pojo.base.common.Pager; +import cn.estsh.i3plus.pojo.mes.bean.MesModuleExcel; +import cn.estsh.i3plus.pojo.mes.model.MesModuleExcelModel; +import io.swagger.annotations.ApiOperation; + +import java.util.List; + +/** + * @Description : 模块EXCEL管理 + * @Reference : + * @Author : junsheng.li + * @CreateDate 2024/6/17 14:28 + * @Modify: + **/ +public interface IMesModuleExcelDao { + + /** + * 查询模块EXCEL管理数量 + * + * @param mesModuleExcel 模块EXCEL管理信息 + * @return 数量 + */ + @ApiOperation(value = "查询模块EXCEL管理数量", notes = "查询模块EXCEL管理数量") + int queryModuleExcelCount(MesModuleExcel mesModuleExcel); + + /** + * 查询模块EXCEL管理信息集合 + * + * @param mesModuleExcel 查询条件 + * @param pager 分页条件 + * @return 模块EXCEL管理信息集合 + */ + @ApiOperation(value = "查询模块EXCEL管理信息集合", notes = "查询模块EXCEL管理信息集合") + List queryModuleExcelByPager(MesModuleExcel mesModuleExcel, Pager pager); +} diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/dao/IMesWorkOrderDao.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/dao/IMesWorkOrderDao.java index d87cb5d..d80ef90 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/dao/IMesWorkOrderDao.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/dao/IMesWorkOrderDao.java @@ -1,6 +1,6 @@ package cn.estsh.i3plus.ext.mes.apiservice.dao; -import cn.estsh.i3plus.pojo.mes.bean.MesWorkOrder; +import cn.estsh.i3plus.pojo.mes.model.MesWorkOrderModel; import java.util.List; @@ -13,5 +13,5 @@ import java.util.List; **/ public interface IMesWorkOrderDao { - List sumMesWorkOrderQtyToSap(String organizeCode,List statusList); + List sumMesWorkOrderQtyToSap(String organizeCode, List statusList); } diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/daoimpl/MesModuleExcelDaoImpl.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/daoimpl/MesModuleExcelDaoImpl.java new file mode 100644 index 0000000..bfc1c0b --- /dev/null +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/daoimpl/MesModuleExcelDaoImpl.java @@ -0,0 +1,91 @@ +package cn.estsh.i3plus.ext.mes.apiservice.daoimpl; + +import cn.estsh.i3plus.ext.mes.apiservice.dao.IMesModuleExcelDao; +import cn.estsh.i3plus.ext.mes.pojo.util.MesExtConstWords; +import cn.estsh.i3plus.pojo.base.common.Pager; +import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; +import cn.estsh.i3plus.pojo.mes.bean.MesModuleExcel; +import cn.estsh.i3plus.pojo.mes.model.MesModuleExcelModel; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.util.StringUtils; + +import javax.persistence.EntityManager; +import javax.persistence.Query; +import java.util.List; + +/** + * @Description : 模块EXCEL管理 + * @Reference : + * @Author : junsheng.li + * @CreateDate 2024/6/17 14:30 + * @Modify: + **/ +@Service +public class MesModuleExcelDaoImpl implements IMesModuleExcelDao { + + @Autowired + private EntityManager entityManager; + + @Override + public int queryModuleExcelCount(MesModuleExcel mesModuleExcel) { + StringBuffer hql = new StringBuffer(); + hql.append(" select count(distinct mem.id) "); + + packHqlForQueryModuleExcelManage(hql, mesModuleExcel); + + Query query = entityManager.createQuery(hql.toString(), Long.class); + + packParameterForQueryModuleExcelManage(query, mesModuleExcel); + + return ((Long) query.getSingleResult()).intValue(); + } + + @Override + public List queryModuleExcelByPager(MesModuleExcel mesModuleExcel, Pager pager) { + StringBuffer hql = new StringBuffer(); + hql.append(" select new " + MesModuleExcelModel.class.getName() + "(mem.id, mem.moduleCode, mem.moduleName, mem.fileId, f.fileUrl, f.fileOriginName, " + + " mem.organizeCode, mem.createUser, mem.createDatetime, mem.modifyUser, mem.modifyDatetime ) "); + + packHqlForQueryModuleExcelManage(hql, mesModuleExcel); + + hql.append(" order by mem.modifyDatetime desc "); + Query query = entityManager.createQuery(hql.toString(), MesModuleExcelModel.class); + + packParameterForQueryModuleExcelManage(query, mesModuleExcel); + + query.setMaxResults(pager.getPageSize()); + if (pager.getCurrentPage() == 0) { + pager.setCurrentPage(1); + } + query.setFirstResult(pager.getCurrentPage() * pager.getPageSize() - pager.getPageSize()); + return query.getResultList(); + } + + private void packHqlForQueryModuleExcelManage(StringBuffer hql, MesModuleExcel mesModuleExcel) { + hql.append(" from MesModuleExcel as mem "); + hql.append(" left join MesFile as f on (mem.fileId = f.id and f.organizeCode = :organizeCode and f.isValid = :isValid1 and f.isDeleted = :isDeleted) "); + hql.append(" where mem.organizeCode = :organizeCode "); + hql.append(" and mem.isValid = :isValid "); + hql.append(" and mem.isDeleted = :isDeleted "); + if (!StringUtils.isEmpty(mesModuleExcel.getModuleCode())) { + hql.append(" and mem.moduleCode like :moduleCode "); + } + if (!StringUtils.isEmpty(mesModuleExcel.getModuleName())) { + hql.append(" and mem.moduleName like :moduleName "); + } + } + + private void packParameterForQueryModuleExcelManage(Query query, MesModuleExcel mesModuleExcel) { + query.setParameter(MesExtConstWords.ORGANIZE_CODE, mesModuleExcel.getOrganizeCode()); + query.setParameter(MesExtConstWords.IS_VALID, mesModuleExcel.getIsValid()); + query.setParameter(MesExtConstWords.IS_VALID1, CommonEnumUtil.IS_VAILD.VAILD.getValue()); + query.setParameter(MesExtConstWords.IS_DELETED, CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue()); + if (!StringUtils.isEmpty(mesModuleExcel.getModuleCode())) { + query.setParameter(MesExtConstWords.MODULE_CODE, "%" + mesModuleExcel.getModuleCode() + "%"); + } + if (!StringUtils.isEmpty(mesModuleExcel.getModuleName())) { + query.setParameter(MesExtConstWords.MODULE_NAME, "%" + mesModuleExcel.getModuleName() + "%"); + } + } +} diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/daoimpl/MesWorkOrderDaoImpl.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/daoimpl/MesWorkOrderDaoImpl.java index 4b7bd80..2db115a 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/daoimpl/MesWorkOrderDaoImpl.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/daoimpl/MesWorkOrderDaoImpl.java @@ -2,7 +2,7 @@ package cn.estsh.i3plus.ext.mes.apiservice.daoimpl; import cn.estsh.i3plus.ext.mes.apiservice.dao.IMesWorkOrderDao; import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; -import cn.estsh.i3plus.pojo.mes.bean.MesWorkOrder; +import cn.estsh.i3plus.pojo.mes.model.MesWorkOrderModel; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -26,15 +26,15 @@ public class MesWorkOrderDaoImpl implements IMesWorkOrderDao { private EntityManager entityManager; @Override - public List sumMesWorkOrderQtyToSap(String organizeCode, List statusList) { - StringBuffer hql = new StringBuffer("select new MesWorkOrder(partNo,planStartTime,productVersion,sum(case when workOrderStatus = 40 then 0 else qty end) as sumQty) " + + public List sumMesWorkOrderQtyToSap(String organizeCode, List statusList) { + StringBuffer hql = new StringBuffer("select new " + MesWorkOrderModel.class.getName() + "(partNo,planStartTime,productVersion,sum(case when workOrderStatus = 40 then 0 else qty end) as sumQty) " + " from MesWorkOrder where isDeleted=:isDeleted and isValid = :isValid and organizeCode = :organizeCode " + "and workOrderStatus not in(:statusList) group by partNo,planStartTime,productVersion"); - Query query = entityManager.createQuery(hql.toString(), MesWorkOrder.class); - query.setParameter("organizeCode",organizeCode); - query.setParameter("isValid",CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue()); - query.setParameter("isDeleted",CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue()); - query.setParameter("statusList",statusList); + Query query = entityManager.createQuery(hql.toString(), MesWorkOrderModel.class); + query.setParameter("organizeCode", organizeCode); + query.setParameter("isValid", CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue()); + query.setParameter("isDeleted", CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue()); + query.setParameter("statusList", statusList); return query.getResultList(); } } diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/schedulejob/MesWorkOrderToSapJob.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/schedulejob/MesWorkOrderToSapJob.java index 85a0bf4..3386444 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/schedulejob/MesWorkOrderToSapJob.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/schedulejob/MesWorkOrderToSapJob.java @@ -3,7 +3,7 @@ package cn.estsh.i3plus.ext.mes.apiservice.schedulejob; import cn.estsh.i3plus.ext.mes.api.base.IMesWorkOrderService; import cn.estsh.i3plus.ext.mes.api.base.IMesWorkOrderToSapService; import cn.estsh.i3plus.mes.apiservice.schedulejob.BaseMesScheduleJob; -import cn.estsh.i3plus.pojo.mes.bean.MesWorkOrder; +import cn.estsh.i3plus.pojo.mes.model.MesWorkOrderModel; import cn.estsh.impp.framework.boot.init.ApplicationProperties; import io.swagger.annotations.ApiOperation; import org.apache.commons.lang3.StringUtils; @@ -61,15 +61,15 @@ public class MesWorkOrderToSapJob extends BaseMesScheduleJob { LOGGER.info("汇总工单给SAP开始 -----start"); for (String organizeCode : organizeCodeList) { - List mesWorkOrderList = mesWorkOrderService.sumMesWorkOrderQtyToSap(organizeCode); - if (!CollectionUtils.isEmpty(mesWorkOrderList)){ - mesWorkOrderToSapService.doMesWorkOrder(organizeCode,mesWorkOrderList); + List mesWorkOrderList = mesWorkOrderService.sumMesWorkOrderQtyToSap(organizeCode); + if (!CollectionUtils.isEmpty(mesWorkOrderList)) { + mesWorkOrderToSapService.doMesWorkOrder(organizeCode, mesWorkOrderList); } } LOGGER.info("汇总工单给SAP开始结束 ----- end"); } catch (Exception e) { - LOGGER.error("汇总工单给SAP任务结束e:{}",e.toString()); + LOGGER.error("汇总工单给SAP任务结束e:{}", e.toString()); } } diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkOrderService.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkOrderService.java index e1526c5..785eb65 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkOrderService.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkOrderService.java @@ -15,6 +15,7 @@ import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack; import cn.estsh.i3plus.pojo.base.util.StringUtil; import cn.estsh.i3plus.pojo.mes.bean.*; import cn.estsh.i3plus.pojo.mes.model.GenSerialNoModel; +import cn.estsh.i3plus.pojo.mes.model.MesWorkOrderModel; import cn.estsh.i3plus.pojo.mes.repository.*; import cn.estsh.i3plus.pojo.mes.util.DateUtilExt; import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil; @@ -938,7 +939,7 @@ public class MesWorkOrderService extends BaseMesService implements } @Override - public List sumMesWorkOrderQtyToSap(String organizeCode) { + public List sumMesWorkOrderQtyToSap(String organizeCode) { List statusList = new ArrayList<>(); statusList.add(MesExtEnumUtil.ORDER_STATUS.CREATE.getValue()); // statusList.add(MesExtEnumUtil.ORDER_STATUS.CLOSE.getValue()); diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkOrderToSapServiceImpl.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkOrderToSapServiceImpl.java index 7a4751f..d71be93 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkOrderToSapServiceImpl.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkOrderToSapServiceImpl.java @@ -5,8 +5,8 @@ import cn.estsh.i3plus.platform.common.convert.ConvertBean; import cn.estsh.i3plus.pojo.base.bean.DdlPackBean; import cn.estsh.i3plus.pojo.base.common.Pager; import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack; -import cn.estsh.i3plus.pojo.mes.bean.MesWorkOrder; import cn.estsh.i3plus.pojo.mes.bean.MesWorkOrderToSap; +import cn.estsh.i3plus.pojo.mes.model.MesWorkOrderModel; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; @@ -19,7 +19,7 @@ import java.util.Objects; public class MesWorkOrderToSapServiceImpl extends BaseMesService implements IMesWorkOrderToSapService { @Override - public MesWorkOrderToSap insert(MesWorkOrder mesWorkOrder) { + public MesWorkOrderToSap insert(MesWorkOrderModel mesWorkOrder) { MesWorkOrderToSap mesWorkOrderToSap = new MesWorkOrderToSap(mesWorkOrder.getOrganizeCode(), mesWorkOrder.getOrganizeCode(), mesWorkOrder.getPartNo(), mesWorkOrder.getProductVersion(), mesWorkOrder.getQty(), mesWorkOrder.getPlanStartTime()); @@ -28,10 +28,10 @@ public class MesWorkOrderToSapServiceImpl extends BaseMesService mesWorkOrderList) { + public void doMesWorkOrder(String organizeCode,List mesWorkOrderList) { Pager pager = new Pager(1,1); DdlPackBean ddlPackBean = null; - for (MesWorkOrder mesWorkOrder : mesWorkOrderList) { + for (MesWorkOrderModel mesWorkOrder : mesWorkOrderList) { mesWorkOrder.setOrganizeCode(organizeCode); mesWorkOrder.setModifyUser("job"); //计划开始时间+物料查询发送Sap的数据 diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/file/MesFileServiceImpl.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/file/MesFileServiceImpl.java new file mode 100644 index 0000000..87d5642 --- /dev/null +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/file/MesFileServiceImpl.java @@ -0,0 +1,136 @@ +package cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.base.file; + +import cn.estsh.i3plus.ext.mes.api.base.file.IMesFileService; +import cn.estsh.i3plus.platform.common.exception.ImppExceptionEnum; +import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; +import cn.estsh.i3plus.pojo.platform.bean.SysFile; +import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder; +import cn.estsh.impp.framework.boot.fileservice.ImppFileService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.util.StringUtils; +import org.springframework.web.multipart.MultipartFile; + +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; +import java.net.HttpURLConnection; +import java.net.MalformedURLException; +import java.net.URL; + +/** + * @Description : 文件上传下载 + * @Reference : + * @Author : junsheng.li + * @CreateDate 2024/6/17 14:21 + * @Modify: + **/ +@Slf4j +@Service +public class MesFileServiceImpl implements IMesFileService { + + @Autowired + private ImppFileService imppFileService; + + @Override + public SysFile uploadFile(MultipartFile file) { + SysFile sysFile; + try { + log.info("文件大小{}", file.getBytes().length); + sysFile = save2FastDfs(file); + log.info("after save2FastDfs {}", sysFile); + } catch (IOException e) { + log.error("FastDFS上传文件出错:{}", e.getMessage() + "\r" + e.getStackTrace()); + throw ImppExceptionBuilder.newInstance() + .setSystemID(CommonEnumUtil.SOFT_TYPE.MES.getCode()) + .setErrorCode(ImppExceptionEnum.IO_EXCEPTION_FILE.getCode()) + .setErrorDetail("上传文件至文件服务器出错了。信息为:%s", e.getMessage()) + .build(); + } + if (null == sysFile) { + log.error("FastDFS上传文件出错"); + throw ImppExceptionBuilder.newInstance() + .setSystemID(CommonEnumUtil.SOFT_TYPE.MES.getCode()) + .setErrorCode(ImppExceptionEnum.IO_EXCEPTION_FILE.getCode()) + .setErrorDetail("FastDFS上传文件出错") + .build(); + } + if (StringUtils.isEmpty(sysFile.getFileTypeId())) { + log.error("FastDFS上传文件出错:{}", "未在字典中定义该文件类型,无法上传成功,请先添加file_type字典"); + throw ImppExceptionBuilder.newInstance() + .setSystemID(CommonEnumUtil.SOFT_TYPE.MES.getCode()) + .setErrorCode(ImppExceptionEnum.IO_EXCEPTION_FILE.getCode()) + .setErrorDetail("未在字典中定义该文件类型,无法上传成功,请先添加file_type字典") + .build(); + } + return sysFile; + } + + /** + * 上传文件至FastDfs,目前私有,因为没有别的地方进行调用。 + * + * @param multipartFile 文件 + * @return 带有URL地址的对象 + * @throws IOException + */ + private SysFile save2FastDfs(MultipartFile multipartFile) throws IOException { + SysFile sysFile = imppFileService.upload(multipartFile, CommonEnumUtil.SOFT_TYPE.MES.getValue()); + return sysFile; + } + + @Override + public void getFileByUrl(HttpServletResponse resp, String fileUrl) { + InputStream inputStream = getInputStream(fileUrl); + writeFile(resp, inputStream); + } + + private static InputStream getInputStream(String urlPath) { + InputStream inputStream = null; + HttpURLConnection httpURLConnection; + try { + URL url = new URL(urlPath); + httpURLConnection = (HttpURLConnection) url.openConnection(); + httpURLConnection.setConnectTimeout(3000); + httpURLConnection.setDoInput(true); + httpURLConnection.setRequestMethod("GET"); + int responseCode = httpURLConnection.getResponseCode(); + System.out.println("responseCode is:" + responseCode); + if (responseCode == HttpURLConnection.HTTP_OK) { + inputStream = httpURLConnection.getInputStream(); + } else { + inputStream = httpURLConnection.getErrorStream(); + } + } catch (MalformedURLException e) { + e.printStackTrace(); + } catch (IOException e) { + e.printStackTrace(); + } + return inputStream; + } + + private static void writeFile(HttpServletResponse resp, InputStream inputStream) { + OutputStream out = null; + try { + out = resp.getOutputStream(); + int len; + byte[] b = new byte[1024]; + while ((len = inputStream.read(b)) != -1) { + out.write(b, 0, len); + } + out.flush(); + } catch (IOException e) { + e.printStackTrace(); + } finally { + try { + if (out != null) { + out.close(); + } + } catch (Exception e) { + e.printStackTrace(); + } + } + } + +} diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/file/MesModuleExcelServiceImpl.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/file/MesModuleExcelServiceImpl.java new file mode 100644 index 0000000..ef6dd46 --- /dev/null +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/file/MesModuleExcelServiceImpl.java @@ -0,0 +1,135 @@ +package cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.base.file; + +import cn.estsh.i3plus.ext.mes.api.base.file.IMesFileService; +import cn.estsh.i3plus.ext.mes.api.base.file.IMesModuleExcelService; +import cn.estsh.i3plus.ext.mes.apiservice.dao.IMesModuleExcelDao; +import cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.base.BaseMesService; +import cn.estsh.i3plus.ext.mes.apiservice.unit.exception.MesException; +import cn.estsh.i3plus.ext.mes.pojo.sqlpack.MesExtHqlPack; +import cn.estsh.i3plus.ext.mes.pojo.util.MesExtConstWords; +import cn.estsh.i3plus.platform.common.convert.ConvertBean; +import cn.estsh.i3plus.pojo.base.bean.DdlPackBean; +import cn.estsh.i3plus.pojo.base.bean.ListPager; +import cn.estsh.i3plus.pojo.base.common.Pager; +import cn.estsh.i3plus.pojo.base.common.PagerHelper; +import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; +import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack; +import cn.estsh.i3plus.pojo.mes.bean.MesFile; +import cn.estsh.i3plus.pojo.mes.bean.MesModuleExcel; +import cn.estsh.i3plus.pojo.mes.model.MesModuleExcelModel; +import cn.estsh.i3plus.pojo.mes.repository.MesFileRepository; +import cn.estsh.i3plus.pojo.platform.bean.SysFile; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.util.StringUtils; +import org.springframework.web.multipart.MultipartFile; + +import javax.servlet.http.HttpServletResponse; +import java.util.List; + +/** + * @Description : 模块EXCEL管理表 + * @Reference : + * @Author : junsheng.li + * @CreateDate 2024/6/17 14:52 + * @Modify: + **/ +@Slf4j +@Service +public class MesModuleExcelServiceImpl extends BaseMesService implements IMesModuleExcelService { + + @Autowired + private IMesModuleExcelDao mesModuleExcelDao; + + @Autowired + private IMesFileService mesFileService; + + @Autowired + private MesFileRepository mesFileRDao; + + @Override + public ListPager queryModuleExcelByPager(MesModuleExcel mesModuleExcel, Pager pager) { + pager = PagerHelper.getPager(pager, mesModuleExcelDao.queryModuleExcelCount(mesModuleExcel)); + List moduleExcelManageModelList = mesModuleExcelDao.queryModuleExcelByPager(mesModuleExcel, pager); + return new ListPager(moduleExcelManageModelList, pager); + } + + @Override + public void insertModuleExcel(MultipartFile file, MesModuleExcel mesModuleExcel) { + DdlPackBean packBean = MesExtHqlPack.getAllBaseData(mesModuleExcel.getOrganizeCode()); + DdlPreparedPack.getStringEqualPack(mesModuleExcel.getModuleCode(), MesExtConstWords.MODULE_CODE, packBean); + MesModuleExcel moduleExcelManageDb = baseRDao.getByProperty(packBean); + if (null != moduleExcelManageDb) { + MesException.throwMesBusiException("模块代码【%s】记录已存在", mesModuleExcel.getModuleCode()); + } + + SysFile sysFile = mesFileService.uploadFile(file); + if (sysFile.getFileTypeId() == null) { + log.error("FastDFS上传文件出错:{}", "未在字典中定义该文件类型,无法上传成功,请先添加file_type字典"); + MesException.throwMesBusiException("未在字典中定义该文件类型,无法上传成功,请先添加file_type字典"); + } + + MesFile f = getMesFile(file, mesModuleExcel); + mesModuleExcel.setFileId(mesFileRDao.insert(f).getId()); + ConvertBean.serviceModelInitialize(mesModuleExcel, mesModuleExcel.getCreateUser()); + baseRDao.insert(mesModuleExcel); + } + + @Override + public void updateModuleExcel(MultipartFile file, MesModuleExcel mesModuleExcel) { + MesModuleExcel moduleExcelManageDb = baseRDao.getById(mesModuleExcel.getId()); + if (moduleExcelManageDb == null) { + MesException.throwMesBusiException("ID【%s】记录不存在", mesModuleExcel.getId()); + } + + if (file == null && StringUtils.isEmpty(mesModuleExcel.getFileId())) { + MesException.throwMesBusiException("上传的文件为null,后台未能接收到"); + } + + //改变文件时清除fileUrl + if (StringUtils.isEmpty(mesModuleExcel.getFileUrl())) { + MesFile mesFile = getMesFile(file, mesModuleExcel); + moduleExcelManageDb.setFileId(mesFileRDao.insert(mesFile).getId()); + } + moduleExcelManageDb.setModuleName(mesModuleExcel.getModuleName()); + ConvertBean.serviceModelUpdate(moduleExcelManageDb, mesModuleExcel.getModifyUser()); + baseRDao.update(moduleExcelManageDb); + } + + @Override + public void doDownLoadModuleExcel(HttpServletResponse resp, String fileUrl) { + mesFileService.getFileByUrl(resp, fileUrl); + } + + @Override + public MesFile getTemplateFile(String organizeCode, String templateCode) { + MesModuleExcel moduleExcelManageDb = baseRDao.getByProperty( + new String[]{MesExtConstWords.ORGANIZE_CODE, MesExtConstWords.IS_DELETED, MesExtConstWords.IS_VALID, MesExtConstWords.MODULE_CODE}, + new Object[]{organizeCode, CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue(), CommonEnumUtil.IS_VAILD.VAILD.getValue(), templateCode}); + if (null == moduleExcelManageDb || StringUtils.isEmpty(moduleExcelManageDb.getFileId())) { + MesException.throwMesBusiException("模板代码为【%s】数据信息不存在", templateCode); + } + MesFile fileDb = mesFileRDao.getById(moduleExcelManageDb.getFileId()); + if (null == fileDb || StringUtils.isEmpty(fileDb.getFileUrl())) { + MesException.throwMesBusiException("模板代码为【%s】对应文件信息不存在", templateCode); + } + return fileDb; + } + + private MesFile getMesFile(MultipartFile file, MesModuleExcel mesModuleExcel) { + SysFile sysFile = mesFileService.uploadFile(file); + MesFile mesFile = new MesFile(); + mesFile.setOrganizeCode(mesModuleExcel.getOrganizeCode()); + mesFile.setFileName(sysFile.getDfsFileName()); + mesFile.setFileUrl(sysFile.getFilePath()); + mesFile.setFileSize(String.valueOf(sysFile.getFileSize())); + mesFile.setFileType(String.valueOf(sysFile.getFileTypeName())); + mesFile.setFileOriginName(sysFile.getFileOriginalName()); + mesFile.setGroupName(sysFile.getDfsGroupName()); + mesFile.setSyncTag(0); + ConvertBean.serviceModelInitialize(mesFile, mesModuleExcel.getModifyUser()); + return mesFile; + } + +} From 3c81d6cf8a5fbd705da288f72f7f4c8c93d8c787 Mon Sep 17 00:00:00 2001 From: jun Date: Tue, 18 Jun 2024 14:12:47 +0800 Subject: [PATCH 10/10] =?UTF-8?q?=E5=AF=BC=E5=85=A5=E6=A8=A1=E6=9D=BF?= =?UTF-8?q?=E7=AE=A1=E7=90=86=E5=BC=80=E5=8F=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ext/mes/api/base/file/IMesFileService.java | 33 ----- .../mes/api/base/file/IMesModuleExcelService.java | 19 --- .../base/file/MesModuleExcelController.java | 25 +--- .../serviceimpl/base/MesWorkOrderService.java | 8 +- .../serviceimpl/base/file/MesFileServiceImpl.java | 136 --------------------- .../base/file/MesModuleExcelServiceImpl.java | 64 +++------- 6 files changed, 26 insertions(+), 259 deletions(-) delete mode 100644 modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/file/IMesFileService.java delete mode 100644 modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/file/MesFileServiceImpl.java diff --git a/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/file/IMesFileService.java b/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/file/IMesFileService.java deleted file mode 100644 index b89978c..0000000 --- a/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/file/IMesFileService.java +++ /dev/null @@ -1,33 +0,0 @@ -package cn.estsh.i3plus.ext.mes.api.base.file; - -import cn.estsh.i3plus.pojo.platform.bean.SysFile; -import io.swagger.annotations.ApiOperation; -import org.springframework.web.multipart.MultipartFile; - -import javax.servlet.http.HttpServletResponse; - -/** - * @Description : 文件上传下载 - * @Reference : - * @Author : junsheng.li - * @CreateDate 2024/6/17 14:19 - * @Modify: - **/ -public interface IMesFileService { - - /** - * 上传文件 - * @param file 文件 - * @return 文件信息 - */ - @ApiOperation(value = "上传文件", notes = "上传文件") - SysFile uploadFile(MultipartFile file); - - /** - * 获取文件 - * @param resp - * @param fileUrl 文件url - * @return 文件流 - */ - void getFileByUrl(HttpServletResponse resp, String fileUrl); -} diff --git a/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/file/IMesModuleExcelService.java b/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/file/IMesModuleExcelService.java index 43df9cb..85f220e 100644 --- a/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/file/IMesModuleExcelService.java +++ b/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/file/IMesModuleExcelService.java @@ -47,23 +47,4 @@ public interface IMesModuleExcelService extends IBaseMesService */ @ApiOperation(value = "更新模块EXCEL模板信息", notes = "更新模块EXCEL模板信息") void updateModuleExcel(MultipartFile file, MesModuleExcel mesModuleExcel); - - /** - * 下载模块EXCEL模板 - * - * @param resp - * @param fileUrl 文件URL - */ - @ApiOperation(value = "下载模块EXCEL模板", notes = "下载模块EXCEL模板") - void doDownLoadModuleExcel(HttpServletResponse resp, String fileUrl); - - /** - * 获取文件 - * - * @param organizeCode 组织代码 - * @param templateCode 模版代码 - * @return - */ - @ApiOperation(value = "获取文件", notes = "获取文件") - MesFile getTemplateFile(String organizeCode, String templateCode); } diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/file/MesModuleExcelController.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/file/MesModuleExcelController.java index 4755d6c..5c43938 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/file/MesModuleExcelController.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/file/MesModuleExcelController.java @@ -5,6 +5,7 @@ import cn.estsh.i3plus.ext.mes.apiservice.controller.base.BaseMesController; import cn.estsh.i3plus.ext.mes.apiservice.unit.exception.MesException; import cn.estsh.i3plus.ext.mes.pojo.constant.MesCommonConstant; import cn.estsh.i3plus.ext.mes.pojo.util.MesExtConstWords; +import cn.estsh.i3plus.platform.common.convert.ConvertBean; import cn.estsh.i3plus.pojo.base.common.Pager; import cn.estsh.i3plus.pojo.base.enumutil.ResourceEnumUtil; import cn.estsh.i3plus.pojo.mes.bean.MesModuleExcel; @@ -16,15 +17,12 @@ import cn.estsh.impp.framework.boot.util.ValidatorBean; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.util.StringUtils; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.multipart.MultipartFile; -import javax.servlet.http.HttpServletResponse; - /** * @Description : 模块EXCEL管理表 * @Reference : @@ -67,7 +65,7 @@ public class MesModuleExcelController extends BaseMesController .notNull(MesExtConstWords.MODULE_NAME, mesModuleExcel.getModuleName()); mesModuleExcel.setOrganizeCode(AuthUtil.getOrganize().getOrganizeCode()); - mesModuleExcel.setCreateUser(AuthUtil.getSessionUser().getUserName()); + ConvertBean.serviceModelUpdate(mesModuleExcel, AuthUtil.getSessionUser().getUserName()); moduleExcelService.insertModuleExcel(file, mesModuleExcel); return ResultBean.success("添加成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); @@ -88,7 +86,7 @@ public class MesModuleExcelController extends BaseMesController .notNull(MesExtConstWords.MODULE_NAME, mesModuleExcel.getModuleName()); mesModuleExcel.setOrganizeCode(AuthUtil.getOrganize().getOrganizeCode()); - mesModuleExcel.setModifyUser(AuthUtil.getSessionUser().getUserName()); + ConvertBean.serviceModelUpdate(mesModuleExcel, AuthUtil.getSessionUser().getUserName()); moduleExcelService.updateModuleExcel(file, mesModuleExcel); return ResultBean.success("修改成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); } catch (ImppBusiException busExcep) { @@ -98,21 +96,4 @@ public class MesModuleExcelController extends BaseMesController } } - @PostMapping(value = "/down-load") - @ApiOperation(value = "下载模块EXCEL模板") - public ResultBean doDownLoadModuleExcelManage(HttpServletResponse resp, String fileUrl) { - try { - if (StringUtils.isEmpty(fileUrl)) { - MesException.throwMesBusiException("请选择需要操作的资源。"); - } - - moduleExcelService.doDownLoadModuleExcel(resp, fileUrl); - return ResultBean.success("下载成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); - } catch (ImppBusiException busExcep) { - return ResultBean.fail(busExcep); - } 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/MesWorkOrderService.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkOrderService.java index 785eb65..85cb798 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkOrderService.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkOrderService.java @@ -107,6 +107,7 @@ public class MesWorkOrderService extends BaseMesService implements copyMesWorkOrder.setProduceSeq((long) (produceSeq + 1)); copyMesWorkOrder.setQty(1D); copyMesWorkOrder.setWorkOrderNo(resultList.get(0)); + copyMesWorkOrder.setSystemSyncStatus(CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue()); ConvertBean.serviceModelInitialize(copyMesWorkOrder, bean.getCreateUser()); MesWorkOrderLog workOrderLog = new MesWorkOrderLog(); @@ -136,7 +137,7 @@ public class MesWorkOrderService extends BaseMesService implements List resultList = syncFuncService.syncSerialNo(genSerialNoModel, bean.getCreateUser(), bean.getOrganizeCode(), 1).getResultList(); bean.setWorkOrderNo(resultList.get(0)); bean.setQty(bean.getQty()); - + bean.setSystemSyncStatus(CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue()); ConvertBean.serviceModelInitialize(bean, bean.getCreateUser()); MesWorkOrderLog workOrderLog = new MesWorkOrderLog(); @@ -251,14 +252,15 @@ public class MesWorkOrderService extends BaseMesService implements if (bean.getWorkOrderStatus() > 0) { result.setWorkOrderStatus(bean.getWorkOrderStatus()); } - ConvertBean.serviceModelInitialize(bean, AuthUtil.getSessionUser().getUserName()); + result.setSystemSyncStatus(CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue()); + ConvertBean.serviceModelInitialize(result, AuthUtil.getSessionUser().getUserName()); MesWorkOrderLog workOrderLog = new MesWorkOrderLog(); BeanUtils.copyProperties(result, workOrderLog, "id"); workOrderLogService.insert(workOrderLog); baseRDao.update(result); - return bean; + return result; } diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/file/MesFileServiceImpl.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/file/MesFileServiceImpl.java deleted file mode 100644 index 87d5642..0000000 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/file/MesFileServiceImpl.java +++ /dev/null @@ -1,136 +0,0 @@ -package cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.base.file; - -import cn.estsh.i3plus.ext.mes.api.base.file.IMesFileService; -import cn.estsh.i3plus.platform.common.exception.ImppExceptionEnum; -import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; -import cn.estsh.i3plus.pojo.platform.bean.SysFile; -import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder; -import cn.estsh.impp.framework.boot.fileservice.ImppFileService; -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; -import org.springframework.util.StringUtils; -import org.springframework.web.multipart.MultipartFile; - -import javax.servlet.http.HttpServletResponse; -import java.io.IOException; -import java.io.InputStream; -import java.io.OutputStream; -import java.net.HttpURLConnection; -import java.net.MalformedURLException; -import java.net.URL; - -/** - * @Description : 文件上传下载 - * @Reference : - * @Author : junsheng.li - * @CreateDate 2024/6/17 14:21 - * @Modify: - **/ -@Slf4j -@Service -public class MesFileServiceImpl implements IMesFileService { - - @Autowired - private ImppFileService imppFileService; - - @Override - public SysFile uploadFile(MultipartFile file) { - SysFile sysFile; - try { - log.info("文件大小{}", file.getBytes().length); - sysFile = save2FastDfs(file); - log.info("after save2FastDfs {}", sysFile); - } catch (IOException e) { - log.error("FastDFS上传文件出错:{}", e.getMessage() + "\r" + e.getStackTrace()); - throw ImppExceptionBuilder.newInstance() - .setSystemID(CommonEnumUtil.SOFT_TYPE.MES.getCode()) - .setErrorCode(ImppExceptionEnum.IO_EXCEPTION_FILE.getCode()) - .setErrorDetail("上传文件至文件服务器出错了。信息为:%s", e.getMessage()) - .build(); - } - if (null == sysFile) { - log.error("FastDFS上传文件出错"); - throw ImppExceptionBuilder.newInstance() - .setSystemID(CommonEnumUtil.SOFT_TYPE.MES.getCode()) - .setErrorCode(ImppExceptionEnum.IO_EXCEPTION_FILE.getCode()) - .setErrorDetail("FastDFS上传文件出错") - .build(); - } - if (StringUtils.isEmpty(sysFile.getFileTypeId())) { - log.error("FastDFS上传文件出错:{}", "未在字典中定义该文件类型,无法上传成功,请先添加file_type字典"); - throw ImppExceptionBuilder.newInstance() - .setSystemID(CommonEnumUtil.SOFT_TYPE.MES.getCode()) - .setErrorCode(ImppExceptionEnum.IO_EXCEPTION_FILE.getCode()) - .setErrorDetail("未在字典中定义该文件类型,无法上传成功,请先添加file_type字典") - .build(); - } - return sysFile; - } - - /** - * 上传文件至FastDfs,目前私有,因为没有别的地方进行调用。 - * - * @param multipartFile 文件 - * @return 带有URL地址的对象 - * @throws IOException - */ - private SysFile save2FastDfs(MultipartFile multipartFile) throws IOException { - SysFile sysFile = imppFileService.upload(multipartFile, CommonEnumUtil.SOFT_TYPE.MES.getValue()); - return sysFile; - } - - @Override - public void getFileByUrl(HttpServletResponse resp, String fileUrl) { - InputStream inputStream = getInputStream(fileUrl); - writeFile(resp, inputStream); - } - - private static InputStream getInputStream(String urlPath) { - InputStream inputStream = null; - HttpURLConnection httpURLConnection; - try { - URL url = new URL(urlPath); - httpURLConnection = (HttpURLConnection) url.openConnection(); - httpURLConnection.setConnectTimeout(3000); - httpURLConnection.setDoInput(true); - httpURLConnection.setRequestMethod("GET"); - int responseCode = httpURLConnection.getResponseCode(); - System.out.println("responseCode is:" + responseCode); - if (responseCode == HttpURLConnection.HTTP_OK) { - inputStream = httpURLConnection.getInputStream(); - } else { - inputStream = httpURLConnection.getErrorStream(); - } - } catch (MalformedURLException e) { - e.printStackTrace(); - } catch (IOException e) { - e.printStackTrace(); - } - return inputStream; - } - - private static void writeFile(HttpServletResponse resp, InputStream inputStream) { - OutputStream out = null; - try { - out = resp.getOutputStream(); - int len; - byte[] b = new byte[1024]; - while ((len = inputStream.read(b)) != -1) { - out.write(b, 0, len); - } - out.flush(); - } catch (IOException e) { - e.printStackTrace(); - } finally { - try { - if (out != null) { - out.close(); - } - } catch (Exception e) { - e.printStackTrace(); - } - } - } - -} diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/file/MesModuleExcelServiceImpl.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/file/MesModuleExcelServiceImpl.java index ef6dd46..4ec4d9a 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/file/MesModuleExcelServiceImpl.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/file/MesModuleExcelServiceImpl.java @@ -1,10 +1,11 @@ package cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.base.file; -import cn.estsh.i3plus.ext.mes.api.base.file.IMesFileService; import cn.estsh.i3plus.ext.mes.api.base.file.IMesModuleExcelService; import cn.estsh.i3plus.ext.mes.apiservice.dao.IMesModuleExcelDao; import cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.base.BaseMesService; import cn.estsh.i3plus.ext.mes.apiservice.unit.exception.MesException; +import cn.estsh.i3plus.ext.mes.apiservice.utils.HuaWeiOBSUtil; +import cn.estsh.i3plus.ext.mes.pojo.constant.MesCommonConstant; import cn.estsh.i3plus.ext.mes.pojo.sqlpack.MesExtHqlPack; import cn.estsh.i3plus.ext.mes.pojo.util.MesExtConstWords; import cn.estsh.i3plus.platform.common.convert.ConvertBean; @@ -12,20 +13,19 @@ import cn.estsh.i3plus.pojo.base.bean.DdlPackBean; import cn.estsh.i3plus.pojo.base.bean.ListPager; import cn.estsh.i3plus.pojo.base.common.Pager; import cn.estsh.i3plus.pojo.base.common.PagerHelper; -import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; import cn.estsh.i3plus.pojo.base.tool.DdlPreparedPack; import cn.estsh.i3plus.pojo.mes.bean.MesFile; import cn.estsh.i3plus.pojo.mes.bean.MesModuleExcel; import cn.estsh.i3plus.pojo.mes.model.MesModuleExcelModel; import cn.estsh.i3plus.pojo.mes.repository.MesFileRepository; -import cn.estsh.i3plus.pojo.platform.bean.SysFile; +import com.obs.services.model.PutObjectResult; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.util.StringUtils; import org.springframework.web.multipart.MultipartFile; -import javax.servlet.http.HttpServletResponse; +import java.io.IOException; import java.util.List; /** @@ -43,9 +43,6 @@ public class MesModuleExcelServiceImpl extends BaseMesService im private IMesModuleExcelDao mesModuleExcelDao; @Autowired - private IMesFileService mesFileService; - - @Autowired private MesFileRepository mesFileRDao; @Override @@ -64,12 +61,6 @@ public class MesModuleExcelServiceImpl extends BaseMesService im MesException.throwMesBusiException("模块代码【%s】记录已存在", mesModuleExcel.getModuleCode()); } - SysFile sysFile = mesFileService.uploadFile(file); - if (sysFile.getFileTypeId() == null) { - log.error("FastDFS上传文件出错:{}", "未在字典中定义该文件类型,无法上传成功,请先添加file_type字典"); - MesException.throwMesBusiException("未在字典中定义该文件类型,无法上传成功,请先添加file_type字典"); - } - MesFile f = getMesFile(file, mesModuleExcel); mesModuleExcel.setFileId(mesFileRDao.insert(f).getId()); ConvertBean.serviceModelInitialize(mesModuleExcel, mesModuleExcel.getCreateUser()); @@ -83,10 +74,6 @@ public class MesModuleExcelServiceImpl extends BaseMesService im MesException.throwMesBusiException("ID【%s】记录不存在", mesModuleExcel.getId()); } - if (file == null && StringUtils.isEmpty(mesModuleExcel.getFileId())) { - MesException.throwMesBusiException("上传的文件为null,后台未能接收到"); - } - //改变文件时清除fileUrl if (StringUtils.isEmpty(mesModuleExcel.getFileUrl())) { MesFile mesFile = getMesFile(file, mesModuleExcel); @@ -97,38 +84,23 @@ public class MesModuleExcelServiceImpl extends BaseMesService im baseRDao.update(moduleExcelManageDb); } - @Override - public void doDownLoadModuleExcel(HttpServletResponse resp, String fileUrl) { - mesFileService.getFileByUrl(resp, fileUrl); - } - - @Override - public MesFile getTemplateFile(String organizeCode, String templateCode) { - MesModuleExcel moduleExcelManageDb = baseRDao.getByProperty( - new String[]{MesExtConstWords.ORGANIZE_CODE, MesExtConstWords.IS_DELETED, MesExtConstWords.IS_VALID, MesExtConstWords.MODULE_CODE}, - new Object[]{organizeCode, CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue(), CommonEnumUtil.IS_VAILD.VAILD.getValue(), templateCode}); - if (null == moduleExcelManageDb || StringUtils.isEmpty(moduleExcelManageDb.getFileId())) { - MesException.throwMesBusiException("模板代码为【%s】数据信息不存在", templateCode); - } - MesFile fileDb = mesFileRDao.getById(moduleExcelManageDb.getFileId()); - if (null == fileDb || StringUtils.isEmpty(fileDb.getFileUrl())) { - MesException.throwMesBusiException("模板代码为【%s】对应文件信息不存在", templateCode); - } - return fileDb; - } - private MesFile getMesFile(MultipartFile file, MesModuleExcel mesModuleExcel) { - SysFile sysFile = mesFileService.uploadFile(file); + String fileName = file.getOriginalFilename(); + PutObjectResult putObjectResult = null; + try { + putObjectResult = HuaWeiOBSUtil.putObjectByMultipartFile(MesCommonConstant.OBS_BUCKET_NAME, fileName, file); + } catch (IOException e) { + MesException.throwMesBusiException("文件上传失败"); + } MesFile mesFile = new MesFile(); mesFile.setOrganizeCode(mesModuleExcel.getOrganizeCode()); - mesFile.setFileName(sysFile.getDfsFileName()); - mesFile.setFileUrl(sysFile.getFilePath()); - mesFile.setFileSize(String.valueOf(sysFile.getFileSize())); - mesFile.setFileType(String.valueOf(sysFile.getFileTypeName())); - mesFile.setFileOriginName(sysFile.getFileOriginalName()); - mesFile.setGroupName(sysFile.getDfsGroupName()); - mesFile.setSyncTag(0); - ConvertBean.serviceModelInitialize(mesFile, mesModuleExcel.getModifyUser()); + mesFile.setFileName(fileName); + mesFile.setFileUrl(putObjectResult.getObjectUrl()); + mesFile.setFileSize(String.valueOf(file.getSize())); + mesFile.setGroupName(putObjectResult.getBucketName()); + mesFile.setFileType(fileName != null && fileName.contains(".") ? fileName.substring(fileName.indexOf(".") + 1) : ""); + mesFile.setFileOriginName(fileName); + ConvertBean.serviceModelInitialize(mesFile, mesModuleExcel.getCreateUser()); return mesFile; }