Browse Source

Merge remote-tracking branch 'origin/dev_issue_category' into dev_issue_category

master
yinzuomei 5 years ago
parent
commit
6e388b3559
  1. 27
      epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/screen/CategoryDictDataFormDTO.java
  2. 72
      epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/screen/form/CategoryDictFormDTO.java
  3. 25
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/ScreenProjectDataCollController.java
  4. 26
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/stats/CustomerProjectCategoryDictDao.java
  5. 15
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/CustomerProjectCategoryDictService.java
  6. 19
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/CustomerProjectCategoryDictServiceImpl.java
  7. 56
      epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/stats/CustomerProjectCategoryDictDao.xml

27
epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/screen/CategoryDictDataFormDTO.java

@ -0,0 +1,27 @@
package com.epmet.dto.screen;
import com.epmet.commons.tools.validator.group.CustomerClientShowGroup;
import com.epmet.dto.screen.form.CategoryDictFormDTO;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
import java.util.List;
/**
* 项目分类字典上报
* @Auther: zhangyong
* @Date: 2021-03-22
*/
@Data
public class CategoryDictDataFormDTO implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 当isFirst=true时直接根据 customerId 删除原有数据再批量insert
*/
private Boolean isFirst;
private List<CategoryDictFormDTO> dataList;
}

72
epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/screen/form/CategoryDictFormDTO.java

@ -0,0 +1,72 @@
package com.epmet.dto.screen.form;
import com.epmet.commons.tools.validator.group.CustomerClientShowGroup;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
import java.math.BigDecimal;
/**
* 项目分类字典上报
* @Auther: zhangyong
* @Date: 2021-03-22
*/
@Data
public class CategoryDictFormDTO implements Serializable {
private static final long serialVersionUID = 1L;
// public interface ExtractDailyForm extends CustomerClientShowGroup {}
/**
* 客户内自己的分类编码
*/
// @NotBlank(message = "客户分类编码不能为空", groups = { ExtractDailyForm.class })
private String categoryCode;
/**
* 客户内自己的分类名称
*/
// @NotBlank(message = "客户分类名称不能为空", groups = { ExtractDailyForm.class })
private String categoryName;
/**
* 父类分类编码如果是一级分类此列赋值为0
*/
// @NotBlank(message = "父类分类编码不能为空", groups = { ExtractDailyForm.class })
private String parentCategoryCode;
/**
* 分类等级12....
*/
// @NotBlank(message = "分类等级不能为空", groups = { ExtractDailyForm.class })
private Integer level;
/**
* 排序
*/
// @NotBlank(message = "排序不能为空", groups = { ExtractDailyForm.class })
private Integer sort;
/**
* 当前分类对应产品内的分类编码如果对应不上此列传空
*/
private String epmetCategoryCode;
/**
* 原始创建时间yyyy-MM-dd HH:mm:ss
*/
private String originCreatedTime;
/**
* 原始更新时间yyyy-MM-dd HH:mm:ss
*/
private String orginUpdatedTime;
/**
* 分类字典表主键
*/
// @NotBlank(message = "分类字典表主键不能为空", groups = { ExtractDailyForm.class })
private String categoryId;
}

25
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/ScreenProjectDataCollController.java

@ -3,16 +3,15 @@ package com.epmet.controller;
import com.epmet.commons.tools.utils.Result;
import com.epmet.commons.tools.validator.ValidatorUtils;
import com.epmet.dto.screen.*;
import com.epmet.dto.screen.form.CategoryDictFormDTO;
import com.epmet.dto.screen.form.ScreenProjectDataInfoFormDTO;
import com.epmet.dto.screen.form.ScreenProjectProcessFormDTO;
import com.epmet.dto.screencoll.ScreenCollFormDTO;
import com.epmet.service.evaluationindex.screen.*;
import com.epmet.service.stats.CustomerProjectCategoryDictService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestHeader;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
/**
* @Description 事件/项目采集接口入口
@ -41,7 +40,8 @@ public class ScreenProjectDataCollController {
private ScreenProjectDataService projectDataService;
@Autowired
private ScreenProjectProcessService projectProcessService;
@Autowired
private CustomerProjectCategoryDictService customerProjectCategoryDictService;
/**
* @author wangc
* @description 事件/项目分析网格内月度数量统计
@ -152,4 +152,19 @@ public class ScreenProjectDataCollController {
return new Result();
}
/**
* 项目分类字典上报
* 目标表epmet_evaluation_index库的customer_project_category_dict
*
* @param customerId
* @param formDTO
* @return com.epmet.commons.tools.utils.Result
* @Author zhangyong
* @Date 16:03 2021-03-22
**/
@PostMapping("uploadcategorydict")
public Result uploadcategorydict(@RequestHeader("CustomerId") String customerId, @RequestBody CategoryDictDataFormDTO formDTO) {
customerProjectCategoryDictService.uploadCategoryDict(customerId, formDTO);
return new Result();
}
}

26
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/stats/CustomerProjectCategoryDictDao.java

