Kaynağa Gözat

社保同步U9相关

Timo 1 yıl önce
ebeveyn
işleme
5b4f3f43d9

+ 13 - 0
META-INF/hrbmToU9.upm

@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<module name="nc.itf.hr.wa.HRWAEJB">
+    <public>
+        <component priority="0" singleton="true" remote="true" tx="CMT" supportAlias="true">
+            <interface>nc.itf.hr.bm.bmdata.IBmdataSyncService</interface>
+            <implementation>nc.impl.bm.bmdata.BmdataSyncServiceImpl</implementation>
+        </component>
+        <component priority="0" singleton="true" remote="true" tx="CMT" supportAlias="true">
+            <interface>nc.itf.hr.bm.bmdata.IBmToU9LogService</interface>
+            <implementation>nc.impl.bm.bmdata.BmToU9LogServiceImpl</implementation>
+        </component>
+    </public>
+</module>

+ 6 - 0
META-INF/hrwaToU9.rest

@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding='gb2312'?>
+<module>
+        <rest>
+                <resource classname="nccloud.openapi.hrwa.WaToU9Resource"  exinfo="提供OA查询公共薪资项目接口"/>
+        </rest>
+</module>

+ 39 - 0
hrbm/src/client/nccloud/web/hrbm/bmdata/action/BmDataSyncToU9Action.java

@@ -0,0 +1,39 @@
+package nccloud.web.hrbm.bmdata.action;
+
+import nc.itf.hr.bm.bmdata.IBmdataSyncService;
+import nc.vo.bm.pub.BmLoginContext;
+import nccloud.framework.service.ServiceLocator;
+import nccloud.framework.web.container.IRequest;
+import nccloud.web.hr.pub.HRCommonAction;
+import nccloud.web.hrbm.helper.BmLoginContextUtils;
+import nccloud.web.uapbd.commons.web.ParamUtils;
+
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * 增加社保推送、公积金推送两个按钮
+ */
+public class BmDataSyncToU9Action extends HRCommonAction {
+    @Override
+    public <T> Object execute(IRequest request, T t) throws Exception {
+        Map<String,Object> res =new HashMap<>();
+        res.put("code",200);
+        ParamUtils param = new ParamUtils(request);
+        BmLoginContext loginContext = BmLoginContextUtils.getBmLoginContext(param);
+
+        String pk_org =  (String) param.get("pk_org");
+        String pk_bm_class =(String) param.get("pk_bm_class");
+        String cyear = (String) param.get("cyear");
+        String cperiod =(String) param.get("cperiod");
+        String provision =(String) param.get("provision"); // 计提确认  发放工资 和年终奖 传  确认    其他传  计提
+        String push_type =(String) param.get("push_type"); //"推送类型 "; 发放工资 预提工资 传 工资两个字      年终奖传年终奖三个字  社保传社保  公积金传公积金
+        // 根据方案期间 判断 是否已推送 且
+        IBmdataSyncService iBmdataSyncService = ServiceLocator.find(IBmdataSyncService.class);
+        iBmdataSyncService.pushToU9(loginContext.getPk_group(),pk_org, pk_bm_class, cyear, cperiod,push_type,provision);
+
+
+
+        return null;
+    }
+}

+ 8 - 0
hrbm/src/client/yyconfig/modules/hrbm/bmfile/config/action/bmsync.xml

@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
+<actions>
+  <action>
+		<name>hrbm.bmdata.BmDataSyncAction</name>
+		<label>薪资发放同步U9</label>
+		<clazz>nccloud.web.hrbm.bmdata.action.BmDataSyncToU9Action</clazz>
+	</action>
+</actions>

+ 9 - 0
hrbm/src/client/yyconfig/modules/hrbm/bmfile/config/authorize/bmsync_authorize.xml

@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
+<authorizes>
+	<authorize>
+		<appcode>*</appcode>
+		<actions>
+			<action>hrbm.bmdata.BmDataSyncAction</action>
+		</actions>
+	</authorize>
+</authorizes>

+ 35 - 0
hrbm/src/private/nc/impl/bm/bmdata/BmToU9LogServiceImpl.java

