You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

200 lines
7.3 KiB
Plaintext

<%@ page import="com.alibaba.fastjson.JSONObject" %>
<%@ page import="java.util.*" %>
<%@ page import="weaver.conn.RecordSet" %>
<%@ page import="weaver.general.Util" %>
<%@ page import="weaver.mfbdt.util.MfUtil" %>
<%@ page import="com.time.util.DateUtil" %>
<%@ page import="java.text.SimpleDateFormat" %>
<%@ page import="weaver.mfbdt.util.WorkflowCreateHandler" %>
<%--
User: wangj
Design Ideas
铭沣-获取时间段内外勤打卡记录同步到原始外勤打卡审批表
--%>
<%@ page contentType="text/html;charset=UTF-8" %>
<%
JSONObject data = new JSONObject();
boolean flag = false;
String sdate = Util.null2String(request.getParameter("sdate"));
String edate = Util.null2String(request.getParameter("edate"));
String userid = Util.null2String(request.getParameter("userid"));
if ("".equals(sdate) || "".equals(edate) || "".equals(userid)) {
data.put("flag", flag);
out.print(data.toJSONString());
}else{
List<String> datelist = new ArrayList<>(100);
datelist = dateUtil(sdate, edate);
String sql = "";
for (String datestr : datelist){
sql = "select sqr from uf_wqdkysjl where dkrq = '" + datestr + "' and sqr = '"+userid+"' group by sqr";
doJob(sql,datestr);
flag = true;
data.put("flag", flag);
}
out.print(data.toJSONString());
}
%>
<%!
public void doJob(String sql,String date){
List<String> userList = new ArrayList<>(100);
RecordSet rs = new RecordSet();
rs.execute(sql);
while (rs.next()) {
String sqr = com.wbi.util.Util.null2String(rs.getString("sqr"));
userList.add(sqr);
}
sql = "select * from uf_wqdkysjl where sqr = ? and dkrq = ?";
String sqrq = DateUtil.getCurrentTime("yyyy-MM-dd");
if (userList.size() > 0) {
for (String sqr : userList) {
String id = "";
String gsmc = "";
String szzw = "";
String szbm = "";
String ygbh = "";
String dkrq = "";
String dksj = "";
String dkwz = "";
String gzrq = "";
String bz = "";
String wqdkysjlid = "";
String lastname = getLastname(sqr);
List<Map<String, String>> detailList = new ArrayList<>(100);
rs.executeQuery(sql, sqr, date);
while (rs.next()) {
id = com.wbi.util.Util.null2String(rs.getString("id"));
gsmc = com.wbi.util.Util.null2String(rs.getString("gsmc"));
szzw = com.wbi.util.Util.null2String(rs.getString("szzw"));
szbm = com.wbi.util.Util.null2String(rs.getString("szbm"));
ygbh = com.wbi.util.Util.null2String(rs.getString("ygbh"));
wqdkysjlid = wqdkysjlid + "," + id;
Map<String, String> map = new HashMap<>(100);
dkrq = com.wbi.util.Util.null2String(rs.getString("dkrq"));
dksj = com.wbi.util.Util.null2String(rs.getString("dksj"));
dkwz = com.wbi.util.Util.null2String(rs.getString("dkwz"));
gzrq = com.wbi.util.Util.null2String(rs.getString("gzrq"));
bz = com.wbi.util.Util.null2String(rs.getString("bz"));
map.put("dkrq", dkrq);
map.put("dksj", dksj);
map.put("dkwz", dkwz);
map.put("gzrq", gzrq);
map.put("bz", bz);
detailList.add(map);
}
wqdkysjlid = wqdkysjlid.substring(1, wqdkysjlid.length());
String createrid = sqr + "";
String workflowId = com.wbi.util.Util.null2String(rs.getPropValue("kq_config", "outSign_wfid"));
String requestName = MfUtil.getWorkflowname(workflowId);
requestName = requestName + "-" + lastname + "-" + sqrq;
String isNextFlow = "1";
Map<String, String> requestMainMap = new HashMap<>();
requestMainMap.put("sqr", createrid);
requestMainMap.put("sqrq", sqrq);
requestMainMap.put("gsmc", gsmc);
requestMainMap.put("wqdkysjlid", wqdkysjlid);
if (!"".equals(gsmc)) {
requestMainMap.put("gsmc", gsmc);
}
if (!"".equals(szzw)) {
requestMainMap.put("szzw", szzw);
}
if (!"".equals(szbm)) {
requestMainMap.put("szbm", szbm);
}
if (!"".equals(ygbh)) {
requestMainMap.put("ygbh", ygbh);
}
WorkflowCreateHandler workflowCreateHandler = new WorkflowCreateHandler();
String requestid = workflowCreateHandler.workflowCreateByRequestMap(createrid, workflowId, requestName, isNextFlow, requestMainMap);
if (com.wbi.util.Util.getIntValue(requestid) > 0) {
//更新明细数据
updateDetailData(detailList,requestid);
}
}
}
}
%>
<%!
public String getLastname(String userid) {
RecordSet rs = new RecordSet();
String lastname = "";
rs.execute("select lastname from hrmresource where id = '" + userid + "'");
while (rs.next()) {
lastname = com.wbi.util.Util.null2String(rs.getString("lastname"));
}
return lastname;
}
%>
<%!
public void updateDetailData(List<Map<String, String>> datalist, String requestid) {
RecordSet rs = new RecordSet();
String mainid = "";
String tableName = com.wbi.util.Util.null2String(rs.getPropValue("kq_config", "wq_wf_tablename"));
rs.execute("select id from " + tableName + " where requestid = '" + requestid + "'");
while (rs.next()) {
mainid = com.wbi.util.Util.null2String(rs.getString("id"));
}
for (Map<String, String> map : datalist) {
String dkrq = com.wbi.util.Util.null2String(map.get("dkrq"));
String dksj = com.wbi.util.Util.null2String(map.get("dksj"));
String dkwz = com.wbi.util.Util.null2String(map.get("dkwz"));
String gzrq = com.wbi.util.Util.null2String(map.get("gzrq"));
String bz = com.wbi.util.Util.null2String(map.get("bz"));
String sql = "insert into " + tableName + "_dt1 (mainid,dkrq,dksj,dkwz,gzrq,bz) values (?,?,?,?,?,?)";
rs.executeUpdate(sql, mainid, dkrq, dksj, dkwz, gzrq, bz);
}
}
%>
<%!
/**
* @Description: 获取起止日期集合
* @Param:
* @return:
*/
public static List<String> dateUtil(String start, String end) {
List<String> list = new ArrayList<String>();
Date sdate = DateUtil.parseDate(start, "yyyy-MM-dd");
Date edate = DateUtil.parseDate(end, "yyyy-MM-dd");
long s = sdate.getTime();
long e = edate.getTime();
Long oneDay = 1000 * 60 * 60 * 24l;
while (s <= e) {
sdate = new Date(s);
System.out.println(new SimpleDateFormat("yyyy-MM-dd").format(sdate));
list.add(new SimpleDateFormat("yyyy-MM-dd").format(sdate));
s += oneDay;
}
return list;
}
%>