提交 87e5bcfe 编写于 作者: 偏锋书生's avatar 偏锋书生

职位指派与群组指派完成

上级 cd66bd13
......@@ -191,7 +191,7 @@ public class GroupAssign extends ParentPage {
long[] oriIds = new long[selGroup.size()];
for (int i = 0; i < oriIds.length; i++) {
oriIds[i] = Integer.parseInt(String.valueOf(selGroup.get(i)));
oriIds[i] = Long.parseLong(String.valueOf(selGroup.get(i)));
}
long[] saveIds = new long[selIds.size()];
for (int i = 0; i < selIds.size(); i++) {
......
package net.wicp.tams.duckula.ops.pages.tools;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.ArrayUtils;
......@@ -14,12 +18,22 @@ import org.apache.tapestry5.json.JSONArray;
import org.apache.tapestry5.json.JSONObject;
import org.apache.tapestry5.util.TextStreamResponse;
import net.wicp.tams.app.duckula.controller.bean.models.SysOrg;
import net.wicp.tams.app.duckula.controller.bean.models.SysPosition;
import net.wicp.tams.app.duckula.controller.bean.models.SysPositionExample;
import net.wicp.tams.app.duckula.controller.bean.models.SysUserPosition;
import net.wicp.tams.app.duckula.controller.bean.models.SysUserPositionExample;
import net.wicp.tams.app.duckula.controller.bean.models.SysUserPositionExample.Criteria;
import net.wicp.tams.app.duckula.controller.dao.SysPositionMapper;
import net.wicp.tams.app.duckula.controller.dao.SysUserPositionMapper;
import net.wicp.tams.app.duckula.controller.service.cas.IOrgService;
import net.wicp.tams.cas.constant.ColsSysOrg;
import net.wicp.tams.common.Result;
import net.wicp.tams.common.apiext.CollectionUtil;
import net.wicp.tams.common.apiext.StringUtil;
import net.wicp.tams.common.callback.IConvertValue;
import net.wicp.tams.common.jdbc.convert.ConvertValueMysql;
import net.wicp.tams.component.SymbolConstantsCus;
import net.wicp.tams.component.tools.TapestryAssist;
import net.wicp.tams.duckula.ops.pages.ParentPage;
......@@ -35,66 +49,96 @@ public class PositionAssign extends ParentPage {
private JSONArray orgs;
@Property
private List<SysUserPosition> allPosition;// 已选中组织中拥有的群组
private List<SysPosition> allPosition;// 已选中组织中拥有的群组
@Property
private List<String> selPosition;// 已分派到的群组
// 如果不持久化onInitByOrg方法不能用
@Property
@Persist
private Map<String, IConvertValue<String>> convmap;// 转换器
public String getAlias() {
return "orgId,orgName1";
}
@Inject
private SysUserPositionMapper sysUserPositionMapper;
@Inject
private SysPositionMapper sysPositionMapper;
public TextStreamResponse onInitByOrg() {
JSONObject params=TapestryAssist.packParams(request,false);
orgs = TapestryAssist.getParams(params,
"orgIds");
List<Object> orgIds = orgs==null?null:orgs.toList();
JSONObject params = TapestryAssist.packParams(request, false);
orgs = TapestryAssist.getParams(params, "orgIds");
List<Object> orgIds = orgs == null ? null : orgs.toList();
selAll(params.getInt("staffId"), orgIds);
JSONObject ret = TapestryAssist.buildSelGroupInit(allPosition, selPosition,
new String[] { "caOrganization.orgName,orgName1" }, null);
JSONObject ret = TapestryAssist.buildSelGroupInit(allPosition, selPosition, new String[] { getAlias() },
convmap);
return retStream(ret.toString(true));
}
void onActivate(int staffId) {
this.staffId = staffId;
orgTree = orgService.createOrgTree(I18NConvert);
orgTree = orgService.createOrgTree(new IConvertValue<Object>() {
@Override
public String getStr(Object obj) {
SysOrg org = (SysOrg) obj;
String key = org.getOrgName();
if (StringUtil.isNull(key) || !messages.contains(key)) {
return key;
}
return messages.get(key);
}
});
convmap = new HashMap<String, IConvertValue<String>>();//
convmap.put("orgName1",
new ConvertValueMysql(ColsSysOrg.db, ColsSysOrg.tb, ColsSysOrg.orgName.getOriColName()));
selAll(staffId, null);
}
private void selAll(long staffId, List<Object> orgIds) {
// 参数转为list
List<Long> orgidsTrue = null;
if (orgIds != null) {
orgidsTrue = new ArrayList<Long>();
for (Object ele : orgIds) {
orgidsTrue.add(Long.parseLong(String.valueOf(ele)));
}
}
// SysUserPositionExample example=new SysUserPositionExample();
// Criteria createCriteria = example.createCriteria();
// createCriteria+
// sysUserPositionMapper.selectByExample(example);
//
//
// Criteria criteria = session.createCriteria(CaPosition.class);
// if (orgidsTrue != null) {
// criteria.add(Restrictions.in("caOrganization.id", orgidsTrue));
// }
allPosition = new ArrayList<SysUserPosition>();
}
SysPositionExample example = new SysPositionExample();
SysPositionExample.Criteria criteria = example.createCriteria();
if (CollectionUtils.isNotEmpty(orgidsTrue)) {
criteria.andOrgIdIn(orgidsTrue);
}
allPosition = sysPositionMapper.selectByExample(example);
findGroupId(staffId, orgidsTrue);
}
private void findGroupId(long staffId, List<Long> orgidsTrue) {
// 查询已选择的群组
// String alias = "group_"; //查询时的table别名
// Criteria criteriasel = session.createCriteria(CaStaffPosition.class);
// ProjectionList pList = Projections.projectionList();
// pList.add(Projections.property("caPosition.id").as("positionId"));
// criteriasel.setProjection(pList);
// criteriasel.add(Restrictions.eq("caStaff.id", staffId));
// if (orgidsTrue != null) {
// criteriasel.createAlias("caPosition", "g");
// criteriasel.add(Restrictions.in("g.caOrganization.id", orgidsTrue));
// }
selPosition = new ArrayList<String>();
SysUserPositionExample example = new SysUserPositionExample();
SysUserPositionExample.Criteria createCriteria = example.createCriteria();
createCriteria.andUserIdEqualTo(staffId);
if (orgidsTrue != null) {
SysPositionExample positionExample = new SysPositionExample();
SysPositionExample.Criteria createCriteria2 = positionExample.createCriteria();
createCriteria2.andOrgIdIn(orgidsTrue);
List<SysPosition> positions = sysPositionMapper.selectByExample(positionExample);
Set<Long> positionIds = CollectionUtil.getColSetFromObj(positions, "id");
if (CollectionUtils.isNotEmpty(positionIds)) {
createCriteria.andPositionIdIn(Arrays.asList(positionIds.toArray(new Long[positionIds.size()])));
}
}
List<SysUserPosition> selectByExample = sysUserPositionMapper.selectByExample(example);
Set<Object> positionIdset = CollectionUtil.getColSetFromObj(selectByExample, "positionId");
List<String> retlist = new ArrayList<String>();
for (Object ele : positionIdset) {
retlist.add(String.valueOf(ele));
}
selPosition = retlist;
}
/***
......@@ -103,7 +147,8 @@ public class PositionAssign extends ParentPage {
* @param selIds
* @return
*/
@OnEvent(value = "save")
@SuppressWarnings("unchecked")
@OnEvent(value = SymbolConstantsCus.EVENT_SAVE)
private Result sava(JSONArray selIds) {
if (selIds == null) {
return Result.getError("需要传入要保存的对象");
......@@ -122,11 +167,11 @@ public class PositionAssign extends ParentPage {
long[] oriIds = new long[selPosition.size()];
for (int i = 0; i < oriIds.length; i++) {
oriIds[i] = Integer.parseInt(String.valueOf(selPosition.get(i)));
oriIds[i] = Long.parseLong(String.valueOf(selPosition.get(i)));
}
long[] saveIds = new long[selIds.size()];
for (int i = 0; i < selIds.size(); i++) {
saveIds[i] = Integer.parseInt(selIds.getString(i));
saveIds[i] = Long.parseLong(selIds.getString(i));
}
List<Long> addList = new ArrayList<Long>();// 新增
for (int i = 0; i < saveIds.length; i++) {
......@@ -137,7 +182,7 @@ public class PositionAssign extends ParentPage {
if (CollectionUtils.isNotEmpty(addList)) {
for (Long positionId : addList) {
SysUserPosition saveobj = new SysUserPosition();
saveobj.setPositionId(positionId);
saveobj.setPositionId(positionId);
saveobj.setUserId(staffId);
sysUserPositionMapper.insert(saveobj);
}
......@@ -151,10 +196,10 @@ public class PositionAssign extends ParentPage {
}
if (CollectionUtils.isNotEmpty(delList)) {
SysUserPositionExample example=new SysUserPositionExample();
SysUserPositionExample example = new SysUserPositionExample();
Criteria createCriteria = example.createCriteria();
createCriteria.andUserIdEqualTo(staffId);
createCriteria.andPositionIdIn(delList);
createCriteria.andPositionIdIn(delList);
sysUserPositionMapper.deleteByExample(example);
}
return Result.getSuc();
......
......@@ -22,7 +22,7 @@
</tr>
</table>
</r:panel2>
<r:selgroup id="sel" title="selPositionTitle" select="prop:selPosition" objs="allPosition" alias="caOrganization.orgName,orgName1" style="width:100%" titleleft="titleleft" titleright="titleright">
<r:selgroup id="sel" title="message:selPositionTitle" select="prop:selPosition" objs="allPosition" alias="prop:alias" convert="prop:convmap" style="width:100%" titleleft="message:titleleft" titleright="message:titleright">
<table border="1">
<tr>
<td>职位名:</td>
......@@ -34,10 +34,11 @@
</r:selgroup>
<script>
function init(){
$('#q_query').unbind('click');
$('#q_query').click(function(){
var orgidstr=$('#orgIdQuery').combotree('getValues');
var staffId=${staffId};
$.post($.rjzjh.packurl('/sys/common/PositionAssign:initByOrg'),{orgIds:orgidstr,staffId:staffId},function(data){
$.post($.rjzjh.packurl('/tools/PositionAssign:initByOrg'),{orgIds:orgidstr,staffId:staffId},function(data){
require(["component/rjzjh/selgroup"], function(sel) {
sel.init('sel',data);
});
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册