@@ -0,0 +1,35 @@
+package nc.impl.bm.bmdata;
+
+import nc.bs.dao.BaseDAO;
+import nc.bs.dao.DAOException;
+import nc.bs.logging.Logger;
+import nc.impl.hi.psndoc.PsndocDAO;
+import nc.itf.hr.bm.bmdata.IBmToU9LogService;
+import nc.vo.bm.sync.BmToU9LogHVO;
+import nc.vo.wa.erp.WaToU9LogHVO;
+
+public class BmToU9LogServiceImpl implements IBmToU9LogService {
+    public BaseDAO dao;
+    private PsndocDAO psndocDao;
+
+    public BaseDAO getBaseDAO() {
+        if (dao == null) {
+            dao = new BaseDAO();
+        }
+        return dao;
+    }
+
+    /**
+     * 插入日志
+     *
+     * @param bmToU9LogHVO
+     */
+    @Override
+    public void insertLog_RequiresNew(BmToU9LogHVO bmToU9LogHVO) {
+        try {
+            getBaseDAO().insertVO(bmToU9LogHVO);
+        } catch (DAOException e) {
+            Logger.error("====同步日志插入异常===" + e.getMessage());
+        }
+    }
+}

+ 194 - 0
hrbm/src/private/nc/impl/bm/bmdata/BmdataSyncServiceImpl.java

