Browse Source

网格员数据上报接口出版

master
sunyuchao 4 years ago
parent
commit
ad9592dd86
  1. 7
      epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/stats/form/GmUploadDataFormDTO.java
  2. 10
      epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/stats/form/GmUploadEventFormDTO.java
  3. 4
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/StatsUserController.java
  4. 8
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/screen/ScreenCustomerAgencyDao.java
  5. 45
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/stats/DataStatsDao.java
  6. 13
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/user/UserDao.java
  7. 2
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/StatsUserService.java
  8. 7
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/ScreenCustomerAgencyService.java
  9. 9
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/impl/ScreenCustomerAgencyServiceImpl.java
  10. 90
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/impl/StatsUserServiceImpl.java
  11. 13
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/user/UserService.java
  12. 19
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/user/impl/UserServiceImpl.java
  13. 18
      epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/screen/ScreenCustomerAgencyDao.xml
  14. 101
      epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/stats/DatsStatsDao.xml
  15. 71
      epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/user/UserDao.xml

7
epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/stats/form/GmUploadDataFormDTO.java

@ -3,6 +3,7 @@ package com.epmet.dto.stats.form;
import com.epmet.commons.tools.validator.group.CustomerClientShowGroup;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotEmpty;
import java.io.Serializable;
import java.math.BigDecimal;
@ -21,13 +22,15 @@ public class GmUploadDataFormDTO implements Serializable {
*/
private Boolean isFirst;
//客户Id
@NotBlank(message = "客户Id不能为空", groups = {UploadData.class})
private String customerId;
//日维度Id
@NotBlank(message = "dateId不能为空", groups = {UploadData.class})
private String dateId;
//数据集合对象
@NotEmpty(message = "数据集合对象不能为空",groups = AgencyProjectForm.class)
@NotEmpty(message = "数据集合对象不能为空",groups = UploadData.class)
private List<DataList> dataList;
public interface AgencyProjectForm extends CustomerClientShowGroup {}
public interface UploadData extends CustomerClientShowGroup {}
@Data
public static class DataList{

10
epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/stats/form/GmUploadEventFormDTO.java

@ -3,9 +3,9 @@ package com.epmet.dto.stats.form;
import com.epmet.commons.tools.validator.group.CustomerClientShowGroup;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotEmpty;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
@ -19,13 +19,15 @@ public class GmUploadEventFormDTO implements Serializable {
//为true时需要删除历史数据
private Boolean isFirst;
//客户Id
@NotBlank(message = "客户Id不能为空", groups = {UploadEvent.class})
private String customerId;
//日维度Id
@NotBlank(message = "dateId不能为空", groups = {UploadEvent.class})
private String dateId;
//数据集合对象
@NotEmpty(message = "数据集合对象不能为空",groups = AgencyProjectForm.class)
@NotEmpty(message = "数据集合对象不能为空",groups = UploadEvent.class)
private List<DataList> dataList;
public interface AgencyProjectForm extends CustomerClientShowGroup {}
public interface UploadEvent extends CustomerClientShowGroup {}
@Data
public static class DataList{
@ -56,7 +58,7 @@ public class GmUploadEventFormDTO implements Serializable {
//事件数【立项项目数】
private Integer reportProjectCount = 0;
//最新的巡查开始时间
private String latestPatrolTime;
private Date latestPatrolTime;
//最新的巡查状态 正在巡查中:patrolling;结束:end
private String latestPatrolStatus = "end";

4
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/StatsUserController.java

@ -44,17 +44,19 @@ public class StatsUserController {
*/
@PostMapping("gm-uploadevent")
public Result gmUploadEvent(@RequestBody GmUploadEventFormDTO formDTO) {
ValidatorUtils.validateEntity(formDTO, GmUploadEventFormDTO.UploadEvent.class);
statsUserService.gmUploadEvent(formDTO);
return new Result();
}
/**
* @Param formDTO
* @Description 数据上报--网格员事件总数上报
* @Description 数据上报--网格员数据分析上报
* @author sun
*/
@PostMapping("gm-uploaddata")
public Result gmUploadData(@RequestBody GmUploadDataFormDTO formDTO) {
ValidatorUtils.validateEntity(formDTO, GmUploadDataFormDTO.UploadData.class);
statsUserService.gmUploadData(formDTO);
return new Result();
}

8
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/screen/ScreenCustomerAgencyDao.java

@ -18,6 +18,7 @@
package com.epmet.dao.evaluationindex.screen;
import com.epmet.commons.mybatis.dao.BaseDao;
import com.epmet.dto.CustomerAgencyDTO;
import com.epmet.dto.extract.form.PartyBaseInfoFormDTO;
import com.epmet.dto.extract.form.ScreenPartyBranchDataFormDTO;
import com.epmet.dto.extract.form.ScreenPartyLinkMassesDataFormDTO;
@ -236,4 +237,11 @@ public interface ScreenCustomerAgencyDao extends BaseDao<ScreenCustomerAgencyEnt
List<ScreenCustomerAgencyEntity> selectByPid(@Param("customerId") String customerId, @Param("parentAgencyId")String parentAgencyId);
List<ScreenCustomerAgencyEntity> selectKcCommunity(String customerId);
/**
* @Description 查询客户index库组织信息供数据封装使用
* @author sun
*/
List<CustomerAgencyDTO> selectByCustomerId(@Param("customerId") String customerId);
}

45
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/stats/DataStatsDao.java

@ -0,0 +1,45 @@
/**
* Copyright 2018 人人开源 https://www.renren.io
* <p>
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* <p>
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.epmet.dao.stats;
import com.epmet.dto.stats.form.GmUploadDataFormDTO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* @Author sun
* @Description 数据统计服务
*/
@Mapper
public interface DataStatsDao {
/**
* @Description 数据上报--网格员数据分析上报--按客户Id和dateId删除历史数据
* @author sun
*/
int delGmUploadData(String customerId, String dateId);
/**
* @Description 数据上报--网格员数据分析上报--批量新增或修改数据
* @author sun
*/
int saveOrUpGmUploadData(@Param("list") List<GmUploadDataFormDTO.DataList> list);
}

13
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/user/UserDao.java

@ -3,6 +3,7 @@ package com.epmet.dao.user;
import com.epmet.dto.extract.form.GridHeartedFormDTO;
import com.epmet.dto.extract.result.UserPartyResultDTO;
import com.epmet.dto.screen.ScreenProjectDataDTO;
import com.epmet.dto.stats.form.GmUploadEventFormDTO;
import com.epmet.dto.user.result.CommonTotalAndIncCountResultDTO;
import com.epmet.entity.evaluationindex.screen.ScreenPartyUserRankDataEntity;
import org.apache.ibatis.annotations.Mapper;
@ -159,5 +160,17 @@ public interface UserDao {
* @date 2021/6/8 5:21 下午
*/
List<ScreenProjectDataDTO> selectStaffInfo(@Param("list") List<String> staffUserIdList);
/**
* @Description 数据上报--网格员事件总数上报--按客户Id和dateId删除历史数据
* @author sun
*/
int delGmUploadEvent(@Param("customerId") String customerId, @Param("dateId") String dateId);
/**
* @Description 数据上报--网格员事件总数上报--批量新增或修改数据
* @author sun
*/
int saveOrUpGmUploadEvent(@Param("list") List<GmUploadEventFormDTO.DataList> list);
}

2
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/StatsUserService.java

@ -29,7 +29,7 @@ public interface StatsUserService {
/**
* @Param formDTO
* @Description 数据上报--网格员事件总数上报
* @Description 数据上报--网格员数据分析上报
* @author sun
*/
void gmUploadData(GmUploadDataFormDTO formDTO);

7
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/ScreenCustomerAgencyService.java

@ -17,6 +17,7 @@
package com.epmet.service.evaluationindex.screen;
import com.epmet.dto.CustomerAgencyDTO;
import com.epmet.dto.extract.form.PartyBaseInfoFormDTO;
import com.epmet.dto.extract.form.ScreenPartyBranchDataFormDTO;
import com.epmet.dto.extract.form.ScreenPartyLinkMassesDataFormDTO;
@ -131,4 +132,10 @@ public interface ScreenCustomerAgencyService{
*/
List<ScreenCustomerAgencyEntity> selectKcCommunity(String customerId);
/**
* @Description 查询客户index库组织信息供数据封装使用
* @author sun
*/
List<CustomerAgencyDTO> getByCustomerId(String customerId);
}

9
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/impl/ScreenCustomerAgencyServiceImpl.java

@ -25,6 +25,7 @@ import com.epmet.constant.OrgSourceTypeConstant;
import com.epmet.constant.ScreenConstant;
import com.epmet.dao.evaluationindex.screen.ScreenCustomerAgencyDao;
import com.epmet.dao.evaluationindex.screen.ScreenCustomerGridDao;
import com.epmet.dto.CustomerAgencyDTO;
import com.epmet.dto.extract.form.PartyBaseInfoFormDTO;
import com.epmet.dto.extract.form.ScreenPartyBranchDataFormDTO;
import com.epmet.dto.extract.form.ScreenPartyLinkMassesDataFormDTO;
@ -294,5 +295,13 @@ public class ScreenCustomerAgencyServiceImpl implements ScreenCustomerAgencyServ
return screenCustomerAgencyDao.selectKcCommunity(customerId);
}
/**
* @Description 查询客户index库组织信息供数据封装使用
* @author sun
*/
@Override
public List<CustomerAgencyDTO> getByCustomerId(String customerId) {
return screenCustomerAgencyDao.selectByCustomerId(customerId);
}
}

90
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/impl/StatsUserServiceImpl.java

@ -5,18 +5,22 @@ import com.alibaba.fastjson.JSON;
import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.utils.DateUtils;
import com.epmet.constant.ProjectConstant;
import com.epmet.dao.stats.DataStatsDao;
import com.epmet.dto.AgencySubTreeDto;
import com.epmet.dto.CustomerAgencyDTO;
import com.epmet.dto.StatsFormDTO;
import com.epmet.dto.stats.form.GmUploadDataFormDTO;
import com.epmet.dto.stats.form.GmUploadEventFormDTO;
import com.epmet.dto.stats.user.result.UserStatisticalData;
import com.epmet.service.StatsUserService;
import com.epmet.service.evaluationindex.screen.ScreenCustomerAgencyService;
import com.epmet.service.stats.DimAgencyService;
import com.epmet.service.stats.DimCustomerService;
import com.epmet.service.stats.user.UserStatisticalService;
import com.epmet.service.user.UserService;
import com.epmet.util.DimIdGenerator;
import com.epmet.util.ModuleConstant;
import org.apache.commons.collections4.ListUtils;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@ -27,6 +31,7 @@ import org.springframework.util.CollectionUtils;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
import java.util.concurrent.atomic.AtomicReference;
/**
@ -51,6 +56,11 @@ public class StatsUserServiceImpl implements StatsUserService {
@Autowired
private UserStatisticalService userStatisticalService;
@Autowired
private ScreenCustomerAgencyService screenCustomerAgencyService;
@Autowired
private DataStatsDao dataStatsDao;
/**
* @param formDTO 如果目标日期为空则自动计算为T-1天
@ -93,10 +103,10 @@ public class StatsUserServiceImpl implements StatsUserService {
}
/**
* @Description 生成用户统计数据
* @param customerId 客户Id
* @param date 目标日期
* @return
* @Description 生成用户统计数据
* @author wangc
* @date 2020.06.28 14:40
**/
@ -140,16 +150,92 @@ public class StatsUserServiceImpl implements StatsUserService {
*/
@Override
public void gmUploadEvent(GmUploadEventFormDTO formDTO) {
//1.判断是否批量删除历史数据
if (formDTO.getIsFirst()) {
int deleteNum;
do {
deleteNum = userService.delGmUploadEvent(formDTO.getCustomerId(), formDTO.getDateId());
} while (deleteNum > NumConstant.ZERO);
}
//2.查询当前客户index库组织信息供数据封装使用
List<CustomerAgencyDTO> agencyList = screenCustomerAgencyService.getByCustomerId(formDTO.getCustomerId());
//3.分批处理上传数据
List<List<GmUploadEventFormDTO.DataList>> partition = ListUtils.partition(formDTO.getDataList(), NumConstant.ONE_HUNDRED);
partition.forEach(p -> {
//4.封装数据并执行
p.forEach(m -> {
AtomicReference<Boolean> bl = new AtomicReference<>(false);
StringBuffer gridPids = new StringBuffer("");
agencyList.forEach(ag -> {
if (m.getAgencyId().equals(ag.getId())) {
bl.set(true);
gridPids.append((StringUtils.isEmpty(ag.getPids()) || "0".equals(ag.getPids()) ? ag.getId() : ag.getPids().replaceAll(",", ":") + ":" + ag.getId()));
}
});
if (bl.get()) {
m.setGridPids(gridPids.toString());
m.setPatrolTotal(NumConstant.ZERO);
m.setTotalTime(NumConstant.ZERO);
m.setLatestPatrolStatus("end");
} else {
log.warn(String.format("网格员事件总数上报,数据错误,根据agencyId未查询到组织信息,客户Id->%s,组织Id->%s", m.getCustomerId(), m.getAgencyId()));
}
});
//批量新增或修改数据
if (!CollectionUtils.isEmpty(p)) {
userService.saveOrUpGmUploadEvent(p);
}
});
}
/**
* @Param formDTO
* @Description 数据上报--网格员事件总数上报
* @Description 数据上报--网格员数据分析上报
* @author sun
*/
@Override
public void gmUploadData(GmUploadDataFormDTO formDTO) {
//1.判断是否批量删除历史数据
if (formDTO.getIsFirst()) {
int deleteNum;
do {
deleteNum = dataStatsDao.delGmUploadData(formDTO.getCustomerId(), formDTO.getDateId());
} while (deleteNum > NumConstant.ZERO);
}
//2.查询当前客户index库组织信息供数据封装使用
List<CustomerAgencyDTO> agencyList = screenCustomerAgencyService.getByCustomerId(formDTO.getCustomerId());
//3.分批处理上传数据
List<List<GmUploadDataFormDTO.DataList>> partition = ListUtils.partition(formDTO.getDataList(), NumConstant.ONE_HUNDRED);
partition.forEach(p -> {
//4.封装数据并执行
p.forEach(m -> {
AtomicReference<Boolean> bl = new AtomicReference<>(false);
StringBuffer pid = new StringBuffer("");
StringBuffer pids = new StringBuffer("");
agencyList.forEach(ag -> {
if (m.getAgencyId().equals(ag.getId())) {
bl.set(true);
pid.append(ag.getPid());
pids.append((StringUtils.isEmpty(ag.getPids()) || "0".equals(ag.getPids()) ? ag.getId() : ag.getPids().replaceAll(",", ":") + ":" + ag.getId()));
}
});
if (bl.get()) {
m.setPid(pid.toString());
m.setPids(pids.toString());
} else {
log.warn(String.format("网格员数据分析上报,数据错误,根据agencyId未查询到组织信息,客户Id->%s,组织Id->%s", m.getCustomerId(), m.getAgencyId()));
}
});
//批量新增或修改数据
if (!CollectionUtils.isEmpty(p)) {
dataStatsDao.saveOrUpGmUploadData(p);
}
});
}

13
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/user/UserService.java

@ -4,6 +4,7 @@ import com.epmet.dto.AgencySubTreeDto;
import com.epmet.dto.extract.form.GridHeartedFormDTO;
import com.epmet.dto.org.result.OrgStaffDTO;
import com.epmet.dto.screen.ScreenProjectDataDTO;
import com.epmet.dto.stats.form.GmUploadEventFormDTO;
import com.epmet.dto.stats.user.result.UserStatisticalData;
import com.epmet.entity.evaluationindex.screen.ScreenPartyUserRankDataEntity;
import com.epmet.util.DimIdGenerator;
@ -94,4 +95,16 @@ public interface UserService {
* @return com.epmet.dto.user.OrgGridManagerTotalDTO
*/
Map<String,Integer> queryOrgGridManager(String customerId,List<OrgStaffDTO> orgStaffDTOList);
/**
* @Description 数据上报--网格员事件总数上报--按客户Id和dateId删除历史数据
* @author sun
*/
int delGmUploadEvent(String customerId, String dateId);
/**
* @Description 数据上报--网格员事件总数上报--批量新增或修改数据
* @author sun
*/
void saveOrUpGmUploadEvent(List<GmUploadEventFormDTO.DataList> list);
}

19
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/user/impl/UserServiceImpl.java

@ -12,6 +12,7 @@ import com.epmet.dto.extract.form.GridHeartedFormDTO;
import com.epmet.dto.extract.result.UserPartyResultDTO;
import com.epmet.dto.org.result.OrgStaffDTO;
import com.epmet.dto.screen.ScreenProjectDataDTO;
import com.epmet.dto.stats.form.GmUploadEventFormDTO;
import com.epmet.dto.stats.user.*;
import com.epmet.dto.stats.user.result.UserStatisticalData;
import com.epmet.dto.user.result.CommonTotalAndIncCountResultDTO;
@ -797,4 +798,22 @@ public class UserServiceImpl implements UserService {
return resultMap;
}
/**
* @Description 数据上报--网格员事件总数上报--按客户Id和dateId删除历史数据
* @author sun
*/
@Override
public int delGmUploadEvent(String customerId, String dateId) {
return userDao.delGmUploadEvent(customerId, dateId);
}
/**
* @Description 数据上报--网格员事件总数上报--批量新增或修改数据
* @author sun
*/
@Override
public void saveOrUpGmUploadEvent(List<GmUploadEventFormDTO.DataList> list) {
userDao.saveOrUpGmUploadEvent(list);
}
}

18
epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/screen/ScreenCustomerAgencyDao.xml

@ -485,4 +485,22 @@
AND CUSTOMER_ID = #{customerId}
and level='community'
</select>
<select id="selectByCustomerId" resultType="com.epmet.dto.CustomerAgencyDTO">
SELECT
customer_id,
agency_id as id,
agency_name,
pid,
pids,
all_parent_names,
level,
area_code
FROM
screen_customer_agency
WHERE
del_flag = 0
AND customer_id = #{customerId}
</select>
</mapper>

101
epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/stats/DatsStatsDao.xml

@ -0,0 +1,101 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.epmet.dao.stats.DataStatsDao">
<delete id="delGmUploadData">
DELETE
FROM
fact_grid_member_statistics_daily
WHERE
customer_id = #{customerId}
AND date_id = #{dateId}
LIMIT 1000
</delete>
<insert id="saveOrUpGmUploadData">
INSERT INTO fact_grid_member_statistics_daily
(
id,
date_id,
month_id,
year_id,
customer_id,
agency_id,
grid_id,
pid,
pids,
staff_id,
staff_name,
project_count,
issue_to_project_count,
closed_issue_count,
project_response_count,
project_transfer_count,
project_closed_count,
project_incr,
issue_to_project_incr,
closed_issue_incr,
project_response_incr,
project_transfer_incr,
project_closed_incr,
del_flag,
revision,
created_by,
created_time,
updated_by,
updated_time
)
VALUES
<foreach collection="list" item="i" separator=",">
(
REPLACE(UUID(), '-', ''),
#{i.dateId},
#{i.monthId},
#{i.yearId},
#{i.customerId},
#{i.agencyId},
#{i.gridId},
#{i.pid},
#{i.pids},
#{i.staffId},
#{i.staffName},
#{i.projectCount},
#{i.issueToProjectCount},
#{i.closedIssueCount},
#{i.projectResponseCount},
#{i.projectTransferCount},
#{i.projectClosedCount},
#{i.projectIncr},
#{i.issueToProjectIncr},
#{i.closedIssueIncr},
#{i.projectResponseIncr},
#{i.projectTransferIncr},
#{i.projectClosedIncr},
0,
0,
'BASE_REPORT',
NOW(),
'BASE_REPORT',
NOW()
)
</foreach>
ON DUPLICATE KEY
UPDATE
project_count = values(project_count),
issue_to_project_count = values(issue_to_project_count),
closed_issue_count = values(closed_issue_count),
project_response_count = values(project_response_count),
project_transfer_count = values(project_transfer_count),
project_closed_count = values(project_closed_count),
project_incr = values(project_incr),
issue_to_project_incr = values(issue_to_project_incr),
closed_issue_incr = values(closed_issue_incr),
project_response_incr = values(project_response_incr),
project_transfer_incr = values(project_transfer_incr),
project_closed_incr = values(project_closed_incr),
updated_by = 'BASE_REPORT',
updated_time = NOW()
</insert>
</mapper>

71
epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/user/UserDao.xml

@ -570,4 +570,75 @@
user_id = #{userId}
</foreach>
</select>
<delete id="delGmUploadEvent">
DELETE
FROM
stats_staff_patrol_record_daily
WHERE
customer_id = #{customerId}
AND date_id = #{dateId}
LIMIT 1000
</delete>
<insert id="saveOrUpGmUploadEvent">
INSERT INTO stats_staff_patrol_record_daily
(
id,
customer_id,
date_id,
week_id,
month_id,
quarter_id,
year_id,
grid_id,
agency_id,
grid_pids,
staff_id,
patrol_total,
total_time,
report_project_count,
latest_patrol_time,
latest_patrol_status,
del_flag,
revision,
created_by,
created_time,
updated_by,
updated_time
)
VALUES
<foreach collection="list" item="i" separator=",">
(
REPLACE(UUID(), '-', ''),
#{i.customerId},
#{i.dateId},
#{i.weekId},
#{i.monthId},
#{i.quarterId},
#{i.yearId},
#{i.gridId},
#{i.agencyId},
#{i.gridPids},
#{i.staffId},
#{i.patrolTotal},
#{i.totalTime},
#{i.reportProjectCount},
#{i.latestPatrolTime},
#{i.latestPatrolStatus},
0,
0,
'BASE_REPORT',
NOW(),
'BASE_REPORT',
NOW()
)
</foreach>
ON DUPLICATE KEY
UPDATE
report_project_count = values(report_project_count),
updated_by = 'BASE_REPORT',
updated_time = NOW()
</insert>
</mapper>

Loading…
Cancel
Save