@ -18,10 +18,13 @@
package com.epmet.dao.stats;
import com.epmet.commons.mybatis.dao.BaseDao;
import com.epmet.dto.screen.form.CategoryDictFormDTO;
import com.epmet.entity.stats.CustomerProjectCategoryDictEntity;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 客户项目分类字典表
*
@ -36,4 +39,25 @@ public interface CustomerProjectCategoryDictDao extends BaseDao<CustomerProjectC
CustomerProjectCategoryDictEntity getLatestUpdatedEntity();
CustomerProjectCategoryDictEntity selectByCustomerIdAndId(@Param("customerId") String customerId, @Param("categoryId") String categoryId);
}
/**
* 当isFirst=true时直接根据 customerId 删除原有数据再批量insert
*
* @param customerId
* @return java.lang.Integer
* @Author zhangyong
* @Date 16:12 2021-03-22
**/
Integer deleteCustomerProjectCategoryDict(@Param("customerId") String customerId);
/**
* 批量insert
*
* @param list
* @param customerId
* @return void
* @Author zhangyong
* @Date 16:13 2021-03-22
**/
void batchInsertCustomerProjectCategoryDict(@Param("list") List<CategoryDictFormDTO> list, @Param("customerId")String customerId);
}

15
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/CustomerProjectCategoryDictService.java

@ -18,6 +18,7 @@
package com.epmet.service.stats;
import com.epmet.commons.mybatis.service.BaseService;
import com.epmet.dto.screen.CategoryDictDataFormDTO;
import com.epmet.entity.issue.IssueProjectCategoryDictEntity;
import com.epmet.entity.stats.CustomerProjectCategoryDictEntity;
@ -42,4 +43,16 @@ public interface CustomerProjectCategoryDictService extends BaseService<Customer
CustomerProjectCategoryDictEntity getLatestProjectCategory();
CustomerProjectCategoryDictEntity getLatestUpdatedEntity();
}
/**
* 项目分类字典上报
* 目标表epmet_evaluation_index库的customer_project_category_dict
*
* @param customerId
* @param formDTO
* @return void
* @Author zhangyong
* @Date 16:03 2021-03-22
**/
void uploadCategoryDict(String customerId, CategoryDictDataFormDTO formDTO);
}

19
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/CustomerProjectCategoryDictServiceImpl.java

@ -19,14 +19,17 @@ package com.epmet.service.stats.impl;
import com.epmet.commons.dynamic.datasource.annotation.DataSource;
import com.epmet.commons.mybatis.service.impl.BaseServiceImpl;
import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.constant.DataSourceConstant;
import com.epmet.dao.stats.CustomerProjectCategoryDictDao;
import com.epmet.dto.screen.CategoryDictDataFormDTO;
import com.epmet.entity.issue.IssueProjectCategoryDictEntity;
import com.epmet.entity.stats.CustomerProjectCategoryDictEntity;
import com.epmet.service.stats.CustomerProjectCategoryDictService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.apache.commons.collections4.CollectionUtils;
import java.util.List;
@ -94,4 +97,18 @@ public class CustomerProjectCategoryDictServiceImpl extends BaseServiceImpl<Cust
return baseDao.getLatestUpdatedEntity();
}
}
@DataSource(value = DataSourceConstant.EVALUATION_INDEX)
@Override
@Transactional(rollbackFor = Exception.class)
public void uploadCategoryDict(String customerId, CategoryDictDataFormDTO formDTO) {
if (formDTO.getIsFirst()) {
int deleteNum;
do {
deleteNum = baseDao.deleteCustomerProjectCategoryDict(customerId);
} while (deleteNum > NumConstant.ZERO);
}
if (!CollectionUtils.isEmpty(formDTO.getDataList())) {
baseDao.batchInsertCustomerProjectCategoryDict(formDTO.getDataList(), customerId);
}
}
}

56
epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/stats/CustomerProjectCategoryDictDao.xml

@ -38,4 +38,58 @@
and m.customer_id=#{customerId}
and m.CATEGORY_ID=#{categoryId}
</select>
</mapper>
<delete id="deleteCustomerProjectCategoryDict">
delete from customer_project_category_dict
where CUSTOMER_ID = #{customerId}
limit 1000;
</delete>
<insert id="batchInsertCustomerProjectCategoryDict" parameterType="map">
insert into customer_project_category_dict
(
ID,
CUSTOMER_ID,
CUSTOMER_TYPE,
CATEGORY_CODE,
CATEGORY_NAME,
PARENT_CATEGORY_CODE,
`LEVEL`,
SORT,
IS_DISABLE,
EPMET_CATEGORY_CODE,
ORIGIN_CREATED_TIME,
ORIGIN_UPDATED_TIME,
CATEGORY_ID,
DEL_FLAG,
REVISION,
CREATED_BY,
CREATED_TIME,
UPDATED_BY,
UPDATED_TIME
) values
<foreach collection="list" item="item" index="index" separator=",">
(
(SELECT REPLACE(UUID(), '-', '') AS id),
#{customerId},
'external',
#{item.categoryCode},
#{item.categoryName},
#{item.parentCategoryCode},
#{item.level},
#{item.sort},
'enable',
#{item.epmetCategoryCode},
#{item.originCreatedTime},
#{item.orginUpdatedTime},
#{item.categoryId},
0,
0,
'APP_USER',
now(),
'APP_USER',
now()
)
</foreach>
</insert>
</mapper>

Loading…
Cancel
Save