package com.ycsoft.sysmanager.web.action.system; import java.util.ArrayList; import java.util.Date; import java.util.List; import org.springframework.stereotype.Controller; import com.ycsoft.beans.config.TAddress; import com.ycsoft.beans.system.SDept; import com.ycsoft.beans.system.SDeptBusicode; import com.ycsoft.beans.system.SSysChange; import com.ycsoft.commons.abstracts.BaseAction; import com.ycsoft.commons.constants.SysChangeType; import com.ycsoft.commons.exception.ActionException; import com.ycsoft.commons.helper.StringHelper; import com.ycsoft.commons.tree.TreeBuilder; import com.ycsoft.commons.tree.TreeNode; import com.ycsoft.daos.core.JDBCException; import com.ycsoft.daos.helper.BeanHelper; import com.ycsoft.sysmanager.component.system.SystemComponent; import com.ycsoft.sysmanager.dto.tree.TreeDto; import com.ycsoft.sysmanager.web.commons.interceptor.WebOptr; @Controller public class DeptAction extends BaseAction { /** * */ private static final long serialVersionUID = -2672335551430477892L; private SystemComponent systemComponent; private SDept dept ; private String deptId; private String query; private String pid; private String countyId; private String[] addrIds; private String[] busiCodes; private String bindType; /** * 部门对应的仓库 * @return * @throws Exception */ public String queryDepot() throws Exception { getRoot().setRecords(systemComponent.queryDepot(countyId)); return JSON_RECORDS; } /** * 根据操作员ID查询部门 * @param countyId * @return * @throws Exception */ @SuppressWarnings("unchecked") public String queryDeptByCountyId() throws Exception{ List list = systemComponent.queryDeptByCountyId(optr); getRoot().setRecords(TreeBuilder.createTree(list)); return JSON_RECORDS; } @SuppressWarnings("unchecked") public String queryAdrToDeptTree() throws Exception{ List<TreeNode> prodtree = TreeBuilder.createTreeCheck((List)systemComponent.queryAdrToDeptTree(deptId)); getRoot().setRecords(prodtree); return JSON_RECORDS; } /** * 删除机构信息 */ public String removeDept() throws Exception{ SDept oldDept = systemComponent.queryDeptInfoForSysChange(deptId); getRoot().setSimpleObj(systemComponent.deleteDept(deptId)); SDept newDept = systemComponent.queryDeptInfoForSysChange(deptId); saveChanges(oldDept,newDept); return JSON; } /** * 添加修改机构信息 */ public String saveDept() throws Exception{ SDept oldDept = systemComponent.queryDeptInfoForSysChange(dept.getDept_id()); if(StringHelper.isNotEmpty(dept.getDept_id())){ systemComponent.updateDept(dept); }else{ systemComponent.saveDept(dept,optr); } SDept newDept = systemComponent.queryDeptInfoForSysChange(dept.getDept_id()); saveChanges(oldDept,newDept); getRoot().setSimpleObj(dept); return JSON; } private void saveChanges(SDept oldDept, SDept newDept) throws ActionException{ if(oldDept ==null && newDept ==null){ throw new ActionException("保存部门异动信息的时候参数有误!"); } try{ String content = BeanHelper.beanchange(oldDept, newDept); String key = newDept ==null ? oldDept.getDept_id():newDept.getDept_id(); String keyDesc = newDept ==null ? oldDept.getDept_name():newDept.getDept_name(); String changeDesc = "部门异动"; if(StringHelper.isNotEmpty(content)){ SSysChange change = new SSysChange(SysChangeType.DEPT.toString(), systemComponent.getDoneCOde(), key,keyDesc, changeDesc, content, WebOptr.getOptr().getOptr_id(), new Date()); systemComponent.getSSysChangeDao().save(change); } }catch (Exception e) { throw new ActionException(e.getMessage()); } } public String saveAddrToDept() throws Exception { systemComponent.saveAddrToDept(addrIds,deptId); getRoot().setSimpleObj(deptId); return JSON; } /** * 溧阳. * @return * @throws Exception */ public String saveAddr2Dept() throws Exception { if(addrIds == null){ addrIds = new String [0]; } List<String> list = new ArrayList<String>(); for(String str:addrIds){ if(StringHelper.isNotEmpty(str)){ list.add(str); } } //通过上面方法过滤掉传过来空参数. systemComponent.saveAddr2Dept(list.toArray(new String[list.size()]),deptId); getRoot().setSimpleObj(deptId); return JSON; } public String queryBindableAddr() throws Exception{ List<TAddress> records = systemComponent.queryBindableAddr(countyId,deptId); getRoot().setRecords(records); return JSON_RECORDS; } /** * 保存小区、业务对应关系. * @return * @throws Exception */ public String saveBusiCodesToDept() throws Exception { systemComponent.saveBusiCodesToDept(busiCodes,deptId,bindType); getRoot().setSimpleObj(true); return JSON; } /** * 查询小区、业务对应关系. * @return * @throws Exception */ public String queryDeptBusiCodes() throws Exception { List<SDeptBusicode> records = systemComponent.queryDeptBusiCodes(deptId); getRoot().setRecords(records); return JSON_RECORDS; } public SystemComponent getSystemComponent() { return systemComponent; } public void setSystemComponent(SystemComponent systemComponent) { this.systemComponent = systemComponent; } public SDept getDept() { return dept; } public void setDept(SDept dept) { this.dept = dept; } public void setDeptId(String deptId) { this.deptId = deptId; } public String getQuery() { return query; } public void setQuery(String query) { this.query = query; } public String getPid() { return pid; } public void setPid(String pid) { this.pid = pid; } public String getCountyId() { return countyId; } public void setCountyId(String countyId) { this.countyId = countyId; } public void setAddrIds(String[] addrIds) { this.addrIds = addrIds; } public String[] getBusiCodes() { return busiCodes; } public void setBusiCodes(String[] busiCodes) { this.busiCodes = busiCodes; } public String getBindType() { return bindType; } public void setBindType(String bindType) { this.bindType = bindType; } }