|
@@ -0,0 +1,218 @@
|
|
|
+package com.galaxis.manatee.task;
|
|
|
+
|
|
|
+import com.fasterxml.jackson.annotation.JsonProperty;
|
|
|
+import com.fasterxml.jackson.core.JsonProcessingException;
|
|
|
+import com.fasterxml.jackson.core.type.TypeReference;
|
|
|
+import com.fasterxml.jackson.databind.ObjectMapper;
|
|
|
+import com.galaxis.manatee.entity.chuanyun.data.object.ChuanyunDayLog;
|
|
|
+import com.galaxis.manatee.entity.chuanyun.data.object.ChuanyunLogDO;
|
|
|
+import com.galaxis.manatee.entity.chuanyun.dto.ChuanyunSaveDTO;
|
|
|
+import com.galaxis.manatee.entity.chuanyun.dto.Filter;
|
|
|
+import com.galaxis.manatee.manager.ChuanYunManager;
|
|
|
+import lombok.Data;
|
|
|
+import lombok.extern.slf4j.Slf4j;
|
|
|
+import org.springframework.stereotype.Service;
|
|
|
+
|
|
|
+import java.time.format.DateTimeFormatter;
|
|
|
+import java.util.ArrayList;
|
|
|
+import java.util.List;
|
|
|
+
|
|
|
+/**
|
|
|
+ * @author zcj
|
|
|
+ * @version 0.1
|
|
|
+ * @date 2020/5/9 11:09 上午
|
|
|
+ */
|
|
|
+@Slf4j
|
|
|
+@Service
|
|
|
+public class TestService {
|
|
|
+
|
|
|
+ private final ChuanYunManager chuanYunManager;
|
|
|
+
|
|
|
+ public TestService(ChuanYunManager chuanYunManager) {
|
|
|
+ this.chuanYunManager = chuanYunManager;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 这个是补全日志历史数据的方法不需要调用
|
|
|
+ */
|
|
|
+ private void fixLogData(){
|
|
|
+ var objectMapper=new ObjectMapper();
|
|
|
+ var pageSize=20;
|
|
|
+ var start=0;
|
|
|
+ var totalCount=0L;
|
|
|
+ var flag=true;
|
|
|
+ List<String> matchersString=new ArrayList<>();
|
|
|
+ matchersString.add("Status_2,1");
|
|
|
+ matchersString.add("CreatedTime_3,2020-05-07 01:00:00");
|
|
|
+ while (flag){
|
|
|
+ try {
|
|
|
+ //从氚云查询数据
|
|
|
+ var filter= Filter.instance(start,start+pageSize,true,Filter.AND,matchersString);
|
|
|
+ var chuanyunFindAllResponse=chuanYunManager.findAll(ChuanyunLogDO.SCHEMA_CODE,filter);
|
|
|
+ if(chuanyunFindAllResponse.getReturnData()==null){
|
|
|
+ flag=false;
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ if(chuanyunFindAllResponse.getReturnData().getTotalCount()>=start+pageSize){
|
|
|
+ start+=pageSize;
|
|
|
+ }else{
|
|
|
+ flag=false;
|
|
|
+ }
|
|
|
+ //转化为POJO
|
|
|
+ List<ChuanyunLogDO> result=objectMapper.convertValue(chuanyunFindAllResponse.getReturnData().getBizObjectArray(), new TypeReference<>(){});
|
|
|
+ result.forEach(chuanyunLogDO -> {
|
|
|
+ String logDateString=chuanyunLogDO.getOldDate().format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
|
|
|
+ LogDTO logDTO=new LogDTO();
|
|
|
+ logDTO.setTitle(logDateString);
|
|
|
+ logDTO.setUser(chuanyunLogDO.getCreatedByObject().getObjectId());
|
|
|
+ logDTO.setLogDate(logDateString);
|
|
|
+ logDTO.setDayOrWeek("每天填写");
|
|
|
+
|
|
|
+ List<ChuanyunDayLog> chuanyunDayLogList=new ArrayList<>();
|
|
|
+ List<ChuanyunDayLog> list=chuanyunLogDO.getDayLogList();
|
|
|
+ if(list==null&&chuanyunLogDO.getWeekLogList()==null){
|
|
|
+ log.info(chuanyunLogDO+"");
|
|
|
+ //销售项目
|
|
|
+ chuanyunLogDO.getChuanyunDayLogSaleList().forEach(chuanyunDayLogSale -> {
|
|
|
+ if(chuanyunDayLogSale.getHoursWorked()!=null){
|
|
|
+ ChuanyunDayLog chuanyunDayLog=new ChuanyunDayLog();
|
|
|
+ chuanyunDayLog.setObjectId(chuanyunDayLogSale.getObjectId());
|
|
|
+ chuanyunDayLog.setDayLogDate(chuanyunLogDO.getOldDate());
|
|
|
+ chuanyunDayLog.setContent(chuanyunDayLogSale.getContent());
|
|
|
+ chuanyunDayLog.setProjectId(chuanyunDayLogSale.getProjectId());
|
|
|
+ chuanyunDayLog.setHoursWorked(chuanyunDayLogSale.getHoursWorked());
|
|
|
+ chuanyunDayLog.setProjectType("销售项目");
|
|
|
+ chuanyunDayLog.setParentObjectId(chuanyunLogDO.getObjectId());
|
|
|
+ chuanyunDayLogList.add(chuanyunDayLog);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ //管理项目
|
|
|
+ chuanyunLogDO.getChuanyunDayLogManagementList().forEach(chuanyunDayLogManagement -> {
|
|
|
+ if(chuanyunDayLogManagement.getHoursWorked()!=null){
|
|
|
+ ChuanyunDayLog chuanyunDayLog=new ChuanyunDayLog();
|
|
|
+ chuanyunDayLog.setObjectId(chuanyunDayLogManagement.getObjectId());
|
|
|
+ chuanyunDayLog.setDayLogDate(chuanyunLogDO.getOldDate());
|
|
|
+ chuanyunDayLog.setContent(chuanyunDayLogManagement.getContent());
|
|
|
+ chuanyunDayLog.setProjectId(chuanyunDayLogManagement.getProjectId());
|
|
|
+ chuanyunDayLog.setHoursWorked(chuanyunDayLogManagement.getHoursWorked());
|
|
|
+ chuanyunDayLog.setProjectType("管理项目");
|
|
|
+ chuanyunDayLog.setParentObjectId(chuanyunLogDO.getObjectId());
|
|
|
+ chuanyunDayLogList.add(chuanyunDayLog);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ //研发项目
|
|
|
+ chuanyunLogDO.getChuanyunDayLogResearchList().forEach(chuanyunDayLogResearch -> {
|
|
|
+ if(chuanyunDayLogResearch.getHoursWorked()!=null){
|
|
|
+ ChuanyunDayLog chuanyunDayLog=new ChuanyunDayLog();
|
|
|
+ chuanyunDayLog.setObjectId(chuanyunDayLogResearch.getObjectId());
|
|
|
+ chuanyunDayLog.setDayLogDate(chuanyunLogDO.getOldDate());
|
|
|
+ chuanyunDayLog.setContent(chuanyunDayLogResearch.getContent());
|
|
|
+ chuanyunDayLog.setProjectId(chuanyunDayLogResearch.getProjectId());
|
|
|
+ chuanyunDayLog.setHoursWorked(chuanyunDayLogResearch.getHoursWorked());
|
|
|
+ chuanyunDayLog.setProjectType("研发项目");
|
|
|
+ chuanyunDayLog.setParentObjectId(chuanyunLogDO.getObjectId());
|
|
|
+ chuanyunDayLogList.add(chuanyunDayLog);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ //生产项目
|
|
|
+ chuanyunLogDO.getChuanyunDayLogFactoryList().forEach(chuanyunDayLogFactory -> {
|
|
|
+ if(chuanyunDayLogFactory.getHoursWorked()!=null){
|
|
|
+ ChuanyunDayLog chuanyunDayLog=new ChuanyunDayLog();
|
|
|
+ chuanyunDayLog.setObjectId(chuanyunDayLogFactory.getObjectId());
|
|
|
+ chuanyunDayLog.setDayLogDate(chuanyunLogDO.getOldDate());
|
|
|
+ chuanyunDayLog.setContent(chuanyunDayLogFactory.getContent());
|
|
|
+ chuanyunDayLog.setFactoryLocationId(chuanyunDayLogFactory.getFactoryLocationId());
|
|
|
+ chuanyunDayLog.setHoursWorked(chuanyunDayLogFactory.getHoursWorked());
|
|
|
+ chuanyunDayLog.setProjectType("生产项目");
|
|
|
+ chuanyunDayLog.setParentObjectId(chuanyunLogDO.getObjectId());
|
|
|
+ chuanyunDayLogList.add(chuanyunDayLog);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ //实施项目
|
|
|
+ chuanyunLogDO.getChuanyunDayLogApplyList().forEach(chuanyunDayLogApply -> {
|
|
|
+ if(chuanyunDayLogApply.getHoursWorked()!=null){
|
|
|
+ ChuanyunDayLog chuanyunDayLog=new ChuanyunDayLog();
|
|
|
+ chuanyunDayLog.setObjectId(chuanyunDayLogApply.getObjectId());
|
|
|
+ chuanyunDayLog.setDayLogDate(chuanyunLogDO.getOldDate());
|
|
|
+ chuanyunDayLog.setContent(chuanyunDayLogApply.getContent());
|
|
|
+ chuanyunDayLog.setProjectId(chuanyunDayLogApply.getProjectId());
|
|
|
+ chuanyunDayLog.setHoursWorked(chuanyunDayLogApply.getHoursWorked());
|
|
|
+ chuanyunDayLog.setProjectType("实施");
|
|
|
+ chuanyunDayLog.setParentObjectId(chuanyunLogDO.getObjectId());
|
|
|
+ chuanyunDayLogList.add(chuanyunDayLog);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ //二开项目
|
|
|
+ chuanyunLogDO.getChuanyunDayLogDevelopmentList().forEach(chuanyunDayLogDevelopment -> {
|
|
|
+ if(chuanyunDayLogDevelopment.getHoursWorked()!=null){
|
|
|
+ ChuanyunDayLog chuanyunDayLog=new ChuanyunDayLog();
|
|
|
+ chuanyunDayLog.setObjectId(chuanyunDayLogDevelopment.getObjectId());
|
|
|
+ chuanyunDayLog.setDayLogDate(chuanyunLogDO.getOldDate());
|
|
|
+ chuanyunDayLog.setContent(chuanyunDayLogDevelopment.getContent());
|
|
|
+ chuanyunDayLog.setProjectId(chuanyunDayLogDevelopment.getProjectId());
|
|
|
+ chuanyunDayLog.setHoursWorked(chuanyunDayLogDevelopment.getHoursWorked());
|
|
|
+ chuanyunDayLog.setProjectType("研发二开");
|
|
|
+ chuanyunDayLog.setParentObjectId(chuanyunLogDO.getObjectId());
|
|
|
+ chuanyunDayLogList.add(chuanyunDayLog);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ //售后项目
|
|
|
+ chuanyunLogDO.getChuanyunDayLogMaintenanceList().forEach(chuanyunDayLogMaintenance -> {
|
|
|
+ if(chuanyunDayLogMaintenance.getHoursWorked()!=null){
|
|
|
+ ChuanyunDayLog chuanyunDayLog=new ChuanyunDayLog();
|
|
|
+ chuanyunDayLog.setObjectId(chuanyunDayLogMaintenance.getObjectId());
|
|
|
+ chuanyunDayLog.setDayLogDate(chuanyunLogDO.getOldDate());
|
|
|
+ chuanyunDayLog.setContent(chuanyunDayLogMaintenance.getContent());
|
|
|
+ chuanyunDayLog.setProjectId(chuanyunDayLogMaintenance.getProjectId());
|
|
|
+ chuanyunDayLog.setHoursWorked(chuanyunDayLogMaintenance.getHoursWorked());
|
|
|
+ chuanyunDayLog.setProjectType("售后");
|
|
|
+ chuanyunDayLog.setParentObjectId(chuanyunLogDO.getObjectId());
|
|
|
+ chuanyunDayLogList.add(chuanyunDayLog);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ logDTO.setDayLogList(chuanyunDayLogList);
|
|
|
+ //保存
|
|
|
+ try {
|
|
|
+ String bizObjectString=objectMapper.writeValueAsString(logDTO);
|
|
|
+ ChuanyunSaveDTO chuanyunSaveDTO=chuanYunManager.update(ChuanyunLogDO.SCHEMA_CODE,chuanyunLogDO.getObjectId(),bizObjectString);
|
|
|
+ log.info(chuanyunSaveDTO+"");
|
|
|
+ } catch (JsonProcessingException e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ if(chuanyunDayLogList.size()>0){
|
|
|
+ try {
|
|
|
+ log.info(objectMapper.writeValueAsString(chuanyunDayLogList));
|
|
|
+ } catch (JsonProcessingException e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
+ //获取项目总数
|
|
|
+ totalCount=chuanyunFindAllResponse.getReturnData().getTotalCount();
|
|
|
+ }catch (Exception e){
|
|
|
+ log.error(e.getMessage());
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ log.info("集团日志保存保存"+totalCount);
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+@Data
|
|
|
+class LogDTO{
|
|
|
+ private String title;
|
|
|
+
|
|
|
+ private String user;
|
|
|
+
|
|
|
+ private String logDate;
|
|
|
+
|
|
|
+ private String dayOrWeek;
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 日志明细
|
|
|
+ */
|
|
|
+ @JsonProperty("D001789DayLog")
|
|
|
+ private List<ChuanyunDayLog> dayLogList;
|
|
|
+}
|