package cn.com.goldenwater.dcproj.service.impl; import cn.com.goldenwater.core.service.AbstractCrudService; import cn.com.goldenwater.dcproj.constValue.BisInspEnum; import cn.com.goldenwater.dcproj.constValue.SplitValue; import cn.com.goldenwater.dcproj.dao.BisInspKeychkqhRegisterDao; import cn.com.goldenwater.dcproj.dto.BisInspKeychkqhRegisterDto; import cn.com.goldenwater.dcproj.model.*; import cn.com.goldenwater.dcproj.param.BisInspKeychkqhRegisterParam; import cn.com.goldenwater.dcproj.param.TypeParam; import cn.com.goldenwater.dcproj.service.*; import cn.com.goldenwater.dcproj.utils.AdLevelUtil; import cn.com.goldenwater.dcproj.utils.Builder; import cn.com.goldenwater.id.util.UuidUtil; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import org.apache.commons.lang.StringUtils; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import javax.servlet.http.HttpServletResponse; import java.util.ArrayList; import java.util.Date; import java.util.List; /** * @author lhc * @date 2021-6-25 */ @Service @Transactional public class BisInspKeychkqhRegisterServiceImpl extends AbstractCrudService implements BisInspKeychkqhRegisterService, BisInspObjStrategy{ @Autowired private BisInspKeychkqhRegisterDao bisInspKeychkqhRegisterDao; @Autowired private AttEmpwtprjBaseService attEmpwtprjBaseService; @Autowired private BisInspKeychkqhSectionService bisInspKeychkqhSectionService; @Autowired private BisInspKeychkqhUnitService bisInspKeychkqhUnitService; public BisInspKeychkqhRegisterServiceImpl(BisInspKeychkqhRegisterDao bisInspKeychkqhRegisterDao) { super(bisInspKeychkqhRegisterDao); this.bisInspKeychkqhRegisterDao = bisInspKeychkqhRegisterDao; } @Override public int insert(BisInspKeychkqhRegister bisInspKeychkqhRegister) { String uuid = UuidUtil.uuid(); // 生成uuid bisInspKeychkqhRegister.setId(uuid); bisInspKeychkqhRegister.setIntm(new Date()); bisInspKeychkqhRegister.setUptm(new Date()); bisInspKeychkqhRegister.setDataStat("0"); return this.bisInspKeychkqhRegisterDao.insert(bisInspKeychkqhRegister); } @Override public int update(BisInspKeychkqhRegister bisInspKeychkqhRegister) { bisInspKeychkqhRegister.setUptm(new Date()); int ret = bisInspKeychkqhRegisterDao.update(bisInspKeychkqhRegister); updateAttBase(bisInspKeychkqhRegister); return ret; } private void updateAttBase(BisInspKeychkqhRegister rgstr) { BisInspKeychkqhRegister r = get(rgstr.getId()); AttEmpwtprjBase base = attEmpwtprjBaseService.getObjId(r.getObjId()); base.setPtype(r.getPtype()); base.setAdCode(r.getAdCode()); base.setNm(r.getNm()); base.setStwktm(r.getStwktm()==null ? "" : String.valueOf(r.getStwktm())); base.setPlantm(r.getPlantm()); base.setEstapp(r.getEstapp()==null ? "" : String.valueOf(r.getEstapp())); base.setLgtd(r.getLgtd()); base.setLttd(r.getLttd()); base.setLgtdPc(r.getLgtdPc()); base.setLttdPc(r.getLttdPc()); base.setUnitId(r.getUnitId()); base.setUnitNm(r.getUnitNm()); base.setIntm(r.getIntm()); base.setUptm(r.getUptm()); base.setNote(r.getNote()); base.setEngSta(r.getEngSta()); base.setBuidTimeYear(r.getBuidTimeYear()== null ? "":String.valueOf(r.getBuidTimeYear())); base.setEngProfil(r.getEngProfil()); base.setEngBuild(r.getEngBuild()); attEmpwtprjBaseService.update(base); } @Override public int delete(String id) { return this.bisInspKeychkqhRegisterDao.delete(id); } @Override public void insertObj(BisInspAllObj bisInspAllObj, String persId) { BisInspKeychkqhRegister b = new BisInspKeychkqhRegister(); AttEmpwtprjBase base = attEmpwtprjBaseService.get(bisInspAllObj.getCode()); BeanUtils.copyProperties(base, b); b.setObjId(bisInspAllObj.getObjId()); b.setId(UuidUtil.uuid()); b.setRecPersId(persId); b.setIntm(new Date()); b.setUptm(new Date()); b.setDataStat("0"); b.setState("0"); bisInspKeychkqhRegisterDao.insert(b); } @Override public String getType() { return BisInspEnum.KEYCHKQH.getValue(); } @Override public void cleanObjData(String objId) { BisInspKeychkqhRegisterParam rgstrParam = new BisInspKeychkqhRegisterParam(); rgstrParam.setObjId(objId); List list = this.bisInspKeychkqhRegisterDao.findList(rgstrParam); if(list.size() > 0){ String id = list.get(0).getId(); this.bisInspKeychkqhRegisterDao.delete(id); } } @Override public PageInfo findObjPageByType(TypeParam typeParam, HttpServletResponse response) { if (StringUtils.isNotBlank(typeParam.getAdCode())) { typeParam.setAdCode(String.valueOf(AdLevelUtil.SubAd(typeParam.getAdCode()).get(SplitValue.SUBAD))); } PageHelper.startPage(typeParam); List list = this.bisInspKeychkqhRegisterDao.findPageList(typeParam); return new PageInfo<>(list); } @Override public List keychkqhTree(TypeParam typeParam) { List list = bisInspKeychkqhRegisterDao.findPageList(typeParam); ArrayList nodes = new ArrayList<>(); for(BisInspKeychkqhRegisterDto reg : list){ BisInspAllNode node = Builder.of(BisInspAllNode::new) .with(BisInspAllNode::setId, reg.getId()) .with(BisInspAllNode::setPid, "0") .with(BisInspAllNode::setPnm, reg.getNm()) .with(BisInspAllNode::setObjId, reg.getObjId()) .with(BisInspAllNode::setCode, reg.getCode()) .with(BisInspAllNode::setState, reg.getState()) .with(BisInspAllNode::setLevel, "1") .with(BisInspAllNode::setNodeId, reg.getNodeId()) .with(BisInspAllNode::setChildren, new ArrayList<>()) .build(); nodes.add(node); // 添加登记表下的 标段 addSection(node); } return nodes; } void addSection(BisInspAllNode node) { List sectionList = bisInspKeychkqhSectionService.listByRegId(node.getId()); for (BisInspKeychkqhSection sec : sectionList){ BisInspAllNode secNode = new BisInspAllNode(); secNode.setId(sec.getId()); secNode.setObjId(sec.getObjId()); secNode.setPnm(sec.getNm()); secNode.setPid(node.getId()); secNode.setLevel("2"); secNode.setChildren(new ArrayList<>()); // 添加标段下的公司 addUnit(secNode); node.getChildren().add(secNode); } } void addUnit(BisInspAllNode section) { List unitList = bisInspKeychkqhUnitService.listBySecId(section.getId()); for (BisInspKeychkqhUnit unit : unitList) { BisInspAllNode unitNode = new BisInspAllNode(); unitNode.setId(unit.getId()); unitNode.setPnm(unit.getNm()); unitNode.setObjId(unit.getObjId()); unitNode.setPid(section.getId()); unitNode.setNature(unit.getNature()); unitNode.setLevel("3"); unitNode.setNature(unit.getNature()); section.getChildren().add(unitNode); } } @Override public Object findObjListByType(TypeParam typeParam) { return this.bisInspKeychkqhRegisterDao.findPageList(typeParam); } }