|
@@ -1,13 +1,22 @@
|
|
package com.malk.huagao.service.impl;
|
|
package com.malk.huagao.service.impl;
|
|
|
|
|
|
|
|
+import cn.hutool.core.date.DateUtil;
|
|
import cn.hutool.core.util.NumberUtil;
|
|
import cn.hutool.core.util.NumberUtil;
|
|
import com.alibaba.fastjson.JSON;
|
|
import com.alibaba.fastjson.JSON;
|
|
import com.alibaba.fastjson.JSONObject;
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
|
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
|
+import com.malk.huagao.entity.YdNonProdPrice;
|
|
|
|
+import com.malk.huagao.entity.YdProdWorkHoursPrice;
|
|
|
|
+import com.malk.huagao.entity.YdUserInput;
|
|
|
|
+import com.malk.huagao.mapper.YdNonProdPriceMapper;
|
|
|
|
+import com.malk.huagao.mapper.YdProdWorkHoursPriceMapper;
|
|
|
|
+import com.malk.huagao.mapper.YdUserInputMapper;
|
|
import com.malk.huagao.service.HuaGaoService;
|
|
import com.malk.huagao.service.HuaGaoService;
|
|
import com.malk.server.aliwork.YDConf;
|
|
import com.malk.server.aliwork.YDConf;
|
|
import com.malk.server.aliwork.YDParam;
|
|
import com.malk.server.aliwork.YDParam;
|
|
import com.malk.server.common.McException;
|
|
import com.malk.server.common.McException;
|
|
import com.malk.server.dingtalk.DDR;
|
|
import com.malk.server.dingtalk.DDR;
|
|
|
|
+import com.malk.server.dingtalk.DDR_New;
|
|
import com.malk.service.aliwork.YDClient;
|
|
import com.malk.service.aliwork.YDClient;
|
|
import com.malk.service.aliwork.YDService;
|
|
import com.malk.service.aliwork.YDService;
|
|
import com.malk.service.dingtalk.DDClient;
|
|
import com.malk.service.dingtalk.DDClient;
|
|
@@ -21,6 +30,7 @@ import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.beans.factory.annotation.Value;
|
|
import org.springframework.beans.factory.annotation.Value;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
|
|
+import java.text.ParseException;
|
|
import java.text.SimpleDateFormat;
|
|
import java.text.SimpleDateFormat;
|
|
import java.time.LocalDateTime;
|
|
import java.time.LocalDateTime;
|
|
import java.util.*;
|
|
import java.util.*;
|
|
@@ -52,6 +62,15 @@ public class HuaGaoServiceImpl implements HuaGaoService {
|
|
@Autowired
|
|
@Autowired
|
|
private FXKClient fxkClient;
|
|
private FXKClient fxkClient;
|
|
|
|
|
|
|
|
+ @Autowired
|
|
|
|
+ private YdUserInputMapper ydUserInputMapper;
|
|
|
|
+
|
|
|
|
+ @Autowired
|
|
|
|
+ private YdNonProdPriceMapper ydNonProdPriceMapper;
|
|
|
|
+
|
|
|
|
+ @Autowired
|
|
|
|
+ private YdProdWorkHoursPriceMapper ydProdWorkHoursPriceMapper;
|
|
|
|
+
|
|
@Autowired
|
|
@Autowired
|
|
private static final long DEPT_ID = 971482089L; // 合作加盟校区
|
|
private static final long DEPT_ID = 971482089L; // 合作加盟校区
|
|
|
|
|
|
@@ -206,12 +225,143 @@ private Map crcreateUser_dingTalk(String name, String randomAccount, String rand
|
|
String workTime="休息".equals(dataMap.get("82772125"))?
|
|
String workTime="休息".equals(dataMap.get("82772125"))?
|
|
dataMap.get("89349019"): NumberUtil.add(dataMap.get("89349019"),dataMap.get("82772106")).toString();
|
|
dataMap.get("89349019"): NumberUtil.add(dataMap.get("89349019"),dataMap.get("82772106")).toString();
|
|
saveData(user,date,workTime,price);
|
|
saveData(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());
|
|
|
|
+ }
|
|
|
|
+ }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ @Override
|
|
|
|
+ public void upsertNonProdPrice(Map map) {
|
|
|
|
+ String formInstId = UtilMap.getString(map, "formInstId");
|
|
|
|
+
|
|
|
|
+ Map formData = ydClient.queryData(YDParam.builder()
|
|
|
|
+ .formInstId(formInstId)
|
|
|
|
+ .build(), YDConf.FORM_QUERY.retrieve_id).getFormData();
|
|
|
|
+
|
|
|
|
+ String type = UtilMap.getString(formData, "textField_m8fljzks");
|
|
|
|
+ String form = UtilMap.getString(formData, "textField_m8fljzkt");
|
|
|
|
+ String position = UtilMap.getString(formData, "textField_m8fljzku");
|
|
|
|
+ String materialCodeLeft = UtilMap.getString(formData, "textField_m8fljzkv");
|
|
|
|
+ String price = UtilMap.getString(formData, "numberField_m8fljzkw");
|
|
|
|
+
|
|
|
|
+ LambdaQueryWrapper<YdNonProdPrice> ydNonProdPriceLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
|
+ ydNonProdPriceLambdaQueryWrapper.eq(YdNonProdPrice::getType,type)
|
|
|
|
+ .eq(YdNonProdPrice::getForm,form)
|
|
|
|
+ .eq(YdNonProdPrice::getPosition,position)
|
|
|
|
+ .eq(YdNonProdPrice::getMaterialCodeLeft,materialCodeLeft);
|
|
|
|
+
|
|
|
|
+ YdNonProdPrice ydNonProdPrice = ydNonProdPriceMapper.selectOne(ydNonProdPriceLambdaQueryWrapper);
|
|
|
|
+ if (Objects.nonNull(ydNonProdPrice)){
|
|
|
|
+ ydNonProdPrice.setPrice(price);
|
|
|
|
+
|
|
|
|
+ ydNonProdPriceMapper.update(ydNonProdPrice,ydNonProdPriceLambdaQueryWrapper);
|
|
|
|
+ }else {
|
|
|
|
+ ydNonProdPrice = new YdNonProdPrice();
|
|
|
|
+ ydNonProdPrice.setType(type);
|
|
|
|
+ ydNonProdPrice.setForm(form);
|
|
|
|
+ ydNonProdPrice.setPosition(position);
|
|
|
|
+ ydNonProdPrice.setMaterialCodeLeft(materialCodeLeft);
|
|
|
|
+ ydNonProdPrice.setPrice(price);
|
|
|
|
+
|
|
|
|
+ ydNonProdPriceMapper.insert(ydNonProdPrice);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public void upsertWorkHoursPrice(Map map) {
|
|
|
|
+ String formInstId = UtilMap.getString(map, "formInstId");
|
|
|
|
+
|
|
|
|
+ Map formData = ydClient.queryData(YDParam.builder()
|
|
|
|
+ .formInstId(formInstId)
|
|
|
|
+ .build(), YDConf.FORM_QUERY.retrieve_id).getFormData();
|
|
|
|
+
|
|
|
|
+ String type = UtilMap.getString(formData, "selectField_m8zib4co");
|
|
|
|
+ String price = UtilMap.getString(formData, "numberField_m8zib4cp");
|
|
|
|
+
|
|
|
|
+ LambdaQueryWrapper<YdProdWorkHoursPrice> ydProdWorkHoursPriceLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
|
+ ydProdWorkHoursPriceLambdaQueryWrapper.eq(YdProdWorkHoursPrice::getType,type);
|
|
|
|
+
|
|
|
|
+ YdProdWorkHoursPrice ydProdWorkHoursPrice = ydProdWorkHoursPriceMapper.selectOne(ydProdWorkHoursPriceLambdaQueryWrapper);
|
|
|
|
+ if (Objects.nonNull(ydProdWorkHoursPrice)){
|
|
|
|
+ ydProdWorkHoursPrice.setPrice(price);
|
|
|
|
+
|
|
|
|
+ ydProdWorkHoursPriceMapper.update(ydProdWorkHoursPrice,ydProdWorkHoursPriceLambdaQueryWrapper);
|
|
|
|
+ }else {
|
|
|
|
+ ydProdWorkHoursPrice = new YdProdWorkHoursPrice();
|
|
|
|
+ ydProdWorkHoursPrice.setType(type);
|
|
|
|
+ ydProdWorkHoursPrice.setPrice(price);
|
|
|
|
+
|
|
|
|
+ ydProdWorkHoursPriceMapper.insert(ydProdWorkHoursPrice);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /*@Override
|
|
|
|
+ public void syncUserInput(LocalDateTime startTime, LocalDateTime endTime) {
|
|
|
|
+ List<Map> dataList = getYdFormDataList("FORM-78BF5DE20E244369BD475C11A5CA48A0ZAQJ", "", YDConf.FORM_QUERY.retrieve_list_all);
|
|
|
|
+
|
|
|
|
+ for (Map data : dataList) {
|
|
|
|
+ Map formData = UtilMap.getMap(data, "formData");
|
|
|
|
+
|
|
|
|
+ YdUserInput ydUserInput = new YdUserInput();
|
|
|
|
+ ydUserInput.setUser(UtilMap.getList(formData, "employeeField_m8cu0g58").get(0).toString());
|
|
|
|
+ ydUserInput.setUserId(UtilMap.getList(formData, "employeeField_m8cu0g58_id").get(0).toString());
|
|
|
|
+
|
|
|
|
+ ydUserInput.setDate(new Date(UtilMap.getLong(formData,"dateField_m8e53oef")));
|
|
|
|
+ ydUserInput.setWorkHours(UtilMap.getString(formData,"numberField_m8ctvm2e"));
|
|
|
|
+ ydUserInput.setPrice(UtilMap.getString(formData,"numberField_m8e53oeg"));
|
|
|
|
+ ydUserInput.setTotalPrice(UtilMap.getString(formData,"numberField_m8e53oeh"));
|
|
|
|
+
|
|
|
|
+ ydUserInputMapper.insert(ydUserInput);
|
|
|
|
+ }
|
|
|
|
+ }*/
|
|
|
|
+
|
|
|
|
+ private List<Map> getYdFormDataList(String formUuid, String searchCondition, YDConf.FORM_QUERY formQuery) {
|
|
|
|
+ List<Map> list = new ArrayList<>();
|
|
|
|
+ DDR_New ddrNew = new DDR_New();
|
|
|
|
+ int pageNumber = 1;
|
|
|
|
+ int pageSize = 100;
|
|
|
|
+ do {
|
|
|
|
+ ddrNew = ydClient.queryData(YDParam.builder().formUuid(formUuid)
|
|
|
|
+ .searchCondition(searchCondition)
|
|
|
|
+ .pageNumber(pageNumber)
|
|
|
|
+ .pageSize(pageSize).build(), formQuery);
|
|
|
|
+
|
|
|
|
+ list.addAll((List<Map>) ddrNew.getData());
|
|
|
|
+ pageNumber++;
|
|
|
|
+ }while (ddrNew.getTotalCount() > ddrNew.getPageNumber() * pageSize);
|
|
|
|
+ return list;
|
|
|
|
+ }
|
|
|
|
+
|
|
private Map<String,Map<String,String>> toDateMap(List<Map> valList){
|
|
private Map<String,Map<String,String>> toDateMap(List<Map> valList){
|
|
Map<String,Map<String,String>> result = new HashMap<>();
|
|
Map<String,Map<String,String>> result = new HashMap<>();
|
|
for(Map map:valList){
|
|
for(Map map:valList){
|