package com.ruoyi.inspect.service.impl;
|
|
import com.alibaba.fastjson.JSON;
|
import com.alibaba.fastjson.JSONObject;
|
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.ruoyi.basic.dto.StandardTreeTemplateBindingVo;
|
import com.ruoyi.basic.service.StandardTreeService;
|
import com.ruoyi.inspect.mapper.InsOrderTemplateMapper;
|
import com.ruoyi.inspect.pojo.InsOrderTemplate;
|
import com.ruoyi.inspect.service.InsOrderTemplateService;
|
import com.ruoyi.inspect.vo.InsOrderTemplateDetailVo;
|
import lombok.AllArgsConstructor;
|
import org.apache.commons.lang3.StringUtils;
|
import org.springframework.stereotype.Service;
|
|
import java.util.ArrayList;
|
import java.util.List;
|
|
/**
|
* @author Administrator
|
* @description 针对表【ins_order_template】的数据库操作Service实现
|
* @createDate 2024-03-18 14:14:54
|
*/
|
@Service
|
@AllArgsConstructor
|
public class InsOrderTemplateServiceImpl extends ServiceImpl<InsOrderTemplateMapper, InsOrderTemplate>
|
implements InsOrderTemplateService {
|
|
private InsOrderTemplateMapper insOrderTemplateMapper;
|
|
private StandardTreeService standardTreeService;
|
|
@Override
|
public int addInsOrderTemplate(InsOrderTemplate insOrderTemplate) {
|
return insOrderTemplateMapper.insert(insOrderTemplate);
|
}
|
|
@Override
|
public List<InsOrderTemplate> selectInsOrderTemplate(String company) {
|
if (ObjectUtils.isEmpty(company) || company.equals("")) {
|
return insOrderTemplateMapper.selectList(Wrappers.<InsOrderTemplate>lambdaQuery()
|
.select(InsOrderTemplate.class, info -> !info.getColumn().equals("thing")));
|
} else {
|
//根据委托单位进行筛选
|
return insOrderTemplateMapper.selectList(Wrappers.<InsOrderTemplate>lambdaQuery()
|
.like(InsOrderTemplate::getThing,"\"company\":\""+ company+"\"")
|
.select(InsOrderTemplate.class, info -> !info.getColumn().equals("thing")));
|
}
|
}
|
|
@Override
|
public InsOrderTemplateDetailVo selectInsOrderTemplateById(Integer id) {
|
InsOrderTemplate template = insOrderTemplateMapper.selectById(id);
|
InsOrderTemplateDetailVo vo = new InsOrderTemplateDetailVo();
|
if (template == null) {
|
vo.setTemplateBindings(new ArrayList<>());
|
return vo;
|
}
|
vo.setThing(template.getThing());
|
// 优先取模板列上持久化的标准ID,历史数据回退到从表单快照 addObj.standardTreeId 解析
|
Integer standardTreeId = template.getStandardTreeId();
|
if (standardTreeId == null) {
|
standardTreeId = parseStandardTreeId(template.getThing());
|
}
|
vo.setStandardTreeId(standardTreeId);
|
if (standardTreeId != null) {
|
List<StandardTreeTemplateBindingVo> bindings = standardTreeService.selectTemplateBindings(standardTreeId);
|
vo.setTemplateBindings(bindings == null ? new ArrayList<>() : bindings);
|
} else {
|
vo.setTemplateBindings(new ArrayList<>());
|
}
|
return vo;
|
}
|
|
private Integer parseStandardTreeId(String thing) {
|
if (StringUtils.isBlank(thing)) {
|
return null;
|
}
|
try {
|
JSONObject addObj = JSON.parseObject(thing).getJSONObject("addObj");
|
return addObj == null ? null : addObj.getInteger("standardTreeId");
|
} catch (Exception ignored) {
|
return null;
|
}
|
}
|
|
@Override
|
public int delInsOrderTemplate(Integer id) {
|
return insOrderTemplateMapper.deleteById(id);
|
}
|
}
|