|
@@ -7,20 +7,25 @@ import com.fasterxml.jackson.databind.ObjectMapper;
|
|
|
import com.galaxis.capsule.bo.ChuanyunObject;
|
|
|
import com.galaxis.manatee.constant.ChuanYunConstant;
|
|
|
import com.galaxis.manatee.constant.StringConstant;
|
|
|
-import com.galaxis.manatee.dao.ChuanyunCostCollectionDao;
|
|
|
-import com.galaxis.manatee.dao.ChuanyunUserCompanyDao;
|
|
|
+import com.galaxis.manatee.dao.*;
|
|
|
import com.galaxis.manatee.entity.chuanyun.data.object.*;
|
|
|
import com.galaxis.manatee.entity.chuanyun.dto.ChuanyunSaveDTO;
|
|
|
import com.galaxis.manatee.entity.chuanyun.dto.Filter;
|
|
|
import com.galaxis.manatee.exception.BigSizeException;
|
|
|
import com.galaxis.manatee.manager.ChuanYunManager;
|
|
|
import com.galaxis.manatee.service.ChuanyunService;
|
|
|
+import com.galaxis.manatee.task.ChuanyunBasicDataScheduledTask;
|
|
|
import lombok.Data;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
+import org.springframework.util.StringUtils;
|
|
|
|
|
|
+import javax.persistence.CascadeType;
|
|
|
+import javax.persistence.FetchType;
|
|
|
+import javax.persistence.OneToMany;
|
|
|
+import java.time.LocalDateTime;
|
|
|
import java.util.ArrayList;
|
|
|
-import java.util.Arrays;
|
|
|
+import java.util.Date;
|
|
|
import java.util.List;
|
|
|
|
|
|
/**
|
|
@@ -34,12 +39,19 @@ public class ChuanyunServiceImpl implements ChuanyunService {
|
|
|
private final ChuanYunManager chuanYunManager;
|
|
|
private final ChuanyunCostCollectionDao chuanyunCostCollectionDao;
|
|
|
private final ChuanyunUserCompanyDao chuanyunUserCompanyDao;
|
|
|
- private String[] leader = {"e1feb431-91fd-4a01-8d81-a2e618b571ff","1c8c4dfa-7e22-4f4e-a672-3e080e01a283","18bf4c09-f7d7-4c01-8509-ec554c6592f0","9df86c86-87f4-4d91-ba1e-29657c6cdb65","3fcbf0e0-bf06-411b-9ce4-b77dc897ee93","0fb67380-3408-4786-bac4-44dfef738110"};
|
|
|
+ private final ChuanyunEquipmentInformDao chuanyunEquipmentInformDao;
|
|
|
+ private final ChuanyunGroupProjectDao chuanyunGroupProjectDao;
|
|
|
+ private final ChuanyunBasicDataScheduledTask chuanyunBasicDataScheduledTask;
|
|
|
+ private final ChuanyunOperationInformationDao chuanyunOperationInformationDao;
|
|
|
|
|
|
- public ChuanyunServiceImpl(ChuanYunManager chuanYunManager, ChuanyunCostCollectionDao chuanyunCostCollectionDao, ChuanyunUserCompanyDao chuanyunUserCompanyDao) {
|
|
|
+ public ChuanyunServiceImpl(ChuanYunManager chuanYunManager, ChuanyunCostCollectionDao chuanyunCostCollectionDao, ChuanyunUserCompanyDao chuanyunUserCompanyDao, ChuanyunEquipmentInformDao chuanyunEquipmentInformDao, ChuanyunGroupProjectDao chuanyunGroupProjectDao, ChuanyunBasicDataScheduledTask chuanyunBasicDataScheduledTask, ChuanyunOperationInformationDao chuanyunOperationInformationDao) {
|
|
|
this.chuanYunManager = chuanYunManager;
|
|
|
this.chuanyunCostCollectionDao = chuanyunCostCollectionDao;
|
|
|
this.chuanyunUserCompanyDao = chuanyunUserCompanyDao;
|
|
|
+ this.chuanyunEquipmentInformDao = chuanyunEquipmentInformDao;
|
|
|
+ this.chuanyunGroupProjectDao = chuanyunGroupProjectDao;
|
|
|
+ this.chuanyunBasicDataScheduledTask = chuanyunBasicDataScheduledTask;
|
|
|
+ this.chuanyunOperationInformationDao = chuanyunOperationInformationDao;
|
|
|
}
|
|
|
|
|
|
@Override
|
|
@@ -154,16 +166,56 @@ public class ChuanyunServiceImpl implements ChuanyunService {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void importEquipment(List<ChuanyunEquipmentDO> list) {
|
|
|
+ var objectMapper=new ObjectMapper();
|
|
|
+ list.forEach(chuanyunEquipmentDO -> {
|
|
|
+ //更新氚云
|
|
|
+ try {
|
|
|
+ List<String> matchers = new ArrayList<>();
|
|
|
+ matchers.add("F0000001_2,"+chuanyunEquipmentDO.getEquipmentCode());
|
|
|
+ var filter= Filter.instance(0,1,true,"And",matchers);
|
|
|
+ var chuanyunFindAllResponse=chuanYunManager.findAll(ChuanyunEquipmentInformDO.SCHEMA_CODE,filter);
|
|
|
+ if (chuanyunFindAllResponse.getReturnData()!=null){
|
|
|
+ List<ChuanyunEquipmentInformDO> projectresult=objectMapper.convertValue(chuanyunFindAllResponse.getReturnData().getBizObjectArray(), new TypeReference<>(){});
|
|
|
+ chuanyunEquipmentDO.setEquipmentCode(projectresult.get(0).getObjectId());
|
|
|
+ }
|
|
|
+// ChuanyunEquipmentInformDO chuanyunEquipmentInformDO = chuanyunEquipmentInformDao.findByEquipmentCode(chuanyunEquipmentDO.getEquipmentCode());
|
|
|
+// if (chuanyunEquipmentInformDO!=null){
|
|
|
+// chuanyunEquipmentDO.setEquipmentCode(chuanyunEquipmentInformDO.getObjectId());
|
|
|
+// }
|
|
|
+ EquipmentDTO equipmentDTO = new EquipmentDTO(chuanyunEquipmentDO);
|
|
|
+ var equipmentString = objectMapper.writeValueAsString(equipmentDTO);
|
|
|
+ ChuanyunSaveDTO chuanyunSaveDTO;
|
|
|
+// if (chuanyunFindAllResponse.getReturnData()!=null) {
|
|
|
+// List<ChuanyunEquipmentDO> result=objectMapper.convertValue(chuanyunFindAllResponse.getReturnData().getBizObjectArray(), new TypeReference<>(){});
|
|
|
+// chuanyunSaveDTO = chuanYunManager.update(ChuanyunEquipmentDO.SCHEMA_CODE,result.get(0).getObjectId(),equipmentString);
|
|
|
+// }else {
|
|
|
+ chuanyunSaveDTO = chuanYunManager.save(ChuanyunEquipmentDO.SCHEMA_CODE,equipmentString,true);
|
|
|
+// }
|
|
|
+ if (chuanyunSaveDTO.getSuccessful()){
|
|
|
+ log.info("新增项目配置信息成功");
|
|
|
+ }else {
|
|
|
+ log.error("新增项目配置信息失败");
|
|
|
+ }
|
|
|
+ } catch (JsonProcessingException | BigSizeException e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
@Override
|
|
|
- public void deleteProjectMember() {
|
|
|
+ public void updateU9Department() {
|
|
|
var objectMapper=new ObjectMapper();
|
|
|
var start=0;
|
|
|
+ var totalCount=0L;
|
|
|
var flag=true;
|
|
|
while (flag){
|
|
|
- try {
|
|
|
+ try{
|
|
|
//从氚云查询数据
|
|
|
var filter= Filter.instance(start,start+pageSize,true);
|
|
|
- var chuanyunFindAllResponse=chuanYunManager.findAll(ChuanyunGroupProjectDO.SCHEMA_CODE,filter);
|
|
|
+ var chuanyunFindAllResponse=chuanYunManager.findAll(ChuanyunU9DepartmentDO.SCHEMA_CODE,filter);
|
|
|
if(chuanyunFindAllResponse.getReturnData()==null){
|
|
|
flag=false;
|
|
|
continue;
|
|
@@ -173,47 +225,94 @@ public class ChuanyunServiceImpl implements ChuanyunService {
|
|
|
}else{
|
|
|
flag=false;
|
|
|
}
|
|
|
- //转化为POJO
|
|
|
- List<ChuanyunGroupProjectDO> result=objectMapper.convertValue(chuanyunFindAllResponse.getReturnData().getBizObjectArray(), new TypeReference<>(){});
|
|
|
- //保存
|
|
|
- result.forEach(chuanyunGroupProjectDO -> {
|
|
|
- if (chuanyunGroupProjectDO.getProjectMemberObject()!=null&&chuanyunGroupProjectDO.getProjectMemberObject().size()>0){
|
|
|
- //判断是否是实施、研发二开、售后维保项目
|
|
|
- var specifiedProjectTypeFlag=("实施".equals(chuanyunGroupProjectDO.getProjectType())||
|
|
|
- "维保".equals(chuanyunGroupProjectDO.getProjectType())||
|
|
|
- "研发二开".equals(chuanyunGroupProjectDO.getProjectType())||
|
|
|
- "售后".equals(chuanyunGroupProjectDO.getProjectType()));
|
|
|
- var specifiedBusinessGroupFlag=ChuanyunGroupProjectDO.EBG.equals(chuanyunGroupProjectDO.getBusinessGroup());
|
|
|
- //项目组成员去除领导
|
|
|
- List<String> projectMember = new ArrayList<String>();
|
|
|
- if (specifiedBusinessGroupFlag&&specifiedProjectTypeFlag){
|
|
|
- List<ChuanyunObject> list = chuanyunGroupProjectDO.getProjectMemberObject();
|
|
|
- for (ChuanyunObject chuanyunObject:list){
|
|
|
- if (!Arrays.asList(leader).contains(chuanyunObject.getObjectId())){
|
|
|
- projectMember.add(chuanyunObject.getObjectId());
|
|
|
- }
|
|
|
- }
|
|
|
- chuanyunGroupProjectDO.setProjectMemberList(projectMember.toArray(new String[0]));
|
|
|
- GroupProjectUpdateDTO groupProjectUpdateDTO = new GroupProjectUpdateDTO(chuanyunGroupProjectDO);
|
|
|
- try {
|
|
|
- var groupProjectUpdateString=objectMapper.writeValueAsString(groupProjectUpdateDTO);
|
|
|
- ChuanyunSaveDTO chuanyunSaveDTO=chuanYunManager.update(ChuanyunGroupProjectDO.SCHEMA_CODE,chuanyunGroupProjectDO.getObjectId(),groupProjectUpdateString);
|
|
|
- if(chuanyunSaveDTO.getSuccessful()){
|
|
|
- log.info("删除项目组成员成功");
|
|
|
- }else{
|
|
|
- log.warn("删除项目组成员失败");
|
|
|
- }
|
|
|
- } catch (JsonProcessingException | BigSizeException e) {
|
|
|
- e.printStackTrace();
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
+ List<ChuanyunU9DepartmentDO> result = objectMapper.convertValue(chuanyunFindAllResponse.getReturnData().getBizObjectArray(), new TypeReference<>(){});
|
|
|
+ result.forEach(chuanyunU9DepartmentDO -> {
|
|
|
+ synchroOutDepartment(chuanyunU9DepartmentDO);
|
|
|
});
|
|
|
- }catch (Exception e){
|
|
|
- log.error(e.getMessage());
|
|
|
+ }catch (JsonProcessingException e){
|
|
|
e.printStackTrace();
|
|
|
+ log.warn(e.getMessage());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void updateOperationInformation(ChuanyunOperationInformationDO chuanyunOperationInformationDO) {
|
|
|
+ chuanyunOperationInformationDO.setCreatetime(LocalDateTime.now());
|
|
|
+ chuanyunOperationInformationDao.save(chuanyunOperationInformationDO);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void importProduct(List<ChuanyunProductDO> list) {
|
|
|
+ try {
|
|
|
+ ChuanyunProductLibraryDO chuanyunProductLibraryDO = new ChuanyunProductLibraryDO();
|
|
|
+ List<ChuanyunProductLibrarySpecificationsDO> list1 = new ArrayList<>();
|
|
|
+ list.forEach(chuanyunProductDO -> {
|
|
|
+ if (!StringUtils.isEmpty(chuanyunProductDO.getProductModel())){
|
|
|
+ chuanyunProductLibraryDO.setProductModel(chuanyunProductDO.getProductModel());
|
|
|
+ }
|
|
|
+ ChuanyunProductLibrarySpecificationsDO chuanyunProductLibrarySpecificationsDO = new ChuanyunProductLibrarySpecificationsDO();
|
|
|
+ chuanyunProductLibrarySpecificationsDO.setSpecName(chuanyunProductDO.getSpecName());
|
|
|
+ chuanyunProductLibrarySpecificationsDO.setSpecValue(chuanyunProductDO.getSpecValue());
|
|
|
+ chuanyunProductLibrarySpecificationsDO.setRemark(chuanyunProductDO.getRemark());
|
|
|
+ list1.add(chuanyunProductLibrarySpecificationsDO);
|
|
|
+ });
|
|
|
+ var objectMapper=new ObjectMapper();
|
|
|
+ List<String> matchers = new ArrayList<>();
|
|
|
+ matchers.add("F0000004_2,"+chuanyunProductLibraryDO.getProductModel());
|
|
|
+ var filter= Filter.instance(0,1,true,"And",matchers);
|
|
|
+ var chuanyunFindAllResponse=chuanYunManager.findAll(ChuanyunProductLibraryDO.SCHEMA_CODE,filter);
|
|
|
+ if (chuanyunFindAllResponse.getReturnData()!=null) {
|
|
|
+ List<ChuanyunProductLibraryDO> result=objectMapper.convertValue(chuanyunFindAllResponse.getReturnData().getBizObjectArray(), new TypeReference<>(){});
|
|
|
+ chuanYunManager.delete(ChuanyunProductLibraryDO.SCHEMA_CODE,result.get(0).getObjectId());
|
|
|
+ }
|
|
|
+ ProductLibraryDTO productLibraryDTO = new ProductLibraryDTO(chuanyunProductLibraryDO);
|
|
|
+ productLibraryDTO.setList(list1);
|
|
|
+ var productString = objectMapper.writeValueAsString(productLibraryDTO);
|
|
|
+ ChuanyunSaveDTO chuanyunSaveDTO = chuanYunManager.save(ChuanyunProductLibraryDO.SCHEMA_CODE,productString,true);
|
|
|
+ if(chuanyunSaveDTO.getSuccessful()){
|
|
|
+ log.info("更新产品库成功");
|
|
|
+ }else{
|
|
|
+ log.warn("更新产品库失败");
|
|
|
+ }
|
|
|
+ }catch (Exception e){
|
|
|
+ e.printStackTrace();
|
|
|
+ log.error(e.getMessage());
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 更新外部部门名称
|
|
|
+ * @param
|
|
|
+ */
|
|
|
+ private void synchroOutDepartment(ChuanyunU9DepartmentDO chuanyunU9DepartmentDO) {
|
|
|
+ try {
|
|
|
+ if (!StringUtils.isEmpty(chuanyunU9DepartmentDO.getActualDepartmentObject().getObjectId())){
|
|
|
+ var objectMapper=new ObjectMapper();
|
|
|
+ List<String> matchers = new ArrayList<>();
|
|
|
+ matchers.add("F0000001_2,"+chuanyunU9DepartmentDO.getActualDepartmentObject().getObjectId());
|
|
|
+ var filter= Filter.instance(0,1,true,"And",matchers);
|
|
|
+ var chuanyunFindAllResponse=chuanYunManager.findAll(ChuanyunOutDepartmentDO.SCHEMA_CODE,filter);
|
|
|
+ if (chuanyunFindAllResponse.getReturnData()!=null) {
|
|
|
+ List<ChuanyunOutDepartmentDO> result=objectMapper.convertValue(chuanyunFindAllResponse.getReturnData().getBizObjectArray(), new TypeReference<>(){});
|
|
|
+ ChuanyunOutDepartmentDO firstResult = result.get(0);
|
|
|
+ chuanyunU9DepartmentDO.setDepartmentName(firstResult.getOutDepartment());
|
|
|
+ chuanyunU9DepartmentDO.setDepartmentCode(firstResult.getDepartmentCode());
|
|
|
+ }
|
|
|
+ outDepartmentDTO departmentDTO = new outDepartmentDTO(chuanyunU9DepartmentDO);
|
|
|
+ var departmentString = objectMapper.writeValueAsString(departmentDTO);
|
|
|
+ ChuanyunSaveDTO chuanyunSaveDTO = chuanYunManager.update(ChuanyunU9DepartmentDO.SCHEMA_CODE,chuanyunU9DepartmentDO.getObjectId(),departmentString);
|
|
|
+ if(chuanyunSaveDTO.getSuccessful()){
|
|
|
+ log.info("更新外部部门名称成功");
|
|
|
+ }else{
|
|
|
+ log.warn("更新外部部门名称失败");
|
|
|
+ }
|
|
|
}
|
|
|
+ }catch (Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ log.error(e.getMessage());
|
|
|
}
|
|
|
+
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -287,6 +386,91 @@ public class ChuanyunServiceImpl implements ChuanyunService {
|
|
|
}
|
|
|
|
|
|
@Data
|
|
|
+ static class ProductLibraryDTO{
|
|
|
+
|
|
|
+ @JsonProperty("F0000004")
|
|
|
+ private String productModel;
|
|
|
+
|
|
|
+ @JsonProperty("D001789F4d732f3541934286b97c21a1ea1e5398")
|
|
|
+ @OneToMany(cascade = CascadeType.ALL, orphanRemoval = true,fetch = FetchType.EAGER)
|
|
|
+ private List<ChuanyunProductLibrarySpecificationsDO> list;
|
|
|
+
|
|
|
+ public ProductLibraryDTO(ChuanyunProductLibraryDO chuanyunProductLibraryDO) {
|
|
|
+ if(null!=chuanyunProductLibraryDO){
|
|
|
+ if (null!=chuanyunProductLibraryDO.getProductModel()){
|
|
|
+ this.productModel=chuanyunProductLibraryDO.getProductModel();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ @Data
|
|
|
+ class outDepartmentDTO {
|
|
|
+
|
|
|
+ @JsonProperty("F0000062")
|
|
|
+ private String outDepartment;
|
|
|
+
|
|
|
+ @JsonProperty("F0000063")
|
|
|
+ private String departmentCode;
|
|
|
+
|
|
|
+ public outDepartmentDTO(ChuanyunU9DepartmentDO chuanyunU9DepartmentDO) {
|
|
|
+ if (null!=chuanyunU9DepartmentDO){
|
|
|
+ if(null!=chuanyunU9DepartmentDO.getDepartmentName()){
|
|
|
+ this.outDepartment=chuanyunU9DepartmentDO.getDepartmentName();
|
|
|
+ }
|
|
|
+ if (null!=chuanyunU9DepartmentDO.getDepartmentCode()){
|
|
|
+ this.departmentCode=chuanyunU9DepartmentDO.getDepartmentCode();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ @Data
|
|
|
+ class EquipmentDTO{
|
|
|
+ /**
|
|
|
+ * 设备编号
|
|
|
+ */
|
|
|
+ @JsonProperty("F0000001")
|
|
|
+ private String equipmentCode;
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 设备配置编号
|
|
|
+ */
|
|
|
+ @JsonProperty("F0000002")
|
|
|
+ private String equipmentConfigureCode;
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 设备配置属性
|
|
|
+ */
|
|
|
+ @JsonProperty("F0000003")
|
|
|
+ private String equipmentConfigureAttribute;
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 设备配置值
|
|
|
+ */
|
|
|
+ @JsonProperty("F0000004")
|
|
|
+ private String equipmentConfigureValue;
|
|
|
+
|
|
|
+ public EquipmentDTO(ChuanyunEquipmentDO chuanyunEquipmentDO){
|
|
|
+ if (null!=chuanyunEquipmentDO){
|
|
|
+ if (null!=chuanyunEquipmentDO.getEquipmentCode()){
|
|
|
+ this.equipmentCode=chuanyunEquipmentDO.getEquipmentCode();
|
|
|
+ }
|
|
|
+ if (null!=chuanyunEquipmentDO.getEquipmentConfigureAttribute()){
|
|
|
+ this.equipmentConfigureAttribute=chuanyunEquipmentDO.getEquipmentConfigureAttribute();
|
|
|
+ }
|
|
|
+ if (null!=chuanyunEquipmentDO.getEquipmentConfigureCode()){
|
|
|
+ this.equipmentConfigureCode=chuanyunEquipmentDO.getEquipmentConfigureCode();
|
|
|
+ }
|
|
|
+ if (null!=chuanyunEquipmentDO.getEquipmentConfigureValue()){
|
|
|
+ this.equipmentConfigureValue=chuanyunEquipmentDO.getEquipmentConfigureValue();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ @Data
|
|
|
static class ProjectUpdateDTO{
|
|
|
|
|
|
@JsonProperty("OwnerId")
|