package com.ghsc.partybuild.service.impl.jcdzzpb; import com.ghsc.partybuild.mapper.*; import com.ghsc.partybuild.model.*; import com.ghsc.partybuild.service.ZzAssesTemplateService; import com.ghsc.partybuild.util.StringUtils; import com.ghsc.partybuild.vo.jcdzzpb.ZzAssesTemplateVo; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.*; @Service("ZzAssesTemplateService") public class ZzAssesTemplateServiceImpl implements ZzAssesTemplateService { @Autowired private ZzAssesTemplateCQuery zzAssesTemplateCQuery; @Autowired private ZzAssesTemplateMapper zzAssesTemplateMapper; @Autowired private ZzAssesTemplateItemMapper zzAssesTemplateItemMapper; @Autowired private ZzAssesConfirmMapper zzAssesConfirmMapper; @Autowired private ZzAssesItemScoreMapper zzAssesItemScoreMapper; @Autowired private StringUtils stringUtils; @Override public PageInfo getList(int pageIndex, int pageSize, String id, String year, String templateName){ PageHelper.startPage(pageIndex, pageSize); List list = zzAssesTemplateCQuery.selectZzAssesTemplateList(id, year, templateName); PageInfo result = new PageInfo(list); return result; } @Override public List selectYearList(){ return zzAssesTemplateCQuery.selectYearList(); } @Override public ZzAssesTemplateVo getById(String id) { if (stringUtils.IsNullOrEmpty(id)) return null; ZzAssesTemplateVo data = zzAssesTemplateCQuery.selectZzAssesTemplateList(id, null, null).stream().findFirst().orElse(null); if(data != null){ data.setItemList(zzAssesTemplateCQuery.findZzAssesTemplateItemList(data.getId())); } return data; } @Override public int save(ZzAssesTemplateVo data, String userId) { int result = 0; ZzAssesTemplate dbModel = zzAssesTemplateMapper.selectByPrimaryKey(data.getId()); if (dbModel == null) { dbModel = new ZzAssesTemplate(); dbModel.setId(data.getId()); dbModel.setYear(data.getYear()); dbModel.setTemplateName(data.getTemplateName()); dbModel.setCreateTime(new Date()); dbModel.setCreateUserid(userId); dbModel.setUpdateTime(new Date()); dbModel.setUpdateUserid(userId); result = zzAssesTemplateMapper.insert(dbModel); } else { dbModel.setYear(data.getYear()); dbModel.setTemplateName(data.getTemplateName()); dbModel.setUpdateTime(new Date()); dbModel.setUpdateUserid(userId); result = zzAssesTemplateMapper.updateByPrimaryKey(dbModel); } ZzAssesTemplateItemExample emp = new ZzAssesTemplateItemExample(); emp.or().andAssesTemplateIdEqualTo(data.getId()); List itemList = zzAssesTemplateItemMapper.selectByExample(emp); if(data.getItemList().size() > 0){ data.getItemList().forEach(item -> { ZzAssesTemplateItem itemModel = item.getId() == null ? null : itemList.stream().filter(x -> item.getId().equals(x.getId())).findFirst().orElse(null); if(itemModel == null){ itemModel = new ZzAssesTemplateItem(); itemModel.setId(UUID.randomUUID().toString()); itemModel.setAssesTemplateId(data.getId()); itemModel.setItemName(item.getItemName()); itemModel.setItemScore(item.getItemScore()); itemModel.setContent(item.getContent()); itemModel.setStandard(item.getStandard()); itemModel.setCreateTime(new Date()); itemModel.setCreateUserid(userId); zzAssesTemplateItemMapper.insert(itemModel); }else{ itemModel.setAssesTemplateId(data.getId()); itemModel.setItemName(item.getItemName()); itemModel.setItemScore(item.getItemScore()); itemModel.setContent(item.getContent()); itemModel.setStandard(item.getStandard()); itemModel.setUpdateTime(new Date()); itemModel.setUpdateUserid(userId); zzAssesTemplateItemMapper.updateByPrimaryKey(itemModel); } }); } return result; } @Override public int delete(List idList) throws Exception{ ZzAssesConfirmExample confirmExample = new ZzAssesConfirmExample(); confirmExample.or().andAssesTemplateIdIn(idList); if(zzAssesConfirmMapper.selectByExample(confirmExample).size() > 0){ throw new Exception("模板已被引用,请核查!"); } ZzAssesTemplateExample exp = new ZzAssesTemplateExample(); exp.or().andIdIn(idList); ZzAssesTemplateItemExample emp = new ZzAssesTemplateItemExample(); emp.or().andAssesTemplateIdIn(idList); zzAssesTemplateItemMapper.deleteByExample(emp); return zzAssesTemplateMapper.deleteByExample(exp); } @Override public int deleteItem(List idList) throws Exception{ ZzAssesItemScoreExample scoreExample = new ZzAssesItemScoreExample(); scoreExample.or().andAssesTemplateItemIdIn(idList); if(zzAssesItemScoreMapper.selectByExample(scoreExample).stream().count() > 0){ throw new Exception("项目已被引用,请核查!"); } ZzAssesTemplateItemExample emp = new ZzAssesTemplateItemExample(); emp.or().andIdIn(idList); return zzAssesTemplateItemMapper.deleteByExample(emp); } }