/*
|
* Copyright (c) 2018-2025, ztt All rights reserved.
|
*
|
* Redistribution and use in source and binary forms, with or without
|
* modification, are permitted provided that the following conditions are met:
|
*
|
* Redistributions of source code must retain the above copyright notice,
|
* this list of conditions and the following disclaimer.
|
* Redistributions in binary form must reproduce the above copyright
|
* notice, this list of conditions and the following disclaimer in the
|
* documentation and/or other materials provided with the distribution.
|
* Neither the name of the pig4cloud.com developer nor the names of its
|
* contributors may be used to endorse or promote products derived from
|
* this software without specific prior written permission.
|
* Author: ztt
|
*/
|
package com.chinaztt.mes.basic.service.impl;
|
|
import cn.hutool.core.collection.CollectionUtil;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.chinaztt.mes.basic.entity.Param;
|
import com.chinaztt.mes.basic.entity.ParamJoinTemplate;
|
import com.chinaztt.mes.basic.excel.ParamData;
|
import com.chinaztt.mes.basic.mapper.ParamJoinTemplateMapper;
|
import com.chinaztt.mes.basic.mapper.ParamMapper;
|
import com.chinaztt.mes.basic.service.ParamService;
|
import com.chinaztt.mes.basic.util.DictUtils;
|
import com.chinaztt.ztt.admin.api.entity.SysDictItem;
|
import com.chinaztt.ztt.common.core.util.R;
|
import lombok.AllArgsConstructor;
|
import org.apache.commons.lang3.StringUtils;
|
import org.springframework.stereotype.Service;
|
|
import java.util.List;
|
import java.util.stream.Collectors;
|
|
/**
|
* 工序参数表
|
*
|
* @author sunxl
|
* @date 2021-01-14 15:24:37
|
*/
|
@AllArgsConstructor
|
@Service
|
public class ParamServiceImpl extends ServiceImpl<ParamMapper, Param> implements ParamService {
|
private ParamJoinTemplateMapper paramJoinTemplateMapper;
|
private DictUtils dictUtils;
|
|
@Override
|
public R<Boolean> fullSave(Param param) {
|
int noCount = baseMapper.selectCount(Wrappers.<Param>lambdaQuery().eq(Param::getCode, param.getCode()));
|
if (noCount > 0) {
|
return R.failed("编号重复");
|
}
|
baseMapper.insert(param);
|
return R.ok();
|
}
|
|
@Override
|
public R<Boolean> fullUpdate(Param param) {
|
int noCount = baseMapper.selectCount(Wrappers.<Param>lambdaQuery().ne(Param::getId, param.getId()).eq(Param::getCode, param.getCode()));
|
if (noCount > 0) {
|
return R.failed("编号重复");
|
}
|
baseMapper.updateById(param);
|
return R.ok();
|
}
|
|
@Override
|
public IPage<List<Param>> getTechnologyParamPage(Page page, Long id, QueryWrapper<Param> ew) {
|
return baseMapper.getTechnologyParamPage(page, id, ew);
|
}
|
|
|
@Override
|
public void importExcel(List<ParamData> list) {
|
if (CollectionUtil.isEmpty(list)) {
|
return;
|
}
|
//获取字典的数组值
|
List<SysDictItem> dict = dictUtils.getDict("technology_param");
|
for (ParamData data : list) {
|
Param param = new Param();
|
dict.forEach(a -> {
|
if (a.getLabel().equals(data.getType())) {
|
param.setType(a.getValue());
|
}
|
});
|
if (param.getType() == null) {
|
log.error("工序参数类型:" + data.getType() + "不存在");
|
continue;
|
}
|
param.setCode(data.getCode());
|
int noCount = baseMapper.selectCount(Wrappers.<Param>lambdaQuery().ne(Param::getId, param.getId()).eq(Param::getCode, data.getCode()));
|
if (noCount > 0) {
|
throw new RuntimeException(data.getCode() + "编号重复");
|
}
|
param.setParameterItem(data.getParameterItem());
|
param.setUnit(data.getUnit());
|
// 下拉选项类型手动处理参数格式
|
if (!StringUtils.equals("2", param.getType())) {
|
param.setParameterFormat(data.getParameterFormat());
|
}
|
baseMapper.insert(param);
|
}
|
}
|
|
@Override
|
public boolean delete(Long id) {
|
int count = paramJoinTemplateMapper.selectCount(Wrappers.<ParamJoinTemplate>lambdaQuery().eq(ParamJoinTemplate::getTechnologyOperationParamId, id));
|
if (count > 0) {
|
throw new RuntimeException("该参数已经被引用,不可删除");
|
}
|
baseMapper.deleteById(id);
|
return true;
|
}
|
|
@Override
|
public String checkItemRepeat(Param param) {
|
List<Param> repeatList = baseMapper.selectList(Wrappers.<Param>lambdaQuery().eq(Param::getParameterItem, param.getParameterItem()).ne(Param::getId, param.getId()));
|
if (CollectionUtil.isNotEmpty(repeatList)) {
|
return repeatList.stream().map(p -> p.getCode()).collect(Collectors.joining(","));
|
} else {
|
return null;
|
}
|
}
|
|
}
|