设备点检明细导入

tags/yfai-mes-ext-v2.2
xiangwei.zhang 7 months ago
parent ba81ac12b3
commit 6f23a3fbe0

@ -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<MesEquipmentSpotCheckDetail>{
@ApiOperation(value = "校验并返回导入数据", notes = "校验并返回导入数据")
List<MesEquipmentSpotCheckDetail> validateReturnImport(List<MesEquipmentSpotCheckDetail> bean, String equipmentCode);
}

@ -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<MesEquipmentSpotCheckDetail>{
@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<MesEquipmentSpotCheckDetail> beanList = excelTool.importData(file.getOriginalFilename(), file.getInputStream(), mesClass);
// 校验导入数据
List<MesEquipmentSpotCheckDetail> 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);
}
}
}

@ -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<MesEquipm
}
}
@Override
public List<MesEquipmentSpotCheckDetail> validateReturnImport(List<MesEquipmentSpotCheckDetail> beanList) {
public List<MesEquipmentSpotCheckDetail> validateReturnImport(List<MesEquipmentSpotCheckDetail> beanList, String equipmentCode) {
if (CollectionUtils.isEmpty(beanList)) return beanList;
//设备变量MAP
Map<String, MesEquipmentVariable> variableMap = getEquipmentVariableMap(beanList);
Map<String, MesEquipmentVariable> variableMap = getEquipmentVariableMap(beanList, equipmentCode);
for (MesEquipmentSpotCheckDetail item : beanList) {
// 数据校验
if(StringUtil.isEmpty(item.getPid())){
@ -154,8 +153,10 @@ public class MesEquipmentSpotCheckDetailService extends BaseMesService<MesEquipm
return beanList;
}
private Map<String, MesEquipmentVariable> getEquipmentVariableMap(List<MesEquipmentSpotCheckDetail> beanList) {
private Map<String, MesEquipmentVariable> getEquipmentVariableMap(List<MesEquipmentSpotCheckDetail> beanList, String equipmentCode) {
String organizeCode = AuthUtilExt.getOrganizeCode();
//String organizeCode = "CK01";
List<String> addressList = new ArrayList<>();
//查询设备变量信息
List<String> realAddress = beanList.stream().map(MesEquipmentSpotCheckDetail::getRealValueAddress).filter(t-> !StringUtils.isEmpty(t)).distinct().collect(Collectors.toList());
@ -163,6 +164,19 @@ public class MesEquipmentSpotCheckDetailService extends BaseMesService<MesEquipm
if (!CollectionUtils.isEmpty(realAddress)) addressList.addAll(realAddress);
if (!CollectionUtils.isEmpty(setAddress)) addressList.addAll(setAddress);
if (CollectionUtils.isEmpty(addressList)) return null;
return BeanMapUtilsExt.getBeanMap(mesEquipmentVariableRepository, "tagName", organizeCode, addressList, "设备变量");
Map<String, MesEquipmentVariable> beanMap = new HashMap();
DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode);
DdlPreparedPack.getInPackList(addressList, "tagName", packBean);
DdlPreparedPack.getStringEqualPack(equipmentCode, "equipmentCode", packBean);
List<MesEquipmentVariable> 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;
}
}

Loading…
Cancel
Save