diff --git a/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesEquipmentSpotCheckDetailService.java b/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesEquipmentSpotCheckDetailService.java index ad593e1..4be372e 100644 --- a/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesEquipmentSpotCheckDetailService.java +++ b/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesEquipmentSpotCheckDetailService.java @@ -2,6 +2,9 @@ package cn.estsh.i3plus.ext.mes.api.base; import cn.estsh.i3plus.pojo.mes.bean.MesEquipmentProdParamCfg; import cn.estsh.i3plus.pojo.mes.bean.MesEquipmentSpotCheckDetail; +import io.swagger.annotations.ApiOperation; + +import java.util.List; /** * @Description : 设备加工参数维护 @@ -12,5 +15,6 @@ import cn.estsh.i3plus.pojo.mes.bean.MesEquipmentSpotCheckDetail; **/ public interface IMesEquipmentSpotCheckDetailService extends IBaseMesService{ - + @ApiOperation(value = "校验并返回导入数据", notes = "校验并返回导入数据") + List validateReturnImport(List bean, String equipmentCode); } diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesEquipmentCheckDetailController.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesEquipmentCheckDetailController.java index b547f79..029c6f2 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesEquipmentCheckDetailController.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesEquipmentCheckDetailController.java @@ -1,9 +1,25 @@ package cn.estsh.i3plus.ext.mes.apiservice.controller.base; +import cn.estsh.i3plus.ext.mes.api.base.IMesEquipmentSpotCheckDetailService; +import cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.excel.MesExcelTool; 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.MesEquipmentSpotCheckDetail; +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.RedisCacheTool; +import cn.estsh.impp.framework.boot.util.ResultBean; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.multipart.MultipartFile; + +import java.util.List; /** * 设备点检明细 @@ -11,4 +27,37 @@ import org.springframework.web.bind.annotation.RestController; @RestController @RequestMapping(MesCommonConstant.MES_YANFEN + "/mesEquipmentCheckDetail") public class MesEquipmentCheckDetailController extends BaseMesController{ + + @Autowired + private IMesEquipmentSpotCheckDetailService mesEquipmentSpotCheckDetailService; + + @PostMapping(value = "/data/import") + @ApiOperation(value = "导入数据校验返回") + public ResultBean importExtExcel(@RequestParam("file") MultipartFile file, @RequestParam("equipmentCode") String equipmentCode) { + try { + MesExcelTool excelTool = new MesExcelTool(entityManager, RedisCacheTool.getImppRedis()); + List beanList = excelTool.importData(file.getOriginalFilename(), file.getInputStream(), mesClass); + + // 校验导入数据 + List returnImport = mesEquipmentSpotCheckDetailService.validateReturnImport(beanList, equipmentCode); + String userName = AuthUtil.getSessionUser().getUserName(); + String organizeCode = AuthUtil.getOrganize().getOrganizeCode(); + // 导入数据初始化 + /* String userName = "zxw"; + String organizeCode = "CK01";*/ + for (MesEquipmentSpotCheckDetail bean : returnImport) { + ConvertBean.serviceModelInitialize(bean, userName); + bean.setOrganizeCode(organizeCode); + } + baseService.insertBatch(returnImport); + + // 导入后 + afterImport(returnImport); + return ResultBean.success("导入成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); + } 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/serviceimpl/base/MesEquipmentSpotCheckDetailService.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesEquipmentSpotCheckDetailService.java index 6e68a4a..cfb0326 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesEquipmentSpotCheckDetailService.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesEquipmentSpotCheckDetailService.java @@ -3,6 +3,7 @@ package cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.base; import cn.estsh.i3plus.ext.mes.api.base.IMesEquipmentSpotCheckDetailService; import cn.estsh.i3plus.ext.mes.apiservice.config.AuthUtilExt; import cn.estsh.i3plus.ext.mes.apiservice.utils.BeanMapUtilsExt; +import cn.estsh.i3plus.ext.mes.apiservice.utils.MesException; import cn.estsh.i3plus.platform.common.exception.ImppExceptionEnum; import cn.estsh.i3plus.pojo.base.bean.DdlPackBean; import cn.estsh.i3plus.pojo.base.enumutil.CommonEnumUtil; @@ -16,15 +17,13 @@ import cn.estsh.i3plus.pojo.mes.repository.MesEquipmentVariableRepository; 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.beanutils.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; import org.springframework.util.StringUtils; -import java.util.ArrayList; -import java.util.List; -import java.util.Map; -import java.util.Objects; +import java.util.*; import java.util.stream.Collectors; @Service @@ -105,10 +104,10 @@ public class MesEquipmentSpotCheckDetailService extends BaseMesService validateReturnImport(List beanList) { + public List validateReturnImport(List beanList, String equipmentCode) { if (CollectionUtils.isEmpty(beanList)) return beanList; //设备变量MAP - Map variableMap = getEquipmentVariableMap(beanList); + Map variableMap = getEquipmentVariableMap(beanList, equipmentCode); for (MesEquipmentSpotCheckDetail item : beanList) { // 数据校验 if(StringUtil.isEmpty(item.getPid())){ @@ -154,8 +153,10 @@ public class MesEquipmentSpotCheckDetailService extends BaseMesService getEquipmentVariableMap(List beanList) { + private Map getEquipmentVariableMap(List beanList, String equipmentCode) { String organizeCode = AuthUtilExt.getOrganizeCode(); + //String organizeCode = "CK01"; + List addressList = new ArrayList<>(); //查询设备变量信息 List realAddress = beanList.stream().map(MesEquipmentSpotCheckDetail::getRealValueAddress).filter(t-> !StringUtils.isEmpty(t)).distinct().collect(Collectors.toList()); @@ -163,6 +164,19 @@ public class MesEquipmentSpotCheckDetailService extends BaseMesService beanMap = new HashMap(); + DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode); + DdlPreparedPack.getInPackList(addressList, "tagName", packBean); + DdlPreparedPack.getStringEqualPack(equipmentCode, "equipmentCode", packBean); + List baseDataList = mesEquipmentVariableRepository.findByHqlWhere(packBean); + + if (!CollectionUtils.isEmpty(baseDataList)) { + beanMap = baseDataList.stream().collect(Collectors.toMap(mesEquipmentVariable -> mesEquipmentVariable.getTagName(), o-> o)); + } else { + MesException.throwMesBusiException(addressList + "信息不存在"); + } + return beanMap; } }