|
@@ -1,18 +1,30 @@
|
|
|
package com.management.platform.controller;
|
|
|
|
|
|
|
|
|
+import com.alibaba.fastjson.JSONObject;
|
|
|
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
import com.management.platform.entity.*;
|
|
|
import com.management.platform.entity.vo.ExportLeave;
|
|
|
import com.management.platform.mapper.DepartmentMapper;
|
|
|
import com.management.platform.mapper.SysFunctionMapper;
|
|
|
+import com.management.platform.mapper.TimeTypeMapper;
|
|
|
import com.management.platform.mapper.UserMapper;
|
|
|
import com.management.platform.service.DepartmentService;
|
|
|
import com.management.platform.service.LeaveSheetService;
|
|
|
+import com.management.platform.util.DockWithMLD;
|
|
|
import com.management.platform.util.HttpRespMsg;
|
|
|
+import org.springframework.util.StringUtils;
|
|
|
import org.springframework.web.bind.annotation.*;
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
|
import javax.servlet.http.HttpServletRequest;
|
|
|
+import java.time.LocalDate;
|
|
|
+import java.time.LocalDateTime;
|
|
|
+import java.time.format.DateTimeFormatter;
|
|
|
+import java.util.ArrayList;
|
|
|
+import java.util.List;
|
|
|
+import java.util.Map;
|
|
|
+import java.util.Optional;
|
|
|
|
|
|
/**
|
|
|
* <p>
|
|
@@ -38,6 +50,8 @@ public class LeaveSheetController {
|
|
|
DepartmentMapper departmentMapper;
|
|
|
@Resource
|
|
|
DepartmentService departmentService;
|
|
|
+ @Resource
|
|
|
+ TimeTypeMapper timeTypeMapper;
|
|
|
|
|
|
|
|
|
/**
|
|
@@ -129,5 +143,101 @@ public class LeaveSheetController {
|
|
|
public HttpRespMsg leaveDays (String startDate,String endDate){
|
|
|
return leaveSheetService.leaveDays(startDate,endDate);
|
|
|
}
|
|
|
+
|
|
|
+ @RequestMapping("/syncLeaveSheet")
|
|
|
+ public HttpRespMsg syncLeaveSheet(){
|
|
|
+ HttpRespMsg msg=new HttpRespMsg();
|
|
|
+ Integer companyId = userMapper.selectById(request.getHeader("token")).getCompanyId();
|
|
|
+ TimeType one = timeTypeMapper.selectOne(new QueryWrapper<TimeType>().eq("company_id", companyId).eq("sync_fanwei", 1));
|
|
|
+ if(one==null){
|
|
|
+ msg.setError("暂无请假数据待同步");
|
|
|
+ return msg;
|
|
|
+ }
|
|
|
+ DockWithMLD dockWithMLD=new DockWithMLD();
|
|
|
+ JSONObject jsonObject=new JSONObject();
|
|
|
+ DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd");
|
|
|
+ DateTimeFormatter dtf1 = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
|
|
|
+ //需要修改************************************************ 日期
|
|
|
+ LocalDateTime yesterday = LocalDateTime.now().minusDays(2);
|
|
|
+ String startDate = dtf.format(yesterday);
|
|
|
+ String endDate = dtf.format(yesterday.plusDays(30));
|
|
|
+ jsonObject.put("workDate",startDate);
|
|
|
+ jsonObject.put("gmtFinished",startDate);
|
|
|
+ String jsonString = jsonObject.toJSONString();
|
|
|
+ TimeType allDay = timeTypeMapper.selectOne(new QueryWrapper<TimeType>().eq("company_id", companyId));
|
|
|
+ List<User> allUserList = userMapper.selectList(new QueryWrapper<User>().eq("company_id", companyId));
|
|
|
+ List<LeaveSheet> leaveSheetList=new ArrayList<>();
|
|
|
+ List<LeaveSheet> oldLeaveSheetList = leaveSheetService.list(new QueryWrapper<LeaveSheet>().eq("company_id", companyId));
|
|
|
+ //Todo: 获取请假数据
|
|
|
+ HttpRespMsg leaveRecordMsg = dockWithMLD.getResult("http://10.1.10.51:20175/api/cube/restful/interface/getModeDataPageList/getLeaveRecord", jsonString);
|
|
|
+ if(leaveRecordMsg.getCode().equals("error")){
|
|
|
+ msg.setError("同步失败");
|
|
|
+ return msg;
|
|
|
+ }
|
|
|
+ List<Map<String,Object>> leaveRecordList= (List<Map<String, Object>>) leaveRecordMsg.data;
|
|
|
+ for (Map<String, Object> map : leaveRecordList) {
|
|
|
+ Optional<User> optional=allUserList.stream().filter(al->al.getJobNumber()!=null&&al.getJobNumber().equals(map.get("rybh"))).findFirst();
|
|
|
+ if(!optional.isPresent()){
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ User user=optional.get();
|
|
|
+ /*System.out.println("泛微同步人员请假数据----"+user.getName());*/
|
|
|
+ if(companyId.equals(user.getCompanyId())){
|
|
|
+ LeaveSheet leaveSheet=new LeaveSheet();
|
|
|
+ leaveSheet.setCompanyId(user.getCompanyId());
|
|
|
+ leaveSheet.setStatus(0);
|
|
|
+ leaveSheet.setOwnerId(user.getId());
|
|
|
+ leaveSheet.setOwnerName(user.getName());
|
|
|
+ leaveSheet.setStartDate(LocalDate.parse(String.valueOf(map.get("startDate")),dtf1));
|
|
|
+ leaveSheet.setEndDate(LocalDate.parse(String.valueOf(map.get("endDate")),dtf1));
|
|
|
+ Integer timeType=null;
|
|
|
+ switch (String.valueOf(map.get("timeType"))){
|
|
|
+ case "小时":timeType=1;
|
|
|
+ break;
|
|
|
+ case "天":timeType=0;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ leaveSheet.setTimeType(timeType);
|
|
|
+ leaveSheet.setTimeDays(Float.parseFloat(((String) map.get("timeDays")).equals("")?"0.00":((String) map.get("timeDays"))));
|
|
|
+ if (timeType == 0){
|
|
|
+ leaveSheet.setTimeHours(leaveSheet.getTimeDays()*allDay.getAllday());
|
|
|
+ }else {
|
|
|
+ leaveSheet.setTimeHours(Float.parseFloat(((String) map.get("timeHours")).equals("")?"0.00":((String) map.get("timeHours"))));
|
|
|
+ }
|
|
|
+ Integer leaveType;
|
|
|
+ switch (String.valueOf(map.get("leaveType"))){
|
|
|
+ case "事假":leaveType=0;
|
|
|
+ break;
|
|
|
+ case "病假":leaveType=1;
|
|
|
+ break;
|
|
|
+ case "年假":leaveType=2;
|
|
|
+ break;
|
|
|
+ case "产假":leaveType=3;
|
|
|
+ break;
|
|
|
+ case "婚假":leaveType=4;
|
|
|
+ break;
|
|
|
+ case "丧假":leaveType=5;
|
|
|
+ break;
|
|
|
+ case "调休":leaveType=6;
|
|
|
+ break;
|
|
|
+ case "陪产假":leaveType=7;
|
|
|
+ break;
|
|
|
+ default:leaveType=8;
|
|
|
+ }
|
|
|
+ leaveSheet.setLeaveType(leaveType);
|
|
|
+ leaveSheet.setProcinstId(String.valueOf(map.get("id")));
|
|
|
+ leaveSheet.setGmtFinished(String.valueOf(map.get("gmtFinished")));
|
|
|
+ Optional<LeaveSheet> first = oldLeaveSheetList.stream().filter(ol -> ol.getStartDate().isEqual(leaveSheet.getStartDate())&&ol.getEndDate().isEqual(leaveSheet.getEndDate())&& ol.getOwnerId().equals(leaveSheet.getOwnerId())&&(ol.getProcinstId()!=null&& ol.getProcinstId().equals(leaveSheet.getProcinstId()))).findFirst();
|
|
|
+ if(first.isPresent()){
|
|
|
+ leaveSheet.setId(first.get().getId());
|
|
|
+ }
|
|
|
+ leaveSheetList.add(leaveSheet);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if(leaveSheetList.size()>0){
|
|
|
+ leaveSheetService.saveOrUpdateBatch(leaveSheetList);
|
|
|
+ }
|
|
|
+ return msg;
|
|
|
+ }
|
|
|
}
|
|
|
|