123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411 |
- package com.kingdee.eas.custom.calcdailypay.task;
- import com.kingdee.bos.BOSException;
- import com.kingdee.bos.Context;
- import com.kingdee.bos.dao.ormapping.ObjectUuidPK;
- import com.kingdee.bos.rabbitmq.guava.Lists;
- import com.kingdee.bos.util.BOSUuid;
- import com.kingdee.eas.base.permission.UserInfo;
- import com.kingdee.eas.basedata.org.AdminOrgUnitInfo;
- import com.kingdee.eas.basedata.org.CtrlUnitInfo;
- import com.kingdee.eas.basedata.org.PositionInfo;
- import com.kingdee.eas.basedata.person.PersonInfo;
- import com.kingdee.eas.common.EASBizException;
- import com.kingdee.eas.custom.calcdailypay.IInspectionRate;
- import com.kingdee.eas.custom.calcdailypay.InspectionRateFactory;
- import com.kingdee.eas.custom.calcdailypay.InspectionRateInfo;
- import com.kingdee.eas.framework.CoreBaseCollection;
- import com.kingdee.eas.util.app.DbUtil;
- import com.kingdee.jdbc.rowset.IRowSet;
- import com.kingdee.jdbc.rowset.impl.JdbcRowSet;
- import com.kingdee.util.db.SQLUtils;
- import org.apache.commons.lang3.StringUtils;
- import org.apache.log4j.Logger;
- import java.io.FileInputStream;
- import java.sql.*;
- import java.text.SimpleDateFormat;
- import java.util.Calendar;
- import java.util.List;
- import java.util.Properties;
- public class SyncMesTpmInsRateFacadeControllerBean extends AbstractSyncMesTpmInsRateFacadeControllerBean {
- private static Logger logger =
- Logger.getLogger("com.kingdee.eas.custom.calcdailypay.task.SyncMesTpmInsRateFacadeControllerBean");
- private static Properties propt = new Properties();
- public static void main(String[] args) throws BOSException {
- System.setProperty("EAS_HOME","D:/project/kingdeeV90/Project_hty/mingQuanJiTuan");
- SyncMesTpmInsRateFacadeControllerBean mes = new SyncMesTpmInsRateFacadeControllerBean();
- String str = mes._syncMesToShr(new Context(),null,null,null);
- System.out.println(str);
- }
- public SyncMesTpmInsRateFacadeControllerBean() {
- try {
- propt.load(new FileInputStream(String.valueOf(System.getProperty("EAS_HOME")) + "/server/properties/mingquan/syncMes.properties"));
- } catch (Exception e) {
- e.printStackTrace();
- logger.error(e);
- }
- }
- /**
- * 开始日期、结束日期为空,则结束日期默认取当天,开始日期默认取当天减一天
- * @description:
- * @author: lhbj
- * @date: 2025/5/30 16:48
- * @param: null
- * @return:null
- **/
- @Override
- protected String _syncMesToShr(Context ctx, String startDdjdate, String endDdjDate, String personNum) throws BOSException{
- super._syncMesToShr(ctx,startDdjdate,endDdjDate,personNum);
- try {
- SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd");
- List<String> param = Lists.newArrayList();
- StringBuffer selSql = new StringBuffer();
- selSql.append(" select id,max(dcreatetime) dcreatetime,bsysdel,cgsmc, ");
- selSql.append(" cgw,isbs,iydj,iwdj,iwcl, ");
- selSql.append(" ddjdate,cusercode,cusername,cfzname,cgwlx, ");
- selSql.append(" cjndj,csfxc,cbzrz,cgzxl ");
- selSql.append(" from vi_tpm_dj_wcllist where isnull(cusercode,'')!='' ");
- selSql.append(" and ddjdate>=? and ddjdate<=? ");
- //开始日期、结束日期为空,则结束日期默认取当天,开始日期默认取当天减一天
- if (StringUtils.isNotBlank(startDdjdate) && StringUtils.isNotBlank(endDdjDate)) {
- param.add(startDdjdate);
- param.add(endDdjDate);
- } else {
- Calendar calendar = Calendar.getInstance();
- endDdjDate = sf.format(calendar.getTime());
- calendar.add(Calendar.DAY_OF_MONTH, -1);
- startDdjdate = sf.format(calendar.getTime());
- param.add(startDdjdate);
- param.add(endDdjDate);
- }
- if (StringUtils.isNotBlank(personNum)) {
- selSql.append(" and cusercode=? ");
- param.add(personNum);
- }
- selSql.append(" group by id,bsysdel,cgsmc, ");
- selSql.append(" cgw,isbs,iydj,iwdj,iwcl, ");
- selSql.append(" ddjdate,cusercode,cusername,cfzname,cgwlx, ");
- selSql.append(" cjndj,csfxc,cbzrz,cgzxl ");
- selSql.append(" order by ddjdate ");
- IRowSet rs = this.executeQuery(selSql.toString(), param.toArray());
- IInspectionRate iir = InspectionRateFactory.getLocalInstance(ctx);
- CoreBaseCollection upddata = new CoreBaseCollection();
- CoreBaseCollection newdata = new CoreBaseCollection();
- while (rs.next()) {
- String id = rs.getString("id");
- String cusercode = rs.getString("cusercode");
- Date ddjdate = rs.getDate("ddjdate");
- String ddjdateStr = sf.format(ddjdate);
- String cleekKey = cusercode+"_"+ddjdateStr;
- StringBuilder selPerson = new StringBuilder();
- selPerson.append(" ");
- selPerson.append(" select p.fid pId,p.Fname_l2 pName,p.FNumber pNumber, ");
- selPerson.append(" company.fid companyId,dep.fid depId,pos.fid posId, ");
- selPerson.append(" ir.fid irId,ir.fsimpleName mesId,ir.CFBizDate irBizDate ");
- selPerson.append(" from t_bd_person p ");
- selPerson.append(" left join t_hr_Personposition pn on pn.fpersonid=p.fid ");
- selPerson.append(" left join t_org_admin dep on dep.fid=pn.FPersonDep ");
- selPerson.append(" left join t_org_admin company on company.fid=pn.fcompanyid ");
- selPerson.append(" left join t_org_position pos on pos.fid=pn.FPrimaryPositionID ");
- selPerson.append(" left join CT_CAL_InspectionRate ir on p.fid=ir.cfpersonid and ir.CFBizDate=? ");
- selPerson.append(" where p.fnumber=? ");
- IRowSet prs = DbUtil.executeQuery(ctx,selPerson.toString(), new String[]{ddjdateStr,cusercode});
- if (prs.next()){
- String pId = prs.getString("pId");
- String pName = prs.getString("pName");
- String pNumber = prs.getString("pNumber");
- String companyId = prs.getString("companyId");
- String depId = prs.getString("depId");
- String posId = prs.getString("posId");
- String irId = prs.getString("irId");
- String mesId = prs.getString("mesId");
- String irBizDate = prs.getString("irBizDate");
- InspectionRateInfo irc = null;
- //当存在中间表数据,且MES系统id不一致时才更新
- if(StringUtils.isNotBlank(irId)&&(!id.equals(mesId))){
- irc = iir.getInspectionRateInfo(new ObjectUuidPK(irId));
- //日期
- irc.setBizDate(ddjdate);
- //点检完成率
- irc.setComrate(rs.getBigDecimal("iwcl"));
- //技能等级
- irc.setSkillLevel(rs.getString("cjndj"));
- //岗位类型
- irc.setPositiontype(rs.getString("cgwlx"));
- //是否现场作业
- irc.setOnSite(rs.getString("csfxc"));
- //班组任职
- irc.setTeamApp(rs.getString("cbzrz"));
- //工资序列
- irc.setSalarysEq(rs.getString("cgzxl"));
- //MES 的id
- irc.setSimpleName(id);
- Timestamp createtime = new Timestamp(System.currentTimeMillis());
- irc.setLastUpdateTime(createtime);
- upddata.add(irc);
- }else if(StringUtils.isBlank(irId)){
- irc = new InspectionRateInfo();
- //行政组织
- //部门
- AdminOrgUnitInfo adminOrgUnitInfo = new AdminOrgUnitInfo();
- adminOrgUnitInfo.setId(BOSUuid.read(depId));
- irc.setAdminOrgUnit(adminOrgUnitInfo);
- irc.setDepart(adminOrgUnitInfo);
- //职位
- PositionInfo position = new PositionInfo();
- position.setId(BOSUuid.read(posId));
- irc.setPosition(position);
- //公司
- AdminOrgUnitInfo cmpany = new AdminOrgUnitInfo();
- cmpany.setId(BOSUuid.read(companyId));
- irc.setCompany(cmpany);
- //员工编码
- irc.setPersonNum(pNumber);
- //员工
- PersonInfo personInfo = new PersonInfo();
- personInfo.setId(BOSUuid.read(pId));
- irc.setPerson(personInfo);
- //名称
- irc.setName(pName);
- //编码
- irc.setNumber(id);
- //日期
- irc.setBizDate(ddjdate);
- //点检完成率
- irc.setComrate(rs.getBigDecimal("iwcl"));
- //技能等级
- irc.setSkillLevel(rs.getString("cjndj"));
- //岗位类型
- irc.setPositiontype(rs.getString("cgwlx"));
- //是否现场作业
- irc.setOnSite(rs.getString("csfxc"));
- //班组任职
- irc.setTeamApp(rs.getString("cbzrz"));
- //工资序列
- irc.setSalarysEq(rs.getString("cgzxl"));
- //MES 的id
- irc.setSimpleName(id);
- UserInfo userInfo = new UserInfo();
- userInfo.setId(BOSUuid.read("256c221a-0106-1000-e000-10d7c0a813f413B7DE7F"));
- CtrlUnitInfo cu = new CtrlUnitInfo();
- cu.setId(BOSUuid.read("00000000-0000-0000-0000-000000000000CCE7AED4"));
- irc.setCU(cu);
- irc.setCreator(userInfo);
- Timestamp createtime = new Timestamp(System.currentTimeMillis());
- irc.setCreateTime(createtime);
- irc.setLastUpdateUser(userInfo);
- irc.setLastUpdateTime(createtime);
- newdata.add(irc);
- }
- }
- if(upddata.size()>=100){
- iir.updateBatchData(upddata);
- upddata.clear();
- }
- if(newdata.size()>=100){
- iir.addnewBatchData(newdata);
- newdata.clear();
- }
- }
- if(!upddata.isEmpty()){
- iir.updateBatchData(upddata);
- upddata.clear();
- }
- if(!newdata.isEmpty()){
- iir.addnewBatchData(newdata);
- newdata.clear();
- }
- }catch (SQLException e){
- e.printStackTrace();
- logger.error(e);
- return "err";
- } catch (EASBizException e) {
- e.printStackTrace();
- logger.error(e);
- return "err";
- }
- return "ok";
- }
- /**
- * 建立Mes系统数据库连接
- * @description:
- * @author: lhbj
- * @date: 2025/5/30 15:55
- * @param: null
- * @return:null
- **/
- private Connection getConnection() {
- String MesUrl = propt.getProperty("MesUrl");
- String MesUserName = propt.getProperty("MesUserName");
- String MesPassWord = propt.getProperty("MesPassWord");
- Connection connection = null;
- try {
- // 加载驱动程序
- Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
- // 建立连接
- connection = DriverManager.getConnection(MesUrl, MesUserName, MesPassWord);
- } catch (ClassNotFoundException | SQLException e) {
- e.printStackTrace();
- logger.error(e);
- } finally {
- }
- return connection;
- }
- /**
- * Mes数据库查询
- * @description:
- * @author: lhbj
- * @date: 2025/5/30 15:55
- * @param: null
- * @return:null
- **/
- public IRowSet executeQuery(String sql, Object[] params) throws BOSException {
- Connection conn = this.getConnection();
- PreparedStatement ps = null;
- ResultSet rs = null;
- JdbcRowSet var18;
- try {
- ps = conn.prepareStatement(sql);
- for (int i = 0; i < params.length; ++i) {
- ps.setObject(i + 1, params[i]);
- }
- rs = ps.executeQuery();
- JdbcRowSet rowset = new JdbcRowSet();
- rowset.populate(rs);
- var18 = rowset;
- } catch (SQLException exc) {
- StringBuffer sb = new StringBuffer("");
- for (int i = 0; i < params.length; ++i) {
- sb.append("param ").append(i).append(" is:").append(params[i]);
- }
- logger.error("sql is:" + sql + " param is:" + sb.toString());
- logger.error("sql error!", exc);
- throw new BOSException("Sql execute exception : " + sql, exc);
- } finally {
- cleanup(rs, ps, conn);
- }
- return var18;
- }
- /**
- * Mes数据库查询
- * @description:
- * @author: lhbj
- * @date: 2025/5/30 15:55
- * @param: null
- * @return:null
- **/
- public IRowSet executeQuery(String sql) throws BOSException {
- Connection conn = this.getConnection();
- Statement statement = null;
- ResultSet rs = null;
- JdbcRowSet var6;
- try {
- statement = conn.createStatement();
- rs = statement.executeQuery(sql);
- JdbcRowSet rowset = new JdbcRowSet();
- rowset.populate(rs);
- var6 = rowset;
- } catch (SQLException exc) {
- logger.error("333 sql is:" + sql, exc);
- throw new BOSException("Sql3 execute exception : " + sql, exc);
- } finally {
- cleanup(rs, statement, conn);
- }
- return var6;
- }
- /**
- * Mes数据库执行
- * @description:
- * @author: lhbj
- * @date: 2025/5/30 15:55
- * @param: null
- * @return:null
- **/
- public void execute(String sql) throws BOSException {
- Connection conn = this.getConnection();
- Statement statement = null;
- try {
- statement = conn.createStatement();
- statement.execute(sql);
- } catch (SQLException exc) {
- logger.error("sql 1 sql is:" + sql, exc);
- throw new BOSException("Sql1 execute exception : " + sql, exc);
- } finally {
- cleanup(statement, conn);
- }
- }
- /**
- * Mes数据库执行
- * @description:
- * @author: lhbj
- * @date: 2025/5/30 15:55
- * @param: null
- * @return:null
- **/
- public void execute(String sql, Object[] params) throws BOSException {
- Connection conn = this.getConnection();
- PreparedStatement ps = null;
- try {
- ps = conn.prepareStatement(sql);
- for(int i = 0; i < params.length; ++i) {
- ps.setObject(i + 1, params[i]);
- }
- ps.execute();
- } catch (SQLException exc) {
- StringBuffer sb = new StringBuffer("");
- for(int i = 0; i < params.length; ++i) {
- sb.append("param ").append(i).append(" is:").append(params[i]);
- }
- logger.error("222 sql is:" + sql + " param is:" + sb.toString(), exc);
- throw new BOSException("Sql222 execute exception : " + sql, exc);
- } finally {
- cleanup(ps, conn);
- }
- }
- public static final void cleanup(Connection cn) {
- cleanup((ResultSet) null, (Statement) null, cn);
- }
- public static final void cleanup(Statement stmt) {
- cleanup((ResultSet) null, stmt, (Connection) null);
- }
- public static final void cleanup(Statement stmt, Connection cn) {
- cleanup((ResultSet) null, stmt, cn);
- }
- public static final void cleanup(ResultSet rs) {
- cleanup(rs, (Statement) null, (Connection) null);
- }
- public static final void cleanup(ResultSet rs, Statement stmt) {
- cleanup(rs, stmt, (Connection) null);
- }
- public static final void cleanup(ResultSet rs, Statement stmt, Connection cn) {
- SQLUtils.cleanup(rs, stmt, cn);
- }
- }
|