|
|
@@ -24,13 +24,12 @@ import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.boot.test.context.SpringBootTest;
|
|
|
import org.springframework.test.context.junit4.SpringRunner;
|
|
|
|
|
|
+import java.text.ParseException;
|
|
|
+import java.text.SimpleDateFormat;
|
|
|
import java.time.LocalDate;
|
|
|
import java.time.LocalDateTime;
|
|
|
import java.time.LocalTime;
|
|
|
-import java.util.Arrays;
|
|
|
-import java.util.HashMap;
|
|
|
-import java.util.List;
|
|
|
-import java.util.Map;
|
|
|
+import java.util.*;
|
|
|
|
|
|
/***
|
|
|
* 逸耀宜搭
|
|
|
@@ -49,6 +48,18 @@ public class YyYdTest {
|
|
|
@Autowired
|
|
|
private YdUserInputMapper ydUserInputMapper;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private YDService ydService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private DDClient_Contacts ddClient_contacts;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private DDClient ddClient;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private DDClient_Attendance ddClientAttendance;
|
|
|
+
|
|
|
@Test
|
|
|
public void test() {
|
|
|
List<Map> list=(List<Map>) ydClient.queryData(YDParam.builder().formUuid("FORM-0D560B9D8B64464C8C885FE20B7C7C95T4IA") .pageSize(1)
|
|
|
@@ -113,4 +124,81 @@ public class YyYdTest {
|
|
|
List<YdUserInput> ydUserInputs = ydUserInputMapper.selectList(ydUserInputLambdaQueryWrapper);
|
|
|
|
|
|
}
|
|
|
+
|
|
|
+ @Test
|
|
|
+ public void test5(){
|
|
|
+ String stTime="2025-08-21 00:00:00";
|
|
|
+ String edTime="2025-08-22 00:00:00";
|
|
|
+ List<Map> list=ydService.queryAllFormData(YDParam.builder().formUuid("FORM-5061F7AE543B429C8241EC730A6F31653NNK").build());
|
|
|
+ for(Map map:list){
|
|
|
+ Map formData= UtilMap.getMap(map,"formData");
|
|
|
+ String deptId=String.valueOf(UtilMap.getList(formData,"departmentSelectField_m8e4zaju_id").get(0));
|
|
|
+ String price=UtilMap.getString(formData,"numberField_m8e4zajw_value");
|
|
|
+ List<String> users=ddClient_contacts.listDepartmentUserId(ddClient.getAccessToken(),Long.parseLong(deptId));
|
|
|
+ for (String user : users) {
|
|
|
+ if (!user.equals("284156461536271475")){
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ List<Map> valList=ddClientAttendance.getAttColumnVal(ddClient.getAccessToken(),user, Arrays.asList("82772106","89349019","82772125"),stTime,edTime);
|
|
|
+ if(valList!=null&&valList.size()==3){
|
|
|
+ Map<String,Map<String,String>> dateMap=toDateMap(valList);
|
|
|
+ for (String date:dateMap.keySet()) {
|
|
|
+ Map<String,String> dataMap=dateMap.get(date);
|
|
|
+ String workTime="休息".equals(dataMap.get("82772125"))?
|
|
|
+ dataMap.get("89349019"): NumberUtil.add(dataMap.get("89349019"),dataMap.get("82772106")).toString();
|
|
|
+
|
|
|
+ log.info("user:{},date:{},workTime:{},price:{}",user,date,workTime,price);
|
|
|
+
|
|
|
+ //同步到数据库
|
|
|
+ LambdaQueryWrapper<YdUserInput> ydUserInputLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
+ ydUserInputLambdaQueryWrapper.eq(YdUserInput::getUserId,user)
|
|
|
+ .eq(YdUserInput::getDate, date);
|
|
|
+
|
|
|
+ YdUserInput ydUserInput = ydUserInputMapper.selectOne(ydUserInputLambdaQueryWrapper);
|
|
|
+
|
|
|
+ if (Objects.nonNull(ydUserInput)){
|
|
|
+ ydUserInput.setWorkHours(workTime);
|
|
|
+ ydUserInput.setPrice(price);
|
|
|
+ ydUserInput.setTotalPrice(NumberUtil.mul(workTime,price));
|
|
|
+
|
|
|
+ ydUserInputMapper.update(ydUserInput,ydUserInputLambdaQueryWrapper);
|
|
|
+ }else {
|
|
|
+ try {
|
|
|
+ ydUserInput = new YdUserInput();
|
|
|
+ ydUserInput.setUserId(user);
|
|
|
+ SimpleDateFormat formatter = new SimpleDateFormat(UtilDateTime.DATE_TIME_PATTERN);
|
|
|
+ ydUserInput.setDate(formatter.parse(date));
|
|
|
+ ydUserInput.setWorkHours(workTime);
|
|
|
+ ydUserInput.setPrice(price);
|
|
|
+ ydUserInput.setTotalPrice(NumberUtil.mul(workTime,price));
|
|
|
+
|
|
|
+ ydUserInputMapper.insert(ydUserInput);
|
|
|
+ }catch (ParseException e){
|
|
|
+ log.info("无法解析日期字符串: {}",e.getMessage());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ private Map<String,Map<String,String>> toDateMap(List<Map> valList){
|
|
|
+ Map<String,Map<String,String>> result = new HashMap<>();
|
|
|
+ for(Map map:valList){
|
|
|
+ String columnId=UtilMap.getString(UtilMap.getMap(map,"column_vo"),"id");
|
|
|
+ List<Map> list=UtilMap.getList(map,"column_vals");
|
|
|
+ for(Map map1:list){
|
|
|
+ String date=UtilMap.getString(map1,"date");
|
|
|
+ String value=UtilMap.getString(map1,"value");
|
|
|
+ value=columnId.equals("82772106")?NumberUtil.round(NumberUtil.div(value,"60"),2).toString():value; // 工作时长 分钟转小时
|
|
|
+ if(result.containsKey(date)){
|
|
|
+ result.get(date).put(columnId,value);
|
|
|
+ }else{
|
|
|
+ result.put(date,UtilMap.map(columnId,value));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return result;
|
|
|
+ }
|
|
|
}
|