|
@@ -13,30 +13,28 @@ import com.management.platform.util.HttpRespMsg;
|
|
|
import org.apache.commons.collections.CollectionUtils;
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+import org.springframework.beans.factory.annotation.Value;
|
|
|
+import org.springframework.core.ParameterizedTypeReference;
|
|
|
+import org.springframework.http.*;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
+import org.springframework.web.client.RestTemplate;
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
|
import javax.servlet.http.HttpServletRequest;
|
|
|
import java.time.LocalDate;
|
|
|
import java.time.YearMonth;
|
|
|
import java.time.format.DateTimeFormatter;
|
|
|
-import java.util.ArrayList;
|
|
|
-import java.util.HashMap;
|
|
|
-import java.util.List;
|
|
|
-import java.util.Map;
|
|
|
+import java.util.*;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
@Service
|
|
|
public class ErpOrderInfoServiceImpl extends ServiceImpl<ErpOrderInfoMapper, ErpOrderInfo> implements ErpOrderInfoService {
|
|
|
-
|
|
|
@Resource
|
|
|
private ErpOrderInfoMapper erpOrderInfoMapper;
|
|
|
-
|
|
|
@Resource
|
|
|
- private UserMapper userMapper;
|
|
|
- @Autowired
|
|
|
private TaskGroupMapper taskGroupMapper;
|
|
|
|
|
|
+ public static final String PREFIX_URL = "http://58.210.104.138:10020";
|
|
|
|
|
|
@Override
|
|
|
public HttpRespMsg getInfoByProjectId(String projectId, String date, HttpServletRequest request) {
|
|
@@ -126,4 +124,81 @@ public class ErpOrderInfoServiceImpl extends ServiceImpl<ErpOrderInfoMapper, Erp
|
|
|
httpRespMsg.setData(map);
|
|
|
return httpRespMsg;
|
|
|
}
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 工单号同步
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public HttpRespMsg syncData() {
|
|
|
+ HttpRespMsg msg = new HttpRespMsg();
|
|
|
+ RestTemplate restTemplate = new RestTemplate();
|
|
|
+ String sumUrl = PREFIX_URL+"/dataCollect/getSqlServerDataSum";
|
|
|
+ String listUrl = PREFIX_URL+"/dataCollect/getSqlServerDataList";
|
|
|
+
|
|
|
+ try {
|
|
|
+ ResponseEntity<String> sumResponse = restTemplate.exchange(
|
|
|
+ sumUrl,
|
|
|
+ HttpMethod.GET,
|
|
|
+ null,
|
|
|
+ String.class
|
|
|
+ );
|
|
|
+ Integer totalNum = 0;
|
|
|
+ if (sumResponse.getStatusCode() == HttpStatus.OK) {
|
|
|
+ totalNum = Integer.parseInt(sumResponse.getBody());
|
|
|
+ } else {
|
|
|
+ System.out.println("请求失败,状态码: " + sumResponse.getStatusCode());
|
|
|
+ }
|
|
|
+ if(totalNum > 0){
|
|
|
+ int pageSize = 1000;
|
|
|
+ int offset = 0;
|
|
|
+ List<ErpOrderInfo> toAddList = new ArrayList<>();
|
|
|
+ List<ErpOrderInfo> toUpdateList = new ArrayList<>();
|
|
|
+ while (offset < totalNum) {
|
|
|
+ HttpHeaders headers = new HttpHeaders();
|
|
|
+ headers.setContentType(MediaType.APPLICATION_JSON);
|
|
|
+ Map<String, Object> requestBody = new HashMap<>();
|
|
|
+ requestBody.put("pageNo", offset);
|
|
|
+ requestBody.put("pageSize", pageSize);
|
|
|
+ HttpEntity<Object> requestEntity = new HttpEntity<>(requestBody, headers);
|
|
|
+ ResponseEntity<List<ErpOrderInfo>> listResponse = restTemplate.exchange(
|
|
|
+ listUrl,
|
|
|
+ HttpMethod.POST,
|
|
|
+ requestEntity,
|
|
|
+ new ParameterizedTypeReference<List<ErpOrderInfo>>(){}
|
|
|
+ );
|
|
|
+ if (listResponse.getStatusCode() == HttpStatus.OK) {
|
|
|
+ //dataList中是进行中的工单
|
|
|
+ List<ErpOrderInfo> dataList = listResponse.getBody();
|
|
|
+ List<ErpOrderInfo> erpOrderInfos = erpOrderInfoMapper.selectList(new LambdaQueryWrapper<ErpOrderInfo>());
|
|
|
+ if(org.apache.commons.collections.CollectionUtils.isNotEmpty(dataList)){
|
|
|
+ for (ErpOrderInfo item : dataList) {
|
|
|
+ Optional<ErpOrderInfo> first = erpOrderInfos.stream().filter(t -> t.getMoDId().equals(item.getMoDId())).findFirst();
|
|
|
+ if(first.isPresent()){
|
|
|
+ item.setId(first.get().getId());
|
|
|
+ toUpdateList.add(item);
|
|
|
+ } else {
|
|
|
+ toAddList.add(item);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if(!org.springframework.util.CollectionUtils.isEmpty(toAddList)){
|
|
|
+ saveBatch(toAddList);
|
|
|
+ }
|
|
|
+ if(!org.springframework.util.CollectionUtils.isEmpty(toUpdateList)){
|
|
|
+ updateBatchById(toUpdateList);
|
|
|
+ }
|
|
|
+ toUpdateList.clear();
|
|
|
+ toAddList.clear();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ offset += pageSize;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } catch (Exception e) {
|
|
|
+ System.out.println("请求发生异常: " + e.getMessage());
|
|
|
+ e.printStackTrace();
|
|
|
+ msg.setError(e.getMessage());
|
|
|
+ }
|
|
|
+ return msg;
|
|
|
+ }
|
|
|
}
|