@@ -0,0 +1,194 @@
+package nc.impl.bm.bmdata;
+
+import com.alibaba.fastjson.JSONObject;
+import nc.bs.dao.BaseDAO;
+import nc.bs.framework.common.NCLocator;
+import nc.bs.framework.common.RuntimeEnv;
+import nc.bs.logging.Logger;
+import nc.itf.hr.bm.bmdata.IBmToU9LogService;
+import nc.itf.hr.bm.bmdata.IBmdataSyncService;
+import nc.itf.hr.wa.erp.IWaToU9LogService;
+import nc.jdbc.framework.processor.MapListProcessor;
+import nc.utils.AnxjHttpClient;
+import nc.utils.U9Interface;
+import nc.vo.bm.sync.BmDataToU9HVO;
+import nc.vo.bm.sync.BmToU9LogHVO;
+import nc.vo.pub.BusinessException;
+import nc.vo.pub.lang.UFDateTime;
+import nc.vo.wa.erp.WaToU9LogHVO;
+import nccloud.openapi.hrwa.vo.WaDataToU9HVO;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+import java.util.Properties;
+import java.util.stream.Collectors;
+
+public class BmdataSyncServiceImpl implements IBmdataSyncService {
+
+    public BaseDAO dao;
+    private SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+
+    public BaseDAO getBaseDAO() {
+        if (dao == null) {
+            dao = new BaseDAO();
+        }
+        return dao;
+    }
+
+    private static Properties props = new Properties();
+
+    private final static String ERROR_STATUS = "2";
+    private final static String SUCCESS_STATUS = "1";
+
+    static {
+        if (props.size() <= 0) {
+            String propertyUrl = RuntimeEnv.getInstance().getNCHome() + File.separator + "resources/U9url.properties";
+            try {
+                FileInputStream in = new FileInputStream(propertyUrl);
+                props.load(in);
+            } catch (IOException e) {
+                e.printStackTrace();
+                throw new RuntimeException(propertyUrl + "===》》U9url.properties not found");
+            }
+        }
+    }
+
+
+    @Override
+    public void pushToU9(String pk_group, String pk_org, String pk_bm_class, String cyear, String cperiod, String push_type,String provision) throws BusinessException {
+
+
+        List<Map<String, Object>> reportDataByParam = getReportDataByParam(pk_org, pk_bm_class, cyear, cperiod);
+        if (reportDataByParam != null && reportDataByParam.size() > 0) {
+            Map<String, List<Map<String, Object>>> erporgcode = reportDataByParam.stream().collect(Collectors.groupingBy(e -> (String) e.get("erporgcode"))); // 要根据财务组织分单。因为是分组织审批的
+            for (Map.Entry<String, List<Map<String, Object>>> entry : erporgcode.entrySet()) {
+                String erporgCode = entry.getKey();
+                List<Map<String, Object>> erporgData = entry.getValue();
+                String erporg = (String) erporgData.get(0).get("erporg");
+                if (checkPush(pk_org, pk_bm_class, cyear, cperiod, erporg)) {
+                    WaDataToU9HVO waDataToU9HVO = new WaDataToU9HVO();
+                    waDataToU9HVO.setErporgcode(erporgCode);
+                    waDataToU9HVO.setCperiod(cperiod);
+                    waDataToU9HVO.setCyear(cyear);
+                    waDataToU9HVO.setHr_pk(pk_bm_class);
+                    waDataToU9HVO.setHr_item(erporgData);
+                    waDataToU9HVO.setPush_type(push_type);
+                    waDataToU9HVO.setErporg(erporg);
+                    waDataToU9HVO.setHr_type("bm");
+                    waDataToU9HVO.setProvision(provision);
+                    BmToU9LogHVO initLogVO = getInitLogVO(pk_org, pk_bm_class, cyear, cperiod, erporg,erporgCode);
+                    String paramStr = JSONObject.toJSONString(waDataToU9HVO);
+                    try {
+                        String res = U9Interface.syncWaToU9(paramStr);
+                        initLogVO.setContent(res);
+                        JSONObject u9Res = JSONObject.parseObject(res);
+                        JSONObject data = u9Res.getJSONObject("Data");
+                        Boolean isSucess = data.getBoolean("IsSucess");
+                        if (isSucess) {
+                            // 成功的 记录日志
+                            getBaseDAO().executeUpdate("update bm_u9_log_h set is_flag = 'N'  where is_flag = 'Y' and  pk_erporg ='" + initLogVO.getPk_erporg() + "' and cperiod = '"
+                                    + initLogVO.getCperiod() + "' and cyear = '" + initLogVO.getCyear() + "' and pk_bm_class =" + initLogVO.getPk_bm_class() + "' ");
+                            initLogVO.setR_status(SUCCESS_STATUS);
+                            initLogVO.setIs_flag("Y");
+                        } else {
+                            initLogVO.setR_status(ERROR_STATUS);
+                            Logger.error("社保同步失败参数:" + paramStr);
+                            Logger.error("社保同步失败返回结果:" + res);
+                        }
+                    } catch (Exception e) {
+                        Logger.error("社保同步失败参数:" + paramStr);
+                        initLogVO.setR_status(ERROR_STATUS);
+                        initLogVO.setContent(e.getMessage());
+                    } finally {
+                        NCLocator.getInstance().lookup(IBmToU9LogService.class).insertLog_RequiresNew(initLogVO);
+                    }
+                }
+            }
+
+        } else {
+            throw new BusinessException("该险种统计数量为空");
+        }
+
+    }
+
+
+    BmToU9LogHVO getInitLogVO(String pk_org, String pk_bm_class, String cyear, String cperiod, String pk_erporg,String erporgCode) {
+        BmToU9LogHVO bmToU9LogHVO = new BmToU9LogHVO();
+        bmToU9LogHVO.setCreation_time(new UFDateTime());
+        bmToU9LogHVO.setPk_bm_class(pk_bm_class);
+        bmToU9LogHVO.setPk_org(pk_org);
+        bmToU9LogHVO.setCyear(cyear);
+        bmToU9LogHVO.setCperiod(cperiod);
+        bmToU9LogHVO.setSend_time(sdf.format(new Date()));
+        bmToU9LogHVO.setPk_erporg(pk_erporg);
+        bmToU9LogHVO.setErporgCode(erporgCode);
+        return bmToU9LogHVO;
+    }
+
+    public Boolean checkPush(String pk_org, String pk_bm_class, String cyear, String cperiod, String erporg) throws BusinessException {
+        /**
+         * 校验能否推送 u9 目前 第一次新增可推  重复推,U9 开立状态(等于保存自由态未开流程)  单据覆盖修改, 也是推送成功
+         * 在走流程,U9会报错,   流程走完,审批通过后  回调修改日志表状态    重推无效,审批失败后 可以继续重推
+         */
+        String whereSql = "  pk_org = '" + pk_org + "' and pk_bm_class = '" + pk_bm_class + "' and cyear = '"
+                + cyear + "' and cperiod = '" + cperiod + "' and r_status = '200' and pk_erporg = '" + erporg + "' ";
+        List<BmToU9LogHVO> waToU9LogHVOS = (List<BmToU9LogHVO>) getBaseDAO().retrieveByClause(BmToU9LogHVO.class, whereSql);
+        if (waToU9LogHVOS != null && waToU9LogHVOS.size() > 0) {
+            // throw new BusinessException("薪资方案在U9审批已通过了,请勿重新推送。");
+            return false;
+        }
+        return true;
+    }
+
+    private List<Map<String, Object>> getReportDataByParam(String pk_org, String pk_bm_class, String cyear, String cperiod) throws BusinessException {
+        // 1.动态获取分担项目  在自定义档案 可以随时修改字段
+        Map<String, String> allocateItem = getAllocateItem();
+        StringBuffer sb = new StringBuffer();
+        for (Map.Entry<String, String> entry : allocateItem.entrySet()) {
+            sb.append(", sum(nvl(bd." + entry.getValue() + ",0)) as " + entry.getKey());
+        }
+
+        String sql = " SELECT  bd.glbdef1 erporg, erporg.code erporgcode, erpdept.code erpdeptcode,ft.CODE fee_type,count(1) as psnsum  " + sb.toString() +
+                " FROM bm_data bd " +
+                " join (SELECT  b.code,b.name FROM bd_defdoc b JOIN  bd_defdoclist h ON h.pk_defdoclist = b.pk_defdoclist " +
+                " WHERE h.code = 'HRZ04' AND b.enablestate = 2 AND nvl(b.DATATYPE,1) <> 0)  ft on ft.name = bd.C_1 " +  // 费用类型  说因为社保那里字段类型不是自定义字段 所以存的中文  c_1
+                " JOIN (SELECT  b.pk_defdoc,b.code,b.name FROM bd_defdoc b JOIN  bd_defdoclist h ON h.pk_defdoclist = b.pk_defdoclist  " +
+                " WHERE h.code = 'HRZ07' AND b.enablestate = 2 AND nvl(b.DATATYPE,1) <> 0) erporg ON erporg.pk_defdoc = bd.glbdef1  " +
+                " JOIN (SELECT  b.pk_defdoc,b.code,b.name FROM bd_defdoc b JOIN  bd_defdoclist h ON h.pk_defdoclist = b.pk_defdoclist  " +
+                " WHERE h.code = 'HRZ06' AND b.enablestate = 2 AND nvl(b.DATATYPE,1) <> 0) erpdept ON erpdept.pk_defdoc = bd.glbdef2   " +
+                " WHERE bd.pk_bm_class  = '" + pk_bm_class + "' and bd.cyear = '" + cyear + "' and bd.cperiod = '" + cperiod + "' and bd.checkflag = 'Y' and bd.accountstate = 0 AND bd.pk_org = '" + pk_org + "' " +
+                " GROUP BY  bd.glbdef1, erporg.code,erpdept.code,ft.code ";
+        List<Map<String, Object>> doc = (List<Map<String, Object>>) getBaseDAO().executeQuery(sql, new MapListProcessor());
+        return doc;
+
+    }
+
+    // 获取社保相关分摊项目
+    private Map<String, String> getAllocateItem() throws BusinessException {
+        String sql = " SELECT  b.code,b.name,b.memo FROM bd_defdoc b JOIN  bd_defdoclist h ON h.pk_defdoclist = b.pk_defdoclist " +
+                " WHERE h.code = 'HRZ08' AND b.enablestate = 2 AND nvl(b.DATATYPE,1) <> 0 AND b.code like 'sb%'";
+
+        List<Map<String, Object>> doc = (List<Map<String, Object>>) getBaseDAO().executeQuery(sql, new MapListProcessor());
+        if (doc != null && doc.size() > 0) {
+            Map<String, String> map = doc.stream().collect(Collectors.toMap(e -> (String) e.get("code"), e -> (String) e.get("memo")));
+            return map;
+        } else {
+            throw new BusinessException("查询分摊项目HRZ08社保相关为空,请检查");
+        }
+    }
+
+    // U9头信息
+    private static JSONObject initU9Heard() {
+        JSONObject heard = new JSONObject();
+        heard.put("usercode", props.getProperty("u9_heard_usercode"));
+        heard.put("entcode", props.getProperty("u9_heard_entcode"));
+        heard.put("orgcode", props.getProperty("u9_heard_orgcode"));
+        heard.put("culturename", "zh-CN");
+        return heard;
+    }
+}

