فهرست منبع

南通大众NC65薪资开发

zthwr 1 هفته پیش
والد
کامیت
6a16839eb5

+ 20 - 0
hrwa/.classpath

@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="src" output="hrwa/classes" path="hrwa/src/public"/>
+	<classpathentry kind="src" output="hrwa/classes" path="hrwa/src/client"/>
+	<classpathentry kind="src" output="hrwa/classes" path="hrwa/src/private"/>
+	<classpathentry kind="src" output="hrwa/classes" path="hrwa/src/test"/>
+	<classpathentry kind="src" output="hrwa/classes" path="hrwa/resources"/>
+	<classpathentry kind="src" path="hr/src/public"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+	<classpathentry kind="con" path="com.yonyou.studio.udt.core.container/Ant_Library"/>
+	<classpathentry kind="con" path="com.yonyou.studio.udt.core.container/Product_Common_Library"/>
+	<classpathentry kind="con" path="com.yonyou.studio.udt.core.container/Middleware_Library"/>
+	<classpathentry kind="con" path="com.yonyou.studio.udt.core.container/Framework_Library"/>
+	<classpathentry kind="con" path="com.yonyou.studio.udt.core.container/Module_Public_Library"/>
+	<classpathentry kind="con" path="com.yonyou.studio.udt.core.container/Module_Client_Library"/>
+	<classpathentry kind="con" path="com.yonyou.studio.udt.core.container/Module_Private_Library"/>
+	<classpathentry kind="con" path="com.yonyou.studio.udt.core.container/Module_Lang_Library"/>
+	<classpathentry kind="con" path="com.yonyou.studio.udt.core.container/Generated_EJB"/>
+	<classpathentry kind="output" path="bin"/>
+</classpath>

+ 29 - 0
hrwa/.project

@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>hrwa</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>com.yonyou.studio.udt.core.builder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>com.yonyou.ria.g2.riabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+		<nature>com.yonyou.studio.udt.core.nature</nature>
+		<nature>com.yonyou.ria.g2.rianature</nature>
+	</natures>
+</projectDescription>

BIN
hrwa/bin/nc/bs/hr/gy_zsgl/plugin/Base64Util.class


BIN
hrwa/bin/nc/bs/hr/gy_zsgl/plugin/MD5Util.class


BIN
hrwa/bin/nc/bs/hr/gy_zsgl/plugin/SmsRequest.class


BIN
hrwa/bin/nc/bs/hr/gy_zsgl/plugin/SmsResponse.class


BIN
hrwa/hrwa/classes/nc/impl/hrwa/SendYDUtil.class


BIN
hrwa/hrwa/classes/nc/itf/hrwa/IPaydataMaintain.class


BIN
hrwa/hrwa/classes/nc/jeecg/common/util/HttpHelper.class


BIN
hrwa/hrwa/classes/nc/ui/wa/paydata/Paydata_Config.class


BIN
hrwa/hrwa/classes/nc/ui/wa/paydata/action/ImportXlsAction.class


BIN
hrwa/hrwa/classes/nc/ui/wa/paydata/action/SalarySendAction.class


BIN
hrwa/hrwa/classes/nc/ui/wa/paydata/action/SalarySendAction备份.class


+ 567 - 0
hrwa/hrwa/src/client/nc/ui/wa/paydata/action/SalarySendAction备份.java

