package com.vci.rmip.code.client.codeapply.Apply410; import com.alibaba.cloud.commons.lang.StringUtils; import com.alibaba.fastjson.JSONObject; import com.vci.base.ui.swing.VCIOptionPane; import com.vci.base.ui.swing.components.VCIJComboBox; import com.vci.rmip.code.client.codeapply.Apply410.object.CodeClassify; import com.vci.rmip.code.client.codeapply.Apply410.object.R; import com.vci.ubcs.code.dto.CodeOrderDTO; import com.vci.ubcs.code.dto.CodeOrderSecDTO; import com.vci.ubcs.code.vo.pagemodel.CodeClassifyTemplateVO; import com.vci.ubcs.code.vo.pagemodel.CodeRuleVO; import com.vci.rmip.code.client.codeapply.Apply410.utils.ConfigUtils; import com.vci.rmip.code.client.codeapply.Apply410.utils.HttpUtil; import com.vci.ubcs.starter.web.pagemodel.KeyValue; import org.apache.commons.collections4.CollectionUtils; import javax.swing.*; import javax.swing.text.JTextComponent; import java.awt.event.ActionEvent; import java.util.*; public class CodeApplyPanelFor410ActionListener extends CommonActionListener { private CodeApplyPanelFor410 owner = null; private LinkedHashMap actionMaps = new LinkedHashMap(); boolean codeAlreadExist = false; private String url= ConfigUtils.getConfigValue("410.code.url","http://127.0.0.1:36014/codeApplySwingController"); private String classifyGroupCode= ConfigUtils.getConfigValue("410.code.codeApply.classifyGroupCode"); public CodeApplyPanelFor410ActionListener(CodeApplyPanelFor410 owner){ this.owner = owner; this.initActionMap(); } @Override public void initActionMap(){ actionMaps.put("batchApply", new Runnable() { public void run() { //batchApply();//批量导入申请代码 }}); actionMaps.put("apply", new Runnable() { public void run() { apply();//码值申请 }}); actionMaps.put("btnSearch", new Runnable() { public void run() { search();//代码查询 }}); actionMaps.put("clear", new Runnable() { public void run() { clear();//清空属性 }}); } @Override public void actionPerformed(ActionEvent e) { String key = e.getActionCommand(); if(actionMaps.containsKey(key)){ actionMaps.get(key).run(); } } private void apply() { codeAlreadExist = false; if(null == this.owner.getTransmitTreeObject().getCurrentTreeNode()) { return; } CodeClassify codeClassify = (CodeClassify) this.owner.getTransmitTreeObject().getCurrentTreeNode().getObj(); if(codeClassify == null || "".equals(codeClassify.getOid())){ VCIOptionPane.showMessage(this.owner, "请选择编码项分类!"); return; } CodeClassifyTemplateVO codeClassifyTemplateVO = this.owner.getCurrentCodeClassifyTemplateVO(); if(codeClassifyTemplateVO!=null&&"".equals(codeClassifyTemplateVO.getOid())) { VCIOptionPane.showMessageDialog(this.owner, "代码项没有配置模板,不允许申请!"); return; } CodeRuleVO codeRuleVO= this.owner.getRightMainPanel().getCodeRuleVO(); /**选择的分类是否包含规则的校验**/ if(codeRuleVO==null||"".equals(codeRuleVO.getOid())) { VCIOptionPane.showMessage(this.owner, "分类:" + codeClassify.getName() + " 没有包含规则,无法申请!"); return; } //校验规则是否填写合格 if(!this.owner.getRightMainPanel().checkIsAllowed()) { return; } // 检查模板各属性的输入值是否满足要求 String[][] inputValues = this.owner.getRightMainPanel().checkInputValues(); //获取属性名称和值的集合 Map attrNameAndValMap = getAttrMap(inputValues); String[] fields = inputValues[0]; String[] values = inputValues[1]; String[] dataTypes = inputValues[2]; String[] outNames = inputValues[3]; Map dataMap=new HashMap<>(); for (int i=0;i keyValueList= this.owner.getRightMainPanel().getSectionValues(); if(CollectionUtils.isEmpty(keyValueList)){ VCIOptionPane.showMessage(this.owner, "分类:" + codeClassify.getName() + " 没有获取规则码段选择值信息,无法申请!"); return; } CodeOrderDTO codeOrderDTO=new CodeOrderDTO(); /**系统只加载代码项 如果libName不为空,直接获取对应的代码项**/ codeOrderDTO.setCodeClassifyOid(codeClassify.getOid()); codeOrderDTO.setTemplateOid(codeClassifyTemplateVO.getOid()); codeOrderDTO.setCodeRuleOid(codeRuleVO.getOid()); List secDTOList=new ArrayList<>(); for (KeyValue keyValue : keyValueList) { CodeOrderSecDTO codeOrderSecDTO=new CodeOrderSecDTO(); codeOrderSecDTO.setSecOid(keyValue.getKey()); codeOrderSecDTO.setSecValue(keyValue.getValue()); secDTOList.add(codeOrderSecDTO); } codeOrderDTO.setLcStatus("Released"); codeOrderDTO.setSecDTOList(secDTOList); codeOrderDTO.setData(dataMap); Object object = JSONObject.toJSON(codeOrderDTO); Map headerMap=new HashMap<>(); headerMap.put("content-type","application/json"); headerMap.put("Blade-Auth",this.owner.getTokenUserObject().getAccess_token()); String code=""; //校验关键属性存在的数据直接返回编码 R checkKeyAttrOnOrderR= HttpUtil.sendPost(url+"/checkKeyAttrOnOrderFordatas",object.toString(),headerMap); //查询当前申请编码的类型 R checkGroupCode= HttpUtil.sendGet(url+"/checkGroupCode?oid="+codeClassify.getOid()+ "&classifyGroupCode="+classifyGroupCode,null,headerMap); if(checkKeyAttrOnOrderR.isSuccess()){ List list=(List)checkKeyAttrOnOrderR.getData(); if(!CollectionUtils.isEmpty(list)) { code=list.get(0).get("ID")!=null?list.get(0).get("ID").toString():""; this.owner.setApplyCode(code); this.owner.getApplyTxt().requestFocusInWindow(); this.owner.getApplyTxt().selectAll(); this.owner.setAttrNameAndValMap(attrNameAndValMap); if(checkGroupCode.isSuccess()){ if(checkGroupCode.getData().equals("true")){ VCIOptionPane.showMessage(this.owner, "当前分类的企业编码为:"+list.get(0).get("GROUPCODE")); }else{ VCIOptionPane.showMessage(this.owner, "当前编码分类未找到相应的集团,请检查!!"); } }else { VCIOptionPane.showMessage(this.owner, "远程调用失败,请重试!"); } return; } } R r= HttpUtil.sendPost(url+"/addSaveCode",object.toString(),headerMap); if(r.isSuccess()){ code=r.getData().toString(); this.owner.setApplyCode(code); this.owner.getApplyTxt().requestFocusInWindow(); this.owner.getApplyTxt().selectAll(); this.owner.setAttrNameAndValMap(attrNameAndValMap); }else{ VCIOptionPane.showMessage(this.owner,r.getMsg()); } if(checkGroupCode.isSuccess()){ if(checkGroupCode.getData().equals("false")){ Map applyMap = new HashMap<>(); applyMap.put("oids",codeClassify.getOid()); applyMap.put("btmName",codeClassify.getBtmname()); Object applyGroupCodeData = JSONObject.toJSON(applyMap); R applyResult= HttpUtil.sendPost(url+"/DockingPreApplyCode/applyGroupCode",applyGroupCodeData.toString(),headerMap); if(!applyResult.isSuccess()){ VCIOptionPane.showMessage(this.owner, "集团码申请失败,"+r.getMsg()); }else{ VCIOptionPane.showMessage(this.owner, "保存数据成功,等待集团码申请!"); } } }else { VCIOptionPane.showMessage(this.owner, "远程调用失败,请注意!"); } } private Map getAttrMap(String[][] inputValues) { Map attrNameAndValMap = new LinkedHashMap(); String[] fields = inputValues[0]; String[] values = inputValues[1]; String[] outNames = inputValues[3]; for(int k = 0;k < fields.length;k++) { attrNameAndValMap.put(fields[k], values[k]);//属性内部名称 attrNameAndValMap.put(outNames[k], values[k]);//属性外部名称 } return attrNameAndValMap; } /*** * 清空属性 */ private void clear(){ CodeApplyFor410MainPanel rightMainPanel2 = this.owner.getRightMainPanel(); LinkedHashMap attrInnerNameToCtrlMaps = rightMainPanel2.getAttrInnerNameToCtrlMaps(); if(attrInnerNameToCtrlMaps!=null&&attrInnerNameToCtrlMaps.size()>0){ for(String key : attrInnerNameToCtrlMaps.keySet()){ JComponent component = attrInnerNameToCtrlMaps.get(key); if(component instanceof JTextComponent){ if(((JTextComponent) component).isEnabled()) ((JTextComponent) component).setText(""); }else if(component instanceof VCIJComboBox){ if(((VCIJComboBox) component).isEnabled()) ((VCIJComboBox) component).setSelectedIndex(0); } } } String applyCode = this.owner.getApplyCode(); if(StringUtils.isBlank(applyCode)) { this.owner.setApplyCode(""); } } /** * * 查询代码 */ private void search(){ if(null == this.owner.getRightMainPanel().getTransTreeObject().getCurrentTreeNode()) { return; } CodeClassify rmType = (CodeClassify) this.owner.getRightMainPanel().getTransTreeObject().getCurrentTreeNode().getObj(); if(rmType == null || "".equals(rmType.getId())){ VCIOptionPane.showMessage(this.owner, "请选择代码项分类!"); return; } CodeApplyFor410SearchDialog dialog = new CodeApplyFor410SearchDialog(this.owner); String str = dialog.getStr(); if (!str.equals("")) { owner.applyTxt.setText(str); } } }