package com.chinaztt.mes.plan.service.impl;
|
|
import cn.hutool.core.bean.BeanUtil;
|
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.BeanUtils;
|
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.plan.dto.ManufacturingOrderDTO;
|
import com.chinaztt.mes.plan.dto.MoTestStandardDTO;
|
import com.chinaztt.mes.plan.entity.MoRoutingOperation;
|
import com.chinaztt.mes.plan.entity.MoSamplingRule;
|
import com.chinaztt.mes.plan.entity.MoTestStandard;
|
import com.chinaztt.mes.plan.entity.MoTestStandardParam;
|
import com.chinaztt.mes.plan.mapper.MoRoutingOperationMapper;
|
import com.chinaztt.mes.plan.mapper.MoSamplingRuleMapper;
|
import com.chinaztt.mes.plan.mapper.MoTestStandardMapper;
|
import com.chinaztt.mes.plan.mapper.MoTestStandardParamMapper;
|
import com.chinaztt.mes.plan.service.MoTestStandardService;
|
import com.chinaztt.mes.quality.entity.SamplingRule;
|
import com.chinaztt.mes.quality.mapper.SamplingRuleMapper;
|
import lombok.AllArgsConstructor;
|
import org.springframework.stereotype.Service;
|
import org.springframework.transaction.annotation.Transactional;
|
|
import java.util.List;
|
|
/**
|
* 制造订单-检测标准主表
|
*
|
* @author cxf
|
* @date 2021-04-27 13:27:47
|
*/
|
@Service
|
@Transactional(rollbackFor = Exception.class)
|
@AllArgsConstructor
|
public class MoTestStandardServiceImpl extends ServiceImpl<MoTestStandardMapper, MoTestStandard> implements MoTestStandardService {
|
private MoTestStandardParamMapper moTestStandardParamMapper;
|
private MoRoutingOperationMapper moRoutingOperationMapper;
|
private MoSamplingRuleMapper moSamplingRuleMapper;
|
private SamplingRuleMapper samplingRuleMapper;
|
|
@Override
|
public List<MoTestStandard> addRoutingTestStandard(ManufacturingOrderDTO manufacturingOrderDTO) {
|
MoRoutingOperation moRoutingOperation = moRoutingOperationMapper.selectById(manufacturingOrderDTO.getMoRoutingOperationId());
|
List<MoTestStandard> moTestStandardList = manufacturingOrderDTO.getMoTestStandardList();
|
if (CollectionUtil.isNotEmpty(moTestStandardList)) {
|
moTestStandardList.stream().forEach(moTestStandard -> {
|
Long testStandardId = moTestStandard.getId();
|
moTestStandard.setMoRoutingOperationId(moRoutingOperation.getId());
|
moTestStandard.setRoutingOperationId(moRoutingOperation.getTechnologyRoutingOperationId());
|
moTestStandard.setMoId(manufacturingOrderDTO.getId());
|
// moTestStandard.setJudgeFormula(URLDecoder.decode(moTestStandard.getJudgeFormula(), Charset.forName("UTF-8")));
|
if(null != moTestStandard.getJudgeFormula()){
|
moTestStandard.setJudgeFormula(moTestStandard.getJudgeFormula().replaceAll("&", "&"));
|
}
|
baseMapper.insert(moTestStandard);
|
// 备份检测标准参数
|
baseMapper.copyParamByTestStandardId(moTestStandard.getId(), testStandardId);
|
|
// 生成抽检记录
|
Integer samplingRuleNum = moSamplingRuleMapper.selectCount(Wrappers.<MoSamplingRule>lambdaQuery()
|
.eq(MoSamplingRule::getMoId, manufacturingOrderDTO.getId())
|
.eq(MoSamplingRule::getMoRoutingOperationId, moRoutingOperation.getId())
|
.eq(MoSamplingRule::getApplyType, moTestStandard.getInspectionType()));
|
if (samplingRuleNum == 0) {
|
SamplingRule samplingRule = samplingRuleMapper.selectOne(Wrappers.<SamplingRule>lambdaQuery()
|
.eq(SamplingRule::getSamplingOperationId, moRoutingOperation.getOperationId())
|
.eq(SamplingRule::getApplyType, moTestStandard.getInspectionType()));
|
MoSamplingRule moSamplingRule = BeanUtil.copyProperties(samplingRule, MoSamplingRule.class);
|
moSamplingRule.setMoId(manufacturingOrderDTO.getId());
|
moSamplingRule.setMoRoutingOperationId(moRoutingOperation.getId());
|
moSamplingRuleMapper.insert(moSamplingRule);
|
}
|
});
|
}
|
return moTestStandardList;
|
}
|
|
@Override
|
public List<MoTestStandard> getRoutingTestStandardList(ManufacturingOrderDTO manufacturingOrderDTO) {
|
return baseMapper.selectList(Wrappers.<MoTestStandard>lambdaQuery()
|
.eq(MoTestStandard::getMoRoutingOperationId, manufacturingOrderDTO.getMoRoutingOperationId())
|
.eq(MoTestStandard::getMoId, manufacturingOrderDTO.getId()).orderByAsc(MoTestStandard::getId));
|
}
|
|
@Override
|
public boolean deleteRoutingTestStandard(Long id) {
|
baseMapper.deleteById(id);
|
moTestStandardParamMapper.delete(Wrappers.<MoTestStandardParam>lambdaQuery().eq(MoTestStandardParam::getMoTestStandardId, id));
|
return true;
|
}
|
|
@Override
|
public IPage<MoTestStandardDTO> getManufacturingOrderStand(Page page, QueryWrapper<MoTestStandardDTO> moTestStandardDTO) {
|
return baseMapper.getManufacturingOrderStand(page, moTestStandardDTO);
|
}
|
}
|