package com.nanometer.smartlab.controller; import com.nanometer.smartlab.entity.BaseMeta; import com.nanometer.smartlab.entity.EncodeReplaceDict; import com.nanometer.smartlab.entity.SysUser; import com.nanometer.smartlab.entity.enumtype.ReplaceDictType; import com.nanometer.smartlab.entity.enumtype.ValidFlag; import com.nanometer.smartlab.service.BaseMetaService; import com.nanometer.smartlab.service.EncodeReplaceDictService; import com.nanometer.smartlab.util.FacesUtils; import org.apache.log4j.Logger; import org.primefaces.context.RequestContext; import org.primefaces.model.LazyDataModel; import org.primefaces.model.SortOrder; import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Controller; import javax.annotation.Resource; import java.util.*; @Controller @Scope("session") public class EncodeReplaceDictController extends BaseController{ private static Logger logger = Logger.getLogger(EncodeReplaceDictController.class); @Resource private EncodeReplaceDictService encodeReplaceDictService; @Resource private BaseMetaService baseMetaService; private LazyDataModel dataModel; private boolean isSearch; //加了以防 private EncodeReplaceDict encodeReplaceDict = new EncodeReplaceDict(); private EncodeReplaceDict encodeReplaceDictFilter = new EncodeReplaceDict(); private EncodeReplaceDict selectOne; private List list; public LazyDataModel getDataModel() { if (this.dataModel == null) { this.dataModel = new LazyDataModel() { public List load (int first, int pageSize, String sortField, SortOrder sortOrder, Map filters) { List list = null; try { int pageCount = encodeReplaceDictService.countAll(encodeReplaceDictFilter); this.setRowCount(pageCount); if (pageCount > 0) list = encodeReplaceDictService.selectAll(encodeReplaceDictFilter, isSearch ? 0 : first, pageSize); //查询更换模式 if (isSearch) { isSearch = false; } selectOne = null; } catch (Exception e) { logger.error("error occured.", e); } return list; } @Override public EncodeReplaceDict getRowData(String rowKey) { // Iterator iterator = this.iterator(); // EncodeReplaceDict su = null; // while (iterator.hasNext()) { // su = iterator.next(); // if ( su.getId().equals(Long.parseLong(rowKey))) { // return su; // } // } return encodeReplaceDictService.getOne(Long.parseLong(rowKey)); } }; } return dataModel; } //新建 public void onNewBtnClick() { this.encodeReplaceDict = new EncodeReplaceDict(); } //编辑 public void onEditBtnClick() { if (this.selectOne == null) { FacesUtils.warn("请选择数据"); } else { this.encodeReplaceDict = selectOne; RequestContext.getCurrentInstance().execute("PF('dialog').show()"); } } //删除 public void onDeleteBtnClick() { if (this.selectOne == null) { FacesUtils.warn("请选择数据"); } else { encodeReplaceDictService.deleteOne(selectOne.getId()); ReplaceDictType type = selectOne.getType(); String groupId = "encode_replace_" + type.getKey(); BaseMeta baseMeta = baseMetaService.getBaseMeta(groupId, selectOne.getNumber(),null); baseMetaService.deleteBaseMeta(Collections.singletonList(baseMeta.getId())); FacesUtils.info("删除成功"); } } //保存 public void onSaveBtnClick(){ try { if (encodeReplaceDict.getId() == null) { //新增 //校验实体 encodeReplaceDictService.checkAddOne(encodeReplaceDict); encodeReplaceDictService.addOne(encodeReplaceDict, getUser()); BaseMeta baseMeta = new BaseMeta(); baseMeta.setMetaKey(encodeReplaceDict.getNumber()); baseMeta.setMetaValue(encodeReplaceDict.getInfo()); ReplaceDictType type = encodeReplaceDict.getType(); String groupCode = "encode_replace_" + type.getKey(); baseMeta.setGroupCode(groupCode); baseMetaService.insertBaseMeta(baseMeta); } else { //更新 //校验实体 encodeReplaceDictService.checkUpdateOne(encodeReplaceDict); //更新前拿出baseMeta EncodeReplaceDict originData = encodeReplaceDictService.getOne(encodeReplaceDict.getId()); ReplaceDictType type = originData.getType(); String groupCode = "encode_replace_" + type.getKey(); BaseMeta baseMeta = baseMetaService.getBaseMeta(groupCode, originData.getNumber(),null); baseMeta.setMetaKey(encodeReplaceDict.getNumber()); baseMeta.setMetaValue(encodeReplaceDict.getInfo()); baseMeta.setGroupCode("encode_replace_" + encodeReplaceDict.getType().getKey()); baseMeta.setValidFlag(ValidFlag.VALID); baseMetaService.updateBaseMeta(baseMeta); encodeReplaceDictService.updateOne(encodeReplaceDict); } FacesUtils.info("操作成功"); }catch (Exception e){ e.printStackTrace(); FacesUtils.warn(e.getMessage()); }finally { RequestContext.getCurrentInstance().execute("PF('dialog').hide()"); } } //导入 public void importByExcel() { } public void modelChange() { this.isSearch = true; } public EncodeReplaceDict getEncodeReplaceDictFilter() { return encodeReplaceDictFilter; } public void setEncodeReplaceDictFilter(EncodeReplaceDict encodeReplaceDictFilter) { this.encodeReplaceDictFilter = encodeReplaceDictFilter; } public EncodeReplaceDict getSelectOne() { return selectOne; } public void setSelectOne(EncodeReplaceDict selectOne) { this.selectOne = selectOne; } public EncodeReplaceDict getEncodeReplaceDict() { return encodeReplaceDict; } public void setEncodeReplaceDict(EncodeReplaceDict encodeReplaceDict) { this.encodeReplaceDict = encodeReplaceDict; } public void setList(List list) { this.list = list; } public List getList() { return new ArrayList<>(Arrays.asList(ReplaceDictType.values())); } }