+ 44 - 0
hrbm/src/public/nc/backgroudworkplugin/TestBmsyncPlugin.java

@@ -0,0 +1,44 @@
+package nc.backgroudworkplugin;
+
+import nc.bs.framework.common.NCLocator;
+import nc.bs.logging.Log;
+import nc.bs.pub.pa.PreAlertObject;
+import nc.bs.pub.pa.PreAlertReturnType;
+import nc.bs.pub.taskcenter.BgWorkingContext;
+import nc.bs.pub.taskcenter.IBackgroundWorkPlugin;
+import nc.itf.hr.bm.bmdata.IBmdataSyncService;
+import nc.itf.hr.wa.erp.IWaToU9Service;
+import nc.vo.pub.BusinessException;
+
+import java.util.LinkedHashMap;
+
+/**
+ * 测试用 nc.backgroudworkplugin.TestBmsyncPlugin
+ */
+public class TestBmsyncPlugin implements IBackgroundWorkPlugin {
+
+    private static Log Logger = Log.getInstance("TestMessagePlugin");
+
+
+    @Override
+    public PreAlertObject executeTask(BgWorkingContext bgWorkingContext) throws BusinessException {
+        LinkedHashMap<String, Object> keyMap = bgWorkingContext.getKeyMap();
+        PreAlertObject preAlertObject = new PreAlertObject();
+        String pk_org = (String) keyMap.get("pk_org");//"0001A01000000000INYP";
+        String pk_bm_class =(String) keyMap.get("pk_bm_class");// "1001A21000000002J432";
+        String cyear =(String) keyMap.get("cyear");// "2023";
+        String cperiod = (String) keyMap.get("cperiod");//"06";
+        String push_type = (String) keyMap.get("push_type");//""推送类型 "; 发放工资 预提工资 传 工资两个字      年终奖传年终奖三个字  社保传社保  公积金传公积金";
+        String pk_group =(String) keyMap.get("pk_group");// "";
+        String provision =(String) keyMap.get("provision");// "计提确认  发放工资 和年终奖 传  确认    其他传  计提";
+        IBmdataSyncService iWaToU9Service = NCLocator.getInstance().lookup(IBmdataSyncService.class);
+        iWaToU9Service.pushToU9(pk_group, pk_org, pk_bm_class, cyear, cperiod, push_type,provision);
+
+        preAlertObject.setReturnType(PreAlertReturnType.RETURNMESSAGE);
+        preAlertObject.setMsgTitle("神奇题目");
+        preAlertObject.setReturnObj("神奇内a容");
+        return preAlertObject;
+    }
+
+
+}

