package com.api.mobilemode.web.mobile.browser; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.api.fna.service.impl.BudgetfeeTypeBrowserService; import com.api.fna.util.FnaConstant; import com.api.mobilemode.web.mobile.ActionMapping; import com.api.mobilemode.web.mobile.BaseMobileAction; import com.cloudstore.dev.api.service.Service_DevTable; import com.weaver.formmodel.mobile.utils.BrowserUtil; import com.weaver.formmodel.util.StringHelper; import weaver.general.Util; import weaver.hrm.company.DepartmentComInfo; import weaver.hrm.company.SubCompanyComInfo; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.util.Arrays; import java.util.HashMap; import java.util.Map; /** * 公用系统浏览框action, * 从commonbrowser中分离,用于处理常用需个性化处理的公用系统浏览框 */ public class SystemBrowserAction extends BaseMobileAction { private static final long serialVersionUID = 393862748977092668L; // 部门浏览框id private static final String[] DEPT_IDS = {"4", "57", "167", "168"}; // 分部浏览框id private static final String[] SUBCOMPANY_IDS = {"164", "194", "169", "170"}; private static final String DEPT_FIELD = "19135"; public SystemBrowserAction(HttpServletRequest request, HttpServletResponse response) { super(request, response); } /** * 通过browserid获取浏览框数据,列表数据返回dataKey,树形数据返回节点信息 * @return */ @ActionMapping(name = "getData") public JSONObject getData() {// 22:报销费用类型, 4:部门, 57:多部门, 167:分权单部门, 168:分权多部门, 164:分部, 194:多分部, 169:分权单分部, 170:分权多分部 String browserId = Util.null2String(getParameter("browserId")); JSONObject apidatas = new JSONObject(); String fieldid = Util.null2String(pageParam.get("fieldid")); if (DEPT_FIELD.equals(fieldid)){ pageParam.put("fromModule","model"); pageParam.put("isFromMode","1"); pageParam.put("modeId","147"); pageParam.put("isbill","1"); } apidatas.putAll(JSONObject.parseObject(JSON.toJSONString(BrowserUtil.getDataBySysApiService(browserId, pageParam, user)))); boolean isSubCompany = Arrays.asList(SUBCOMPANY_IDS).contains(browserId); if (Arrays.asList(DEPT_IDS).contains(browserId) || isSubCompany) {// 分部 or 部门 String selectedIds = Util.null2String(getParameter("selectedIds")); if (selectedIds.length() > 0) { DepartmentComInfo departmentComInfo = new DepartmentComInfo(); SubCompanyComInfo subCompanyComInfo = new SubCompanyComInfo(); JSONArray selArr = new JSONArray(); Arrays.asList(selectedIds.split(",")).forEach(id -> { String name = isSubCompany ? subCompanyComInfo.getSubCompanyname(id) : departmentComInfo.getDepartmentname(id);// 分部/部门名称 if (StringHelper.isNotEmpty(name)) { JSONObject dept = new JSONObject(); dept.put("id", id); dept.put("name", name); selArr.add(dept); } }); apidatas.put("sel_datas", selArr); } } if ("1".equals(getParameter("list"))) { //获取列表 String dataKey = Util.null2String(apidatas.get("datas")); String pageSize = Util.null2String(getParameter("pageSize")); String current = Util.null2String(getParameter("current")); return executeWithSession(() -> { JSONObject datas = new JSONObject(); Service_DevTable devTableService = new Service_DevTable(); String dataTable = devTableService.datas(this.getRequest(), this.getResponse(), dataKey, pageSize, "", "", "", current, "1"); datas.putAll(JSON.parseObject(dataTable)); datas.put("sel_datas", apidatas.get("sel_datas")); return datas; }); } return apidatas; } /** * 通过dataKey获取分页列表数据 * @return */ @ActionMapping(name = "getListData") public JSONObject getListData() { String dataKey = Util.null2String(getParameter("dataKey")); String pageSize = Util.null2String(getParameter("pageSize")); String min = Util.null2String(getParameter("min")); String max = Util.null2String(getParameter("max")); String current = Util.null2String(getParameter("current")); return executeWithSession(() -> { JSONObject apidatas = new JSONObject(); Service_DevTable devTableService = new Service_DevTable(); String dataTable = devTableService.datas(this.getRequest(), this.getResponse(), dataKey, pageSize, "", min, max, current, "1"); apidatas.putAll(JSON.parseObject(dataTable)); return apidatas; }); } /** * 更新报销费用浏览框最近信息 */ @ActionMapping(name = "updateBudgetfeeTypeUsed") public JSONObject updateBudgetfeeTypeUsed() { Map apidatas = new HashMap(); Map params = new HashMap<>(); params.putAll(pageParam); if (user == null) { apidatas.put(FnaConstant.FNA_RESULT_DATA, null); } else { apidatas = new BudgetfeeTypeBrowserService().updateBudgetfeeTypeUsed(user, params); } return JSONObject.parseObject(JSON.toJSONString(apidatas)); } }