diff --git a/src/com/api/njycjt/web/ZcjhxActionApi.java b/src/com/api/njycjt/web/ZcjhxActionApi.java new file mode 100644 index 0000000..1cb8766 --- /dev/null +++ b/src/com/api/njycjt/web/ZcjhxActionApi.java @@ -0,0 +1,6 @@ +package com.api.njycjt.web; + +import com.engine.njycjt.web.ZcjhxAction; + +public class ZcjhxActionApi extends ZcjhxAction { +} diff --git a/src/com/engine/njycjt/cmd/UpdateZcjhxZtCmd.java b/src/com/engine/njycjt/cmd/UpdateZcjhxZtCmd.java new file mode 100644 index 0000000..17fb3c6 --- /dev/null +++ b/src/com/engine/njycjt/cmd/UpdateZcjhxZtCmd.java @@ -0,0 +1,43 @@ +package com.engine.njycjt.cmd; + +import com.engine.common.biz.AbstractCommonCommand; +import com.engine.common.entity.BizLogContext; +import com.engine.core.interceptor.CommandContext; +import weaver.hrm.User; +import weaver.interfaces.njycjt.util.ModeZcjhxUtil; + +import java.util.HashMap; +import java.util.Map; + +public class UpdateZcjhxZtCmd extends AbstractCommonCommand> { + public UpdateZcjhxZtCmd(Map params, User user) { + this.params = params; + this.user = user; + } + + @Override + public BizLogContext getLogContext() { + return null; + } + + @Override + public Map execute(CommandContext commandContext) { + Map dataMap = new HashMap(); + ModeZcjhxUtil modeZcjhxUtil = new ModeZcjhxUtil(); + Map recordMap1 = modeZcjhxUtil.updateZcjhxData(); + Map recordMap2 = modeZcjhxUtil.updateHtsqData(); + String code1 = recordMap1.get("code"); + String code2 = recordMap2.get("code"); + String msg1 = recordMap1.get("msg1"); + String msg2 = recordMap1.get("msg2"); + + if("200".equals(code1) && "200".equals(code2)){ + dataMap.put("code",200); + dataMap.put("msg","招采流程:"+msg1+",合同:"+msg2); + }else{ + dataMap.put("code",300); + dataMap.put("msg","招采流程:"+msg1+",合同:"+msg2); + } + return dataMap; + } +} diff --git a/src/com/engine/njycjt/service/ZcjhxService.java b/src/com/engine/njycjt/service/ZcjhxService.java new file mode 100644 index 0000000..2ffe5ca --- /dev/null +++ b/src/com/engine/njycjt/service/ZcjhxService.java @@ -0,0 +1,10 @@ +package com.engine.njycjt.service; + +import weaver.hrm.User; + +import java.util.Map; + +public interface ZcjhxService { + + Map updateZcjhxData(Map param, User user); +} diff --git a/src/com/engine/njycjt/service/impl/ZcjhxServiceImpl.java b/src/com/engine/njycjt/service/impl/ZcjhxServiceImpl.java new file mode 100644 index 0000000..dfbc55d --- /dev/null +++ b/src/com/engine/njycjt/service/impl/ZcjhxServiceImpl.java @@ -0,0 +1,15 @@ +package com.engine.njycjt.service.impl; + +import com.engine.njycjt.cmd.UpdateZcjhxZtCmd; +import com.engine.njycjt.service.ZcjhxService; +import com.engine.core.impl.Service; +import weaver.hrm.User; + +import java.util.Map; + +public class ZcjhxServiceImpl extends Service implements ZcjhxService { + @Override + public Map updateZcjhxData(Map param, User user) { + return commandExecutor.execute(new UpdateZcjhxZtCmd(param,user)); + } +} diff --git a/src/com/engine/njycjt/web/ZcjhxAction.java b/src/com/engine/njycjt/web/ZcjhxAction.java new file mode 100644 index 0000000..4d3abf6 --- /dev/null +++ b/src/com/engine/njycjt/web/ZcjhxAction.java @@ -0,0 +1,47 @@ +package com.engine.njycjt.web; + +import com.alibaba.fastjson.JSONObject; +import com.engine.common.util.ParamUtil; +import com.engine.common.util.ServiceUtil; +import com.engine.njycjt.service.ZcjhxService; +import com.engine.njycjt.service.impl.ZcjhxServiceImpl; +import weaver.hrm.HrmUserVarify; +import weaver.hrm.User; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import javax.ws.rs.GET; +import javax.ws.rs.Path; +import javax.ws.rs.Produces; +import javax.ws.rs.core.Context; +import javax.ws.rs.core.MediaType; +import java.util.HashMap; +import java.util.Map; + +public class ZcjhxAction { + + + public ZcjhxService getService(HttpServletRequest request, HttpServletResponse response){ + User user = HrmUserVarify.getUser( request, response ); + return (ZcjhxService) ServiceUtil.getService(ZcjhxServiceImpl.class,user); + } + + + @GET + @Path("/updateZcjhxData") + @Produces({MediaType.TEXT_PLAIN}) + public String updateZcjhxData(@Context HttpServletRequest request, @Context HttpServletResponse response){ + Map apidatas = new HashMap(); + try { + User user = HrmUserVarify.getUser(request, response ); + Map param = ParamUtil.request2Map(request); + apidatas.putAll(this.getService(request,response).updateZcjhxData(param,user)); + apidatas.put("api_status", true); + } catch (Exception e) { + e.printStackTrace(); + apidatas.put("api_status", false); + apidatas.put("api_errormsg", "catch exception : " + e.getMessage()); + } + return JSONObject.toJSONString(apidatas); + } +} diff --git a/src/weaver/interfaces/njycjt/action/UpdateZjjhzxAction.java b/src/weaver/interfaces/njycjt/action/UpdateZjjhzxAction.java new file mode 100644 index 0000000..587a553 --- /dev/null +++ b/src/weaver/interfaces/njycjt/action/UpdateZjjhzxAction.java @@ -0,0 +1,201 @@ +package weaver.interfaces.njycjt.action; + +import org.apache.commons.lang3.StringUtils; +import weaver.conn.RecordSet; +import weaver.formmode.setup.ModeRightInfo; +import weaver.general.BaseBean; +import weaver.general.Util; +import weaver.interfaces.workflow.action.Action; +import weaver.soa.workflow.request.RequestInfo; + +import java.text.SimpleDateFormat; +import java.util.*; + +public class UpdateZjjhzxAction implements Action { + @Override + public String execute(RequestInfo requestInfo) { + String requestid = requestInfo.getRequestid(); + + RecordSet rs = new RecordSet(); + + BaseBean bb = new BaseBean(); + bb.writeLog("UpdateZjjhzxAction--requestid:"+requestid); + try{ + + String modeTable = "uf_zjjhzxsj"; + String formmodeid = "" ; + String sql =" select k.id from modeinfo k \n" + + " inner join workflow_bill l on formid = l.id\n" + + " where l.tablename = '"+modeTable+"' " ; + + rs.execute(sql); + if(rs.next()){ + formmodeid = Util.null2String(rs.getString("id")); + } + + ModeRightInfo modeRightInfo = new ModeRightInfo(); + SimpleDateFormat formatter1 = new SimpleDateFormat("yyyy-MM-dd"); + SimpleDateFormat formatter2 = new SimpleDateFormat("HH:mm:ss"); + String currentdate = formatter1.format(new Date()); + String currenttime = formatter2.format(new Date()); + String modedatacreater = "1"; + String modedatacreatertype = "0"; + + String form_table = requestInfo.getRequestManager().getBillTableName(); + if(StringUtils.isNotBlank(form_table)) + { + String mainid = "" ; + String xqny = "" ; + String tbny1 = "" ; + String tbny2 = "" ; + String tbny3 = "" ; + String tbny4 = "" ; + String tbny5 = "" ; + sql = " select id,xqny,tbny1,tbny2,tbny3,tbny4,tbny5 from "+form_table+" where requestid= " + requestid; + bb.writeLog("sql :" + sql); + rs.execute(sql); + if(rs.next()) { + mainid = Util.null2String(rs.getString("id")); + xqny = Util.null2String(rs.getString("xqny")); + tbny1 = Util.null2String(rs.getString("tbny1")); + tbny2 = Util.null2String(rs.getString("tbny2")); + tbny3 = Util.null2String(rs.getString("tbny3")); + tbny4 = Util.null2String(rs.getString("tbny4")); + tbny5 = Util.null2String(rs.getString("tbny5")); + } + + List> list = new ArrayList>(); + Map map = null; + if(StringUtils.isNotBlank(mainid)){ + sql = " select htmc,dqyf,dqyf1,dqyf2,dqyf3,dqyf4,dqyf5 from "+form_table+"_dt1 where mainid="+mainid ; + rs.executeQuery(sql); + while (rs.next()){ + String htmc = Util.null2String(rs.getString("htmc")); + String dqyf = Util.null2String(rs.getString("dqyf")); + String dqyf1 = Util.null2String(rs.getString("dqyf1")); + String dqyf2 = Util.null2String(rs.getString("dqyf2")); + String dqyf3 = Util.null2String(rs.getString("dqyf3")); + String dqyf4 = Util.null2String(rs.getString("dqyf4")); + String dqyf5 = Util.null2String(rs.getString("dqyf5")); + + map = new HashMap(); + map.put("zjjhx",htmc); + map.put("zjjhyf",xqny); + map.put("zjjhje",dqyf); + list.add(map); + + map = new HashMap(); + map.put("zjjhx",htmc); + map.put("zjjhyf",tbny1); + map.put("zjjhje",dqyf1); + list.add(map); + + map = new HashMap(); + map.put("zjjhx",htmc); + map.put("zjjhyf",tbny2); + map.put("zjjhje",dqyf2); + list.add(map); + + map = new HashMap(); + map.put("zjjhx",htmc); + map.put("zjjhyf",tbny3); + map.put("zjjhje",dqyf3); + list.add(map); + + map = new HashMap(); + map.put("zjjhx",htmc); + map.put("zjjhyf",tbny4); + map.put("zjjhje",dqyf4); + list.add(map); + + map = new HashMap(); + map.put("zjjhx",htmc); + map.put("zjjhyf",tbny5); + map.put("zjjhje",dqyf5); + list.add(map); + } + } + + int cou = 0; + for(int i=0;i recordMap = list.get(i); + String zjjhx = Util.null2String(recordMap.get("zjjhx")); + String zjjhyf = Util.null2String(recordMap.get("zjjhyf")); + String zjjhje = Util.null2String(recordMap.get("zjjhje")); + + String billid = "" ; + sql = " select id from "+modeTable+" where zjjhx='"+zjjhx+"' and zjjhyf='"+zjjhyf+"'" ; + rs.executeQuery(sql); + if(rs.next()){ + billid = Util.null2String(rs.getString("id")); + } + if(StringUtils.isNotBlank(billid)){ + sql = "update "+modeTable+" set zjjhje='"+ zjjhje+"' where id = "+billid; + boolean isTrue = rs.executeUpdate(sql); + if(!isTrue){ + cou++; + } + }else{ + String uuid = UUID.randomUUID().toString(); + recordMap.put("formmodeid", formmodeid); + recordMap.put("modedatacreater", modedatacreater); + recordMap.put("modedatacreatertype", modedatacreatertype); + recordMap.put("modedatacreatedate", currentdate); + recordMap.put("modedatacreatetime", currenttime); + recordMap.put("uuid", uuid); + + String tablename = ""; + String tablenvalue = ""; + for (Map.Entry entry : recordMap.entrySet()) { + String fieldname = weaver.general.Util.null2String(entry.getKey()).trim(); + String fieldvalue = weaver.general.Util.null2String(entry.getValue()).replace("'", "''").trim(); + tablename += tablename == "" ? fieldname : "," + fieldname; + tablenvalue += tablenvalue == "" ? "'" + fieldvalue + "'" : ",'" + fieldvalue + "'"; + } + + if (tablename != "" && tablenvalue != "") { + int count = 0; + sql = " insert into "+modeTable+"(" + tablename + ") values (" + tablenvalue + ")"; + bb.writeLog("sql:" + sql); + boolean boo = rs.executeUpdate(sql); + if (boo) { + count++; + } + if (count > 0) { + String dataid = ""; + sql = " select id from "+modeTable+" where uuid='" + uuid + "'"; + bb.writeLog("sql:" + sql); + rs.execute(sql); + if (rs.next()) { + dataid = Util.null2String(rs.getString("id")); + } + if (!"".equals(dataid)) { + modeRightInfo.editModeDataShare(Integer.valueOf(modedatacreater), weaver.general.Util.getIntValue(formmodeid), Integer.parseInt(dataid)); + } + } + }else{ + cou++; + } + } + } + + if(cou>0){ + requestInfo.getRequestManager().setMessageid("1234"); + requestInfo.getRequestManager().setMessage("更新建模数据异常"); + return Action.FAILURE_AND_CONTINUE; + } + }else{ + requestInfo.getRequestManager().setMessageid("1234"); + requestInfo.getRequestManager().setMessage("获取流程表单失败"); + return Action.FAILURE_AND_CONTINUE; + } + }catch (Exception e){ + bb.writeLog("e:"+e.getMessage()); + requestInfo.getRequestManager().setMessageid("1234"); + requestInfo.getRequestManager().setMessage("执行附加ACTION异常"); + return Action.FAILURE_AND_CONTINUE; + } + return Action.SUCCESS; + } +} diff --git a/src/weaver/interfaces/njycjt/job/UpdateZcjhxJob.java b/src/weaver/interfaces/njycjt/job/UpdateZcjhxJob.java new file mode 100644 index 0000000..6e6ee6b --- /dev/null +++ b/src/weaver/interfaces/njycjt/job/UpdateZcjhxJob.java @@ -0,0 +1,31 @@ +package weaver.interfaces.njycjt.job; + +import weaver.general.BaseBean; +import weaver.interfaces.njycjt.util.ModeZcjhxUtil; +import weaver.interfaces.schedule.BaseCronJob; + +import java.util.Map; + +public class UpdateZcjhxJob extends BaseCronJob { + @Override + public void execute() { + + BaseBean bb = new BaseBean(); + ModeZcjhxUtil modeZcjhxUtil = new ModeZcjhxUtil(); + + try{ + Map recordMap1 = modeZcjhxUtil.updateZcjhxData(); + bb.writeLog("updateZcjhxData-code:"+recordMap1.get("code")); + bb.writeLog("updateZcjhxData-msg:"+recordMap1.get("code")); + }catch (Exception e){ + bb.writeLog("UpdateZcjhxJob-e:"+e); + } + try{ + Map recordMap2 = modeZcjhxUtil.updateHtsqData(); + bb.writeLog("updateHtsqData-code:"+recordMap2.get("code")); + bb.writeLog("updateHtsqData-msg:"+recordMap2.get("code")); + }catch (Exception e){ + bb.writeLog("UpdateZcjhxJob-e:"+e); + } + } +} diff --git a/src/weaver/interfaces/njycjt/mode/UpdateZcjhx_ModeExpand.java b/src/weaver/interfaces/njycjt/mode/UpdateZcjhx_ModeExpand.java new file mode 100644 index 0000000..a35a2af --- /dev/null +++ b/src/weaver/interfaces/njycjt/mode/UpdateZcjhx_ModeExpand.java @@ -0,0 +1,62 @@ +package weaver.interfaces.njycjt.mode; + +import java.util.HashMap; +import java.util.Map; + +import weaver.formmode.customjavacode.AbstractModeExpandJavaCodeNew; +import weaver.general.Util; +import weaver.hrm.User; +import weaver.interfaces.njycjt.util.ModeZcjhxUtil; +import weaver.soa.workflow.request.RequestInfo; + + +/** + * 说明 + * 修改时 + * 类名要与文件名保持一致 + * class文件存放位置与路径保持一致。 + * 请把编译后的class文件,放在对应的目录中才能生效 + * 注意 同一路径下java名不能相同。 + * @author Administrator + * + */ + +public class UpdateZcjhx_ModeExpand extends AbstractModeExpandJavaCodeNew{ + + /** + * 执行模块扩展动作 + * @param param + * param包含(但不限于)以下数据 + * user 当前用户 + * importtype 导入方式(仅在批量导入的接口动作会传输) 1 追加,2覆盖,3更新,获取方式(int)param.get("importtype") + * 导入链接中拼接的特殊参数(仅在批量导入的接口动作会传输),比如a=1,可通过param.get("a")获取参数值 + * 页面链接拼接的参数,比如b=2,可以通过param.get("b")来获取参数 + * @return + */ + public Map doModeExpand(Map param) { + Map result = new HashMap(); + try { + User user = (User)param.get("user"); + int billid = -1;//数据id + int modeid = -1;//模块id + RequestInfo requestInfo = (RequestInfo)param.get("RequestInfo"); + if(requestInfo!=null){ + billid = Util.getIntValue(requestInfo.getRequestid()); + modeid = Util.getIntValue(requestInfo.getWorkflowid()); + if(billid>0&&modeid>0){ + //------请在下面编写业务逻辑代码------ + + ModeZcjhxUtil modeZcjhxUtil = new ModeZcjhxUtil(); + modeZcjhxUtil.updateHtsqData(); + modeZcjhxUtil.updateZcjhxData(); + + } + } + } catch (Exception e) { + result.put("errmsg","自定义出错信息"); + result.put("flag", "false"); + } + return result; + } + +} diff --git a/src/weaver/interfaces/njycjt/util/ModeZcjhxUtil.java b/src/weaver/interfaces/njycjt/util/ModeZcjhxUtil.java new file mode 100644 index 0000000..450defe --- /dev/null +++ b/src/weaver/interfaces/njycjt/util/ModeZcjhxUtil.java @@ -0,0 +1,154 @@ +package weaver.interfaces.njycjt.util; + +import org.apache.commons.lang3.StringUtils; +import weaver.conn.RecordSet; +import weaver.general.BaseBean; +import weaver.general.Util; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class ModeZcjhxUtil { + + public Map updateZcjhxData(){ + + BaseBean bb = new BaseBean(); + String formtable = "formtable_main_143"; + RecordSet rs = new RecordSet(); + int errcount = 0 ; + int allcount = 0; + int succount = 0; + String code = "200"; + + Map recordMap = new HashMap(); + try { + List> list = new ArrayList>(); + Map map = null; + String sql =" select t.id,t.zcxh,k.lastoperatedate \n" + + " from uf_zcjhx t\n" + + " inner join (" + + " select f.zcjhbh,w.lastoperatedate from \n" + + " "+formtable+" f,workflow_requestbase w \n" + + " where f.requestid = w.requestid " + + " and w.currentnodetype=3 \n" + + " ) k on k.zcjhbh = t.zcxh\n" + + " where t.zczt = 0 and t.zcxh is not null " ; + + bb.writeLog("sql:"+sql); + + rs.executeQuery(sql); + while (rs.next()){ + String billid = Util.null2String(rs.getString("id")); + String zcxh = Util.null2String(rs.getString("zcxh")); + String lastoperatedate = Util.null2String(rs.getString("lastoperatedate")); + map = new HashMap(); + map.put("billid",billid); + map.put("zcxh",zcxh); + map.put("lastoperatedate",lastoperatedate); + list.add(map); + allcount++; + } + + for(int i=0;i dataMap = list.get(i); + String billid = Util.null2String(dataMap.get("billid")); + String zcxh = Util.null2String(dataMap.get("zcxh")); + String lastoperatedate = Util.null2String(dataMap.get("lastoperatedate")); + + if(StringUtils.isNotBlank(billid) && StringUtils.isNotBlank(lastoperatedate)){ + sql = " update uf_zcjhx set zczt = 1,wcrq='"+lastoperatedate+"' where id = "+billid; + bb.writeLog("sql:"+sql); + boolean isTrue = rs.executeQuery(sql); + if(!isTrue){ + errcount++; + }else{ + succount++; + } + }else{ + errcount++; + } + } + }catch (Exception e){ + bb.writeLog("updateZcjhxData-e:"+e); + code = "500"; + } + + String msg = "查询:"+allcount+"行数据,更新成功:"+succount+",更新失败:"+errcount+";"; + recordMap.put("code",code); + recordMap.put("msg",msg); + return recordMap; + } + + + public Map updateHtsqData(){ + + BaseBean bb = new BaseBean(); + String formtable = "view_htsq"; + RecordSet rs = new RecordSet(); + int errcount = 0 ; + int allcount = 0; + int succount = 0; + String code = "200"; + + Map recordMap = new HashMap(); + + try { + List> list = new ArrayList>(); + Map map = null; + String sql =" select t.id,t.zcxh,k.lastoperatedate \n" + + " from uf_zcjhx t\n" + + " inner join (" + + " select zcxh,lastoperatedate " + + " from "+formtable+" where status = 1 and zcxh is not null " + + " ) k on k.zcjhbh = t.zcxh\n" + + " where t.zczt = 0 and t.zcxh is not null " ; + + bb.writeLog("sql:"+sql); + + rs.executeQuery(sql); + while (rs.next()){ + String billid = Util.null2String(rs.getString("id")); + String zcxh = Util.null2String(rs.getString("zcxh")); + String lastoperatedate = Util.null2String(rs.getString("lastoperatedate")); + map = new HashMap(); + map.put("billid",billid); + map.put("zcxh",zcxh); + map.put("lastoperatedate",lastoperatedate); + list.add(map); + + allcount++; + } + + for(int i=0;i dataMap = list.get(i); + String billid = Util.null2String(dataMap.get("billid")); + String zcxh = Util.null2String(dataMap.get("zcxh")); + String lastoperatedate = Util.null2String(dataMap.get("lastoperatedate")); + + if(StringUtils.isNotBlank(billid) && StringUtils.isNotBlank(lastoperatedate)){ + sql = " update uf_zcjhx set zczt = 1,wcrq='"+lastoperatedate+"' where id = "+billid; + bb.writeLog("sql:"+sql); + boolean isTrue = rs.executeQuery(sql); + if(!isTrue){ + errcount++; + }else{ + succount++; + } + }else{ + errcount++; + } + } + }catch (Exception e){ + bb.writeLog("updateZcjhxData-e:"+e); + code = "500"; + } + String msg = "查询:"+allcount+"行数据,更新成功:"+succount+",更新失败:"+errcount+";"; + recordMap.put("code",code); + recordMap.put("msg",msg); + return recordMap; + + } +}