+ 9 - 0
hrbm/src/public/nc/itf/hr/bm/bmdata/IBmToU9LogService.java

@@ -0,0 +1,9 @@
+package nc.itf.hr.bm.bmdata;
+
+import nc.vo.bm.sync.BmToU9LogHVO;
+import nc.vo.wa.erp.WaToU9LogHVO;
+
+public interface IBmToU9LogService {
+
+    void insertLog_RequiresNew(BmToU9LogHVO bmToU9LogHVO);
+}

+ 9 - 0
hrbm/src/public/nc/itf/hr/bm/bmdata/IBmdataSyncService.java

@@ -0,0 +1,9 @@
+package nc.itf.hr.bm.bmdata;
+
+import nc.vo.pub.BusinessException;
+
+public interface IBmdataSyncService {
+
+    void pushToU9(String pk_group,String pk_org, String pk_bm_class, String cyear, String cperiod,String push_type,String provision) throws BusinessException;
+
+}

+ 76 - 0
hrbm/src/public/nc/vo/bm/sync/BmDataToU9HVO.java

@@ -0,0 +1,76 @@
+package nc.vo.bm.sync;
+
+import java.util.List;
+import java.util.Map;
+
+public class BmDataToU9HVO {
+    String erporgcode; // 财务组织
+
+    String erporg; // BIP 财务组织ID
+
+    String cyear; // 年
+
+    String cperiod; // 期间
+
+    String pk_bm_class; //薪资方案id
+
+    String push_type; //推送类型  社保推送公积金推送
+
+    List<Map<String,Object>> bm_item;
+
+    public String getErporg() {
+        return erporg;
+    }
+
+    public void setErporg(String erporg) {
+        this.erporg = erporg;
+    }
+
+    public String getErporgcode() {
+        return erporgcode;
+    }
+
+    public void setErporgcode(String erporgcode) {
+        this.erporgcode = erporgcode;
+    }
+
+    public String getCyear() {
+        return cyear;
+    }
+
+    public void setCyear(String cyear) {
+        this.cyear = cyear;
+    }
+
+    public String getCperiod() {
+        return cperiod;
+    }
+
+    public void setCperiod(String cperiod) {
+        this.cperiod = cperiod;
+    }
+
+    public String getPk_bm_class() {
+        return pk_bm_class;
+    }
+
+    public void setPk_bm_class(String pk_bm_class) {
+        this.pk_bm_class = pk_bm_class;
+    }
+
+    public String getPush_type() {
+        return push_type;
+    }
+
+    public void setPush_type(String push_type) {
+        this.push_type = push_type;
+    }
+
+    public List<Map<String, Object>> getBm_item() {
+        return bm_item;
+    }
+
+    public void setBm_item(List<Map<String, Object>> bm_item) {
+        this.bm_item = bm_item;
+    }
+}

