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

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<%@ 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;
}
%>