Commit 216f8573 by 徐高华

Merge branch 'feature/xgh/20241月迭代' into 'master'

Feature/xgh/20241月迭代

See merge request !1656
parents ac71daaa 5bc5d914
......@@ -39,6 +39,17 @@ public class ExternalUserDTO implements Serializable{
private Integer addWay ;
// 是否刷新好友
private boolean isFlush = false ;
public boolean isFlush() {
return isFlush;
}
public void setFlush(boolean flush) {
isFlush = flush;
}
public Integer getAddWay() {
return addWay;
}
......
......@@ -50,6 +50,16 @@ public class MemberUnionidRelatedDTO implements Serializable{
private Integer addWay ;
private boolean isFlush = false ;
public boolean isFlush() {
return isFlush;
}
public void setFlush(boolean flush) {
isFlush = flush;
}
public Integer getAddWay() {
return addWay;
}
......
......@@ -69,6 +69,26 @@ public class StaffListDTO implements Serializable {
*/
private String endTime;
private String staffId ;
private String loginEnterpriseId ;
public String getLoginEnterpriseId() {
return loginEnterpriseId;
}
public void setLoginEnterpriseId(String loginEnterpriseId) {
this.loginEnterpriseId = loginEnterpriseId;
}
public String getStaffId() {
return staffId;
}
public void setStaffId(String staffId) {
this.staffId = staffId;
}
public String getStartTime() {
return startTime;
}
......
......@@ -32,7 +32,7 @@ public interface AuditApiService {
Page<AuditDTO> listByStaffId(String staffId,Integer auditType,Integer auditStatus,String enterpriseId, BasePageInfo pageInfo);
Page<AuditDTO> pageStoreListByParams(List<String> storeIds, BasePageInfo pageInfo,
Integer auditType, Integer auditStatus,String wxEnterpriseId,String enterpriseId);
Integer auditType, Integer auditStatus,String wxEnterpriseId,String enterpriseId,String clerkId);
AuditDTO findById(String auditId);
......
......@@ -212,4 +212,11 @@ public interface StaffClerkRelationApiService {
*/
List<StaffClerkRelationDTO> listManageBindByStaffId(String staffId);
/**
* 查询离职成员的关联的导购记录
* @param staffIdList
* @return
*/
List<String> getTakeoverClerkIdList(List<String> staffIdList) ;
}
......@@ -36,7 +36,7 @@ public interface TabHaobanAuditMapper {
@Param("auditType") Integer auditType,
@Param("auditStatus") Integer auditStatus,
@Param("wxEnterpriseId") String wxEnterpriseId,
@Param("enterpriseId") String enterpriseId);
@Param("enterpriseId") String enterpriseId , @Param("clerkType")int clerkType);
TabHaobanAudit findByBindRelatedIdAndAuditType(@Param("relatedId") String relatedId,
@Param("auditType") int auditType,
......@@ -51,5 +51,5 @@ public interface TabHaobanAuditMapper {
int getAuditCount(@Param("wxEnterpriseId") String wxEnterpriseId,
@Param("enterpriseId") String enterpriseId,
@Param("relatedId") String relatedId,
@Param("storeIds") List<String> storeIds);
@Param("storeIds") List<String> storeIds, @Param("clerkType")int clerkType);
}
\ No newline at end of file
......@@ -5,6 +5,7 @@ import com.gic.haoban.manage.service.entity.TabHaobanStaffClerkRelation;
import com.gic.haoban.manage.service.entity.ext.MemberStaffRelExtDO;
import org.apache.ibatis.annotations.Param;
import java.util.Date;
import java.util.List;
import java.util.Set;
......@@ -135,4 +136,12 @@ public interface TabHaobanStaffClerkRelationMapper {
List<StaffClerkRelationDTO> listByStaffIdsForClerk(@Param("wxEnterpriseId") String wxEnterpriseId, @Param("staffIdList") Set<String> staffIdList);
List<String> listAllStaffIdByEnterpriseId(@Param("enterpriseId") String enterpriseId,@Param("wxEnterpriseId") String wxEnterpriseId);
/**
* 查询成员离职是关联的导购
* @param staffId
* @param delTime
* @return
*/
List<String> taskoverClerkIdList(@Param("staffId")String staffId, @Param("delTime") Date delTime) ;
}
\ No newline at end of file
......@@ -73,6 +73,16 @@ public class StaffListBO implements Serializable {
*/
private String endTime;
private String staffId ;
public String getStaffId() {
return staffId;
}
public void setStaffId(String staffId) {
this.staffId = staffId;
}
public String getStartTime() {
return startTime;
}
......
......@@ -412,9 +412,11 @@ public class AuditApiServiceImpl implements AuditApiService {
@Override
public Page<AuditDTO> pageStoreListByParams(List<String> storeIds, BasePageInfo pageInfo, Integer auditType,
Integer auditStatus, String wxEnterpriseId, String enterpriseId) {
Integer auditStatus, String wxEnterpriseId, String enterpriseId,String clerkId) {
ClerkDTO clerkDTO = this.clerkService.getclerkById(clerkId) ;
int clerkType = clerkDTO.getClerkType() ;
PageHelper.startPage(pageInfo.getPageNum(), pageInfo.getPageSize());
return PageUtil.changePageHelperToCurrentPage(auditMapper.pageStoreListByParams(storeIds, auditType, auditStatus, wxEnterpriseId, enterpriseId), AuditDTO.class);
return PageUtil.changePageHelperToCurrentPage(auditMapper.pageStoreListByParams(storeIds, auditType, auditStatus, wxEnterpriseId, enterpriseId,clerkType), AuditDTO.class);
}
public void insertBatchLog(String batchId, int auditResult, TabHaobanAudit tab) {
......@@ -492,7 +494,7 @@ public class AuditApiServiceImpl implements AuditApiService {
clerkId = null;
}
}
return this.auditMapper.getAuditCount(wxEnterpriseId, enterpriseId, clerkId, storeIdList);
return this.auditMapper.getAuditCount(wxEnterpriseId, enterpriseId, clerkId, storeIdList,clerkType);
}
}
......@@ -802,7 +802,9 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA
exsitDTO.setExternalStatus(1);
this.externalClerkRelatedService.update(exsitDTO);
}
this.externalClerkRelatedMapper.updateExternalStatusById(exsitDTO.getExternalClerkRelatedId(),1) ;
/* if(!dto.isFlush()) {
this.externalClerkRelatedMapper.updateExternalStatusById(exsitDTO.getExternalClerkRelatedId(), 1);
}*/
return ;
}
exsitDTO.setMemberUnionidRelatedId(memberUnionidRelatedId);
......@@ -923,6 +925,7 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA
return null ;
}
if(qwDTO.isSelf()) {
this.updateExternalStatus(dto.getExternalUserid(),dto.getStaffId());
String unionIdJson = qywxUserApiService.getCorpSelfExternalUseridInfo(qwDTO.getDkCorpid(), qwDTO.getSelfSecret(), dto.getExternalUserid(),qwDTO.getUrlHost());
if (StringUtils.isBlank(unionIdJson)) {
log.info("好友不存在");
......@@ -957,6 +960,7 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA
if (SELF_APP.equals(suiteid)) {
externalUserDTO = this.getCorpSelfExternalUseridInfo(wxEnterpriseId, wxUserId, externalUserid);
} else {
this.updateExternalStatus(externalUserid,dto.getStaffId());
externalUserDTO = this.getExternalUseridInfo(wxEnterpriseId, wxUserId, externalUserid);
}
checkQywxSettingApiService.saveFriendCallback(wxEnterpriseId, externalUserDTO, dto);
......@@ -1475,6 +1479,7 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA
unionDTO.setExternalUserid(dto.getExternalUserId());
unionDTO.setSelfExternalUserid(dto.getSelfExternalUserId());
unionDTO.setMemberUnionidRelatedId(memberUnionidRelatedId);
unionDTO.setFlush(dto.isFlush());
int statusFlag = 1 ;
if(StringUtils.isBlank(memberId)) {
statusFlag = 3 ;
......@@ -1883,6 +1888,7 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA
externalUserDTO.setStoreId(storeId);
externalUserDTO.setClerkId(clerkId);
externalUserDTO.setStaffId(staffId);
externalUserDTO.setFlush(true); ;
boolean addByWelcome = this.wxEnterpriseRelatedService.getAddByWelcomeFlag(wxEnterpriseRelated,externalUserDTO.getUnionId(),false) ;
if (addByWelcome) {
......@@ -1927,4 +1933,15 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA
}
return memberId ;
}
private void updateExternalStatus(String externalUserId , String staffId) {
List<TabHaobanExternalClerkRelated> tabHaobanExternalClerkRelatedList = externalClerkRelatedService.listByExternalUseridAndWxUserId(externalUserId, staffId);
if (CollectionUtils.isEmpty(tabHaobanExternalClerkRelatedList)) {
log.error("无好友记录");
return;
}
log.info("收到通知,直接更新单向标识");
TabHaobanExternalClerkRelated related = tabHaobanExternalClerkRelatedList.get(0);
this.externalClerkRelatedMapper.updateExternalStatusById(related.getExternalClerkRelatedId(),1) ;
}
}
......@@ -212,6 +212,16 @@ public class StaffApiServiceImpl implements StaffApiService {
//解决空指针异常问题
Map<String, String> map = list.stream().collect(HashMap::new,(k, v) -> k.put(v.getEnterpriseId(), v.getEnterpriseName()), HashMap::putAll);
List<StaffClerkRelationDTO> relationDTOList = staffClerkRelationService.listByWxEnterpriseIdAndStaffId(wxEnterpriseId, staffIdList);
String loginEnterpriseId = staffListDTO.getLoginEnterpriseId() ;
Map<String,ClerkDTO> clerkMap = new HashMap<>() ;
if(CollectionUtils.isNotEmpty(relationDTOList)) {
Set<String> clerkIdSet = relationDTOList.stream().filter(o->o.getEnterpriseId().equals(loginEnterpriseId)).map(o->o.getClerkId()).collect(Collectors.toSet()) ;
if(CollectionUtils.isNotEmpty(clerkIdSet)) {
List<ClerkDTO> clerkDTOS = this.clerkService.getClerkByIds(clerkIdSet);
clerkMap.putAll(clerkDTOS.stream().collect(Collectors.toMap(o -> o.getClerkId(), o -> o, (k1, k2) -> k1)));
}
}
logger.info("导购={}",JSONObject.toJSONString(clerkMap));
staffDTOList.forEach(one -> {
if(relationIdList.contains(one.getStaffId())){
one.setRelationFlag(1);
......@@ -220,6 +230,14 @@ public class StaffApiServiceImpl implements StaffApiService {
for (StaffClerkRelationDTO dto : relationDTOList){
if (dto.getStaffId().equals(one.getStaffId())){
enterpriseNameList.add(map.get(dto.getEnterpriseId()));
if(null != clerkMap.get(dto.getClerkId())) {
String c = one.getClerkCode() ;
if(StringUtils.isBlank(c)) {
one.setClerkCode(clerkMap.get(dto.getClerkId()).getClerkCode());
}else {
one.setClerkCode(c+"、"+clerkMap.get(dto.getClerkId()).getClerkCode());
}
}
}
}
if (CollUtil.isNotEmpty(enterpriseNameList)){
......
......@@ -7,6 +7,7 @@ import com.gic.api.base.commons.Page;
import com.gic.api.base.commons.ServiceResponse;
import com.gic.clerk.api.dto.ClerkDTO;
import com.gic.clerk.api.service.ClerkService;
import com.gic.commons.util.DateUtil;
import com.gic.commons.util.EntityUtil;
import com.gic.commons.util.GICMQClientUtil;
import com.gic.enterprise.api.dto.EnterpriseDTO;
......@@ -16,11 +17,13 @@ import com.gic.enterprise.api.service.StoreService;
import com.gic.haoban.base.api.common.BasePageInfo;
import com.gic.haoban.manage.api.dto.*;
import com.gic.haoban.manage.api.dto.qdto.ClerkSyncQDTO;
import com.gic.haoban.manage.api.dto.qdto.hm.HmQrcodeQDTO;
import com.gic.haoban.manage.api.enums.AuditType;
import com.gic.haoban.manage.api.enums.BindTypeEnum;
import com.gic.haoban.manage.api.enums.ChannelCodeEnum;
import com.gic.haoban.manage.api.service.AuditApiService;
import com.gic.haoban.manage.api.service.StaffClerkRelationApiService;
import com.gic.haoban.manage.api.service.hm.HmQrcodeApiService;
import com.gic.haoban.manage.service.config.Config;
import com.gic.haoban.manage.service.dao.mapper.StaffMapper;
import com.gic.haoban.manage.service.dao.mapper.TabHaobanStaffClerkRelationMapper;
......@@ -79,6 +82,8 @@ public class StaffClerkRelationApiServiceImpl implements StaffClerkRelationApiSe
private StoreRangeService storeRangeService;
@Autowired
private StaffMapper staffMapper ;
@Autowired
private HmQrcodeApiService hmQrcodeApiService;
@Override
public void bindLogMq(String params) {
......@@ -582,6 +587,18 @@ public class StaffClerkRelationApiServiceImpl implements StaffClerkRelationApiSe
List<StaffClerkRelationDTO> relationList = this.listByStaffId(oldRelationDTO.getWxEnterpriseId(), oldRelationDTO.getStaffId()) ;
List<String> storeIdList = relationList.stream().map(o->o.getStoreId()).collect(Collectors.toList()) ;
this.clerkMainStoreRelatedService.getMainStoreByStaffId(oldRelationDTO.getStaffId(), oldRelationDTO.getWxEnterpriseId(), storeIdList) ;
// 新增活码
HmQrcodeQDTO hmQrcodeQDTO = new HmQrcodeQDTO();
hmQrcodeQDTO.setHmType(1);
hmQrcodeQDTO.setWxEnterpriseId(oldRelationDTO.getWxEnterpriseId());
hmQrcodeQDTO.setEnterpriseId(oldRelationDTO.getEnterpriseId());
TabHaobanStaff staff = this.staffMapper.selectByPrimaryKey(oldRelationDTO.getStaffId()) ;
hmQrcodeQDTO.setName(staff.getStaffName());
hmQrcodeQDTO.setPassFlag(1);
hmQrcodeQDTO.setStoreId(clerkSyncQDTO.getStoreId());
hmQrcodeQDTO.setClerkIdList(Collections.singletonList(clerkSyncQDTO.getClerkId()));
this.hmQrcodeApiService.add(hmQrcodeQDTO);
}
/*} else {
String oldClerkId = oldRelationDTO.getClerkId();
......@@ -608,4 +625,23 @@ public class StaffClerkRelationApiServiceImpl implements StaffClerkRelationApiSe
public List<StaffClerkRelationDTO> listManageBindByStaffId(String staffId) {
return staffClerkRelationService.listManageBindByStaffId(staffId);
}
@Override
public List<String> getTakeoverClerkIdList(List<String> staffIdList) {
List<String> takeoverClerkIdList = new ArrayList<>() ;
if(CollectionUtils.isNotEmpty(staffIdList)) {
for(int i=0;i<staffIdList.size();i++) {
String staffId = staffIdList.get(i) ;
TabHaobanStaff staff = this.staffMapper.selectByPrimaryKeyNoStatus(staffId) ;
if(null != staff && null!= staff.getDelTime()) {
Date delTime = DateUtil.addNumForMinute(staff.getDelTime(),-5);
List<String> clerkIdList = this.tabHaobanStaffClerkRelationMapper.taskoverClerkIdList(staffId,delTime) ;
if(CollectionUtils.isNotEmpty(clerkIdList)) {
takeoverClerkIdList.addAll(clerkIdList);
}
}
}
}
return takeoverClerkIdList;
}
}
......@@ -308,6 +308,9 @@
left join tab_haoban_staff_department_related b on a.staff_id = b.staff_id and b.status_flag = 1
</if>
where a.wx_enterprise_id = #{wxEnterpriseId}
<if test="null != staffId">
and a.staff_id = #{staffId}
</if>
<if test="occupy == null or 1!=occupy">
and a.status_flag = 1
</if>
......
......@@ -210,9 +210,11 @@
from tab_haoban_audit
where
status_flag = 1
<if test="clerkType==1">
<if test="auditType == null || auditType == -1">
and audit_type in (2,3,4,5)
</if>
</if>
<if test="auditType != null and auditType != -1">
and audit_type = #{auditType}
</if>
......@@ -280,6 +282,9 @@
<if test="relatedId != null and relatedId != ''">
and related_Id = #{relatedId}
</if>
<if test="clerkType == 1">
and audit_type in (2,3,4,5)
</if>
</select>
</mapper>
\ No newline at end of file
......@@ -442,7 +442,8 @@
<select id="listByWxEnterpriseIdAndStaffId" resultType="com.gic.haoban.manage.api.dto.StaffClerkRelationDTO">
select
staff_id staffId,
enterprise_id enterpriseId
enterprise_id enterpriseId ,
clerk_id clerkId
from tab_haoban_staff_clerk_relation
WHERE
wx_enterprise_id = #{wxEnterpriseId}
......@@ -482,4 +483,8 @@
order by a.update_time desc limit 1
</select>
<select id="taskoverClerkIdList" resultType="java.lang.String" parameterType="java.lang.String">
select clerk_id from tab_haoban_staff_clerk_relation where staff_id =#{staffId} and status_flag = 0 and update_time >= #{delTime}
</select>
</mapper>
\ No newline at end of file
......@@ -135,6 +135,13 @@ public class StaffController extends WebBaseController {
}
//员工
StaffListDTO dto = EntityUtil.changeEntityByJSON(StaffListDTO.class, qo);
if(StringUtils.isNotBlank(qo.getClerkId())) {
StaffClerkRelationDTO clerkRelationDTO = this.staffClerkRelationApiService.getByClerkId(qo.getClerkId()) ;
if(null == clerkRelationDTO) {
return resultResponse(HaoBanErrCode.ERR_1, PageUtil.getPageInfo(new Page<>()));
}
dto.setStaffId(clerkRelationDTO.getStaffId());
}
dto.setWxEnterpriseId(wxEnterpriseId);
dto.setDepartmentIds(departmentIds);
if (qo.getGetAllFlag() == 1){
......@@ -144,6 +151,7 @@ public class StaffController extends WebBaseController {
basePageInfo.setPageSize(Integer.MAX_VALUE);
dto.setPageInfo(basePageInfo);
}
dto.setLoginEnterpriseId(login.getEnterpriseId());
Page<StaffDTO> page = staffApiService.pageStaff(dto);
logger.info("pages={},totalPage={}", page.getCurrentPage(), page.getTotalPage());
......@@ -485,7 +493,7 @@ public class StaffController extends WebBaseController {
@RequestMapping("staff-export")
public HaobanResponse staffExport(HttpServletRequest request, HttpServletResponse response,String departmentId, Integer activeFlag, Integer relationFlag,
String keyWord, String permitState,BasePageInfo pageInfo,@RequestParam(defaultValue = "create_time") String sortField,
@RequestParam(defaultValue = "desc") String sortType,String enterpriseIdParam,String startTime,String endTime) {
@RequestParam(defaultValue = "desc") String sortType,String enterpriseIdParam,String startTime,String endTime ,String clerkId) {
WebLoginDTO login = AuthWebRequestUtil.getLoginUser();
String wxEnterpriseId = login.getWxEnterpriseId();
if(StringUtils.isBlank(departmentId)){
......@@ -512,6 +520,13 @@ public class StaffController extends WebBaseController {
dto.setEnterpriseIdParam(enterpriseIdParam);
dto.setStartTime(startTime);
dto.setEndTime(endTime);
if(StringUtils.isNotBlank(clerkId)) {
StaffClerkRelationDTO clerkRelationDTO = this.staffClerkRelationApiService.getByClerkId(clerkId) ;
if(null == clerkRelationDTO) {
return resultResponse(HaoBanErrCode.ERR_1, PageUtil.getPageInfo(new Page<>()));
}
dto.setStaffId(clerkRelationDTO.getStaffId());
}
pageInfo.setPageSize(Integer.MAX_VALUE);
int pageNum = 1;
while (true) {
......@@ -623,7 +638,7 @@ public class StaffController extends WebBaseController {
for (StaffClerkRelationDTO staffClerkRelationDTO : relationList) {
ClerkDTO clerk = clerkMap.get(staffClerkRelationDTO.getClerkId());
if (clerk != null) {
clerkName.append(clerk.getClerkName()).append(",");
clerkName.append(clerk.getClerkName()).append("(").append(clerk.getClerkCode()).append(")").append(",");
}
}
if (StringUtils.isNoneBlank(clerkName.toString())) {
......
......@@ -63,6 +63,16 @@ public class StaffListQO implements Serializable {
*/
private Integer getAllFlag = 0;
private String clerkId ;
public String getClerkId() {
return clerkId;
}
public void setClerkId(String clerkId) {
this.clerkId = clerkId;
}
public Integer getGetAllFlag() {
return getAllFlag;
}
......
......@@ -145,7 +145,7 @@ public class AuditController extends WebBaseController {
if (storeIds.contains("-1")) {
storeIds = null;
}
Page<AuditDTO> page = auditApiService.pageStoreListByParams(storeIds, pageInfo, auditType, auditStatus, wxEnterpriseId, enterpriseId);
Page<AuditDTO> page = auditApiService.pageStoreListByParams(storeIds, pageInfo, auditType, auditStatus, wxEnterpriseId, enterpriseId,clerkId);
List<AuditDTO> list = page.getResult();
List<AuditVO> voList = new ArrayList<AuditVO>();
for (AuditDTO auditDTO : list) {
......
......@@ -751,7 +751,7 @@ public class WxStaffController extends WebBaseController {
}
List<EnterpriseDetailDTO> list = wxEnterpriseRelatedApiService.listEnterpriseByWxEnterpriseId(wxEnterpriseId);
if (list == null || list.isEmpty()) {
return resultResponse(HaoBanErrCode.ERR_1);
return resultResponse(HaoBanErrCode.ERR_0, "未关联gic商户");
}
List<String> enterpriseIdList = list.stream().filter(s -> {
boolean over = wxEnterpriseApiService.haobanIsStop(s.getEnterpriseId());
......@@ -762,6 +762,9 @@ public class WxStaffController extends WebBaseController {
return resultResponse(HaoBanErrCode.ERR_1, new ArrayList<>());
}
logger.info("查询到企微门店数={},{}", storeIds.size(), storeIds);
if(CollectionUtils.isEmpty(enterpriseIdList)) {
return resultResponse(HaoBanErrCode.ERR_0, "关联gic商户已过期");
}
List<ClerkDTO> clerkList = new ArrayList<>();
if (manageFlag == -1) {
clerkList.addAll(clerkService.listClerkEnableHaoban(enterpriseIdList, keyword));
......@@ -1603,7 +1606,7 @@ public class WxStaffController extends WebBaseController {
logger.info("没有关联任何商户或商户都已停用:{}", wxEnterpriseId);
return RestResponse.successResult();
}
logger.info("关联的商户={}",enterpriseIdList);
Map<String, EnterpriseDetailDTO> enterpriseTypeMap = enterpriseList.stream()
.collect(Collectors.toMap(dto -> dto.getEnterpriseId(), dto -> dto));
bindRelationList = staffClerkRelationApiService.listBindCodeByStaffId(enterpriseIdList, staffId);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment