|
|
@@ -0,0 +1,1432 @@
|
|
|
+package com.kingdee.shr.compensation.util.integrate;
|
|
|
+
|
|
|
+import java.sql.SQLException;
|
|
|
+import java.util.ArrayList;
|
|
|
+import java.util.Date;
|
|
|
+import java.util.HashMap;
|
|
|
+import java.util.HashSet;
|
|
|
+import java.util.List;
|
|
|
+import java.util.Map;
|
|
|
+import java.util.Set;
|
|
|
+
|
|
|
+import org.apache.commons.lang3.StringUtils;
|
|
|
+import org.apache.log4j.Logger;
|
|
|
+
|
|
|
+import com.alibaba.fastjson.JSONObject;
|
|
|
+import com.kingdee.bos.BOSException;
|
|
|
+import com.kingdee.bos.Context;
|
|
|
+import com.kingdee.bos.util.EASResource;
|
|
|
+import com.kingdee.eas.common.EASBizException;
|
|
|
+import com.kingdee.eas.hr.base.HRBillStateEnum;
|
|
|
+import com.kingdee.eas.util.app.DbUtil;
|
|
|
+import com.kingdee.jdbc.rowset.IRowSet;
|
|
|
+import com.kingdee.shr.base.syssetting.app.filter.HRFilterUtils;
|
|
|
+import com.kingdee.shr.compensation.app.integrate.BatchSubmitSchemeBillDataSource;
|
|
|
+import com.kingdee.shr.compensation.app.integrate.BatchSubmitShemeBillFactory;
|
|
|
+import com.kingdee.shr.compensation.app.integrate.BatchSubmitShemeBillInfo;
|
|
|
+import com.kingdee.shr.compensation.app.integrate.CalSubmitItemDataType;
|
|
|
+import com.kingdee.shr.compensation.app.integrate.DateTypeEnum;
|
|
|
+import com.kingdee.shr.compensation.integrate.dto.CalShemeSubmitItemDTO;
|
|
|
+import com.kingdee.shr.compensation.resource.ResourceConstant;
|
|
|
+import com.kingdee.shr.compensation.util.CmpDateUtil;
|
|
|
+import com.kingdee.shr.compensation.util.CmpStrUtil;
|
|
|
+
|
|
|
+public class CmpIntegrateUtilsNew {
|
|
|
+
|
|
|
+ private static Logger logger = Logger.getLogger(CmpIntegrateUtilsNew.class);
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 重载更新分录审批状态
|
|
|
+ *
|
|
|
+ * @param ctx
|
|
|
+ * @param billId
|
|
|
+ * @param stateEnum
|
|
|
+ * @throws BOSException
|
|
|
+ * @throws EASBizException
|
|
|
+ */
|
|
|
+ public static void updateEntryBillState(Context ctx, String billId, HRBillStateEnum stateEnum,
|
|
|
+ String billEntryTable) throws BOSException, EASBizException {
|
|
|
+ BatchSubmitShemeBillInfo info = BatchSubmitShemeBillFactory.getLocalInstance(ctx)
|
|
|
+ .getBatchSubmitShemeBillInfo("where id = '" + billId + "'");
|
|
|
+
|
|
|
+ String billEntryTableName = billEntryTable;
|
|
|
+ if (StringUtils.isEmpty(billEntryTableName)) {
|
|
|
+ Map<String, Object> map = CmpIntegrateUtilsNew.getBillColumnListAndBillEntryTableName(ctx,
|
|
|
+ info.getSubmitScheme().getId().toString());
|
|
|
+ billEntryTableName = map.get("fBillEntryTableName").toString(); // 方案对应的动态表名
|
|
|
+ }
|
|
|
+ // 更新分录状态
|
|
|
+ String sqlTemplate = "UPDATE %s SET FBillState = ? WHERE FBILLID = ?";
|
|
|
+ String sql = String.format(sqlTemplate, billEntryTableName);
|
|
|
+
|
|
|
+ DbUtil.execute(ctx, sql, new Object[] {stateEnum.getValue(), info.getId().toString()});
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 指定业务组织下,当前用户可使用且数据权限分配的薪酬项目
|
|
|
+ * @throws EASBizException
|
|
|
+ */
|
|
|
+ public static String getUsableItemByHro(Context ctx, String hrOrgUnit,boolean isDisatribute) {
|
|
|
+ StringBuffer personCmpItemPerm = new StringBuffer();
|
|
|
+ personCmpItemPerm.append("select FBaseInfoId from T_HR_SCalSubmitItemRelHR where T_HR_SCalSubmitItemRelHR.FHrOrgUseId ='");
|
|
|
+ personCmpItemPerm.append(hrOrgUnit).append("'");//可使用
|
|
|
+ if(isDisatribute){
|
|
|
+ personCmpItemPerm.append(" and FState=100 ");
|
|
|
+ }
|
|
|
+ return personCmpItemPerm.toString();
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 判断提报方案是否存在 未提交 审批中 未审批 已审批
|
|
|
+ * @param schemeId
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public static boolean checkSubmitSchemeIsUsingBill( Context ctx,String schemeId){
|
|
|
+ boolean flag = false ;
|
|
|
+ if (StringUtils.isEmpty(schemeId)) {
|
|
|
+ return flag ;
|
|
|
+ }
|
|
|
+ String sql = "Select top 1 fid from T_HR_SBatchSubmitShemeBill where fbillstate in (0,1,2) and FSubmitSchemeID = ? " ;
|
|
|
+ try {
|
|
|
+ IRowSet rs = DbUtil.executeQuery(ctx, sql, new Object[]{schemeId});
|
|
|
+ if (rs.size()>0) {
|
|
|
+ flag = true;
|
|
|
+ }
|
|
|
+ } catch (BOSException e) {
|
|
|
+ logger.error(e);
|
|
|
+ }
|
|
|
+ return flag ;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 判断提报方案是否存在 未提交 审批中 未审批 已审批
|
|
|
+ * @param schemeId
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public static boolean checkSubmitBillEntryIsExists( Context ctx,String billEntryTableName ,String billId){
|
|
|
+ boolean flag = false ;
|
|
|
+ if (StringUtils.isEmpty(billId)) {
|
|
|
+ return flag ;
|
|
|
+ }
|
|
|
+ String sql = "Select top 1 fid from "+billEntryTableName+" where fbillId = ? " ;
|
|
|
+ try {
|
|
|
+ IRowSet rs = DbUtil.executeQuery(ctx, sql, new Object[]{billId});
|
|
|
+ if (rs.size()>0) {
|
|
|
+ flag = true;
|
|
|
+ }
|
|
|
+ } catch (BOSException e) {
|
|
|
+ logger.error(e);
|
|
|
+ }
|
|
|
+ return flag ;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 判断提报方案是否存在 审批中 未审批
|
|
|
+ * @param schemeId
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public static boolean checkSubmitSchemeIsUsedBill(Context ctx,String schemeId){
|
|
|
+ boolean flag = false ;
|
|
|
+ if (StringUtils.isEmpty(schemeId)) {
|
|
|
+ return flag ;
|
|
|
+ }
|
|
|
+ String sql = "Select top 1 fid from T_HR_SBatchSubmitShemeBill where fbillstate in (1,2) and FSubmitSchemeID = ? " ;
|
|
|
+ try {
|
|
|
+ IRowSet rs = DbUtil.executeQuery(ctx, sql, new Object[]{schemeId});
|
|
|
+ if (rs.size()>0) {
|
|
|
+ flag = true;
|
|
|
+ }
|
|
|
+ } catch (BOSException e) {
|
|
|
+ logger.error(e);
|
|
|
+ }
|
|
|
+ return flag ;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 判断提报方案是否存在 未提交 审批中 未审批
|
|
|
+ * @param schemeId
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @SuppressWarnings("rawtypes")
|
|
|
+ public static Map checkSubmitSchemesIsUsingBill(Context ctx,List<String> list){
|
|
|
+ Map<String ,Boolean > map = new HashMap<String ,Boolean>();
|
|
|
+ String sql = "Select distinct FSubmitSchemeID from T_HR_SBatchSubmitShemeBill where fbillstate in (0,1,2) "
|
|
|
+ + " and FSubmitSchemeID in( "+CmpStrUtil.convertListToString(list)+") " ;
|
|
|
+ Set<String> snSet = new HashSet<String>();
|
|
|
+ try {
|
|
|
+ IRowSet rs = DbUtil.executeQuery(ctx, sql);
|
|
|
+ while (rs.next()) {
|
|
|
+ String submitSchemeID = rs.getString("FSubmitSchemeID");
|
|
|
+ snSet.add(submitSchemeID);
|
|
|
+ }
|
|
|
+ for( String submitSchemeID: list){
|
|
|
+ map.put(submitSchemeID, snSet.contains(submitSchemeID));
|
|
|
+ }
|
|
|
+ } catch (Exception e) {
|
|
|
+ logger.error(e);
|
|
|
+ }
|
|
|
+ return map ;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ *
|
|
|
+ * 根据方案id 获取方案提报单分录的提报项目列
|
|
|
+ * @param schemeId
|
|
|
+ * @return
|
|
|
+ * @throws BOSException
|
|
|
+ *
|
|
|
+ */
|
|
|
+
|
|
|
+ @SuppressWarnings("rawtypes")
|
|
|
+ public static Map<String,List> assembleSubmitSchemeColModel(Context ctx,String schemeId, Integer dataSource) throws BOSException{
|
|
|
+ Map<String,List> map = new HashMap<String,List>();
|
|
|
+ List<String> colNames = new ArrayList<String>();
|
|
|
+ List<Map<String, Object>> colModel = new ArrayList<Map<String, Object>>();
|
|
|
+ if (StringUtils.isEmpty(schemeId)) {
|
|
|
+ return map ;
|
|
|
+ }
|
|
|
+
|
|
|
+ String language = ctx.getLocale().getLanguage();
|
|
|
+
|
|
|
+ String sql = "Select e.FSubmitTarget, e.FIsEnableSubmitElement,e.FEFFECTDATEDISPLAY , m.fieldSn,m.fdataType,m.fname_"+ language +" MNAME,t.FIsRequired ,m.FDataDot,m.FDataLength, "
|
|
|
+ + " M.FDATETYPE,M.FFILTERFIELD,B.FENTITYNAME,B.FNAME_"+ language +" BNAME,B.FUSEUIPK, B.FMAINTAINUIPK "
|
|
|
+ + " from T_HR_SCalSubmitScheme e "
|
|
|
+ + " inner join T_HR_SCalSubmitSchemeItem t on t.FCalSubmitSchemeID = e.fid "
|
|
|
+ + " inner join T_HR_SCalSubmitItem m on m.fid = t.FCalSubmitItemID "
|
|
|
+ + " left join T_BS_SHRBasicItem b on m.FFilterField = b.fid "
|
|
|
+ + " where e.fid = '"+schemeId+"' order by FSortSn";
|
|
|
+// String sql = "Select m.FNumber,e.FSubmitTarget,e.FIsEnableSubmitElement,e.FEFFECTDATEDISPLAY , m.fieldSn,m.fdataType,m.fname_"+ language +" MNAME,t.FIsRequired ,m.FDataDot,m.FDataLength, "
|
|
|
+// + " M.FDATETYPE,M.FFILTERFIELD,B.FNAME_"+ language +" BNAME, B.FUipk FMAINTAINUIPK,b.FISBASIC "
|
|
|
+// + " from T_HR_SCalSubmitScheme e "
|
|
|
+// + " inner join T_HR_SCalSubmitSchemeItem t on t.FCalSubmitSchemeID = e.fid "
|
|
|
+// + " inner join T_HR_SCalSubmitItem m on m.fid = t.FCalSubmitItemID "
|
|
|
+// + " left join T_HR_SCalSchemeItemForF7 b on m.FFilterField = b.fid "
|
|
|
+//// + " where e.fid = '"+schemeId+"' and m.FNumber != 'AwardName' and t.FIsShow = 1 order by FSortSn";
|
|
|
+// + " where e.fid = '"+schemeId+"' order by t.FSortSn asc ";
|
|
|
+ try {
|
|
|
+ String submitTarget = "" ,dataType = ""; //提报对象 01 person 02 org
|
|
|
+ int dateType = 0;// 日期类型
|
|
|
+ int effectDateDisplay = 0;
|
|
|
+ IRowSet rs = DbUtil.executeQuery(ctx, sql);
|
|
|
+ boolean f7Flag = true,isEnableSubmitElement = false;
|
|
|
+ while (rs.next()) {
|
|
|
+ //=====组装提报对象
|
|
|
+ submitTarget = rs.getString("FSubmitTarget");
|
|
|
+ effectDateDisplay = rs.getInt("FEFFECTDATEDISPLAY");
|
|
|
+ isEnableSubmitElement = rs.getBoolean("FIsEnableSubmitElement");
|
|
|
+ dataType = rs.getString("fdataType");// 0 数值 1 字符串
|
|
|
+ //提报对象列
|
|
|
+ if (f7Flag) {
|
|
|
+ f7Flag = false;
|
|
|
+ Map<String, Object> gridMainKeyIdMap = new HashMap<String, Object>();
|
|
|
+ Map<String, Object> adminOrgUnitGridMainKeyIdMap = new HashMap<String, Object>();
|
|
|
+ Map<String, Object> positionGridMainKeyIdMap = new HashMap<String, Object>();
|
|
|
+ Map<String, Object> cmpEmpORGridMainKeyIdMap = new HashMap<String, Object>();
|
|
|
+ Map<String, Object> gridIdMap = new HashMap<String, Object>();
|
|
|
+ // 组装ID前端基础属性
|
|
|
+ assembleColModelId(gridIdMap);
|
|
|
+ colNames.add("id");
|
|
|
+ colModel.add(gridIdMap);
|
|
|
+ //==== 组装F7
|
|
|
+ if ("02".equals(submitTarget)) {
|
|
|
+ assembleColModelF7(gridMainKeyIdMap, "orgUnit", "提报组织", true);
|
|
|
+ gridMainKeyIdMap.put(ColModelAttributeConstants.editoptions, assembleColModelF7("提报组织", "com.kingdee.eas.basedata.org.app.AdminOrgUnit.F7", true));
|
|
|
+ gridMainKeyIdMap.put(ColModelAttributeConstants.sortable, true);
|
|
|
+ colNames.add("提报组织"); //colNames.add("提报组织");
|
|
|
+ colModel.add(gridMainKeyIdMap);
|
|
|
+ }else{
|
|
|
+ Map<String, Object> gridPersonNumberMap = new HashMap<String, Object>();
|
|
|
+ gridPersonNumberMap.put(ColModelAttributeConstants.name, "number");
|
|
|
+ gridPersonNumberMap.put(ColModelAttributeConstants.label, "员工编码");
|
|
|
+ gridPersonNumberMap.put(ColModelAttributeConstants.frozen, false);
|
|
|
+ gridPersonNumberMap.put(ColModelAttributeConstants.width, 90);
|
|
|
+ gridPersonNumberMap.put(ColModelAttributeConstants.align, "left");
|
|
|
+ gridPersonNumberMap.put(ColModelAttributeConstants.key, true);
|
|
|
+ gridPersonNumberMap.put(ColModelAttributeConstants.hidden, false);
|
|
|
+ gridPersonNumberMap.put(ColModelAttributeConstants.editable, false);
|
|
|
+ gridPersonNumberMap.put(ColModelAttributeConstants.sorttype, "string");
|
|
|
+ gridPersonNumberMap.put(ColModelAttributeConstants.classes, "disabled");
|
|
|
+ gridPersonNumberMap.put(ColModelAttributeConstants.edittype, "shrtext");
|
|
|
+ gridPersonNumberMap.put(ColModelAttributeConstants.sortable, true);
|
|
|
+
|
|
|
+
|
|
|
+ colNames.add("员工编码"); // colNames.add("员工编码");
|
|
|
+ colModel.add(gridPersonNumberMap);
|
|
|
+
|
|
|
+ String CmpEmpORelF7Uipk = "com.kingdee.shr.compensation.app.integrate.CmpEmpORelation.F7";
|
|
|
+ // 3表示来源为团队提报的
|
|
|
+ if (BatchSubmitSchemeBillDataSource.TEAM_SUBMIT_VALUE == dataSource) {
|
|
|
+ CmpEmpORelF7Uipk = "com.kingdee.shr.compensation.app.integrate.stores.CmpEmpORelation.F7";
|
|
|
+ }
|
|
|
+ assembleColModelF7(gridMainKeyIdMap, "person", "员工姓名", true);
|
|
|
+ gridMainKeyIdMap.put(ColModelAttributeConstants.editoptions, assembleColModelF7("员工姓名", CmpEmpORelF7Uipk,true));
|
|
|
+ colNames.add("员工姓名"); // colNames.add("员工姓名");
|
|
|
+ colModel.add(gridMainKeyIdMap);
|
|
|
+
|
|
|
+ //行政组织
|
|
|
+ assembleColModelF7NotEdit(adminOrgUnitGridMainKeyIdMap, "adminOrgUnit", "所属行政组织");
|
|
|
+ adminOrgUnitGridMainKeyIdMap.put(ColModelAttributeConstants.sortable, true);
|
|
|
+
|
|
|
+// gridMainKeyIdMap.put(ColModelAttributeConstants.editoptions, assembleColModelF7("姓名", "shr.person.HRAndAdminOrg.F7"));
|
|
|
+ colNames.add("所属行政组织"); //colNames.add("所属行政组织");
|
|
|
+ colModel.add(adminOrgUnitGridMainKeyIdMap);
|
|
|
+
|
|
|
+ //职位
|
|
|
+ assembleColModelF7NotEdit(positionGridMainKeyIdMap, "position", "职位");
|
|
|
+ positionGridMainKeyIdMap.put(ColModelAttributeConstants.sortable, true);
|
|
|
+
|
|
|
+ colNames.add("职位"); //colNames.add("职位");
|
|
|
+ colModel.add(positionGridMainKeyIdMap);
|
|
|
+
|
|
|
+ //发薪任职id
|
|
|
+ assembleColModelF7Hidden(cmpEmpORGridMainKeyIdMap, "cmpEmpORelation", "发薪任职");
|
|
|
+ colNames.add("发薪任职"); // colNames.add("发薪任职");
|
|
|
+ colModel.add(cmpEmpORGridMainKeyIdMap);
|
|
|
+
|
|
|
+
|
|
|
+ //=====虚拟id 用于编辑保存
|
|
|
+ Map<String, Object> gridPersonIdMap = new HashMap<String, Object>();
|
|
|
+ gridPersonIdMap.put(ColModelAttributeConstants.name, "tempId");
|
|
|
+ gridPersonIdMap.put(ColModelAttributeConstants.label, "员工或者组织临时id");
|
|
|
+ gridPersonIdMap.put(ColModelAttributeConstants.frozen, false);
|
|
|
+ gridPersonIdMap.put(ColModelAttributeConstants.width, 90);
|
|
|
+ gridPersonIdMap.put(ColModelAttributeConstants.align, "left");
|
|
|
+ gridPersonIdMap.put(ColModelAttributeConstants.key, true);
|
|
|
+ gridPersonIdMap.put(ColModelAttributeConstants.hidden, true);
|
|
|
+ gridPersonIdMap.put(ColModelAttributeConstants.editable, false);
|
|
|
+ gridPersonIdMap.put(ColModelAttributeConstants.sorttype, "string");
|
|
|
+ gridPersonIdMap.put(ColModelAttributeConstants.classes, "disabled");
|
|
|
+ gridPersonIdMap.put(ColModelAttributeConstants.edittype, "shrtext");
|
|
|
+ colNames.add("tempId");
|
|
|
+ colModel.add(gridPersonIdMap);
|
|
|
+ }
|
|
|
+ // 申报要素,如果提报方案上选了启用申报要素,则申报要素必填
|
|
|
+ if(isEnableSubmitElement){
|
|
|
+ Map<String, Object> gridSubmitElementMap = new HashMap<String, Object>();
|
|
|
+ assembleColModelF7(gridSubmitElementMap, "submitElement", "申报要素", true);
|
|
|
+ gridSubmitElementMap.put(ColModelAttributeConstants.editoptions, assembleColModelF7("申报要素", "com.kingdee.shr.compensation.app.integrate.SubmitElement.SubmitBillEntry.F7",true));
|
|
|
+ colNames.add("申报要素"); // colNames.add("申报要素");
|
|
|
+ colModel.add(gridSubmitElementMap);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ // 币别
|
|
|
+ Map<String, Object> gridCurrencyMap = new HashMap<String, Object>();
|
|
|
+ assembleColModelF7(gridCurrencyMap, "currency", "币别", true);
|
|
|
+ gridCurrencyMap.put(ColModelAttributeConstants.editoptions, assembleColModelF7("币别", "com.kingdee.eas.basedata.assistant.app.Currency.CMP.F7",true));
|
|
|
+ colNames.add("币别"); // colNames.add("币别");
|
|
|
+ colModel.add(gridCurrencyMap);
|
|
|
+
|
|
|
+ //日期控件
|
|
|
+ //8.6sp1日期控件
|
|
|
+ Map<String, Object> gridPersonNumberMap = new HashMap<String, Object>();
|
|
|
+ gridPersonNumberMap.put(ColModelAttributeConstants.name, "effectDay");
|
|
|
+ gridPersonNumberMap.put(ColModelAttributeConstants.label, "发生日期");
|
|
|
+ gridPersonNumberMap.put(ColModelAttributeConstants.frozen, false);
|
|
|
+ gridPersonNumberMap.put(ColModelAttributeConstants.width, 100);
|
|
|
+ gridPersonNumberMap.put(ColModelAttributeConstants.align, "left");
|
|
|
+ gridPersonNumberMap.put(ColModelAttributeConstants.key, true);
|
|
|
+ gridPersonNumberMap.put(ColModelAttributeConstants.hidden, false);
|
|
|
+ gridPersonNumberMap.put(ColModelAttributeConstants.editable, true);
|
|
|
+ gridPersonNumberMap.put(ColModelAttributeConstants.sorttype, "date");
|
|
|
+ gridPersonNumberMap.put(ColModelAttributeConstants.sortable, false);
|
|
|
+// gridPersonNumberMap.put(ColModelAttributeConstants.formatter, "datepicker"); 8.5sp1
|
|
|
+// gridPersonNumberMap.put(ColModelAttributeConstants.edittype, "shrdatepicker");
|
|
|
+ gridPersonNumberMap.put(ColModelAttributeConstants.formatter, "shrDateTimePicker");
|
|
|
+ gridPersonNumberMap.put(ColModelAttributeConstants.edittype, "shrDateTimePicker");
|
|
|
+ gridPersonNumberMap.put(ColModelAttributeConstants.classes, "required");
|
|
|
+
|
|
|
+ StringBuffer datapickerjsonBuffer = new StringBuffer();
|
|
|
+ datapickerjsonBuffer.append("{");
|
|
|
+ datapickerjsonBuffer.append("\"datepickerjson\":");
|
|
|
+ datapickerjsonBuffer.append("{");
|
|
|
+ datapickerjsonBuffer.append("\"id\":\"dp_autoSize\",");
|
|
|
+ datapickerjsonBuffer.append("\"name\":\"dp_autoSize\",");
|
|
|
+ datapickerjsonBuffer.append("\"minuteStep\":\"\",");
|
|
|
+ datapickerjsonBuffer.append("\"showTimeZoneForCtrl\":false,");
|
|
|
+ datapickerjsonBuffer.append("\"isAutoTimeZoneTrans\":false,");
|
|
|
+ datapickerjsonBuffer.append("\"isShowUTC\":false,");
|
|
|
+ datapickerjsonBuffer.append("\"isReadonlyUTC\":true,");
|
|
|
+ datapickerjsonBuffer.append("\"isRemoveSeconds\":true,");
|
|
|
+
|
|
|
+ if(DateTypeEnum.YYYYMM_VALUE == effectDateDisplay){
|
|
|
+ datapickerjsonBuffer.append("\"isRemoveDay\":true,");
|
|
|
+ }else if(DateTypeEnum.YYYYMMDD_VALUE == effectDateDisplay){
|
|
|
+ datapickerjsonBuffer.append("\"isRemoveDay\":false,");
|
|
|
+ }else{
|
|
|
+ datapickerjsonBuffer.append("\"isRemoveDay\":true,");
|
|
|
+ }
|
|
|
+
|
|
|
+ datapickerjsonBuffer.append("\"ctrlType\":\"Date\"");
|
|
|
+ datapickerjsonBuffer.append("},");
|
|
|
+ datapickerjsonBuffer.append("\"validateJson\":");
|
|
|
+ datapickerjsonBuffer.append("{");
|
|
|
+ datapickerjsonBuffer.append("\"errMsg\":\"\",");
|
|
|
+ datapickerjsonBuffer.append("\"rules\":\"required:true\",");
|
|
|
+ datapickerjsonBuffer.append("\"validatetrigger\":\"focus keyup datachange\"");
|
|
|
+ datapickerjsonBuffer.append("}");
|
|
|
+ datapickerjsonBuffer.append("}");
|
|
|
+ gridPersonNumberMap.put(ColModelAttributeConstants.editoptions, JSONObject.parseObject(datapickerjsonBuffer.toString()));
|
|
|
+ colNames.add("发生日期"); // colNames.add("发生日期");
|
|
|
+ colModel.add(gridPersonNumberMap);
|
|
|
+ }
|
|
|
+
|
|
|
+ //=====组装提报项目
|
|
|
+ dataType = rs.getString("fdataType");// 0 数值 1 字符串2日期类型3F7过滤
|
|
|
+ int isRequired = rs.getInt("FIsRequired"); // 1 必填
|
|
|
+ int fDataDot = rs.getInt("FDataDot"); // 1 精度
|
|
|
+ int fDataLength = rs.getInt("FDataLength"); // 1 字符长度
|
|
|
+ if ("0".equals(dataType)) {
|
|
|
+ // 0 数值
|
|
|
+ Map<String, Object> schemeMap = new HashMap<String, Object>();
|
|
|
+ schemeMap.put(ColModelAttributeConstants.name, "S"+rs.getString("fieldSn"));
|
|
|
+ schemeMap.put(ColModelAttributeConstants.label, rs.getString("MNAME"));
|
|
|
+ schemeMap.put(ColModelAttributeConstants.frozen, false);
|
|
|
+ schemeMap.put(ColModelAttributeConstants.width, 90);
|
|
|
+ schemeMap.put(ColModelAttributeConstants.align, "left");
|
|
|
+ schemeMap.put(ColModelAttributeConstants.key, false);
|
|
|
+ schemeMap.put(ColModelAttributeConstants.editable, true);
|
|
|
+ schemeMap.put(ColModelAttributeConstants.sorttype, "bigdecimal");
|
|
|
+// schemeMap.put(ColModelAttributeConstants.sortable, true);
|
|
|
+ //先不排序
|
|
|
+ schemeMap.put(ColModelAttributeConstants.sortable, false);
|
|
|
+ schemeMap.put(ColModelAttributeConstants.formatter, "numberfield");
|
|
|
+ schemeMap.put(ColModelAttributeConstants.edittype, "numberfield");
|
|
|
+ JSONObject editoptions = JSONObject.parseObject("{ \"inputJson\": { \"id\": \"txt_money\", \"name\": \"money\", \"<formatTy></formatTy>pe\": \"number\" }}");
|
|
|
+
|
|
|
+ //添加必填校验
|
|
|
+ if(isRequired == 1) {
|
|
|
+ schemeMap.put(ColModelAttributeConstants.classes, "required");
|
|
|
+ editoptions.put("validateJson", JSONObject.parseObject("{ \"errMsg\": \"\", \"rules\": \"required:true\", \"validatetrigger\": \"focus keyup datachange\" }"));
|
|
|
+ }
|
|
|
+
|
|
|
+ //添加精度
|
|
|
+ JSONObject inputJson = editoptions.getJSONObject("inputJson");
|
|
|
+ inputJson.put("decimalPrecision", fDataDot);
|
|
|
+ //添加长度
|
|
|
+ inputJson.put("maxlength", fDataLength);
|
|
|
+
|
|
|
+
|
|
|
+ schemeMap.put(ColModelAttributeConstants.editoptions,editoptions);
|
|
|
+ colModel.add(schemeMap);
|
|
|
+ colNames.add(rs.getString("MNAME"));
|
|
|
+ }else if(CalSubmitItemDataType.STRING_VALUE.equals(dataType)) {
|
|
|
+
|
|
|
+ Map<String, Object> schemeMap = new HashMap<String, Object>();
|
|
|
+ schemeMap.put(ColModelAttributeConstants.name, "S"+rs.getString("fieldSn"));
|
|
|
+ schemeMap.put(ColModelAttributeConstants.label, rs.getString("MNAME"));
|
|
|
+ schemeMap.put(ColModelAttributeConstants.frozen, false);
|
|
|
+ schemeMap.put(ColModelAttributeConstants.width, 90);
|
|
|
+ schemeMap.put(ColModelAttributeConstants.align, "left");
|
|
|
+ schemeMap.put(ColModelAttributeConstants.key, false);
|
|
|
+ schemeMap.put(ColModelAttributeConstants.editable, true);
|
|
|
+ schemeMap.put(ColModelAttributeConstants.sorttype, "string");
|
|
|
+// schemeMap.put(ColModelAttributeConstants.sortable, true);
|
|
|
+ schemeMap.put(ColModelAttributeConstants.sortable, false);
|
|
|
+ JSONObject editoptions = JSONObject.parseObject("{ \"inputJson\": { } }");
|
|
|
+ if(isRequired == 1) {
|
|
|
+ schemeMap.put(ColModelAttributeConstants.classes, "required");
|
|
|
+ editoptions.put("validateJson", JSONObject.parseObject("{ \"errMsg\": \"\", \"rules\": \"required:true\", \"validatetrigger\": \"focus keyup datachange\" }"));
|
|
|
+ }else{
|
|
|
+ editoptions.put("validateJson", JSONObject.parseObject("{ \"errMsg\": \"\", \"rules\": \"required:false\", \"validatetrigger\": \"focus keyup datachange\" }"));
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ //添加精度
|
|
|
+ JSONObject inputJson = editoptions.getJSONObject("inputJson");
|
|
|
+ inputJson.put("decimalPrecision", fDataDot);
|
|
|
+ //添加长度
|
|
|
+ inputJson.put("maxlength", fDataLength);
|
|
|
+ schemeMap.put(ColModelAttributeConstants.editoptions, editoptions);
|
|
|
+ schemeMap.put(ColModelAttributeConstants.edittype, "shrtext");
|
|
|
+ colModel.add(schemeMap);
|
|
|
+ colNames.add(rs.getString("MNAME"));
|
|
|
+ }else if(CalSubmitItemDataType.DATE_VALUE.equals(dataType)){//日期类型
|
|
|
+ dateType = rs.getInt("FDATETYPE");
|
|
|
+
|
|
|
+ Map<String, Object> schemeMap = new HashMap<String, Object>();
|
|
|
+ schemeMap.put(ColModelAttributeConstants.name, "S"+rs.getString("fieldSn"));
|
|
|
+ schemeMap.put(ColModelAttributeConstants.label, rs.getString("MNAME"));
|
|
|
+ schemeMap.put(ColModelAttributeConstants.frozen, false);
|
|
|
+ schemeMap.put(ColModelAttributeConstants.width, 100);
|
|
|
+ schemeMap.put(ColModelAttributeConstants.align, "left");
|
|
|
+ schemeMap.put(ColModelAttributeConstants.key, true);
|
|
|
+ schemeMap.put(ColModelAttributeConstants.hidden, false);
|
|
|
+ schemeMap.put(ColModelAttributeConstants.editable, true);
|
|
|
+ schemeMap.put(ColModelAttributeConstants.sorttype, "date");
|
|
|
+ schemeMap.put(ColModelAttributeConstants.sortable, false);
|
|
|
+// gridPersonNumberMap.put(ColModelAttributeConstants.formatter, "datepicker"); 8.5sp1
|
|
|
+// gridPersonNumberMap.put(ColModelAttributeConstants.edittype, "shrdatepicker");
|
|
|
+ schemeMap.put(ColModelAttributeConstants.formatter, "shrDateTimePicker");
|
|
|
+ schemeMap.put(ColModelAttributeConstants.edittype, "shrDateTimePicker");
|
|
|
+ if(isRequired == 1) {
|
|
|
+ schemeMap.put(ColModelAttributeConstants.classes, "required");
|
|
|
+ }
|
|
|
+ StringBuffer datapickerjsonBuffer = new StringBuffer();
|
|
|
+ datapickerjsonBuffer.append("{");
|
|
|
+ datapickerjsonBuffer.append("\"datepickerjson\":");
|
|
|
+ datapickerjsonBuffer.append("{");
|
|
|
+ datapickerjsonBuffer.append("\"id\":\"dp_autoSize\",");
|
|
|
+ datapickerjsonBuffer.append("\"name\":\"dp_autoSize\",");
|
|
|
+ datapickerjsonBuffer.append("\"minuteStep\":\"\",");
|
|
|
+ datapickerjsonBuffer.append("\"showTimeZoneForCtrl\":false,");
|
|
|
+ datapickerjsonBuffer.append("\"isAutoTimeZoneTrans\":false,");
|
|
|
+ datapickerjsonBuffer.append("\"isShowUTC\":false,");
|
|
|
+ datapickerjsonBuffer.append("\"isReadonlyUTC\":true,");
|
|
|
+ datapickerjsonBuffer.append("\"isRemoveSeconds\":true,");
|
|
|
+ if(DateTypeEnum.YYYYMM_VALUE == dateType){
|
|
|
+ datapickerjsonBuffer.append("\"isRemoveDay\":true,");
|
|
|
+ }else if(DateTypeEnum.YYYYMMDD_VALUE == dateType){
|
|
|
+ datapickerjsonBuffer.append("\"isRemoveDay\":false,");
|
|
|
+ }else{
|
|
|
+ datapickerjsonBuffer.append("\"isRemoveDay\":false,");
|
|
|
+ }
|
|
|
+ datapickerjsonBuffer.append("\"ctrlType\":\"Date\"");
|
|
|
+ datapickerjsonBuffer.append("},");
|
|
|
+ datapickerjsonBuffer.append("\"validateJson\":");
|
|
|
+ datapickerjsonBuffer.append("{");
|
|
|
+ datapickerjsonBuffer.append("\"errMsg\":\"\",");
|
|
|
+ if(isRequired == 1){
|
|
|
+ datapickerjsonBuffer.append("\"rules\":\"required:true\",");
|
|
|
+ }else{
|
|
|
+ datapickerjsonBuffer.append("\"rules\":\"required:false\",");
|
|
|
+ }
|
|
|
+ datapickerjsonBuffer.append("\"validatetrigger\":\"focus keyup datachange\"");
|
|
|
+ datapickerjsonBuffer.append("}");
|
|
|
+ datapickerjsonBuffer.append("}");
|
|
|
+ schemeMap.put(ColModelAttributeConstants.editoptions, JSONObject.parseObject(datapickerjsonBuffer.toString()));
|
|
|
+ colNames.add(rs.getString("MNAME"));
|
|
|
+ colModel.add(schemeMap);
|
|
|
+ }else if(CalSubmitItemDataType.F7_VALUE.equals(dataType)){
|
|
|
+
|
|
|
+ Map<String, Object> schemeMap = new HashMap<String, Object>();
|
|
|
+ assembleColModelF7(schemeMap, "S"+rs.getString("fieldSn"), rs.getString("MNAME"), isRequired == 1);
|
|
|
+ Map<String, Object> editoptions = assembleColModelF7(rs.getString("BNAME"), rs.getString("FMAINTAINUIPK"), isRequired == 1,"");
|
|
|
+// Map<String, Object> f7Json = (Map<String, Object>) editoptions.get("f7Json"); //F7的过滤使用可维护,由于可使用查询可能会很慢,如果需要调整为可使用,则调整uipk获取可使用的即可,并且调整displayFormat和submitFormat
|
|
|
+// f7Json.put("displayFormat", "{BaseInfo.name}");
|
|
|
+// f7Json.put("submitFormat", "{BaseInfo.id}");
|
|
|
+ schemeMap.put(ColModelAttributeConstants.editoptions, editoptions);
|
|
|
+ colNames.add(rs.getString("MNAME"));
|
|
|
+ colModel.add(schemeMap);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 描述
|
|
|
+ Map<String, Object> gridDescriptionMap = new HashMap<String, Object>();
|
|
|
+ gridDescriptionMap.put(ColModelAttributeConstants.name, "description");
|
|
|
+ gridDescriptionMap.put(ColModelAttributeConstants.label, "备注");
|
|
|
+ gridDescriptionMap.put(ColModelAttributeConstants.frozen, false);
|
|
|
+ gridDescriptionMap.put(ColModelAttributeConstants.width, 90);
|
|
|
+ gridDescriptionMap.put(ColModelAttributeConstants.align, "left");
|
|
|
+ gridDescriptionMap.put(ColModelAttributeConstants.key, false);
|
|
|
+ gridDescriptionMap.put(ColModelAttributeConstants.editable, true);
|
|
|
+ gridDescriptionMap.put(ColModelAttributeConstants.sortable, false);
|
|
|
+ gridDescriptionMap.put(ColModelAttributeConstants.formatter, "shrMultiLangBox");
|
|
|
+ gridDescriptionMap.put(ColModelAttributeConstants.edittype, "shrMultiLangBox");
|
|
|
+ JSONObject editoptions = JSONObject.parseObject("{ \"inputJson\": { } }");
|
|
|
+
|
|
|
+ //添加精度
|
|
|
+ JSONObject inputJson = editoptions.getJSONObject("inputJson");
|
|
|
+ //添加长度
|
|
|
+ inputJson.put("maxlength", 255);
|
|
|
+ gridDescriptionMap.put(ColModelAttributeConstants.editoptions, editoptions);
|
|
|
+ colNames.add("备注"); // colNames.add("备注");
|
|
|
+ colModel.add(gridDescriptionMap);
|
|
|
+
|
|
|
+
|
|
|
+ } catch (Exception e) {
|
|
|
+ throw new BOSException("获取提报方案的提报项目列出错!"); // "获取提报方案的提报项目列出错!"
|
|
|
+ }
|
|
|
+ map.put("colNames", colNames);
|
|
|
+ map.put("colModel", colModel);
|
|
|
+ return map ;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 组装ID前端基础属性
|
|
|
+ * @param gridIdMap
|
|
|
+ * @param name
|
|
|
+ * @param label
|
|
|
+ * @return
|
|
|
+ * @throws BOSException
|
|
|
+ */
|
|
|
+ public static Map<String, Object> assembleColModelId(Map<String, Object> gridIdMap){
|
|
|
+ gridIdMap.put(ColModelAttributeConstants.name, "id");
|
|
|
+ gridIdMap.put(ColModelAttributeConstants.label, "id");
|
|
|
+ gridIdMap.put(ColModelAttributeConstants.frozen, false);
|
|
|
+ gridIdMap.put(ColModelAttributeConstants.width, 90);
|
|
|
+ gridIdMap.put(ColModelAttributeConstants.align, "left");
|
|
|
+ gridIdMap.put(ColModelAttributeConstants.key, true);
|
|
|
+ gridIdMap.put(ColModelAttributeConstants.hidden, true);
|
|
|
+ gridIdMap.put(ColModelAttributeConstants.editable, false);
|
|
|
+ gridIdMap.put(ColModelAttributeConstants.sorttype, "");
|
|
|
+ gridIdMap.put(ColModelAttributeConstants.sortable, false);
|
|
|
+ gridIdMap.put(ColModelAttributeConstants.classes, "disabled");
|
|
|
+ return gridIdMap;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 组装F7前端editoptions属性
|
|
|
+ * @param name
|
|
|
+ * @param uipk
|
|
|
+ * @param isRequired
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public static Map<String, Object> assembleColModelF7(String name , String uipk, boolean isRequired){
|
|
|
+
|
|
|
+ //=====组装F7
|
|
|
+ Map<String, Object> resultMap = new HashMap<String, Object>();
|
|
|
+ Map<String, Object> f7JsonMap = new HashMap<String, Object>();
|
|
|
+ Map<String, Object> validateJsonMap = new HashMap<String, Object>();
|
|
|
+ // ======subWidgetOptions属性
|
|
|
+ Map<String, Object> uipkMap = new HashMap<String, Object>();
|
|
|
+ uipkMap.put(ColModelAttributeConstants.title, name);
|
|
|
+ uipkMap.put(ColModelAttributeConstants.uipk, uipk);
|
|
|
+ uipkMap.put(ColModelAttributeConstants.query, "");
|
|
|
+ uipkMap.put(ColModelAttributeConstants.filter, "");
|
|
|
+ uipkMap.put(ColModelAttributeConstants.multiselect, false);
|
|
|
+ uipkMap.put(ColModelAttributeConstants.isTree, false);
|
|
|
+ uipkMap.put(ColModelAttributeConstants.treeUrl, "");
|
|
|
+ uipkMap.put(ColModelAttributeConstants.isContainLowerOrg, false);
|
|
|
+ uipkMap.put(ColModelAttributeConstants.isAdminOrg, false);
|
|
|
+// uipkMap.put(ColModelAttributeConstants.isEnableExpFilter, true);
|
|
|
+
|
|
|
+ f7JsonMap.put("subWidgetOptions", uipkMap);
|
|
|
+ // =====其他属性
|
|
|
+ f7JsonMap.put(ColModelAttributeConstants.subWidgetName, "shrPromptGrid");
|
|
|
+ f7JsonMap.put(ColModelAttributeConstants.searchFields, "");
|
|
|
+ f7JsonMap.put(ColModelAttributeConstants.isHROrg, false);
|
|
|
+ f7JsonMap.put(ColModelAttributeConstants.isAdminOrg, false);
|
|
|
+ f7JsonMap.put(ColModelAttributeConstants.searchLikePattern, "any");
|
|
|
+ resultMap.put("f7Json", f7JsonMap);
|
|
|
+ //======validateJsonMap
|
|
|
+ validateJsonMap.put(ColModelAttributeConstants.errMsg, "");
|
|
|
+ if(isRequired){
|
|
|
+ validateJsonMap.put(ColModelAttributeConstants.rules, "required:true");
|
|
|
+ }
|
|
|
+ validateJsonMap.put(ColModelAttributeConstants.validatetrigger, "focus keyup datachange");
|
|
|
+ resultMap.put("validateJson", validateJsonMap);
|
|
|
+ return resultMap;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 组装F7前端editoptions属性
|
|
|
+ * @param name
|
|
|
+ * @param uipk
|
|
|
+ * @param isRequired
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public static Map<String, Object> assembleColModelF7(String name , String uipk, boolean isRequired, String filter){
|
|
|
+
|
|
|
+ //=====组装F7
|
|
|
+ Map<String, Object> resultMap = new HashMap<String, Object>();
|
|
|
+ Map<String, Object> f7JsonMap = new HashMap<String, Object>();
|
|
|
+ Map<String, Object> validateJsonMap = new HashMap<String, Object>();
|
|
|
+ // ======subWidgetOptions属性
|
|
|
+ Map<String, Object> uipkMap = new HashMap<String, Object>();
|
|
|
+ uipkMap.put(ColModelAttributeConstants.title, name);
|
|
|
+ uipkMap.put(ColModelAttributeConstants.uipk, uipk);
|
|
|
+ uipkMap.put(ColModelAttributeConstants.query, "");
|
|
|
+ uipkMap.put(ColModelAttributeConstants.filter, filter);
|
|
|
+ uipkMap.put(ColModelAttributeConstants.multiselect, false);
|
|
|
+ uipkMap.put(ColModelAttributeConstants.isTree, false);
|
|
|
+ uipkMap.put(ColModelAttributeConstants.treeUrl, "");
|
|
|
+ uipkMap.put(ColModelAttributeConstants.isContainLowerOrg, false);
|
|
|
+ uipkMap.put(ColModelAttributeConstants.isAdminOrg, false);
|
|
|
+ f7JsonMap.put("subWidgetOptions", uipkMap);
|
|
|
+ // =====其他属性
|
|
|
+ f7JsonMap.put(ColModelAttributeConstants.subWidgetName, "shrPromptGrid");
|
|
|
+ f7JsonMap.put(ColModelAttributeConstants.searchFields, "");
|
|
|
+ f7JsonMap.put(ColModelAttributeConstants.isHROrg, false);
|
|
|
+ f7JsonMap.put(ColModelAttributeConstants.isAdminOrg, false);
|
|
|
+ f7JsonMap.put(ColModelAttributeConstants.searchLikePattern, "any");
|
|
|
+ resultMap.put("f7Json", f7JsonMap);
|
|
|
+ //======validateJsonMap
|
|
|
+ validateJsonMap.put(ColModelAttributeConstants.errMsg, "");
|
|
|
+ if(isRequired){
|
|
|
+ validateJsonMap.put(ColModelAttributeConstants.rules, "required:true");
|
|
|
+ }
|
|
|
+ validateJsonMap.put(ColModelAttributeConstants.validatetrigger, "focus keyup datachange");
|
|
|
+ resultMap.put("validateJson", validateJsonMap);
|
|
|
+ return resultMap;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 组装F7前端基础属性
|
|
|
+ * @param gridMainKeyIdMap
|
|
|
+ * @param name
|
|
|
+ * @param label
|
|
|
+ * @return
|
|
|
+ * @throws BOSException
|
|
|
+ */
|
|
|
+ public static Map<String, Object> assembleColModelF7(Map<String, Object> gridMainKeyIdMap,String name ,String label, boolean isRequired){
|
|
|
+ gridMainKeyIdMap.put(ColModelAttributeConstants.name, name);
|
|
|
+ gridMainKeyIdMap.put(ColModelAttributeConstants.label, label);
|
|
|
+ gridMainKeyIdMap.put(ColModelAttributeConstants.frozen, false);
|
|
|
+ gridMainKeyIdMap.put(ColModelAttributeConstants.width, 120);
|
|
|
+ gridMainKeyIdMap.put(ColModelAttributeConstants.align, "left");
|
|
|
+ gridMainKeyIdMap.put(ColModelAttributeConstants.key, false);
|
|
|
+ gridMainKeyIdMap.put(ColModelAttributeConstants.edittype, "promptBox");
|
|
|
+ gridMainKeyIdMap.put(ColModelAttributeConstants.editable, true);
|
|
|
+ gridMainKeyIdMap.put(ColModelAttributeConstants.sorttype, "objectvalue");
|
|
|
+// gridMainKeyIdMap.put(ColModelAttributeConstants.sortable, true);
|
|
|
+ gridMainKeyIdMap.put(ColModelAttributeConstants.sortable, false);
|
|
|
+ gridMainKeyIdMap.put(ColModelAttributeConstants.formatter, "promptBox");
|
|
|
+
|
|
|
+ if(isRequired){
|
|
|
+ gridMainKeyIdMap.put(ColModelAttributeConstants.classes, "required");
|
|
|
+ }
|
|
|
+ return gridMainKeyIdMap;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 组装F7前端基础属性不可编辑
|
|
|
+ * @param gridMainKeyIdMap
|
|
|
+ * @param name
|
|
|
+ * @param label
|
|
|
+ * @return
|
|
|
+ * @throws BOSException
|
|
|
+ */
|
|
|
+ public static Map<String, Object> assembleColModelF7NotEdit(Map<String, Object> gridMainKeyIdMap,String name ,String label){
|
|
|
+ gridMainKeyIdMap.put(ColModelAttributeConstants.name, name);
|
|
|
+ gridMainKeyIdMap.put(ColModelAttributeConstants.label, label);
|
|
|
+ gridMainKeyIdMap.put(ColModelAttributeConstants.frozen, false);
|
|
|
+ gridMainKeyIdMap.put(ColModelAttributeConstants.width, 120);
|
|
|
+ gridMainKeyIdMap.put(ColModelAttributeConstants.align, "left");
|
|
|
+ gridMainKeyIdMap.put(ColModelAttributeConstants.key, false);
|
|
|
+ gridMainKeyIdMap.put(ColModelAttributeConstants.edittype, "promptBox");
|
|
|
+ gridMainKeyIdMap.put(ColModelAttributeConstants.editable, false);
|
|
|
+ gridMainKeyIdMap.put(ColModelAttributeConstants.sorttype, "objectvalue");
|
|
|
+// gridMainKeyIdMap.put(ColModelAttributeConstants.sortable, true);
|
|
|
+ gridMainKeyIdMap.put(ColModelAttributeConstants.sortable, false);
|
|
|
+ gridMainKeyIdMap.put(ColModelAttributeConstants.formatter, "promptBox");
|
|
|
+ gridMainKeyIdMap.put(ColModelAttributeConstants.classes, "disabled");
|
|
|
+ return gridMainKeyIdMap;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 组装F7前端基础属性隐藏
|
|
|
+ * @param gridMainKeyIdMap
|
|
|
+ * @param name
|
|
|
+ * @param label
|
|
|
+ * @return
|
|
|
+ * @throws BOSException
|
|
|
+ */
|
|
|
+ public static Map<String, Object> assembleColModelF7Hidden(Map<String, Object> gridMainKeyIdMap,String name ,String label){
|
|
|
+ gridMainKeyIdMap.put(ColModelAttributeConstants.name, name);
|
|
|
+ gridMainKeyIdMap.put(ColModelAttributeConstants.label, label);
|
|
|
+ gridMainKeyIdMap.put(ColModelAttributeConstants.frozen, false);
|
|
|
+ gridMainKeyIdMap.put(ColModelAttributeConstants.width, 120);
|
|
|
+ gridMainKeyIdMap.put(ColModelAttributeConstants.hidden, true);
|
|
|
+ gridMainKeyIdMap.put(ColModelAttributeConstants.align, "left");
|
|
|
+ gridMainKeyIdMap.put(ColModelAttributeConstants.key, false);
|
|
|
+ gridMainKeyIdMap.put(ColModelAttributeConstants.edittype, "promptBox");
|
|
|
+ gridMainKeyIdMap.put(ColModelAttributeConstants.editable, false);
|
|
|
+ gridMainKeyIdMap.put(ColModelAttributeConstants.sorttype, "objectvalue");
|
|
|
+// gridMainKeyIdMap.put(ColModelAttributeConstants.sortable, true);
|
|
|
+ gridMainKeyIdMap.put(ColModelAttributeConstants.sortable, false);
|
|
|
+ gridMainKeyIdMap.put(ColModelAttributeConstants.formatter, "promptBox");
|
|
|
+ gridMainKeyIdMap.put(ColModelAttributeConstants.classes, "disabled");
|
|
|
+ return gridMainKeyIdMap;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ public static Map<String, Object> getBillColumnListAndQuerySql(Context ctx, String submitSchemeId, String billID)
|
|
|
+ /* */ throws BOSException
|
|
|
+ /* */ {
|
|
|
+ /* 727 */ Map map = new HashMap();
|
|
|
+ /* 728 */ List colNames = new ArrayList();
|
|
|
+ /* 729 */ Map columnMap = new HashMap();
|
|
|
+ /* 730 */ if (StringUtils.isEmpty(submitSchemeId)) {
|
|
|
+ /* 731 */ return map;
|
|
|
+ /* */ }
|
|
|
+ /* */
|
|
|
+ /* 734 */ String language = ctx.getLocale().getLanguage();
|
|
|
+ /* */
|
|
|
+ /* 736 */ String sql = new StringBuilder().append("Select e.FSubmitTarget,e.FIsEnableSubmitElement , m.fieldSn,m.FDataDot,m.fdataType,m.fname_").append(language).append(" ,n.FBillEntryTableName from T_HR_SCalSubmitScheme e ").append(" inner join T_HR_SCalSubmitSchemeItem t on t.FCalSubmitSchemeID = e.fid ").append(" inner join T_HR_SCalSubmitItem m on m.fid = t.FCalSubmitItemID ").append(" inner join T_HR_SCalShemeTableRelation n on n.FSubmitSchemeID =e.fid ").append(" where e.fid = '").append(submitSchemeId).append("' order by FSortSn ").toString();
|
|
|
+ /* */
|
|
|
+ /* 742 */ StringBuilder sd = new StringBuilder(" select t.fid id , t.FEffectDate effectDay , t.FCmpEmpORelationID cmpEmpORelation,");
|
|
|
+ /* 743 */ colNames.add("id");
|
|
|
+ /* 744 */ colNames.add("effectDay");
|
|
|
+ /* */ try {
|
|
|
+ /* 746 */ String submitTarget = ""; String fBillEntryTableName = "";
|
|
|
+ /* 747 */ IRowSet rs = DbUtil.executeQuery(ctx, sql);
|
|
|
+ /* 748 */ boolean f7Flag = true; boolean personFlag = true; boolean isEnableSubmitElement = false;
|
|
|
+ /* 749 */ while (rs.next())
|
|
|
+ /* */ {
|
|
|
+ /* 751 */ submitTarget = rs.getString("FSubmitTarget");
|
|
|
+ /* 752 */ isEnableSubmitElement = rs.getBoolean("FIsEnableSubmitElement");
|
|
|
+ /* */
|
|
|
+ /* 754 */ if (f7Flag) {
|
|
|
+ /* 755 */ f7Flag = false;
|
|
|
+ /* */
|
|
|
+ /* 757 */ fBillEntryTableName = rs.getString("FBillEntryTableName");
|
|
|
+ /* */
|
|
|
+ /* 759 */ if ("02".equals(submitTarget)) {
|
|
|
+ /* 760 */ personFlag = false;
|
|
|
+ /* 761 */ colNames.add("orgId");
|
|
|
+ /* 762 */ colNames.add("name");
|
|
|
+ /* 763 */ colNames.add("number");
|
|
|
+ /* 764 */ sd.append("n.fid orgId , n.fname_").append(language).append(" name , n.fnumber number ");
|
|
|
+ /* */ } else {
|
|
|
+ /* 766 */ colNames.add("personId");
|
|
|
+ /* 767 */ colNames.add("name");
|
|
|
+ /* 768 */ colNames.add("number");
|
|
|
+ /* 769 */ colNames.add("admOrgId");
|
|
|
+ /* 770 */ colNames.add("admOrgName");
|
|
|
+ /* */
|
|
|
+ /* 772 */ colNames.add("positionId");
|
|
|
+ /* 773 */ colNames.add("positionName");
|
|
|
+ /* 774 */ colNames.add("cmpEmpORelation");
|
|
|
+ /* */
|
|
|
+ /* 777 */ sd.append(" n.fid personId , n.fname_").append(language).append(" name, n.fnumber number, a.fid admOrgId, a.fname_").append(language).append(" admOrgName, p.fid positionId, p.fname_").append(language).append(" positionName ");
|
|
|
+ /* */ }
|
|
|
+ /* */ }
|
|
|
+ /* 780 */ sd.append(new StringBuilder().append(",S").append(rs.getString("fieldSn")).toString());
|
|
|
+ /* */
|
|
|
+ /* 782 */ colNames.add(new StringBuilder().append("S").append(rs.getString("fieldSn")).toString());
|
|
|
+ /* */
|
|
|
+ /* 785 */ if ("0".equals(rs.getString("fdataType")));
|
|
|
+ /* 786 */ columnMap.put(new StringBuilder().append("S").append(rs.getString("fieldSn")).toString(), Integer.valueOf(rs.getInt("FDataDot")));
|
|
|
+ /* */ }
|
|
|
+ /* */
|
|
|
+ /* 789 */ colNames.add("description");
|
|
|
+ /* 790 */ if (isEnableSubmitElement) {
|
|
|
+ /* 791 */ colNames.add("submitElement");
|
|
|
+ /* 792 */ sd.append(", t.FSubmitElementID submitElement,subele.Fname_").append(language).append(" submitElementName ");
|
|
|
+ /* */ }
|
|
|
+ /* 794 */ colNames.add("currency");
|
|
|
+ /* 795 */ sd.append(",c.fid currency,c.fname_").append(language).append(" currencyName,t.fdescription_l1 description_l1,t.fdescription_l2 description_l2,t.fdescription_l3 description_l3");
|
|
|
+ /* */
|
|
|
+ /* 797 */ sd.append(new StringBuilder().append(" from ").append(fBillEntryTableName).append(" ").toString());
|
|
|
+ /* 798 */ if (personFlag) {
|
|
|
+ /* 799 */ sd.append(" t inner join t_bd_person n on t.fpersonId = n.fid ");
|
|
|
+ /* 800 */ sd.append(" LEFT join T_ORG_Admin a on t.FAdminOrgUnitID = a.fid ");
|
|
|
+ /* 801 */ sd.append(" LEFT join T_ORG_Position p on t.FPositionID = p.fid ");
|
|
|
+ /* */ } else {
|
|
|
+ /* 803 */ sd.append(" t on b.fid = t.fbillid inner join T_ORG_Admin n on t.FOrgUnitID = n.fid ");
|
|
|
+ /* */ }
|
|
|
+ /* 805 */ sd.append(" LEFT join T_BD_Currency c on t.fCurrencyID = c.fid ");
|
|
|
+ /* 806 */ if (isEnableSubmitElement) {
|
|
|
+ /* 807 */ sd.append(" LEFT join T_HR_SSubmitElement subele on t.FSubmitElementID = subele.fid ");
|
|
|
+ /* */ }
|
|
|
+ /* */
|
|
|
+ /* 810 */ sd.append(new StringBuilder().append(" where t.fbillid = '").append(billID).append("'").toString());
|
|
|
+ ///* 811 */ sd.append(new StringBuilder().append(" and b.FSubmitSchemeID = '").append(submitSchemeId).append("' ").toString());
|
|
|
+ /* */
|
|
|
+ /* 813 */ map.put("querySql", sd.toString());
|
|
|
+ /* 814 */ map.put("colNames", colNames);
|
|
|
+ /* 815 */ map.put("columnMap", columnMap);
|
|
|
+ /* */ }
|
|
|
+ /* */ catch (Exception e) {
|
|
|
+ /* 818 */ throw new BOSException("获取提报方案的提报项目列出错!");
|
|
|
+ /* */ }
|
|
|
+ /* 820 */ return map;
|
|
|
+ /* */ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ *
|
|
|
+ * 根据方案id 获取方案提报单分录的提报项目列及对应的分录表名
|
|
|
+ * @param schemeId
|
|
|
+ * @return List
|
|
|
+ * @throws BOSException
|
|
|
+ */
|
|
|
+ public static Map<String, Object> getBillColumnListAndBillEntryTableName(Context ctx,String submitSchemeId) throws BOSException{
|
|
|
+
|
|
|
+ Map<String, Object> map = new HashMap<String, Object>();
|
|
|
+ List<String> colNames = new ArrayList<String>();
|
|
|
+ List<String> colTypes = new ArrayList<String>();
|
|
|
+ if (StringUtils.isEmpty(submitSchemeId)) {
|
|
|
+ return map ;
|
|
|
+ }
|
|
|
+
|
|
|
+ String language = ctx.getLocale().getLanguage();
|
|
|
+
|
|
|
+ String sql = "Select e.FSubmitTarget , m.fieldSn,m.fdataType,m.fname_" + language + " ,n.FBillEntryTableName ,n.FCalShemeTableName ,t.FIsRequired from T_HR_SCalSubmitScheme e "
|
|
|
+ + " inner join T_HR_SCalSubmitSchemeItem t on t.FCalSubmitSchemeID = e.fid "
|
|
|
+ + " inner join T_HR_SCalSubmitItem m on m.fid = t.FCalSubmitItemID "
|
|
|
+ + " inner join T_HR_SCalShemeTableRelation n on n.FSubmitSchemeID =e.fid "
|
|
|
+ + " where e.fid = '"+submitSchemeId+"' order by FSortSn ";
|
|
|
+ try {
|
|
|
+ String fBillEntryTableName = ""; //提报对象 01 person 02 org
|
|
|
+ logger.error("CmpIntegrateUtilsNew.getBillColumnListAndBillEntryTableName.sql:"+sql);
|
|
|
+ IRowSet rs = DbUtil.executeQuery(ctx, sql);
|
|
|
+ while (rs.next()) {
|
|
|
+ //=====组装提报项目
|
|
|
+ if (StringUtils.isEmpty(fBillEntryTableName)) {
|
|
|
+ fBillEntryTableName = rs.getString("FBillEntryTableName");
|
|
|
+// fCalShemeTableName = rs.getString("FCalShemeTableName");
|
|
|
+ }
|
|
|
+ colNames.add("S"+rs.getString("fieldSn"));
|
|
|
+ colTypes.add(rs.getString("fdataType"));
|
|
|
+ }
|
|
|
+ map.put("fBillEntryTableName", fBillEntryTableName);
|
|
|
+// map.put("fCalShemeTableName", fCalShemeTableName);
|
|
|
+ map.put("colNames", colNames);
|
|
|
+ map.put("colTypes", colTypes);
|
|
|
+
|
|
|
+ } catch (Exception e) {
|
|
|
+ throw new BOSException("获取提报方案的提报项目列出错!"); //"获取提报方案的提报项目列出错!"
|
|
|
+ }
|
|
|
+ return map ;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 获取插入的列1
|
|
|
+ * @param ctx
|
|
|
+ * @param billEntryTable
|
|
|
+ * @param colNames
|
|
|
+ * @param billId
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public static String getAssembleField1Sql(Context ctx, String billEntryTable,
|
|
|
+ List<String> colNames, String billId) {
|
|
|
+ StringBuilder insertCol = new StringBuilder(" insert into ");
|
|
|
+ String userId = HRFilterUtils.getCurrentUserId(ctx);
|
|
|
+ Date date = new Date();
|
|
|
+ insertCol.append(billEntryTable);
|
|
|
+ insertCol.append(" (FID ,fparentid ");
|
|
|
+
|
|
|
+
|
|
|
+ /*StringBuilder insertval = new StringBuilder(new StringBuilder().append(
|
|
|
+ " values ( ?,'").append(billId).append("', '").append(userId)
|
|
|
+ .append("', ").append(CmpDateUtil.toKSqlDate(date)).toString());
|
|
|
+ insertval.append(", ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? ");*/
|
|
|
+ for (String schemeItem : colNames) {
|
|
|
+ insertCol.append(new StringBuilder().append(",").append(schemeItem)
|
|
|
+ .toString());
|
|
|
+ //insertval.append(", ? ");
|
|
|
+ }
|
|
|
+ insertCol.append(" )");
|
|
|
+ //insertval.append(" ,?,?,?,?)");
|
|
|
+ //insertCol.append(insertval);
|
|
|
+
|
|
|
+ return insertCol.toString();
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 获取插入的列1
|
|
|
+ * @param ctx
|
|
|
+ * @param billEntryTable
|
|
|
+ * @param colNames
|
|
|
+ * @param billId
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public static String getAssembleField2Sql(Context ctx, String billEntryTable,
|
|
|
+ List<String> colNames, String billId) {
|
|
|
+ StringBuilder insertCol = new StringBuilder(" insert into ");
|
|
|
+ String userId = HRFilterUtils.getCurrentUserId(ctx);
|
|
|
+ Date date = new Date();
|
|
|
+ insertCol.append(billEntryTable);
|
|
|
+ insertCol.append(" (FID ,fbillid ");
|
|
|
+
|
|
|
+
|
|
|
+ /*StringBuilder insertval = new StringBuilder(new StringBuilder().append(
|
|
|
+ " values ( ?,'").append(billId).append("', '").append(userId)
|
|
|
+ .append("', ").append(CmpDateUtil.toKSqlDate(date)).toString());
|
|
|
+ insertval.append(", ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? ");*/
|
|
|
+ for (String schemeItem : colNames) {
|
|
|
+ insertCol.append(new StringBuilder().append(",").append(schemeItem)
|
|
|
+ .toString());
|
|
|
+ //insertval.append(", ? ");
|
|
|
+ }
|
|
|
+ insertCol.append(" )");
|
|
|
+ //insertval.append(" ,?,?,?,?)");
|
|
|
+ //insertCol.append(insertval);
|
|
|
+
|
|
|
+ return insertCol.toString();
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 获取临时表的fid,billId所有动态字段
|
|
|
+ * @param ctx
|
|
|
+ * @param billEntryTable
|
|
|
+ * @param colNames
|
|
|
+ * @param billId
|
|
|
+ * @return
|
|
|
+ * @throws BOSException
|
|
|
+ */
|
|
|
+ public static List<Map<String,Object>> getAssembleListByCmp(Context ctx, String billEntryTable,
|
|
|
+ List<String> colNames, String billId) throws BOSException {
|
|
|
+ List<Map<String,Object>> sValuelist= new ArrayList<Map<String,Object>>();
|
|
|
+ StringBuilder sql = new StringBuilder(" SELECT ");
|
|
|
+ String userId = HRFilterUtils.getCurrentUserId(ctx);
|
|
|
+
|
|
|
+
|
|
|
+ sql.append(" FID ,fbillid ");
|
|
|
+
|
|
|
+
|
|
|
+ /*StringBuilder insertval = new StringBuilder(new StringBuilder().append(
|
|
|
+ " values ( ?,'").append(billId).append("', '").append(userId)
|
|
|
+ .append("', ").append(CmpDateUtil.toKSqlDate(date)).toString());
|
|
|
+ insertval.append(", ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? ");*/
|
|
|
+ for (String schemeItem : colNames) {
|
|
|
+ sql.append(new StringBuilder().append(",").append(schemeItem)
|
|
|
+ .toString());
|
|
|
+ //insertval.append(", ? ");
|
|
|
+ }
|
|
|
+ sql.append(" from ");
|
|
|
+ sql.append(billEntryTable);
|
|
|
+ sql.append(" where fbillid = '"+billId+"'");
|
|
|
+ logger.error("BatchSubmitSchemeBillControllerBeanExt.getAssembleListByCmp.sql:"+sql.toString());
|
|
|
+ //insertval.append(" ,?,?,?,?)");
|
|
|
+ //insertCol.append(insertval);
|
|
|
+ try{
|
|
|
+ IRowSet rs = DbUtil.executeQuery(ctx, sql.toString());
|
|
|
+ String fid = "";
|
|
|
+ String fbillid = "";
|
|
|
+ while (rs.next()) {
|
|
|
+ Map<String,Object> sValueMap = new HashMap<String,Object>();
|
|
|
+ //=====组装提报项目
|
|
|
+ fid = rs.getString("FID");
|
|
|
+ fbillid = rs.getString("fbillid");
|
|
|
+ sValueMap.put("fid", fid);
|
|
|
+ sValueMap.put("fbillid", fbillid);
|
|
|
+ for (String schemeItem : colNames) {
|
|
|
+ sValueMap.put(""+schemeItem, rs.getObject(""+schemeItem));
|
|
|
+ }
|
|
|
+ sValuelist.add(sValueMap);
|
|
|
+
|
|
|
+ }
|
|
|
+ } catch (Exception e) {
|
|
|
+ throw new BOSException("获取提报方案的提报项目列出错!"); //"获取提报方案的提报项目列出错!"
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ return sValuelist;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 更新提报分录的s字段
|
|
|
+ * @param ctx
|
|
|
+ * @param colNames
|
|
|
+ * @param sValue
|
|
|
+ * @throws BOSException
|
|
|
+ */
|
|
|
+ public static void updateSchemeBillEntryByCmpS(Context ctx,List<String> colNames,Map<String,Object> sValue) throws BOSException{
|
|
|
+ logger.error("into updateSchemeBillEntryByCmpS method.colNames.size:"+colNames.size());
|
|
|
+ StringBuilder sqlSb = new StringBuilder(" update T_HR_SchemeBillEntry set ");
|
|
|
+ Object cmpObje = null;
|
|
|
+ //是否免税字符串
|
|
|
+ String s81ValueId = "";
|
|
|
+ for (String schemeItem : colNames) {
|
|
|
+ cmpObje = sValue.get(""+schemeItem);
|
|
|
+ if(cmpObje instanceof String){
|
|
|
+ sqlSb.append(" CF"+schemeItem).append("='").append(cmpObje).append("',");
|
|
|
+
|
|
|
+ //是否免税特殊处理
|
|
|
+ if("S81".equals(schemeItem)){
|
|
|
+ if(cmpObje!=null){
|
|
|
+ s81ValueId = (String)cmpObje;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ }else{
|
|
|
+ sqlSb.append(" CF"+schemeItem).append("=").append(cmpObje).append(",");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ String sqlSbStr = sqlSb.toString();
|
|
|
+ if(sqlSbStr.endsWith(",")) {
|
|
|
+ sqlSbStr = sqlSbStr.substring(0, sqlSbStr.length() - 1);
|
|
|
+ }
|
|
|
+ Object fidObj = sValue.get("fid");
|
|
|
+
|
|
|
+ if(fidObj == null){
|
|
|
+ logger.error("BatchSubmitSchemeBillControllerBeanExt.updateSchemeBillEntryByCmpS:fidObj为空");
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ String fid= (String)fidObj;
|
|
|
+ sqlSbStr = sqlSbStr + " where fid = '"+fid+"'";
|
|
|
+ logger.error("BatchSubmitSchemeBillControllerBeanExt.updateSchemeBillEntryByCmpS:sqlSbStr:"+sqlSbStr);
|
|
|
+ DbUtil.execute(ctx,sqlSbStr);
|
|
|
+
|
|
|
+ //更新分录的是否免税字符串
|
|
|
+ updateSchemeBillEntryCFTaxExemptionStrByEntryFid(ctx,s81ValueId,fid);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 更新分录的是否免税字符串
|
|
|
+ * @param ctx
|
|
|
+ * @param s81ValueId
|
|
|
+ * @param fid
|
|
|
+ * @throws BOSException
|
|
|
+ */
|
|
|
+ private static void updateSchemeBillEntryCFTaxExemptionStrByEntryFid(Context ctx,String s81ValueId , String fid) throws BOSException{
|
|
|
+ String sql = "update T_HR_SchemeBillEntry set cftaxexemptionstr = (select fname_l1 from CT_CUS_TaxExemption where fid ='"+s81ValueId+"' ) where fid ='"+fid+"'";
|
|
|
+ logger.error("BatchSubmitSchemeBillControllerBeanExt.updateSchemeBillEntryCFTaxExemptionStrByEntryFid:sql:"+sql);
|
|
|
+
|
|
|
+ DbUtil.execute(ctx,sql);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ *
|
|
|
+ * 根据方案id,dataType获取方案提报单分录在提报项目列及对应的分录表名
|
|
|
+ * @param schemeId
|
|
|
+ * @return List
|
|
|
+ * @throws BOSException
|
|
|
+ */
|
|
|
+ public static Map<String, Object> getBillColumnListAndBillEntryTableNameByDataType(Context ctx,String submitSchemeId, String dataType) throws BOSException{
|
|
|
+
|
|
|
+ Map<String, Object> map = new HashMap<String, Object>();
|
|
|
+ List<String> colNames = new ArrayList<String>();
|
|
|
+ if (StringUtils.isEmpty(submitSchemeId)) {
|
|
|
+ return map ;
|
|
|
+ }
|
|
|
+
|
|
|
+ String language = ctx.getLocale().getLanguage();
|
|
|
+
|
|
|
+ String sql = "Select e.FSubmitTarget , m.fieldSn,m.fdataType,m.fname_"+language+" ,n.FBillEntryTableName ,n.FCalShemeTableName ,t.FIsRequired from T_HR_SCalSubmitScheme e "
|
|
|
+ + " inner join T_HR_SCalSubmitSchemeItem t on t.FCalSubmitSchemeID = e.fid "
|
|
|
+ + " inner join T_HR_SCalSubmitItem m on m.fid = t.FCalSubmitItemID "
|
|
|
+ + " inner join T_HR_SCalShemeTableRelation n on n.FSubmitSchemeID =e.fid "
|
|
|
+ + " where e.fid = '"+submitSchemeId+"' and m.fdataType = '"+dataType+"' order by FSortSn ";
|
|
|
+ try {
|
|
|
+ String fBillEntryTableName = "" ,fCalShemeTableName = ""; //提报对象 01 person 02 org
|
|
|
+ IRowSet rs = DbUtil.executeQuery(ctx, sql);
|
|
|
+ while (rs.next()) {
|
|
|
+ //=====组装提报项目
|
|
|
+ if (StringUtils.isEmpty(fBillEntryTableName)) {
|
|
|
+ fBillEntryTableName = rs.getString("FBillEntryTableName");
|
|
|
+ fCalShemeTableName = rs.getString("FCalShemeTableName");
|
|
|
+ }
|
|
|
+ colNames.add("S"+rs.getString("fieldSn"));
|
|
|
+ }
|
|
|
+ map.put("fBillEntryTableName", fBillEntryTableName);
|
|
|
+ map.put("fCalShemeTableName", fCalShemeTableName);
|
|
|
+ map.put("colNames", colNames);
|
|
|
+
|
|
|
+ } catch (Exception e) {
|
|
|
+ throw new BOSException("获取提报方案的提报项目列出错!"); //"获取提报方案的提报项目列出错!"
|
|
|
+ }
|
|
|
+ return map ;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ *
|
|
|
+ * 根据方案id 获取方案提报单分录的对应的分录表名
|
|
|
+ * @param schemeId
|
|
|
+ * @return List
|
|
|
+ * @throws BOSException
|
|
|
+ */
|
|
|
+ public static String getSchemeEntryTableName(Context ctx,String submitSchemeId) {
|
|
|
+ String fBillEntryTableName = "" ;
|
|
|
+ String sql = "Select n.FBillEntryTableName from T_HR_SCalSubmitScheme e "
|
|
|
+ + " inner join T_HR_SCalShemeTableRelation n on n.FSubmitSchemeID =e.fid "
|
|
|
+ + " where e.fid = '"+submitSchemeId+"' ";
|
|
|
+ try {
|
|
|
+ //提报对象 01 person 02 org
|
|
|
+ IRowSet rs = DbUtil.executeQuery(ctx, sql);
|
|
|
+ while (rs.next()) {
|
|
|
+ //=====组装提报项目
|
|
|
+ fBillEntryTableName = rs.getString("FBillEntryTableName");
|
|
|
+ }
|
|
|
+ } catch (Exception e) {
|
|
|
+ logger.info(e);
|
|
|
+ }
|
|
|
+ return fBillEntryTableName ;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ *
|
|
|
+ * 根据方案id 获取方案提报单分录的对应的分录表名
|
|
|
+ * @param schemeId
|
|
|
+ * @return List
|
|
|
+ * @throws BOSException
|
|
|
+ */
|
|
|
+ public static String getCalShemeTableName(Context ctx,String submitSchemeId) {
|
|
|
+ String calShemeTableName = "" ;
|
|
|
+ String sql = "Select n.FBillEntryTableName from T_HR_SCalSubmitScheme e "
|
|
|
+ + " inner join T_HR_SCalShemeTableRelation n on n.FSubmitSchemeID =e.fid "
|
|
|
+ + " where e.fid = '"+submitSchemeId+"' ";
|
|
|
+ try {
|
|
|
+ //提报对象 01 person 02 org
|
|
|
+ IRowSet rs = DbUtil.executeQuery(ctx, sql);
|
|
|
+ while (rs.next()) {
|
|
|
+ //=====组装提报项目
|
|
|
+ calShemeTableName = rs.getString("FBillEntryTableName");
|
|
|
+ }
|
|
|
+ } catch (Exception e) {
|
|
|
+ logger.info(e);
|
|
|
+ }
|
|
|
+ return calShemeTableName ;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 删除提报方案关联的动态表及数据
|
|
|
+ * @param schemeId
|
|
|
+ * @return
|
|
|
+ * @throws BOSException
|
|
|
+ * @throws SQLException
|
|
|
+ */
|
|
|
+ public static boolean deleteSubmitSchemeRelationDate(Context ctx,String schemeId) throws BOSException, SQLException {
|
|
|
+ boolean flag = false ;
|
|
|
+ if (StringUtils.isEmpty(schemeId)) {
|
|
|
+ return flag ;
|
|
|
+ }
|
|
|
+ String sql = "select FBillEntryTableName , FCalShemeTableName from T_HR_SCalShemeTableRelation where FSubmitSchemeID = '"+schemeId+"'";
|
|
|
+ String calShemeTableName = "" ,billEntryTableName ="";
|
|
|
+ IRowSet list = DbUtil.executeQuery(ctx, sql);
|
|
|
+ while (list.next()) {
|
|
|
+ billEntryTableName = list.getString("FBillEntryTableName");
|
|
|
+ calShemeTableName = list.getString("FCalShemeTableName");
|
|
|
+ }
|
|
|
+ if (!CmpStrUtil.isEmpty(calShemeTableName)) {
|
|
|
+ DbUtil.execute(ctx, "If exists (select * from KSQL_USERTABLES where KSQL_TABNAME ='" + calShemeTableName + "') drop table " + calShemeTableName + "");
|
|
|
+ DbUtil.execute(ctx, "If exists (select * from KSQL_USERTABLES where KSQL_TABNAME ='" + billEntryTableName + "') drop table " + billEntryTableName + "");
|
|
|
+ }
|
|
|
+ DbUtil.execute(ctx, "delete from T_HR_SCalShemeTableRelation where FSubmitSchemeID = '"+schemeId+"'");
|
|
|
+ return flag ;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 删除提报方案关联的动态表列
|
|
|
+ * @param schemeId
|
|
|
+ * @return
|
|
|
+ * @throws BOSException
|
|
|
+ * @throws SQLException
|
|
|
+ */
|
|
|
+ public static boolean dropSubmitSchemeEntryTableCol(Context ctx,String schemeId,String itemId) throws BOSException, SQLException {
|
|
|
+ boolean flag = false ;
|
|
|
+ if (StringUtils.isEmpty(schemeId)) {
|
|
|
+ return flag ;
|
|
|
+ }
|
|
|
+ String sql = "select FBillEntryTableName , FCalShemeTableName from T_HR_SCalShemeTableRelation where FSubmitSchemeID = '"+schemeId+"'";
|
|
|
+ String sqlItem = "select fieldSn from T_HR_SCalSubmitItem m "
|
|
|
+ + " inner join T_HR_SCalSubmitSchemeItem t on m.fid = t.FCalSubmitItemID where t.fid = '"+itemId+"'" ;
|
|
|
+ String calShemeTableName = "" ,billEntryTableName ="",col="";
|
|
|
+ IRowSet rs = DbUtil.executeQuery(ctx, sql);
|
|
|
+ while (rs.next()) {
|
|
|
+ billEntryTableName = rs.getString("FBillEntryTableName");
|
|
|
+ calShemeTableName = rs.getString("FCalShemeTableName");
|
|
|
+ }
|
|
|
+ rs = DbUtil.executeQuery(ctx, sqlItem);
|
|
|
+ while (rs.next()) {
|
|
|
+ col = "S"+rs.getString("fieldSn");
|
|
|
+ }
|
|
|
+ StringBuilder calShemeTable = new StringBuilder("If exists (select * from KSQL_USERCOLUMNS where KSQL_COL_NAME ='"+col+"' "
|
|
|
+ + " and KSQL_COL_TABNAME='"+calShemeTableName+"')");
|
|
|
+ calShemeTable.append("ALTER TABLE "+calShemeTableName+" drop column "+col+" ");
|
|
|
+
|
|
|
+ StringBuilder billEntryTable = new StringBuilder("If exists (select * from KSQL_USERCOLUMNS where KSQL_COL_NAME ='"+col+"' "
|
|
|
+ + " and KSQL_COL_TABNAME='"+billEntryTableName+"')");
|
|
|
+ billEntryTable.append("ALTER TABLE "+billEntryTableName+" drop column "+col+" ");
|
|
|
+ if (!CmpStrUtil.isEmpty(calShemeTableName)) {
|
|
|
+ DbUtil.execute(ctx,calShemeTable.toString());
|
|
|
+ DbUtil.execute(ctx,billEntryTable.toString());
|
|
|
+ }
|
|
|
+ return flag ;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ *
|
|
|
+ * 根据方案id 获取方案提报单分录的提报项目列及对应的分录表名
|
|
|
+ * @param schemeId
|
|
|
+ * @return List
|
|
|
+ * @throws BOSException
|
|
|
+ */
|
|
|
+ public static Map<String ,Object> getRequiredColumns(Context ctx,String submitSchemeId) throws BOSException{
|
|
|
+ Map<String ,Object> map = new HashMap<String ,Object>();
|
|
|
+ //Set集合保存提报项目信息导致提报项目无法排序,只能改成list
|
|
|
+ List<Map<String, Object>> colNames = new ArrayList<Map<String, Object>>();
|
|
|
+ if (StringUtils.isEmpty(submitSchemeId)) {
|
|
|
+ return map ;
|
|
|
+ }
|
|
|
+ String language = ctx.getLocale().getLanguage();
|
|
|
+ String sql = "Select e.FSubmitTarget , m.fieldSn,m.fdataType,m.fname_"+language+" MNAME,n.FBillEntryTableName ,n.FCalShemeTableName ,t.FIsRequired"
|
|
|
+ + " from T_HR_SCalSubmitScheme e "
|
|
|
+ + " inner join T_HR_SCalSubmitSchemeItem t on t.FCalSubmitSchemeID = e.fid "
|
|
|
+ + " inner join T_HR_SCalSubmitItem m on m.fid = t.FCalSubmitItemID "
|
|
|
+ + " inner join T_HR_SCalShemeTableRelation n on n.FSubmitSchemeID =e.fid "
|
|
|
+ + " where e.fid = '"+submitSchemeId+"' order by fieldSn ";
|
|
|
+ String submitTarget =null;
|
|
|
+ try {
|
|
|
+ IRowSet rs = DbUtil.executeQuery(ctx, sql);
|
|
|
+ while (rs.next()) {
|
|
|
+ Map<String, Object> gridIdMap = new HashMap<String, Object>();
|
|
|
+ gridIdMap.put("rename", rs.getString("MNAME"));
|
|
|
+ gridIdMap.put("name", "CMP_SMT002."+"S"+rs.getString("fieldSn"));
|
|
|
+ gridIdMap.put("label", rs.getString("MNAME"));
|
|
|
+ gridIdMap.put("type", "String");
|
|
|
+ submitTarget = rs.getString("FSubmitTarget");
|
|
|
+ //=====组装提报项目
|
|
|
+ colNames.add(gridIdMap);
|
|
|
+ }
|
|
|
+ map.put("colNames", colNames);
|
|
|
+ map.put("submitTarget", submitTarget);
|
|
|
+ } catch (Exception e) {
|
|
|
+ throw new BOSException("获取提报方案的提报项目列出错!"); // "获取提报方案的提报项目列出错!"
|
|
|
+ }
|
|
|
+ return map ;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 获取指定提报方案的动态项目
|
|
|
+ * @param ctx
|
|
|
+ * @param schemeId
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public static List<CalShemeSubmitItemDTO> getDynamicSubmitItemBySchemeId(Context ctx, String schemeId){
|
|
|
+ List<CalShemeSubmitItemDTO> calShemeSubmitItemDTOS=new ArrayList<CalShemeSubmitItemDTO>();
|
|
|
+ StringBuffer sqlBuffer=new StringBuffer();
|
|
|
+ String language = ctx.getLocale().getLanguage();
|
|
|
+ sqlBuffer.append(" SELECT E.FID AS SCHEMEID, M.FID as ITEMID, M.FIELDSN,M.FDATATYPE,M.FNAME_"+language+" AS ITEMNAME,T.FISREQUIRED ,M.FDATADOT,M.FDATALENGTH ");
|
|
|
+ sqlBuffer.append(" FROM T_HR_SCALSUBMITSCHEME E ");
|
|
|
+ sqlBuffer.append(" INNER JOIN T_HR_SCALSUBMITSCHEMEITEM T ON T.FCALSUBMITSCHEMEID = E.FID ");
|
|
|
+ sqlBuffer.append(" INNER JOIN T_HR_SCALSUBMITITEM M ON M.FID = T.FCALSUBMITITEMID WHERE E.FID = '");
|
|
|
+ sqlBuffer.append(schemeId);
|
|
|
+ sqlBuffer.append("' ORDER BY T.FSORTSN");
|
|
|
+ try {
|
|
|
+ IRowSet rs = DbUtil.executeQuery(ctx, sqlBuffer.toString());
|
|
|
+ CalShemeSubmitItemDTO calShemeSubmitItemDTO=null;
|
|
|
+ while (rs.next()){
|
|
|
+ calShemeSubmitItemDTO=new CalShemeSubmitItemDTO();
|
|
|
+ calShemeSubmitItemDTO.setSubmitSchemeId(rs.getString("SCHEMEID"));
|
|
|
+ calShemeSubmitItemDTO.setItemId(rs.getString("ITEMID"));
|
|
|
+ calShemeSubmitItemDTO.setFieldSn(rs.getInt("FIELDSN"));
|
|
|
+ calShemeSubmitItemDTO.setDataType(rs.getString("FDATATYPE"));
|
|
|
+ calShemeSubmitItemDTO.setSubmitItemName(rs.getString("ITEMNAME"));
|
|
|
+ calShemeSubmitItemDTO.setIsRequired(rs.getInt("FISREQUIRED"));
|
|
|
+ calShemeSubmitItemDTO.setDataDot(rs.getInt("FDATADOT"));
|
|
|
+ calShemeSubmitItemDTO.setDataLength(rs.getInt("FDATALENGTH"));
|
|
|
+ calShemeSubmitItemDTOS.add(calShemeSubmitItemDTO);
|
|
|
+ }
|
|
|
+ } catch (BOSException e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ logger.error(e.getMessage(),e);
|
|
|
+ } catch (SQLException e) {
|
|
|
+ logger.error(e.getMessage(),e);
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ return calShemeSubmitItemDTOS;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 获取指定提报方案的动态项目
|
|
|
+ * @param ctx
|
|
|
+ * @param schemeId
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public static List<CalShemeSubmitItemDTO> getDynamicSubmitItemBySchemeIdNotCenter(Context ctx, String schemeId){
|
|
|
+ List<CalShemeSubmitItemDTO> calShemeSubmitItemDTOS=new ArrayList<CalShemeSubmitItemDTO>();
|
|
|
+ StringBuffer sqlBuffer=new StringBuffer();
|
|
|
+ String language = ctx.getLocale().getLanguage();
|
|
|
+ sqlBuffer.append(" SELECT E.FID AS SCHEMEID, M.FID as ITEMID, M.FIELDSN,M.FDATATYPE,M.FNAME_"+language+" AS ITEMNAME,"
|
|
|
+ + "T.FISREQUIRED ,M.FDATADOT,M.FDATALENGTH ");
|
|
|
+ sqlBuffer.append(" FROM T_HR_SCALSUBMITSCHEME E ");
|
|
|
+ sqlBuffer.append(" INNER JOIN T_HR_SCALSUBMITSCHEMEITEM T ON T.FCALSUBMITSCHEMEID = E.FID ");
|
|
|
+ sqlBuffer.append(" INNER JOIN T_HR_SCALSUBMITITEM M ON M.FID = T.FCALSUBMITITEMID WHERE E.FID = '");
|
|
|
+ sqlBuffer.append(schemeId);
|
|
|
+ sqlBuffer.append("' and M.Fnumber not in('DormFee027','DormFee026')");
|
|
|
+ sqlBuffer.append(" AND T.FState=1 ORDER BY T.FSORTSN");
|
|
|
+
|
|
|
+ try {
|
|
|
+ IRowSet rs = DbUtil.executeQuery(ctx, sqlBuffer.toString());
|
|
|
+ CalShemeSubmitItemDTO calShemeSubmitItemDTO=null;
|
|
|
+ while (rs.next()){
|
|
|
+ calShemeSubmitItemDTO=new CalShemeSubmitItemDTO();
|
|
|
+ calShemeSubmitItemDTO.setSubmitSchemeId(rs.getString("SCHEMEID"));
|
|
|
+ calShemeSubmitItemDTO.setItemId(rs.getString("ITEMID"));
|
|
|
+ calShemeSubmitItemDTO.setFieldSn(rs.getInt("FIELDSN"));
|
|
|
+ calShemeSubmitItemDTO.setDataType(rs.getString("FDATATYPE"));
|
|
|
+ calShemeSubmitItemDTO.setSubmitItemName(rs.getString("ITEMNAME"));
|
|
|
+ calShemeSubmitItemDTO.setIsRequired(rs.getInt("FISREQUIRED"));
|
|
|
+ calShemeSubmitItemDTO.setDataDot(rs.getInt("FDATADOT"));
|
|
|
+ calShemeSubmitItemDTO.setDataLength(rs.getInt("FDATALENGTH"));
|
|
|
+ calShemeSubmitItemDTOS.add(calShemeSubmitItemDTO);
|
|
|
+ }
|
|
|
+ } catch (BOSException e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ logger.error(e.getMessage(),e);
|
|
|
+ } catch (SQLException e) {
|
|
|
+ logger.error(e.getMessage(),e);
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ return calShemeSubmitItemDTOS;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 获取指定提报方案的动态项目排除实缴
|
|
|
+ * @param ctx
|
|
|
+ * @param schemeId
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public static List<CalShemeSubmitItemDTO> getDynamicSubmitItemBySchemeIdExcludePaid (Context ctx, String schemeId){
|
|
|
+ List<CalShemeSubmitItemDTO> calShemeSubmitItemDTOS=new ArrayList<CalShemeSubmitItemDTO>();
|
|
|
+ StringBuffer sqlBuffer=new StringBuffer();
|
|
|
+ String language = ctx.getLocale().getLanguage();
|
|
|
+ sqlBuffer.append(" SELECT E.FID AS SCHEMEID, M.FID as ITEMID, M.FIELDSN,M.FDATATYPE,M.FNAME_"+language+" AS ITEMNAME,T.FISREQUIRED ,M.FDATADOT,M.FDATALENGTH ");
|
|
|
+ sqlBuffer.append(" FROM T_HR_SCALSUBMITSCHEME E ");
|
|
|
+ sqlBuffer.append(" INNER JOIN T_HR_SCALSUBMITSCHEMEITEM T ON T.FCALSUBMITSCHEMEID = E.FID ");
|
|
|
+ sqlBuffer.append(" INNER JOIN T_HR_SCALSUBMITITEM M ON M.FID = T.FCALSUBMITITEMID WHERE E.FID = '");
|
|
|
+ sqlBuffer.append(schemeId);
|
|
|
+ sqlBuffer.append("' and M.fnumber not in('DormFee026','DormFee027') ORDER BY T.FSORTSN");
|
|
|
+ try {
|
|
|
+ IRowSet rs = DbUtil.executeQuery(ctx, sqlBuffer.toString());
|
|
|
+ CalShemeSubmitItemDTO calShemeSubmitItemDTO=null;
|
|
|
+ while (rs.next()){
|
|
|
+ calShemeSubmitItemDTO=new CalShemeSubmitItemDTO();
|
|
|
+ calShemeSubmitItemDTO.setSubmitSchemeId(rs.getString("SCHEMEID"));
|
|
|
+ calShemeSubmitItemDTO.setItemId(rs.getString("ITEMID"));
|
|
|
+ calShemeSubmitItemDTO.setFieldSn(rs.getInt("FIELDSN"));
|
|
|
+ calShemeSubmitItemDTO.setDataType(rs.getString("FDATATYPE"));
|
|
|
+ calShemeSubmitItemDTO.setSubmitItemName(rs.getString("ITEMNAME"));
|
|
|
+ calShemeSubmitItemDTO.setIsRequired(rs.getInt("FISREQUIRED"));
|
|
|
+ calShemeSubmitItemDTO.setDataDot(rs.getInt("FDATADOT"));
|
|
|
+ calShemeSubmitItemDTO.setDataLength(rs.getInt("FDATALENGTH"));
|
|
|
+ calShemeSubmitItemDTOS.add(calShemeSubmitItemDTO);
|
|
|
+ }
|
|
|
+ } catch (BOSException e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ logger.error(e.getMessage(),e);
|
|
|
+ } catch (SQLException e) {
|
|
|
+ logger.error(e.getMessage(),e);
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ return calShemeSubmitItemDTOS;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ public static Map<String, Integer> getCellLength(Context ctx, String schemeId){
|
|
|
+ Map<String, Integer> map = new HashMap<String, Integer>();
|
|
|
+ String sql = "Select m.fieldSn,m.FDataLength"
|
|
|
+ + " from T_HR_SCalSubmitScheme e "
|
|
|
+ + " inner join T_HR_SCalSubmitSchemeItem t on t.FCalSubmitSchemeID = e.fid "
|
|
|
+ + " inner join T_HR_SCalSubmitItem m on m.fid = t.FCalSubmitItemID "
|
|
|
+ + " where e.fid = '"+schemeId+"' and FDataType = '1' order by FSortSn";
|
|
|
+ try {
|
|
|
+ IRowSet rs = DbUtil.executeQuery(ctx, sql);
|
|
|
+ while (rs.next()) {
|
|
|
+ String fieldSn = String.valueOf(rs.getInt(1));
|
|
|
+ Integer dataLength = rs.getInt(2);
|
|
|
+ map.put(fieldSn, dataLength);
|
|
|
+ }
|
|
|
+ }catch(Exception e){
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ return map;
|
|
|
+ }
|
|
|
+}
|