@@ -0,0 +1,567 @@
+package nc.ui.wa.paydata.action;
+
+import java.awt.event.ActionEvent;
+import java.io.BufferedReader;
+import java.io.InputStreamReader;
+import java.io.OutputStream;
+import java.net.HttpURLConnection;
+import java.net.URL;
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import nc.bs.framework.common.NCLocator;
+import nc.bs.hr.gy_zsgl.plugin.Base64Util;
+import nc.bs.hr.gy_zsgl.plugin.MD5Util;
+import nc.bs.hr.gy_zsgl.plugin.SmsRequest;
+import nc.bs.hr.gy_zsgl.plugin.SmsResponse;
+import nc.itf.bd.psn.psndoc.IPsndocQueryService;
+import nc.itf.uap.IUAPQueryBS;
+import nc.jdbc.framework.processor.ArrayListProcessor;
+import nc.jdbc.framework.processor.ColumnProcessor;
+import nc.pub.templet.converter.util.helper.ExceptionUtils;
+import nc.ui.pub.beans.MessageDialog;
+import nc.ui.uif2.model.AbstractUIAppModel;
+import nc.ui.wa.paydata.model.PaydataModelDataManager;
+import nc.ui.wa.paydata.view.PaydataInfoEditor;
+import nc.ui.wa.pub.WaOrgHeadPanel;
+import nc.vo.bd.psn.PsndocVO;
+import nc.vo.jcom.lang.StringUtil;
+import nc.vo.pub.BusinessException;
+import nc.vo.pub.lang.UFDouble;
+import nc.vo.wa.paydata.DataVO;
+
+public class SalarySendAction备份 extends PayDataBaseAction{
+	
+	/**
+	 * 薪资发送按钮
+	 * 发送短信给员工
+	 */
+	private static final long serialVersionUID = -2837557144503329323L;
+
+	
+	private PaydataInfoEditor editorModel;
+	
+	protected AbstractUIAppModel model;
+
+	private WaOrgHeadPanel orgpanel = null;
+	
+	private PaydataModelDataManager dataManager = null;
+	
+	private String[] parms0103={"岗位工资","效益奖","综合补贴","年功工资","职称补贴","中夜班费","满勤奖",
+			"加班费","考核奖","安全文明行风奖","房贴","扣款","应得工资","失业","养老","医保","公积金","年金",
+			"本期税额","会费","互助金","其它扣款","实得工资"};//大众燃气本部工资短信提醒  5f5a313d92a545fe87d95cd1358db1bd
+	
+	private String[] parms010304={"岗位工资","效益奖","综合补贴","年功工资","职称补贴","中夜班费","满勤奖",
+			"加班费","值班费","考核奖","安全文明行风奖","房贴","扣款","应得工资","失业","养老","医保","公积金","年金",
+			"本期税额","会费","互助金","其它扣款","实得工资"};//南通开发区大众燃气工资短信提醒 de0302949ac443a4be7727b490d7e9ca
+	
+	private String[] parms010301={"岗位工资","效益奖","综合补贴","年功工资","职称补贴","中夜班费","满勤奖",
+			"加班费","考核奖","安全文明行风奖","房贴","扣款","应得工资","失业","养老","医保","公积金","年金",
+			"本期税额","会费","互助金","其它扣款","实得工资"};//燃气设备公司工资短信提醒 487e12e853fc438bb6d623848a804003
+	
+	private String[] parmsNT08={"岗位工资","效益奖","综合补贴","年功工资","职称补贴","满勤奖",
+			"加班费","安全文明行风奖","房贴","考核奖","行风奖","安全奖","亮点奖","保供奖","高温费","应得工资","失业",
+			"养老","医保","公积金","会费","互助金","实得工资"};//大众燃气设计室工资短信提醒 1dbbd7070af14a1faa930b9e96d87281
+	
+	private String[] parms0103NT05={"劳务费","效益奖","中夜班费","满勤奖","加班费","其它补贴","考核奖","行风奖",
+			"安全奖","亮点奖","保供奖","高温费","年度效益奖","病事假","应得工资","失业","养老","医保","公积金","会费",
+			"互助金","实得工资"};//大众燃气本部劳务工资短信提醒  e283141eed90470eb156527d8fd4b4d0
+	
+	private String[] parms010302={"岗位工资","效益奖","综合补贴","年功工资","职称补贴","中夜班费","满勤奖",
+			"加班费","其它补贴","考核奖","安全文明行风奖","房贴","扣款","应得工资","失业","养老","医保","公积金","年金",
+			"本期税额","会费","互助金","其它扣款","实得工资"};//安装工程公司工资短信提醒  369f9348418f4587a30b74e0fa4fa5d8
+	
+    private IUAPQueryBS iuap = null;
+	
+	public IUAPQueryBS getIuapBs(){
+		if(null==iuap){
+			iuap = (IUAPQueryBS) NCLocator.getInstance().lookup(IUAPQueryBS.class.getName());
+		}
+		
+		return iuap;
+		
+	}
+	
+	
+	 private IPsndocQueryService ipsndocqs = null;
+	 
+	 public IPsndocQueryService getIpsndocQueryService(){
+		 
+		 if(null==ipsndocqs){
+			 ipsndocqs =  (IPsndocQueryService) NCLocator.getInstance().lookup(IPsndocQueryService.class.getName());
+			}
+			
+			return ipsndocqs;
+		 
+	 }
+	 
+	 
+	
+	
+	
+	//移动发送短信模板接口
+	final String  API_URL="http://112.35.1.155:1992/sms/tmpsubmit";
+	
+	public PaydataModelDataManager getDataManager() {
+		return dataManager;
+	}
+
+	public void setDataManager(PaydataModelDataManager dataManager) {
+		this.dataManager = dataManager;
+	}
+	
+	public WaOrgHeadPanel getOrgpanel() {
+		return orgpanel;
+	}
+
+	public void setOrgpanel(WaOrgHeadPanel orgpanel) {
+		this.orgpanel = orgpanel;
+	}
+
+	public AbstractUIAppModel getModel() {
+		return model;
+	}
+
+	public void setModel(AbstractUIAppModel arapBillCardForm) {
+		this.model = arapBillCardForm;
+	}
+
+	public PaydataInfoEditor getEditorModel() {
+		return editorModel;
+	}
+
+	public void setEditorModel(PaydataInfoEditor paydataInfoEditor) {
+		this.editorModel = paydataInfoEditor;
+	}
+	
+	
+	public SalarySendAction备份() {
+		super.setBtnName("薪资发送");
+		super.setCode("salarysendAction");
+	}
+	
+	
+	@Override
+	public void doAction(ActionEvent e) throws Exception {
+		String waPeriod = getOrgpanel().getWaPeriodRefPane().getRefPK();
+		String pkWaclass =  getOrgpanel().getWaClassRefPane().getRefPK();
+		String pkOrg =  getOrgpanel().getRefPane().getRefPK();
+		if(StringUtil.isEmpty(pkOrg)){
+			ExceptionUtils.wrapException(new Exception("人力资源组织为空,请选择!"));
+		}else if(StringUtil.isEmpty(pkWaclass)){
+			ExceptionUtils.wrapException(new Exception("薪资方案为空,请选择!"));
+		}else if(StringUtil.isEmpty(waPeriod)){
+			ExceptionUtils.wrapException(new Exception("薪资期间为空,请选择!"));
+		}
+		
+		String value =getSysinntValue();//参数控制短信接收的人,用于前期测试用
+		
+		//取年份
+		String cyear = waPeriod.substring(0, 4);
+		//取月份
+		String cperiod = waPeriod.substring(4, 6);
+		
+		String ym=cyear+"-"+cperiod;
+		
+		List<DataVO>  datasvos=  getDataManager().getPaydataModel().getData();
+		
+		if(null==datasvos ||  datasvos.size()==0){
+			
+			ExceptionUtils.wrapException(new Exception("没有获取到需要发送短信的数据,请检查!"));
+			
+		}
+		
+		Map<String,PsndocVO> psndocMap= getPsndocvoMap(datasvos);//key:人员主键  value:人员VO 
+		
+		Map<String,String> classItemMap = getClassItem(pkOrg, pkWaclass, waPeriod);
+		
+		for(DataVO datasvo : datasvos){
+			
+			String  gwgz=classItemMap.get("岗位工资");
+			String  jxj= classItemMap.get("效益奖");
+			String  zhbt=classItemMap.get("综合补贴");
+			String  nggz=classItemMap.get("年功工资");
+			String  zcbw=classItemMap.get("职称补贴");
+			String  zybf=classItemMap.get("中夜班费");
+			String  mqj= classItemMap.get("满勤奖");
+			String  jbf= classItemMap.get("加班费");
+			String  khj= classItemMap.get("考核奖");
+			String  aqwmxfj=classItemMap.get("安全文明行风奖");
+			String  ft=  classItemMap.get("房贴");
+			String  kk=  classItemMap.get("扣款");
+			String  ydgz=classItemMap.get("应得工资");
+			String  sy=  classItemMap.get("失业");
+			String  yl=  classItemMap.get("养老");
+			String  yb=  classItemMap.get("医保");
+			String  gjj= classItemMap.get("公积金");
+			String  nj=  classItemMap.get("年金");
+			String  bqse=classItemMap.get("本期税额");
+			String  hf=  classItemMap.get("会费");
+			String  hzj= classItemMap.get("互助金");
+			String  qtkk=classItemMap.get("其它扣款");
+			String  sdgz=classItemMap.get("实得工资");
+			
+			
+			String  gwgzcode=new UFDouble(datasvo.getAttributeValue(gwgz).toString()).setScale(2, UFDouble.ROUND_HALF_UP).toString();
+			String  jxjcode= new UFDouble(datasvo.getAttributeValue(jxj).toString()).setScale(2, UFDouble.ROUND_HALF_UP).toString();
+			String  zhbtcode=new UFDouble(datasvo.getAttributeValue(zhbt).toString()).setScale(2, UFDouble.ROUND_HALF_UP).toString();
+			String  nggzcode=new UFDouble(datasvo.getAttributeValue(nggz).toString()).setScale(2, UFDouble.ROUND_HALF_UP).toString();
+			String  zcbwcode=new UFDouble(datasvo.getAttributeValue(zcbw).toString()).setScale(2, UFDouble.ROUND_HALF_UP).toString();
+			String  zybfcode=new UFDouble(datasvo.getAttributeValue(zybf).toString()).setScale(2, UFDouble.ROUND_HALF_UP).toString();
+			String  mqjcode= new UFDouble(datasvo.getAttributeValue(mqj).toString()).setScale(2, UFDouble.ROUND_HALF_UP).toString();
+			String  jbfcode= new UFDouble(datasvo.getAttributeValue(jbf).toString()).setScale(2, UFDouble.ROUND_HALF_UP).toString();
+			String  khjcode= new UFDouble(datasvo.getAttributeValue(khj).toString()).setScale(2, UFDouble.ROUND_HALF_UP).toString();
+			String  aqwmxfjcode=new UFDouble(datasvo.getAttributeValue(aqwmxfj).toString()).setScale(2, UFDouble.ROUND_HALF_UP).toString();
+			String  ftcode=  new UFDouble(datasvo.getAttributeValue(ft).toString()).setScale(2, UFDouble.ROUND_HALF_UP).toString();
+			String  kkcode=  new UFDouble(datasvo.getAttributeValue(kk).toString()).setScale(2, UFDouble.ROUND_HALF_UP).toString();
+			String  ydgzcode=new UFDouble(datasvo.getAttributeValue(ydgz).toString()).setScale(2, UFDouble.ROUND_HALF_UP).toString();
+			String  sycode=  new UFDouble(datasvo.getAttributeValue(sy).toString()).setScale(2, UFDouble.ROUND_HALF_UP).toString();
+			String  ylcode=  new UFDouble(datasvo.getAttributeValue(yl).toString()).setScale(2, UFDouble.ROUND_HALF_UP).toString();
+			String  ybcode=  new UFDouble(datasvo.getAttributeValue(yb).toString()).setScale(2, UFDouble.ROUND_HALF_UP).toString();
+			String  gjjcode= new UFDouble(datasvo.getAttributeValue(gjj).toString()).setScale(2, UFDouble.ROUND_HALF_UP).toString();
+			String  njcode=  new UFDouble(datasvo.getAttributeValue(nj).toString()).setScale(2, UFDouble.ROUND_HALF_UP).toString();
+			String  bqsecode=new UFDouble(datasvo.getAttributeValue(bqse).toString()).setScale(2, UFDouble.ROUND_HALF_UP).toString();
+			String  hfcode=  new UFDouble(datasvo.getAttributeValue(hf).toString()).setScale(2, UFDouble.ROUND_HALF_UP).toString();
+			String  hzjcode= new UFDouble(datasvo.getAttributeValue(hzj).toString()).setScale(2, UFDouble.ROUND_HALF_UP).toString();
+			String  qtkkcode=new UFDouble(datasvo.getAttributeValue(qtkk).toString()).setScale(2, UFDouble.ROUND_HALF_UP).toString();
+			String  sdgzcode=new UFDouble(datasvo.getAttributeValue(sdgz).toString()).setScale(2, UFDouble.ROUND_HALF_UP).toString();
+			
+			
+			 // 准备请求参数
+	        SmsRequest request = new SmsRequest();
+	        request.setEcName("南通大众燃气有限公司");//集团客户名称
+	        request.setApId("yecai");//用户名
+	        request.setSecretKey("Nt_cw968007");//密码
+	        request.setTemplateId("5f5a313d92a545fe87d95cd1358db1bd");//模版ID
+	        String  mobile=psndocMap.get(datasvo.getPk_psndoc()).getMobile();
+	        if(null==mobile ||
+	        		"".equals(mobile)){
+	        	throw new BusinessException("短信发送失败,"+psndocMap.get(datasvo.getPk_psndoc()).getName()+",没有维护手机号!");
+	        }
+	        request.setMobiles(value.length()>0?value:mobile);//手机号码
+	        List<String> params = new ArrayList<String>();
+	        params.add(psndocMap.get(datasvo.getPk_psndoc()).getName());//姓名
+	        params.add(convertToChineseDate(ym));//年月
+	        params.add(gwgzcode); //岗位工资
+	        params.add(jxjcode);
+	        params.add(zhbtcode);
+	        params.add(nggzcode);
+	        params.add(zcbwcode);
+	        params.add(zybfcode);
+	        params.add(mqjcode);
+	        params.add(jbfcode);
+	        params.add(khjcode);
+	        params.add(aqwmxfjcode);
+	        params.add(ftcode);
+	        params.add(kkcode);
+	        params.add(ydgzcode);
+	        params.add(sycode);
+	        params.add(ylcode);
+	        params.add(ybcode);
+	        params.add(gjjcode);
+	        params.add(njcode);
+	        params.add(bqsecode);
+	        params.add(hfcode);
+	        params.add(hzjcode);
+	        params.add(qtkkcode);
+	        params.add(sdgzcode);
+	        request.setParams(params);
+
+	        //用于Mac,MD5加密
+	        List<String> macparamslis = new ArrayList<String>();
+	        macparamslis.add("\"" + psndocMap.get(datasvo.getPk_psndoc()).getName() + "\"");
+	        macparamslis.add("\"" + convertToChineseDate(ym) + "\"");
+	        macparamslis.add("\"" +gwgzcode+ "\""); //岗位工资
+	        macparamslis.add("\"" +jxjcode+ "\"");
+	        macparamslis.add("\"" +zhbtcode+ "\"");
+	        macparamslis.add("\"" +nggzcode+ "\"");
+	        macparamslis.add("\"" +zcbwcode+ "\"");
+	        macparamslis.add("\"" +zybfcode+ "\"");
+	        macparamslis.add("\"" +mqjcode+ "\"");
+	        macparamslis.add("\"" +jbfcode+ "\"");
+	        macparamslis.add("\"" +khjcode+ "\"");
+	        macparamslis.add("\"" +aqwmxfjcode+ "\"");
+	        macparamslis.add("\"" +ftcode+ "\"");
+	        macparamslis.add("\"" +kkcode+ "\"");
+	        macparamslis.add("\"" +ydgzcode+ "\"");
+	        macparamslis.add("\"" +sycode+ "\"");
+	        macparamslis.add("\"" +ylcode+ "\"");
+	        macparamslis.add("\"" +ybcode+ "\"");
+	        macparamslis.add("\"" +gjjcode+ "\"");
+	        macparamslis.add("\"" +njcode+ "\"");
+	        macparamslis.add("\"" +bqsecode+ "\"");
+	        macparamslis.add("\"" +hfcode+ "\"");
+	        macparamslis.add("\"" +hzjcode+ "\"");
+	        macparamslis.add("\"" +qtkkcode+ "\"");
+	        macparamslis.add("\"" +sdgzcode+ "\"");
+	        
+	        // 自定义输出,去掉逗号后的空格
+	        StringBuilder sb = new StringBuilder();
+	        sb.append("[");
+	        for (int i = 0; i < macparamslis.size(); i++) {
+	            if (i > 0) {
+	                sb.append(","); // 只加逗号,不加空格
+	            }
+	            sb.append(macparamslis.get(i));
+	        }
+	        sb.append("]");
+	        request.setMacparams(sb.toString());//["参数一","参数二"] 格式
+	        request.setSign("gF211Wxv6");//网关签名编码
+	        request.setAddSerial("");//扩展码
+	        
+	        StringBuffer  stringBuffer=new StringBuffer();
+	        stringBuffer.append(request.getEcName());
+	        stringBuffer.append(request.getApId());
+	        stringBuffer.append(request.getSecretKey());
+	        stringBuffer.append(request.getTemplateId());
+	        stringBuffer.append(request.getMobiles());
+	        stringBuffer.append(request.getMacparams());
+	        stringBuffer.append(request.getSign());
+	        
+	        // 使用MD5哈希值作为mac字段
+	        request.setMac(MD5Util.md5(stringBuffer.toString()));//API输入参数签名结果,签名算法:将ecName,apId,secretKey,templateId,mobiles,params,sign,addSerial按照顺序拼接,然后通过md5(32位小写)计算后得出的值
+	        
+	        // 发送短信
+	        SmsResponse response = sendSms(request);
+	        
+	        
+	        if (response.isSuccess()) {
+	        	
+	        } else {
+	        	 // 处理特定错误码
+	            if ("NOT_WHITE_IP".equals(response.getRspcod())) {
+	            	ExceptionUtils.wrapException(new Exception("错误原因: IP地址未在白名单中,请联系管理员添加IP白名单!"));
+	            }
+	            
+	             throw new BusinessException("短信发送失败,错误码: " + response.getRspcod());
+	             
+	        }
+			
+			
+		}
+		
+		MessageDialog.showHintDlg(getEntranceUI(), "提示", "薪资发送成功!");
+	}
+	
+	
+	
+	/**
+	 * 获取薪资发放项目对应的列
+	 * @param pkOrg 组织
+	 * @param pkWaclass 薪资方案
+	 * @param waPeriod 年月期间
+	 * @return
+	 * @throws Exception
+	 */
+	private Map<String,String> getClassItem(String pkOrg, String pkWaclass, String waPeriod) throws Exception{
+		//取年份
+		String cyear = waPeriod.substring(0, 4);
+		//取月份
+		String cperiod = waPeriod.substring(4, 6);
+		StringBuffer sql = new StringBuffer();
+		sql.append(" SELECT");
+		sql.append(" name,");
+		sql.append(" itemkey");
+		sql.append(" FROM ");
+		sql.append(" wa_classitem");
+		sql.append(" WHERE");
+		sql.append(" pk_org = '"+pkOrg+"'");
+		sql.append(" AND pk_wa_class = '"+pkWaclass+"'");
+		sql.append(" AND cyear = '"+cyear+"' AND cperiod = '"+cperiod+"'");
+		List<Object[]> list = (List<Object[]>) getIuapBs().executeQuery(sql.toString(), new ArrayListProcessor());
+		Map<String,String> map = new HashMap<String,String>();
+		for (int i = 0; i < list.size(); i++) {
+			map.put(list.get(i)[0].toString(), list.get(i)[1].toString());
+		}
+		return map;
+	}
+	
+	
+	
+	
+	
+
+	private String[] getPsndocPks(List<DataVO>  datavos){
+		 
+		 String []  pk_psndocs=new String [datavos.size()];
+				 
+		 for(int i=0 ; i<datavos.size() ; i++){
+			 
+			 DataVO datavo=datavos.get(i);
+			 
+			 String pk_psndoc=datavo.getPk_psndoc();//人员主键
+			 
+			 pk_psndocs[i]=pk_psndoc;
+			 
+		 }
+		 
+		return pk_psndocs;
+		 
+	 }
+	
+	
+
+	 public static String convertToChineseDate(String dateStr) {
+       try {
+           SimpleDateFormat inputFormat = new SimpleDateFormat("yyyy-MM");
+           SimpleDateFormat outputFormat = new SimpleDateFormat("yyyy年MM月");
+           Date date = inputFormat.parse(dateStr);
+           return outputFormat.format(date);
+       } catch (Exception e) {
+           return dateStr; // 如果转换失败,返回原字符串
+       }
+   }
+	
+	
+	/**
+	 * key    人员主键
+	 * value  人员VO
+	 * @param datasvos
+	 * @return
+	 * @throws BusinessException
+	 */
+	
+	private Map<String,PsndocVO>  getPsndocvoMap(List<DataVO>  datasvos) throws BusinessException{
+		
+		Map<String, PsndocVO> mapMater = new HashMap<String, PsndocVO>();
+		
+		PsndocVO[] psndocVOs=getIpsndocQueryService().queryPsndocByPks(getPsndocPks(datasvos));//人员档案查询
+		
+		for (int i = 0; i < psndocVOs.length; i++) {
+			
+			mapMater.put(psndocVOs[i].getPrimaryKey(), psndocVOs[i]);
+			
+		}
+		return mapMater;
+		
+	}
+	
+	
+	
+	
+	
+	
+	
+	
+	
+	
+	
+	
+	
+	 /**
+      * 发送短信
+      * @param request 短信请求对象
+      * @return 发送结果
+      */
+     public  SmsResponse sendSms(SmsRequest request) {
+    	 HttpURLConnection connection = null;
+    	  try {
+              // 1. 创建URL对象
+              URL url = new URL(API_URL);
+              
+              // 2. 创建连接
+              connection = (HttpURLConnection) url.openConnection();
+              connection.setRequestMethod("POST");
+              connection.setRequestProperty("Content-Type", "application/json; charset=UTF-8");
+              connection.setRequestProperty("Accept", "application/json");
+              connection.setDoOutput(true);
+              connection.setConnectTimeout(5000);
+              connection.setReadTimeout(10000);
+              
+              // 3. 将请求对象转换为JSON字符串
+              String jsonInputString = request.toJsonString();
+              
+              // 4. Base64编码
+              String base64Encoded = Base64Util.encode(jsonInputString);
+              
+              // 5. 发送请求数据
+              OutputStream os = connection.getOutputStream();
+              try {
+                  byte[] input = base64Encoded.getBytes("UTF-8");
+                  os.write(input, 0, input.length);
+              } finally {
+                  if (os != null) {
+                      os.close();
+                  }
+              }
+              
+              // 6. 获取响应
+              int responseCode = connection.getResponseCode();
+              
+              if (responseCode == HttpURLConnection.HTTP_OK) {
+                  // 读取响应内容
+                  BufferedReader br = new BufferedReader(
+                      new InputStreamReader(connection.getInputStream(), "UTF-8"));
+                  try {
+                      StringBuilder response = new StringBuilder();
+                      String responseLine;
+                      while ((responseLine = br.readLine()) != null) {
+                          response.append(responseLine.trim());
+                      }
+                      
+                      // 解析响应JSON
+                      return SmsResponse.fromJson(response.toString());
+                  } finally {
+                      if (br != null) {
+                          br.close();
+                      }
+                  }
+              } else {
+                  // 处理错误响应
+                  SmsResponse errorResponse = new SmsResponse();
+                  errorResponse.setSuccess(false);
+                  errorResponse.setRspcod(String.valueOf(responseCode));
+                  errorResponse.setMsgGroup("");
+                  return errorResponse;
+              }
+              
+          } catch (Exception e) {
+              SmsResponse errorResponse = new SmsResponse();
+              errorResponse.setSuccess(false);
+              errorResponse.setRspcod("EXCEPTION");
+              errorResponse.setMsgGroup("");
+              return errorResponse;
+          } finally {
+              if (connection != null) {
+                  connection.disconnect();
+              }
+          }
+    	
+    }
+     
+     
+     
+ 	/*
+ 	 * 数据库查询
+ 	 */
+ 	private String getSysinntValue() throws Exception {
+ 		
+ 		String sql = "select value from pub_sysinit where initcode ='DX001'  and  dr=0  "   ;
+ 				
+ 		Object value = getIuapBs().executeQuery(sql, new ColumnProcessor());
+ 		
+ 		return value==null?"":value.toString();
+ 	}
+	
+	
+	
+	
+
+}
+
+
+
+
+
+
+
+
+
+
+
+
+