package cn.com.goldenwater.dcproj.service.impl.tac; import cn.com.goldenwater.core.service.AbstractCrudService; import cn.com.goldenwater.dcproj.constValue.TacEnum; import cn.com.goldenwater.dcproj.dao.*; import cn.com.goldenwater.dcproj.dto.*; import cn.com.goldenwater.dcproj.model.TacObjPblmstb; import cn.com.goldenwater.dcproj.model.TacObjPblmstbLaw; import cn.com.goldenwater.dcproj.model.TacObjSubject; import cn.com.goldenwater.dcproj.param.TacObjPblmstbLawParam; import cn.com.goldenwater.dcproj.param.TacObjPblmstbParam; import cn.com.goldenwater.dcproj.param.TacObjSubjectParam; import cn.com.goldenwater.dcproj.param.TacPblmClassParam; import cn.com.goldenwater.dcproj.service.TacObjPblmstbService; import cn.com.goldenwater.dcproj.utils.expExcel.ExportUtil; import cn.com.goldenwater.id.util.UuidUtil; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import org.apache.commons.lang3.StringUtils; import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.Row; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.multipart.MultipartFile; import java.util.ArrayList; import java.util.List; /** * @author lune * @date 2019-6-19 */ @Service @Transactional public class TacObjPblmstbServiceImpl extends AbstractCrudService implements TacObjPblmstbService { @Autowired private TacObjPblmstbDao tacObjPblmstbDao; @Autowired private TacObjSubjectDao tacObjSubjectDao; @Autowired private TacObjPblmstb515Dao tacObjPblmstb515Dao; @Autowired private TacObjSubject515Dao tacObjSubject515Dao; @Autowired private TacObjPblmstbLawDao tacObjPblmstbLawDao; public TacObjPblmstbServiceImpl(TacObjPblmstbDao tacObjPblmstbDao) { super(tacObjPblmstbDao); this.tacObjPblmstbDao = tacObjPblmstbDao; } @Override public int insert(TacObjPblmstb entity) { entity.setIsNew("1"); return super.insert(entity); } @Override public int upload(MultipartFile file) { List rowList = ExportUtil.getRowListByFile(file); if (rowList.size() > 5) { Row spfsnlTypeRow = rowList.get(1); String spfsnlTypeValue = spfsnlTypeRow.getCell(0).getStringCellValue().replace("专业:", "").replaceAll(" ", ""); String class1 = ""; String className1 = ""; String class2 = ""; String className2 = ""; TacEnum tacEnum = TacEnum.getTacEnum(spfsnlTypeValue); int index = Integer.valueOf(tacEnum.getKey() + "0001"); List result = new ArrayList<>(); for (int i = 4; i < rowList.size(); i++) { Row dataRow = rowList.get(i); Cell cell = dataRow.getCell(0); if (cell == null) { continue; } String value = cell.toString(); if (value.endsWith(".0") || value.length() == 1) { class1 = cell.toString(); className1 = dataRow.getCell(1).toString(); continue; } if (value.contains(".") && value.length() == 3) { class2 = value; className2 = dataRow.getCell(1).toString(); continue; } TacObjPblmstb pblmstb = new TacObjPblmstb(); pblmstb.setSpfsnlType(spfsnlTypeValue); pblmstb.setClass1(Double.valueOf(class1).intValue() + ""); pblmstb.setClass1Name(className1); pblmstb.setClass2(class2); pblmstb.setClass2Name(className2); pblmstb.setSn(value); pblmstb.setSortNo(index++ + ""); for (int j = 1; j < 12; j++) { Cell dataCell = dataRow.getCell(j); if (dataCell == null) { continue; } String dataValue = dataCell.toString(); if (j == 1) { pblmstb.setPblmsDesc(dataValue); } else if (j == 2) { pblmstb.setRelativeLaw(dataValue); } else if (j == 3) { pblmstb.setLawContent(dataValue); } else if (j == 4) { if (StringUtils.isBlank(dataValue)) { pblmstb.setCate0("0"); } else { pblmstb.setCate0("1"); if (!"√".endsWith(dataValue)) { pblmstb.setCate0Desc(dataValue); } } } else if (j == 5) { if (StringUtils.isBlank(dataValue)) { pblmstb.setCate1("0"); } else { pblmstb.setCate1("1"); if (!"√".endsWith(dataValue)) { pblmstb.setCate1Desc(dataValue); } } } else if (j == 6) { if (StringUtils.isBlank(dataValue)) { pblmstb.setCate2("0"); } else { pblmstb.setCate2("1"); if (!"√".endsWith(dataValue)) { pblmstb.setCate2Desc(dataValue); } } } else if (j == 7) { pblmstb.setSubName(dataValue); } else if (j == 8) { pblmstb.setSubName(pblmstb.getSubName() + "," + dataValue); } else if (j == 9) { pblmstb.setSubName(pblmstb.getSubName() + "," + dataValue); } else if (j == 10) { pblmstb.setSubName(pblmstb.getSubName() + "," + dataValue); } else if (j == 11) { pblmstb.setNote(dataValue); } } result.add(pblmstb); } if (result.size() > 0) { for (TacObjPblmstb pblmstb : result) { if (StringUtils.isBlank(pblmstb.getPblmsDesc())) { continue; } tacObjPblmstbDao.updateStb(pblmstb); // pblmstb.setId(UuidUtil.uuid()); // pblmstb.setIntm(new Date()); // pblmstb.setUptm(new Date()); // pblmstb.setDataStat("1"); // if (pblmstb.getSubName().contains(",")) { // StringBuilder st = new StringBuilder(); // for (String subName : pblmstb.getSubName().split(",")) { // if (StringUtils.isBlank(subName)) { // continue; // } // TacObjSubjectParam subjectParam = new TacObjSubjectParam(); // subjectParam.setSubName(subName.replace(" ","").replace("\n","")); // TacObjSubject objSubjectList = tacObjSubjectDao.getBy(subjectParam); // if (objSubjectList == null) { // objSubjectList = tacObjSubject515Dao.getBy(subjectParam); // } // st.append(objSubjectList.getId()).append(","); // } // if (st.length() > 0) { // pblmstb.setSubjectIds(st.substring(0, st.length() - 1)); // } // } else { // TacObjSubjectParam subjectParam = new TacObjSubjectParam(); // subjectParam.setSubName(pblmstb.getSubName().replace(" ","").replace("\n","")); // TacObjSubject objSubjectList = tacObjSubjectDao.getBy(subjectParam); // pblmstb.setSubjectIds(objSubjectList.getId()); // } // System.out.println(pblmstb.toString()); // tacObjPblmstbDao.insert(pblmstb); } } } return 0; } @Override public TacObjPblmstb getOne(String id) { TacObjPblmstb tacObjPblmstb = tacObjPblmstbDao.get(id); boolean newPblms = true; if (tacObjPblmstb == null) { newPblms = false; tacObjPblmstb = tacObjPblmstb515Dao.get(id); } if (tacObjPblmstb != null) { if (StringUtils.isNotBlank(tacObjPblmstb.getSubjectIds())) { TacObjSubjectParam subjectParam = new TacObjSubjectParam(); subjectParam.setIds(tacObjPblmstb.getSubjectIds()); if (newPblms) { List objSubjectList = tacObjSubjectDao.findList(subjectParam); tacObjPblmstb.setObjSubjectList(objSubjectList); } else { List objSubjectList = tacObjSubject515Dao.findList(subjectParam); tacObjPblmstb.setObjSubjectList(objSubjectList); } } List cateObjList = new ArrayList<>(); List cateNotObjList = new ArrayList<>(); CateObj cateObj = new CateObj(); cateObj.setCate("0"); cateObj.setDesc("一般"); String catedesc = tacObjPblmstb.getCate0Desc(); if (StringUtils.isNotBlank(catedesc)) { cateObj.setDesc("(一般)" + catedesc); } if ("1".equals(tacObjPblmstb.getCate0())) { cateObjList.add(cateObj); } else if ("0".equals(tacObjPblmstb.getCate0())) { cateNotObjList.add(cateObj); } CateObj cateObj1 = new CateObj(); cateObj1.setCate("1"); cateObj1.setDesc("较重"); String catedesc1 = tacObjPblmstb.getCate1Desc(); if (StringUtils.isNotBlank(catedesc1)) { cateObj1.setDesc("(较重)" + catedesc1); } if ("1".equals(tacObjPblmstb.getCate1())) { cateObjList.add(cateObj1); } else if ("0".equals(tacObjPblmstb.getCate1())) { cateNotObjList.add(cateObj1); } CateObj cateObj2 = new CateObj(); cateObj2.setCate("2"); cateObj2.setDesc("严重"); String catedesc2 = tacObjPblmstb.getCate2Desc(); if (StringUtils.isNotBlank(catedesc2)) { cateObj2.setDesc("(严重)" + catedesc2); } if ("1".equals(tacObjPblmstb.getCate2())) { cateObjList.add(cateObj2); } else if ("0".equals(tacObjPblmstb.getCate2())) { cateNotObjList.add(cateObj2); } tacObjPblmstb.setCateObjList(cateObjList); tacObjPblmstb.setCateNotObjList(cateNotObjList); TacObjPblmstbLawParam lawParam = new TacObjPblmstbLawParam(); lawParam.setPblmstbId(tacObjPblmstb.getId()); List pblmstbLawList = tacObjPblmstbLawDao.findList(lawParam); tacObjPblmstb.setPblmstbLawList(pblmstbLawList); } return tacObjPblmstb; } @Override public TacObjPblmstb getOneByParam(TacObjPblmstbParam pblmstbParam) { return tacObjPblmstbDao.getOne(pblmstbParam); } @Override public PageInfo findPblmsPageinfo(TacObjPblmstbParam pblmInfoParam) { PageHelper.startPage(pblmInfoParam.getPageNum(), pblmInfoParam.getPageSize()); List list = tacObjPblmstbDao.findPblmstbList(pblmInfoParam); return new PageInfo<>(list); } @Override public PageInfo findPblmstbList_bak(TacObjPblmstbParam pblmstbParam) { PageHelper.startPage(pblmstbParam.getPageNum(), pblmstbParam.getPageSize()); List list = tacObjPblmstbDao.findPblmstbList_bak(pblmstbParam); return new PageInfo<>(list); } @Override public int delList(List ids) { int ret = tacObjPblmstbDao.delList(ids); return ret; } @Override public int updateList(TacPblmClassParam tacPblmClassParam) { return tacObjPblmstbDao.updateList(tacPblmClassParam); } @Override public List findSpfsnlType(String persId, String year) { return tacObjPblmstbDao.findSpfsnlType(persId, year); } @Override public List findClass1ByType(String pblmChType, String persId, String year) { return tacObjPblmstbDao.findClass1ByType(pblmChType, persId, year); } @Override public List findClass2ByClass1(String pblmChType, String class1, String persId, String year) { return tacObjPblmstbDao.findClass2ByClass1(pblmChType, class1, persId, year); } @Override public List findClass3ByTypeClass1Class2(String pblmChType, String class1, String class2, String persId, String year) { return tacObjPblmstbDao.findClass3ByTypeClass1Class2(pblmChType, class1, class2, persId, year); } @Override public void updateNew(TacObjPblmstb tacObjPblmstb) { addPblmsLaw(tacObjPblmstb, "1"); tacObjPblmstbDao.update(tacObjPblmstb); } @Override public void insertNew(TacObjPblmstb tacObjPblmstb) { addPblmsLaw(tacObjPblmstb, ""); tacObjPblmstb.setIsNew("1"); tacObjPblmstbDao.insert(tacObjPblmstb); } private void addPblmsLaw(TacObjPblmstb tacObjPblmstb, String flag) { if ("1".equals(flag)) { TacObjPblmstbLawParam lawParam = new TacObjPblmstbLawParam(); lawParam.setPblmstbId(tacObjPblmstb.getId()); tacObjPblmstbLawDao.deleteBy(lawParam); } List pblmstbLawList = tacObjPblmstb.getPblmstbLawList(); if (pblmstbLawList != null && !pblmstbLawList.isEmpty()) { StringBuffer lawes = new StringBuffer(); StringBuffer relativeLaw = new StringBuffer(); for (TacObjPblmstbLaw law : pblmstbLawList) { law.setId(UuidUtil.uuid()); law.setPblmstbId(tacObjPblmstb.getId()); tacObjPblmstbLawDao.insert(law); lawes.append(law.getLawContent()).append("\r\n"); relativeLaw.append(law.getNote()).append("、"); } tacObjPblmstb.setLawContent(lawes.toString()); tacObjPblmstb.setRelativeLaw(relativeLaw.toString()); } } }