| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101 |
- package com.kingdee.eas.custom.wamke.syncdata.web;
- import javax.servlet.http.HttpServletRequest;
- import javax.servlet.http.HttpServletResponse;
- import org.apache.log4j.Logger;
- import org.apache.log4j.Priority;
- import com.alibaba.fastjson.JSON;
- import com.alibaba.fastjson.JSONObject;
- import com.kingdee.bos.Context;
- import com.kingdee.bos.dao.IObjectPK;
- import com.kingdee.eas.custom.wamke.syncdata.ButterflyPrincipalInfo;
- import com.kingdee.eas.framework.CoreBaseInfo;
- import com.kingdee.eas.util.app.DbUtil;
- import com.kingdee.jdbc.rowset.IRowSet;
- import com.kingdee.shr.base.syssetting.context.SHRContext;
- import com.kingdee.shr.base.syssetting.exception.SHRWebException;
- import com.kingdee.shr.base.syssetting.web.handler.EditHandler;
- public class ButterflyPrincipalEditHandler extends EditHandler {
- private static Logger logger = Logger.getLogger(ButterflyPrincipalEditHandler.class);
-
- @Override
- protected IObjectPK runSaveData(HttpServletRequest request,
- HttpServletResponse response, CoreBaseInfo model) throws Exception {
-
- JSONObject jsonObj = JSON.parseObject(request.getParameter("model"));
- String personId = jsonObj.get("personId").toString();
-
- ButterflyPrincipalInfo info = (ButterflyPrincipalInfo)model;
- //校验是否已存在相面的关联人员,蝶城,负责人类型
- String personType = mappingPersonType(model.get("personType").toString());
- checkExistRelation(personId, info.getButterflyCode(), personType);
-
- IObjectPK pk = super.runSaveData(request, response, model);
- //更新负责人姓名和编号,蝶城
- if( ( info!=null &&info.getId() != null ) || pk != null ){
- String id = pk !=null ? pk.toString(): info.getId().toString();
- afterRunSaveData( id, personType, personId);
- }
- return pk;
- }
-
- private void afterRunSaveData(String id, String personType, String personId) throws Exception{
- //更新负责人类型
- Context ctx = SHRContext.getInstance().getContext();
- StringBuilder sb = new StringBuilder();
-
- //获取ID
- //获取人员
- String sql = "SELECT TOP 1 FName_L2 AS personName, FNumber AS personCode FROM T_BD_Person WHERE FId = '"+ personId +"'";
- logInfo("执行SQL"+sql);
- IRowSet rowSet = DbUtil.executeQuery(ctx,sql);
- String personName = "";
- String personCode = "";
- while(rowSet.next()){
- personName = rowSet.getString("personName");
- personCode = rowSet.getString("personCode");
- break;
- }
- sb.append(" UPDATE CT_WK_ButterflyPrincipal SET CFPersonType = N'").append(personType)
- .append("', CFPersonName = N'").append(personName).append("' ")
- .append(", CFPersonCode = N'").append(personCode).append("' ")
- .append(" WHERE CT_WK_ButterflyPrincipal.FID = '").append(id).append("'");
-
- logInfo("执行SQL"+sb.toString());
- DbUtil.execute(ctx, sb.toString());
- }
-
- private void logInfo(String msg){
- logger.log(Priority.DEBUG, msg);
- }
-
- /**
- * 校验是否存在相同的关系
- * @throws Exception
- */
- private void checkExistRelation(String personId, String butterflyCode, String personType) throws Exception{
- String sql = "SELECT COUNT(1) AS num FROM CT_WK_ButterflyPrincipal WHERE CFPersonId = '"+personId+"' AND CFPersonType = '"
- +personType+"' AND CFButterflyCode = '"+butterflyCode+"'";
- Context ctx = SHRContext.getInstance().getContext();
- IRowSet rowSet = DbUtil.executeQuery(ctx, sql);
- while(rowSet.next()){
- if(rowSet.getInt("num")>0){
- throw new SHRWebException("已存在相同的负责人关系");
- }
- }
- }
-
- private String mappingPersonType(String webPeronType){
- if(webPeronType.equals("人事运营")){
- return "PersonnelOperation";
- }
- if(webPeronType.equals("人事主管")){
- return "PersonnelSupervisor";
- }
- return webPeronType;
- }
- }
|