+ 193 - 0
hrbm/src/public/nc/vo/bm/sync/BmToU9LogHVO.java

@@ -0,0 +1,193 @@
+package nc.vo.bm.sync;
+
+import nc.vo.pub.SuperVO;
+import nc.vo.pub.lang.UFDateTime;
+
+public class BmToU9LogHVO extends SuperVO {
+
+
+    String pk_bm_u9_log_h;
+    String pk_erporg; // 财务组织
+    String erporgCode; //
+    String param; // 参数
+
+    String content; // 返回内容
+
+    String pk_bm_class; //险种id
+
+    String uni_id;
+
+    String pk_org; // 组织
+
+    String cyear; // 年
+
+    String cperiod; // 期间
+
+    String send_time; //发送时间
+
+    String r_status; //推送结果  1 推送成功  2调用失败 审批回调结果  200 通过  999审核不通过
+
+    String is_flag; // 是否最新记录
+
+    String remark; // 留个备注
+
+    private UFDateTime creation_time;
+
+
+    private UFDateTime ts;
+
+    private Integer dr = 0;
+
+
+    public static String getDefaultTableName()
+    {
+        return "bm_u9_log_h";
+    }
+    @Override
+    public String getTableName() {
+        return "bm_u9_log_h";
+    }
+
+    @Override
+    public String getPKFieldName() {
+        return "pk_bm_u9_log_h";
+    }
+
+    public String getPk_erporg() {
+        return pk_erporg;
+    }
+
+    public void setPk_erporg(String pk_erporg) {
+        this.pk_erporg = pk_erporg;
+    }
+
+    public String getPk_org() {
+        return pk_org;
+    }
+
+    public void setPk_org(String pk_org) {
+        this.pk_org = pk_org;
+    }
+
+    public UFDateTime getCreation_time() {
+        return creation_time;
+    }
+
+    public void setCreation_time(UFDateTime creation_time) {
+        this.creation_time = creation_time;
+    }
+
+    public String getPk_bm_u9_log_h() {
+        return pk_bm_u9_log_h;
+    }
+
+    public void setPk_bm_u9_log_h(String pk_bm_u9_log_h) {
+        this.pk_bm_u9_log_h = pk_bm_u9_log_h;
+    }
+
+    public String getPk_bm_class() {
+        return pk_bm_class;
+    }
+
+    public void setPk_bm_class(String pk_bm_class) {
+        this.pk_bm_class = pk_bm_class;
+    }
+
+    public String getParam() {
+        return param;
+    }
+
+    public void setParam(String param) {
+        this.param = param;
+    }
+
+    public String getContent() {
+        return content;
+    }
+
+    public void setContent(String content) {
+        this.content = content;
+    }
+
+
+
+    public String getUni_id() {
+        return uni_id;
+    }
+
+    public void setUni_id(String uni_id) {
+        this.uni_id = uni_id;
+    }
+
+    public String getCyear() {
+        return cyear;
+    }
+
+    public void setCyear(String cyear) {
+        this.cyear = cyear;
+    }
+
+    public String getCperiod() {
+        return cperiod;
+    }
+
+    public void setCperiod(String cperiod) {
+        this.cperiod = cperiod;
+    }
+
+    public String getSend_time() {
+        return send_time;
+    }
+
+    public void setSend_time(String send_time) {
+        this.send_time = send_time;
+    }
+
+    public String getR_status() {
+        return r_status;
+    }
+
+    public void setR_status(String r_status) {
+        this.r_status = r_status;
+    }
+
+    public String getIs_flag() {
+        return is_flag;
+    }
+
+    public void setIs_flag(String is_flag) {
+        this.is_flag = is_flag;
+    }
+
+    public String getRemark() {
+        return remark;
+    }
+
+    public void setRemark(String remark) {
+        this.remark = remark;
+    }
+
+    public UFDateTime getTs() {
+        return ts;
+    }
+
+    public void setTs(UFDateTime ts) {
+        this.ts = ts;
+    }
+
+    public Integer getDr() {
+        return dr;
+    }
+
+    public void setDr(Integer dr) {
+        this.dr = dr;
+    }
+
+    public String getErporgCode() {
+        return erporgCode;
+    }
+
+    public void setErporgCode(String erporgCode) {
+        this.erporgCode = erporgCode;
+    }
+}