diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/MessageEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/MessageEnum.java index 95d349c81..c5abccf20 100644 --- a/coolstore-partner-common/src/main/java/com/cool/store/enums/MessageEnum.java +++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/MessageEnum.java @@ -80,7 +80,8 @@ public enum MessageEnum { MESSAGE_52("您有一个门店建店资料的订货信息待提交,请查收","门店名称:${storeName}\n加盟商姓名:${partnerUsername}\n加盟商手机号码:${partnerMobile}\n"), MESSAGE_53("您有一个门店建店资料的总部订货收款账户信息待提交,请查收","门店名称:${storeName}\n加盟商姓名:${partnerUsername}\n加盟商手机号码:${partnerMobile}\n"), MESSAGE_54("您有一个门店建店资料待审核,请查收","门店名称:${storeName}\n加盟商姓名:${partnerUsername}\n加盟商手机号码:${partnerMobile}\n"), - + MESSAGE_55("您有一个门店设计阶段待提交,请查收","门店名称:${storeName}\n加盟商姓名:${partnerUsername}\n加盟商手机号码:${partnerMobile}\n"), + MESSAGE_56("您有一个门店测量阶段待提交,请查收","门店名称:${storeName}\n加盟商姓名:${partnerUsername}\n加盟商手机号码:${partnerMobile}\n"), ; private String title; diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/UserRoleEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/UserRoleEnum.java index c76460a63..c6def22b5 100644 --- a/coolstore-partner-common/src/main/java/com/cool/store/enums/UserRoleEnum.java +++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/UserRoleEnum.java @@ -42,7 +42,7 @@ public enum UserRoleEnum { XIN_FA_SYS_CUSTOMER(370000000L,"信发系统客服"), TENT_PASS_CUSTOMER(380000000L,"营帐通客服"), DESIGN_CUSTOMER(390000000L,"设计客服"), - CONSTRUCTION_CUSTOMER(400000000L,"施工客服"), + CONSTRUCTION_CUSTOMER(400000000L,"立规内勤"), BRANCH_OFFICE(1724233283449L,"分部内勤"), JOIN_OFFICE(1719278230274L,"加盟内勤"), REGION_OFFICE(410000000L,"大区内勤"), @@ -52,7 +52,13 @@ public enum UserRoleEnum { LOGISTICS(430000000L,"物流"), HEAD_OF_DIVISION(40000000L,"分部负责人"), PRESIDENT(1715882476902L,"总裁"), - VICE_PRESIDENT_IN_CHARGE(1715331371325L,"分管副总裁") + VICE_PRESIDENT_IN_CHARGE(1715331371325L,"分管副总裁"), + + MEASURE_OFFICE(440000000L,"测量员"), + + HEAD_OF_DESIGN(450000000L,"设计组长"), + + QUOTATION_OFFICE(470000000L,"报价员"), ; private Long code; diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/point/ShopSubStageEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/point/ShopSubStageEnum.java index a99ce4c3b..a8523922c 100644 --- a/coolstore-partner-common/src/main/java/com/cool/store/enums/point/ShopSubStageEnum.java +++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/point/ShopSubStageEnum.java @@ -21,6 +21,7 @@ public enum ShopSubStageEnum { SHOP_STAGE_7(ShopStageEnum.SHOP_STAGE_2, 70, "缴纳加盟费/保证金", 1), SHOP_STAGE_8(ShopStageEnum.SHOP_STAGE_2, 80, "加盟合同签约", 4), SHOP_STAGE_8_5(ShopStageEnum.SHOP_STAGE_2, 85, "发票回传", 5), + SHOP_STAGE_8_6(ShopStageEnum.SHOP_STAGE_2, 86, "测量阶段", 14), SHOP_STAGE_9(ShopStageEnum.SHOP_STAGE_2, 90, "设计阶段", 14), SHOP_STAGE_11(ShopStageEnum.SHOP_STAGE_2, 110, "施工阶段", 25), SHOP_STAGE_12(ShopStageEnum.SHOP_STAGE_2, 120, "装修验收", 27), @@ -33,7 +34,6 @@ public enum ShopSubStageEnum { SHOP_STAGE_24(ShopStageEnum.SHOP_STAGE_2, 240, "营帐通开通", 10), - SHOP_STAGE_18(ShopStageEnum.SHOP_STAGE_3, 180, "抖音", null), SHOP_STAGE_19(ShopStageEnum.SHOP_STAGE_3, 190, "美团外卖", null), SHOP_STAGE_20(ShopStageEnum.SHOP_STAGE_3, 200, "美团团购", null), @@ -41,7 +41,6 @@ public enum ShopSubStageEnum { SHOP_STAGE_22(ShopStageEnum.SHOP_STAGE_3, 220, "快手", null), - ; //阶段 @@ -64,10 +63,10 @@ public enum ShopSubStageEnum { } public static Integer getTotalStageIsLocationAndPreparation() { - int total=0; + int total = 0; for (ShopSubStageEnum shopStageEnum : ShopSubStageEnum.values()) { if (shopStageEnum.getShopStageEnum().getShopStage().equals(ShopStageEnum.SHOP_STAGE_1.getShopStage()) - ||shopStageEnum.getShopStageEnum().getShopStage().equals(ShopStageEnum.SHOP_STAGE_2.getShopStage())) { + || shopStageEnum.getShopStageEnum().getShopStage().equals(ShopStageEnum.SHOP_STAGE_2.getShopStage())) { total++; } } @@ -118,6 +117,7 @@ public enum ShopSubStageEnum { case SHOP_STAGE_4: case SHOP_STAGE_8: case SHOP_STAGE_8_5: + case SHOP_STAGE_8_6: case SHOP_STAGE_9: case SHOP_STAGE_11: case SHOP_STAGE_12: diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/point/ShopSubStageStatusEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/point/ShopSubStageStatusEnum.java index 4d88e0939..3ff6a19ca 100644 --- a/coolstore-partner-common/src/main/java/com/cool/store/enums/point/ShopSubStageStatusEnum.java +++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/point/ShopSubStageStatusEnum.java @@ -53,9 +53,15 @@ public enum ShopSubStageStatusEnum { SHOP_SUB_STAGE_STATUS_85_1(ShopSubStageEnum.SHOP_STAGE_8_5, 880, "待提交", Boolean.FALSE), SHOP_SUB_STAGE_STATUS_85_3(ShopSubStageEnum.SHOP_STAGE_8_5, 890, "已完成", Boolean.TRUE), - + //测量阶段 + SHOP_SUB_STAGE_STATUS_861(ShopSubStageEnum.SHOP_STAGE_8_6, 891, "待分配", Boolean.FALSE), + SHOP_SUB_STAGE_STATUS_862(ShopSubStageEnum.SHOP_STAGE_8_6, 892, "测量中", Boolean.FALSE), + SHOP_SUB_STAGE_STATUS_863(ShopSubStageEnum.SHOP_STAGE_8_6, 893, "测量完成", Boolean.TRUE), //设计阶段 - SHOP_SUB_STAGE_STATUS_90(ShopSubStageEnum.SHOP_STAGE_9, 900, "待上传", Boolean.FALSE), + SHOP_SUB_STAGE_STATUS_90(ShopSubStageEnum.SHOP_STAGE_9, 900, "待分配设计师", Boolean.FALSE), + SHOP_SUB_STAGE_STATUS_901(ShopSubStageEnum.SHOP_STAGE_9, 901, "设计中", Boolean.FALSE), + SHOP_SUB_STAGE_STATUS_902(ShopSubStageEnum.SHOP_STAGE_9, 902, "待分配报价员", Boolean.FALSE), + SHOP_SUB_STAGE_STATUS_903(ShopSubStageEnum.SHOP_STAGE_9, 903, "待报价", Boolean.FALSE), SHOP_SUB_STAGE_STATUS_905(ShopSubStageEnum.SHOP_STAGE_9, 905, "待确认", Boolean.FALSE), SHOP_SUB_STAGE_STATUS_91(ShopSubStageEnum.SHOP_STAGE_9, 910, "已完成", Boolean.TRUE), diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/dao/DecorationMeasureDAO.java b/coolstore-partner-dao/src/main/java/com/cool/store/dao/DecorationMeasureDAO.java new file mode 100644 index 000000000..4f83151ff --- /dev/null +++ b/coolstore-partner-dao/src/main/java/com/cool/store/dao/DecorationMeasureDAO.java @@ -0,0 +1,62 @@ +package com.cool.store.dao; + +import com.cool.store.entity.DecorationDesignInfoDO; +import com.cool.store.entity.DecorationMeasureDO; +import com.cool.store.mapper.DecorationMeasureMapper; +import org.apache.commons.collections4.CollectionUtils; +import org.springframework.stereotype.Repository; +import tk.mybatis.mapper.entity.Example; + +import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +/** + * @author ryan.xu + * @date 2025/04/23 + */ +@Repository +public class DecorationMeasureDAO { + + @Resource + DecorationMeasureMapper decorationMeasureMapper; + + public DecorationMeasureDO getById(Long id) { + if (id == null) { + return null; + } + return decorationMeasureMapper.selectByPrimaryKey(id); + } + + public List getByIds(List shopIds) { + if (CollectionUtils.isEmpty(shopIds)) { + return new ArrayList<>(); + } + Example example = new Example(DecorationDesignInfoDO.class); + example.createCriteria().andIn("shopId", shopIds); + return decorationMeasureMapper.selectByExample(example); + } + + public Integer insertSelective(DecorationMeasureDO decorationMeasureDO, String userId) { + decorationMeasureDO.setCreateUserId(userId); + decorationMeasureDO.setUpdateUserId(userId); + decorationMeasureDO.setUpdateTime(new Date()); + decorationMeasureDO.setCreateTime(new Date()); + return decorationMeasureMapper.insertSelective(decorationMeasureDO); + } + + public Integer updateByPrimaryKeySelective(DecorationMeasureDO decorationMeasureDO, String userId) { + decorationMeasureDO.setUpdateUserId(userId); + decorationMeasureDO.setUpdateTime(new Date()); + return decorationMeasureMapper.updateByPrimaryKeySelective(decorationMeasureDO); + } + + public DecorationMeasureDO getByShopId(Long shopId) { + if (shopId == null) { + return null; + } + return decorationMeasureMapper.selectByShopId(shopId); + } + +} diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/dao/EnterpriseUserDAO.java b/coolstore-partner-dao/src/main/java/com/cool/store/dao/EnterpriseUserDAO.java index 862ad38bd..90f9909a6 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/dao/EnterpriseUserDAO.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/dao/EnterpriseUserDAO.java @@ -28,110 +28,111 @@ public class EnterpriseUserDAO { private EnterpriseUserMapper enterpriseUserMapper; - public EnterpriseUserDO getUserInfoById(String userId){ - if(StringUtils.isBlank(userId)){ + public EnterpriseUserDO getUserInfoById(String userId) { + if (StringUtils.isBlank(userId)) { return null; } - return enterpriseUserMapper.getUserInfoById( userId); + return enterpriseUserMapper.getUserInfoById(userId); } - public EnterpriseUserDO getUserInfoByJobnumber(String jobnumber){ - if(StringUtils.isBlank(jobnumber)){ + public EnterpriseUserDO getUserInfoByJobnumber(String jobnumber) { + if (StringUtils.isBlank(jobnumber)) { return null; } return enterpriseUserMapper.getUserInfoByJobnumber(jobnumber); } - public EnterpriseUserDO getUserInfoByThirdOaUniqueFlag(String thirdOaUniqueFlag){ - if(StringUtils.isBlank(thirdOaUniqueFlag)){ + public EnterpriseUserDO getUserInfoByThirdOaUniqueFlag(String thirdOaUniqueFlag) { + if (StringUtils.isBlank(thirdOaUniqueFlag)) { return null; } return enterpriseUserMapper.getUserInfoByThirdOaUniqueFlag(thirdOaUniqueFlag); } - public List getUserInfoByUserIds(List userIdList){ - if(CollectionUtils.isEmpty(userIdList)){ + public List getUserInfoByUserIds(List userIdList) { + if (CollectionUtils.isEmpty(userIdList)) { return Lists.newArrayList(); } - return enterpriseUserMapper.getUserInfoByUserIds( userIdList); + return enterpriseUserMapper.getUserInfoByUserIds(userIdList); } - public List searchUserByRegionIdsAndKeyword(List regionIds, String keyword, List leaderRegionIds){ - if(CollectionUtils.isEmpty(regionIds)){ + public List searchUserByRegionIdsAndKeyword(List regionIds, String keyword, List leaderRegionIds) { + if (CollectionUtils.isEmpty(regionIds)) { return Lists.newArrayList(); } - return enterpriseUserMapper.searchUserByRegionIdsAndKeyword( regionIds, keyword, leaderRegionIds); + return enterpriseUserMapper.searchUserByRegionIdsAndKeyword(regionIds, keyword, leaderRegionIds); } - public boolean isExistDeptUser(String regionId){ - if(StringUtils.isBlank(regionId)){ + public boolean isExistDeptUser(String regionId) { + if (StringUtils.isBlank(regionId)) { return false; } - return enterpriseUserMapper.getUserCountByRegionId( regionId) > CommonConstants.ZERO; + return enterpriseUserMapper.getUserCountByRegionId(regionId) > CommonConstants.ZERO; } /** * 获取部门负责人 + * * @param regionId * @return */ - public List getUserListByDeptLeader(String regionId){ - if(StringUtils.isBlank(regionId)){ + public List getUserListByDeptLeader(String regionId) { + if (StringUtils.isBlank(regionId)) { return Lists.newArrayList(); } - return enterpriseUserMapper.getUserListByDeptLeader( regionId); + return enterpriseUserMapper.getUserListByDeptLeader(regionId); } - public List getUserListByDeptLeaders(List regionIds){ - if(CollectionUtils.isEmpty(regionIds)){ + public List getUserListByDeptLeaders(List regionIds) { + if (CollectionUtils.isEmpty(regionIds)) { return Lists.newArrayList(); } - return enterpriseUserMapper.getUserListByDeptLeaders( regionIds); + return enterpriseUserMapper.getUserListByDeptLeaders(regionIds); } - public List getUserListByRegionIds(List regionIds){ - if(CollectionUtils.isEmpty(regionIds)){ + public List getUserListByRegionIds(List regionIds) { + if (CollectionUtils.isEmpty(regionIds)) { return Lists.newArrayList(); } - return enterpriseUserMapper.getUserListByRegionIds( regionIds); + return enterpriseUserMapper.getUserListByRegionIds(regionIds); } - public List getUserIdListByRegionId(Long regionId, List userIdList){ - if(CollectionUtils.isEmpty(userIdList) || regionId == null){ + public List getUserIdListByRegionId(Long regionId, List userIdList) { + if (CollectionUtils.isEmpty(userIdList) || regionId == null) { return Lists.newArrayList(); } return enterpriseUserMapper.getUserIdListByRegionId(regionId, userIdList); } - public Map getUserNameAndMobile(List userIds){ + public Map getUserNameAndMobile(List userIds) { List userList = getUserInfoByUserIds(userIds); - return userList.stream().filter(o->!StringUtils.isAnyBlank(o.getMobile())).collect(Collectors.toMap(k -> k.getUserId(), v -> v.getName() + " " + v.getMobile())); + return userList.stream().filter(o -> !StringUtils.isAnyBlank(o.getMobile())).collect(Collectors.toMap(k -> k.getUserId(), v -> v.getName() + " " + v.getMobile())); } - public Map getUserNameMap(List userIds){ + public Map getUserNameMap(List userIds) { List userList = getUserInfoByUserIds(userIds); - return userList.stream().filter(o->!StringUtils.isAnyBlank(o.getName())).collect(Collectors.toMap(k -> k.getUserId(), v -> v.getName())); + return userList.stream().filter(o -> !StringUtils.isAnyBlank(o.getName())).collect(Collectors.toMap(k -> k.getUserId(), v -> v.getName())); } - public Map getUserMap(List userIds){ + public Map getUserMap(List userIds) { List userList = getUserInfoByUserIds(userIds); - return userList.stream().filter(o->!StringUtils.isAnyBlank(o.getMobile(), o.getName())).collect(Collectors.toMap(k -> k.getUserId(), Function.identity())); + return userList.stream().filter(o -> !StringUtils.isAnyBlank(o.getMobile(), o.getName())).collect(Collectors.toMap(k -> k.getUserId(), Function.identity())); } - public Map getUserInfoMap(List userIds){ + public Map getUserInfoMap(List userIds) { List userList = getUserInfoByUserIds(userIds); - if (CollectionUtils.isEmpty(userList)){ + if (CollectionUtils.isEmpty(userList)) { return new HashMap<>(); } return userList.stream().collect(Collectors.toMap(k -> k.getUserId(), Function.identity())); } public EnterpriseUserDO selectByMobile(String mobile) { - return enterpriseUserMapper.selectByMobile( mobile); + return enterpriseUserMapper.selectByMobile(mobile); } - public String getUserName(String userId){ + public String getUserName(String userId) { EnterpriseUserDO userInfo = getUserInfoById(userId); return Optional.ofNullable(userInfo).map(EnterpriseUserDO::getName).orElse(StringUtils.EMPTY); } @@ -140,22 +141,31 @@ public class EnterpriseUserDAO { if (StringUtil.isEmpty(investmentManager)) { return null; } - return enterpriseUserMapper.selectByInvestmentManager( investmentManager); + return enterpriseUserMapper.selectByInvestmentManager(investmentManager); } - public List getNameByUserId(List userIdList){ + + public List getNameByUserId(List userIdList) { if (CollectionUtils.isEmpty(userIdList)) { return new ArrayList<>(); } return enterpriseUserMapper.selectNameByUserId(userIdList); } - public List getUserListByRegionId(Long regionId){ - if(regionId == null){ + public List getUserListByRegionId(Long regionId) { + if (regionId == null) { return Lists.newArrayList(); } return enterpriseUserMapper.getUserListByRegionId(regionId); } - public List getAllUser(String eid, String keyword){ - return enterpriseUserMapper.getAllUser(eid,keyword); + + public List getAllUser(String eid, String keyword) { + return enterpriseUserMapper.getAllUser(eid, keyword); + } + + public List findUserInfoByUserIdsAndKeyword(List userIdList, String keyword) { + if (CollectionUtils.isEmpty(userIdList)) { + return Lists.newArrayList(); + } + return enterpriseUserMapper.searchUserByUserIdsAndKeyword(userIdList, keyword); } } \ No newline at end of file diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/DecorationMeasureMapper.java b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/DecorationMeasureMapper.java new file mode 100644 index 000000000..a24a5864e --- /dev/null +++ b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/DecorationMeasureMapper.java @@ -0,0 +1,16 @@ +package com.cool.store.mapper; + +import com.cool.store.entity.DecorationMeasureDO; +import tk.mybatis.mapper.common.Mapper; + +public interface DecorationMeasureMapper extends Mapper { + + /** + * 查询店铺的测量数据 + * + * @param shopId + * @return + */ + DecorationMeasureDO selectByShopId(Long shopId); + +} \ No newline at end of file diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/EnterpriseUserMapper.java b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/EnterpriseUserMapper.java index 965ca18d3..7ae2a3d59 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/EnterpriseUserMapper.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/EnterpriseUserMapper.java @@ -91,4 +91,12 @@ public interface EnterpriseUserMapper { List getUserListByRegionId( @Param("regionId") Long regionId); List getAllUser(@Param("eid")String id, @Param("keyword") String keyword); + + /** + * 根据用户id和关键字搜索用户 + * @param userIdList + * @param keyword + * @return + */ + List searchUserByUserIdsAndKeyword( @Param("userIdList") List userIdList, @Param("keyword") String keyword); } \ No newline at end of file diff --git a/coolstore-partner-dao/src/main/resources/mapper/DecorationDesignInfoMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/DecorationDesignInfoMapper.xml index b8342a112..c9f23f6e0 100644 --- a/coolstore-partner-dao/src/main/resources/mapper/DecorationDesignInfoMapper.xml +++ b/coolstore-partner-dao/src/main/resources/mapper/DecorationDesignInfoMapper.xml @@ -20,6 +20,12 @@ + + + + + + + select + id,shop_id,measure_user_id,design_user_id,measure_date,diagram_date,measure_url,remark, + submit_time,create_time,update_time,deleted,create_user_id,update_user_id + from xfsg_decoration_measure where shop_id = #{shopId} and deleted = 0 + + + + \ No newline at end of file diff --git a/coolstore-partner-dao/src/main/resources/mapper/EnterpriseUserMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/EnterpriseUserMapper.xml index e45a30724..648e8139a 100644 --- a/coolstore-partner-dao/src/main/resources/mapper/EnterpriseUserMapper.xml +++ b/coolstore-partner-dao/src/main/resources/mapper/EnterpriseUserMapper.xml @@ -179,4 +179,22 @@ and( name like concat('%',#{keyword},'%') or mobile like concat('%',#{keyword},'%')) + + \ No newline at end of file diff --git a/coolstore-partner-model/src/main/java/com/cool/store/entity/DecorationDesignInfoDO.java b/coolstore-partner-model/src/main/java/com/cool/store/entity/DecorationDesignInfoDO.java index fd395972e..d6c107375 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/entity/DecorationDesignInfoDO.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/entity/DecorationDesignInfoDO.java @@ -1,8 +1,12 @@ package com.cool.store.entity; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + import java.util.Date; import javax.persistence.*; +@Data @Table(name = "xfsg_decoration_design_info") public class DecorationDesignInfoDO { @Id @@ -91,209 +95,37 @@ public class DecorationDesignInfoDO { */ @Column(name = "construction_create_user") private String constructionCreateUser; - /** - * @return id - */ - public Long getId() { - return id; - } /** - * @param id + * 设计组长ID */ - public void setId(Long id) { - this.id = id; - } + @Column(name = "design_leader_id") + private String designLeaderId; /** - * 获取xfsg_shop_info.id - * - * @return shop_id - xfsg_shop_info.id + * 设计人员ID */ - public Long getShopId() { - return shopId; - } + @Column(name = "design_user_id") + private String designUserId; /** - * 设置xfsg_shop_info.id - * - * @param shopId xfsg_shop_info.id + * 报价员ID */ - public void setShopId(Long shopId) { - this.shopId = shopId; - } + @Column(name = "quotation_user_id") + private String quotationUserId; /** - * 获取报价单 - * - * @return quotation_url - 报价单 + * 报价备注 */ - public String getQuotationUrl() { - return quotationUrl; - } + @Column(name = "quotation_remark") + private String quotationRemark; /** - * 设置报价单 - * - * @param quotationUrl 报价单 + * 设计提交时间 */ - public void setQuotationUrl(String quotationUrl) { - this.quotationUrl = quotationUrl; - } + @Column(name = "design_submit_time") + private Date designSubmitTime; - /** - * 获取设计图 - * - * @return design_url - 设计图 - */ - public String getDesignUrl() { - return designUrl; - } - - /** - * 设置设计图 - * - * @param designUrl 设计图 - */ - public void setDesignUrl(String designUrl) { - this.designUrl = designUrl; - } - - /** - * 获取备注 - * - * @return remark - 备注 - */ - public String getRemark() { - return remark; - } - - /** - * 设置备注 - * - * @param remark 备注 - */ - public void setRemark(String remark) { - this.remark = remark; - } - - /** - * 获取加密商验收签名 {"pic":"","acceptanceTime":"","result":"","remark":"","status":0} - * - * @return partner_acceptance_signatures - 加密商验收签名 {"pic":"","acceptanceTime":"","result":"","remark":"","status":0} - */ - public String getPartnerAcceptanceSignatures() { - return partnerAcceptanceSignatures; - } - - /** - * 设置加密商验收签名 {"pic":"","acceptanceTime":"","result":"","remark":"","status":0} - * - * @param partnerAcceptanceSignatures 加密商验收签名 {"pic":"","acceptanceTime":"","result":"","remark":"","status":0} - */ - public void setPartnerAcceptanceSignatures(String partnerAcceptanceSignatures) { - this.partnerAcceptanceSignatures = partnerAcceptanceSignatures; - } - - /** - * 获取创建时间 - * - * @return create_time - 创建时间 - */ - public Date getCreateTime() { - return createTime; - } - - /** - * 设置创建时间 - * - * @param createTime 创建时间 - */ - public void setCreateTime(Date createTime) { - this.createTime = createTime; - } - - /** - * 获取更新时间 - * - * @return update_time - 更新时间 - */ - public Date getUpdateTime() { - return updateTime; - } - - /** - * 设置更新时间 - * - * @param updateTime 更新时间 - */ - public void setUpdateTime(Date updateTime) { - this.updateTime = updateTime; - } - - /** - * 获取是否删除:0.否 1.是 - * - * @return deleted - 是否删除:0.否 1.是 - */ - public Boolean getDeleted() { - return deleted; - } - - public Date getConstructionPlanStartTime() { - return constructionPlanStartTime; - } - - public void setConstructionPlanStartTime(Date constructionPlanStartTime) { - this.constructionPlanStartTime = constructionPlanStartTime; - } - - public Date getConstructionPlanEndTime() { - return constructionPlanEndTime; - } - - public void setConstructionPlanEndTime(Date constructionPlanEndTime) { - this.constructionPlanEndTime = constructionPlanEndTime; - } - - public String getConstructionAnnex() { - return constructionAnnex; - } - - public void setConstructionAnnex(String constructionAnnex) { - this.constructionAnnex = constructionAnnex; - } - - public String getConstructionRemark() { - return constructionRemark; - } - - public void setConstructionRemark(String constructionRemark) { - this.constructionRemark = constructionRemark; - } - - public Date getConstructionCreateTime() { - return constructionCreateTime; - } - - public void setConstructionCreateTime(Date constructionCreateTime) { - this.constructionCreateTime = constructionCreateTime; - } - - public String getConstructionCreateUser() { - return constructionCreateUser; - } - - public void setConstructionCreateUser(String constructionCreateUser) { - this.constructionCreateUser = constructionCreateUser; - } - - /** - * 设置是否删除:0.否 1.是 - * - * @param deleted 是否删除:0.否 1.是 - */ - public void setDeleted(Boolean deleted) { - this.deleted = deleted; - } + @Column(name = "quotation_submit_time") + private Date quotationSubmitTime; } \ No newline at end of file diff --git a/coolstore-partner-model/src/main/java/com/cool/store/entity/DecorationMeasureDO.java b/coolstore-partner-model/src/main/java/com/cool/store/entity/DecorationMeasureDO.java new file mode 100644 index 000000000..2de645480 --- /dev/null +++ b/coolstore-partner-model/src/main/java/com/cool/store/entity/DecorationMeasureDO.java @@ -0,0 +1,93 @@ +package com.cool.store.entity; + +import lombok.Data; + +import javax.persistence.*; +import java.util.Date; + +@Data +@Table(name = "xfsg_decoration_measure") +public class DecorationMeasureDO { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + + /** + * 店铺ID + */ + @Column(name = "shop_id") + private Long shopId; + + /** + * 测量员ID + */ + @Column(name = "measure_user_id") + private String measureUserId; + + /** + * 设计员角色ID + */ + @Column(name = "design_user_id") + private String designUserId; + + /** + * 测量日期 + */ + @Column(name = "measure_date") + private Date measureDate; + + /** + * 出图日期 + */ + @Column(name = "diagram_date") + private Date diagramDate; + + /** + * 测量图 + */ + @Column(name = "measure_url") + private String measureUrl; + + /** + * 备注 + */ + @Column(name = "remark") + private String remark; + + /** + * 创建时间 + */ + @Column(name = "submit_time") + private Date submitTime; + + /** + * 创建时间 + */ + @Column(name = "create_time") + private Date createTime; + + /** + * 创建人 + */ + @Column(name = "create_user_id") + private String createUserId; + + /** + * 更新人 + */ + @Column(name = "update_user_id") + private String updateUserId; + + /** + * 更新时间 + */ + @Column(name = "update_time") + private Date updateTime; + + /** + * 是否删除:0.否 1.是 + */ + @Column(name = "deleted", nullable = false, columnDefinition = "tinyint default '0'") + private Boolean deleted; + +} \ No newline at end of file diff --git a/coolstore-partner-model/src/main/java/com/cool/store/request/DecorationDesignRequest.java b/coolstore-partner-model/src/main/java/com/cool/store/request/DecorationDesignRequest.java index 1860a770f..9480fa525 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/request/DecorationDesignRequest.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/request/DecorationDesignRequest.java @@ -4,10 +4,11 @@ import com.alibaba.fastjson.JSONObject; import com.cool.store.constants.CommonConstants; import com.cool.store.dto.decoration.ThreeAcceptanceDTO; import com.cool.store.entity.DecorationDesignInfoDO; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; import lombok.Data; import javax.persistence.Column; -import javax.swing.text.StyleConstants; import java.util.Date; /** @@ -16,26 +17,31 @@ import java.util.Date; * @Version 1.0 */ @Data +@ApiModel("设计阶段保存入参") public class DecorationDesignRequest { - @Column(name = "shop_id") + @ApiModelProperty("店铺ID") private Long shopId; - /** - * 报价单 - */ - @Column(name = "quotation_url") + @ApiModelProperty("设计组长ID") + private String designLeaderId; + + @ApiModelProperty("设计师ID") + private String designUserId; + + @ApiModelProperty("报价员ID") + private String quotationUserId; + + @ApiModelProperty("报价单URL") private String quotationUrl; - /** - * 设计图 - */ - @Column(name = "design_url") + @ApiModelProperty("设计图URL") private String designUrl; - /** - * 备注 - */ + @ApiModelProperty("报价备注") + private String quotationRemark; + + @ApiModelProperty("设计备注") private String remark; /** @@ -45,14 +51,28 @@ public class DecorationDesignRequest { private ThreeAcceptanceDTO partnerAcceptanceSignatures; - public DecorationDesignInfoDO toDecorationDesignInfoDO() { DecorationDesignInfoDO decorationDesignInfoDO = new DecorationDesignInfoDO(); decorationDesignInfoDO.setDesignUrl(this.designUrl); decorationDesignInfoDO.setShopId(this.shopId); + if (this.designLeaderId != null) { + decorationDesignInfoDO.setDesignLeaderId(this.designLeaderId); + } + if (this.designUserId != null) { + decorationDesignInfoDO.setDesignUserId(this.designUserId); + } + if (this.quotationUserId != null) { + decorationDesignInfoDO.setQuotationUserId(this.quotationUserId); + } + if (this.quotationRemark != null) { + decorationDesignInfoDO.setQuotationRemark(this.quotationRemark); + } + if (this.quotationUrl != null) { + decorationDesignInfoDO.setQuotationUrl(this.quotationUrl); + } decorationDesignInfoDO.setRemark(this.remark); - decorationDesignInfoDO.setQuotationUrl(this.quotationUrl); - if (this.partnerAcceptanceSignatures != null){ + + if (this.partnerAcceptanceSignatures != null) { ThreeAcceptanceDTO threeAcceptanceDTO = this.partnerAcceptanceSignatures; threeAcceptanceDTO.setAcceptanceTime(new Date()); threeAcceptanceDTO.setStatus(CommonConstants.ONE); @@ -60,7 +80,6 @@ public class DecorationDesignRequest { threeAcceptanceDTO.setRemark(threeAcceptanceDTO.getRemark() == null ? "" : threeAcceptanceDTO.getRemark()); decorationDesignInfoDO.setPartnerAcceptanceSignatures(JSONObject.toJSONString(threeAcceptanceDTO)); } - decorationDesignInfoDO.setUpdateTime(new Date()); return decorationDesignInfoDO; } diff --git a/coolstore-partner-model/src/main/java/com/cool/store/request/DecorationMeasureRequest.java b/coolstore-partner-model/src/main/java/com/cool/store/request/DecorationMeasureRequest.java new file mode 100644 index 000000000..48cb7f2e9 --- /dev/null +++ b/coolstore-partner-model/src/main/java/com/cool/store/request/DecorationMeasureRequest.java @@ -0,0 +1,58 @@ +package com.cool.store.request; + +import com.cool.store.entity.DecorationMeasureDO; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotNull; +import java.util.Date; + +/** + * @author ryan.xu + * @date 2025/04/23 + */ +@Data +@ApiModel("测量阶段保存入参") +public class DecorationMeasureRequest { + + @ApiModelProperty("店铺ID") + @NotNull(message = "店铺ID不能为空") + private Long shopId; + + @ApiModelProperty("测量员ID") + private String measureUserId; + + @ApiModelProperty("设计组长ID") + private String designUserId; + + @ApiModelProperty("测量日期") + private Date measureDate; + + @ApiModelProperty("出图日期") + private Date diagramDate; + + @ApiModelProperty("测量图URL") + private String measureUrl; + + @ApiModelProperty("备注") + private String remark; + + /** + * 构建DecorationMeasureDO + * + * @return + */ + public DecorationMeasureDO buildDecorationMeasureDO() { + DecorationMeasureDO decorationMeasureDO = new DecorationMeasureDO(); + decorationMeasureDO.setShopId(this.shopId); + decorationMeasureDO.setMeasureUserId(this.measureUserId); + decorationMeasureDO.setDesignUserId(this.designUserId); + decorationMeasureDO.setMeasureDate(this.measureDate); + decorationMeasureDO.setDiagramDate(this.diagramDate); + decorationMeasureDO.setMeasureUrl(this.measureUrl); + decorationMeasureDO.setRemark(this.remark); + return decorationMeasureDO; + } + +} diff --git a/coolstore-partner-model/src/main/java/com/cool/store/request/SysRoleRequest.java b/coolstore-partner-model/src/main/java/com/cool/store/request/SysRoleRequest.java new file mode 100644 index 000000000..ffafe90e2 --- /dev/null +++ b/coolstore-partner-model/src/main/java/com/cool/store/request/SysRoleRequest.java @@ -0,0 +1,16 @@ +package com.cool.store.request; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +@ApiModel("角色查询") +public class SysRoleRequest { + + @ApiModelProperty("角色名称") + private String roleName; + + @ApiModelProperty("关键字") + private String keyword; +} diff --git a/coolstore-partner-model/src/main/java/com/cool/store/vo/DecorationDesignVO.java b/coolstore-partner-model/src/main/java/com/cool/store/vo/DecorationDesignVO.java index e939bc24a..f77cb838e 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/vo/DecorationDesignVO.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/vo/DecorationDesignVO.java @@ -1,5 +1,9 @@ package com.cool.store.vo; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; import lombok.Data; import javax.persistence.Column; @@ -11,29 +15,42 @@ import java.util.Date; * @Version 1.0 */ @Data +@ApiModel("设计阶段返回实体") public class DecorationDesignVO { - /** - * xfsg_shop_info.id - */ - @Column(name = "shop_id") + @ApiModelProperty("设计阶段ID") + @JsonSerialize(using = ToStringSerializer.class) + private Long id; + + @ApiModelProperty("店铺ID") + @JsonSerialize(using = ToStringSerializer.class) private Long shopId; - /** - * 报价单 - */ - @Column(name = "quotation_url") + @ApiModelProperty("设计组长ID") + private String designLeaderId; + + @ApiModelProperty("设计组长名称") + private String designLeaderName; + + @ApiModelProperty("设计师ID") + private String designUserId; + + @ApiModelProperty("设计师名称") + private String designUserName; + + @ApiModelProperty("报价员ID") + private String quotationUserId; + + @ApiModelProperty("报价员名称") + private String quotationUserName; + + @ApiModelProperty("报价单URL") private String quotationUrl; - /** - * 设计图 - */ - @Column(name = "design_url") + @ApiModelProperty("设计图URL") private String designUrl; - /** - * 备注 - */ + @ApiModelProperty("备注") private String remark; /** @@ -42,10 +59,16 @@ public class DecorationDesignVO { @Column(name = "partner_acceptance_signatures") private String partnerAcceptanceSignatures; - /** - * 创建时间 - */ - @Column(name = "create_time") + @ApiModelProperty("创建时间") private Date createTime; + @ApiModelProperty("设计提交时间") + private Date designSubmitTime; + + @ApiModelProperty("报价提交时间") + private Date quotationSubmitTime; + + @ApiModelProperty("报价备注") + private String quotationRemark; + } diff --git a/coolstore-partner-model/src/main/java/com/cool/store/vo/DecorationMeasureVO.java b/coolstore-partner-model/src/main/java/com/cool/store/vo/DecorationMeasureVO.java new file mode 100644 index 000000000..6625c9fde --- /dev/null +++ b/coolstore-partner-model/src/main/java/com/cool/store/vo/DecorationMeasureVO.java @@ -0,0 +1,57 @@ +package com.cool.store.vo; + +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.Date; + +/** + * @author ryan.xu + * @date 2025/04/23 + */ +@Data +@ApiModel("装修测量返回实体") +public class DecorationMeasureVO { + + @ApiModelProperty("ID") + @JsonSerialize(using = ToStringSerializer.class) + private Long id; + + @ApiModelProperty("店铺ID") + @JsonSerialize(using = ToStringSerializer.class) + private Long shopId; + + @ApiModelProperty("测量员ID") + private String measureUserId; + + @ApiModelProperty("测量员名称") + private String measureUserName; + + @ApiModelProperty("设计组长ID") + private String designUserId; + + @ApiModelProperty("设计组长名称") + private String designUserName; + + @ApiModelProperty("测量日期") + private Date measureDate; + + @ApiModelProperty("出图日期") + private Date diagramDate; + + @ApiModelProperty(name = "测量图URL") + private String measureUrl; + + @ApiModelProperty("创建时间") + private Date createTime; + + @ApiModelProperty("提交时间") + private Date submitTime; + + @ApiModelProperty("备注") + private String remark; + +} diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/DecorationMeasureService.java b/coolstore-partner-service/src/main/java/com/cool/store/service/DecorationMeasureService.java new file mode 100644 index 000000000..4a88044e9 --- /dev/null +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/DecorationMeasureService.java @@ -0,0 +1,31 @@ +package com.cool.store.service; + +import com.cool.store.context.LoginUserInfo; +import com.cool.store.request.DecorationMeasureRequest; +import com.cool.store.vo.DecorationMeasureVO; + +public interface DecorationMeasureService { + + /** + * 根据门店ID获取获取测量数据数据 + * + * @param shopId + * @return + */ + DecorationMeasureVO getDecorationMeasureByShopId(Long shopId); + + /** + * 提交测量数据 + * + * @param request + * @return + */ + Boolean submitDecorationMeasure(DecorationMeasureRequest request); + + /** + * 保存测量数据 + * @param request + * @return + */ + Boolean saveDecorationMeasure(DecorationMeasureRequest request); +} diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/DecorationService.java b/coolstore-partner-service/src/main/java/com/cool/store/service/DecorationService.java index e14915c4b..eafc15a26 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/DecorationService.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/DecorationService.java @@ -163,4 +163,12 @@ public interface DecorationService { * @return */ Boolean confirmComplete(Long shopId, LoginUserInfo user); + + /** + * 保存设计数据 + * @param request + * @param user + * @return + */ + Boolean saveDecorationDesign(DecorationDesignRequest request, LoginUserInfo user); } diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/DeskService.java b/coolstore-partner-service/src/main/java/com/cool/store/service/DeskService.java index e428f7308..36056f7d1 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/DeskService.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/DeskService.java @@ -177,4 +177,13 @@ public interface DeskService { */ PageInfo buildInformationPendingList(Integer pageNum, Integer pageSize, LoginUserInfo user); + /** + * 测量阶段 + * @param pageNum + * @param pageSize + * @param user + * @return + */ + PageInfo measurePendingList(Integer pageNum, Integer pageSize, LoginUserInfo user); + } diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/UserAuthMappingService.java b/coolstore-partner-service/src/main/java/com/cool/store/service/UserAuthMappingService.java index 48a5c8379..60f8d71d1 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/UserAuthMappingService.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/UserAuthMappingService.java @@ -4,7 +4,7 @@ import com.cool.store.dto.UserDTO; import com.cool.store.entity.EnterpriseUserDO; import com.cool.store.entity.UserAuthMappingDO; import com.cool.store.enums.UserRoleEnum; -import com.cool.store.response.oppty.UserResponse; +import com.cool.store.request.SysRoleRequest; import com.github.pagehelper.PageInfo; import java.util.List; @@ -20,6 +20,7 @@ public interface UserAuthMappingService { /** * 获取用户权限 + * * @param userId * @return */ @@ -27,6 +28,7 @@ public interface UserAuthMappingService { /** * 获取用户授权的所有区域id + * * @param userId * @return */ @@ -34,6 +36,7 @@ public interface UserAuthMappingService { /** * 获取用户授权的所有门店id + * * @param userId * @return */ @@ -41,6 +44,7 @@ public interface UserAuthMappingService { /** * 提供 根据职位 意向区域 查 对应人的接口 同时返回人名字 + * * @param userRoleEnum * @param wantShopAreaId * @return @@ -49,6 +53,7 @@ public interface UserAuthMappingService { /** * 获取有区域权限和职位 的人 + * * @param userRoleEnum * @param regionId * @return @@ -59,13 +64,16 @@ public interface UserAuthMappingService { /** * 获取有区域权限和职位 所有人 + * * @param userRoleEnum * @param regionId * @return */ List getUserByRoleEnumAndRegionIdList(UserRoleEnum userRoleEnum, Long regionId); + /** * 跟进角色和战区获取用户id + * * @param roleIds * @param regionId * @return @@ -74,6 +82,7 @@ public interface UserAuthMappingService { /** * 根据 人 查 这个人管辖区域 对应的意向区域省市code 团队线索 + * * @param userId * @return */ @@ -81,6 +90,7 @@ public interface UserAuthMappingService { /** * 【铺位1】所属战区没有战区经理、营运经理和大区经理,开店负责人展示【王磊】 + * * @return */ String getShopManagerUserId(); @@ -88,6 +98,7 @@ public interface UserAuthMappingService { /** * 找督导,如果小区没有督导则带入战区经理,没有战区经理则带入大区经理、如果都没有则带入王磊 + * * @param supervision * @param regionId * @return @@ -95,4 +106,12 @@ public interface UserAuthMappingService { EnterpriseUserDO hierarchicalSearch(UserRoleEnum supervision, Long regionId); PageInfo getAllUser(String keyword, Integer pageNum, Integer pageSize); + + /** + * 根据角色查询用户列表 + * + * @param request + * @return + */ + List findUserListByRole(SysRoleRequest request); } diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/DecorationMeasureServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/DecorationMeasureServiceImpl.java new file mode 100644 index 000000000..f904a34cd --- /dev/null +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/DecorationMeasureServiceImpl.java @@ -0,0 +1,158 @@ +package com.cool.store.service.impl; + +import cn.hutool.core.bean.BeanUtil; +import com.cool.store.constants.CommonConstants; +import com.cool.store.context.CurrentUserHolder; +import com.cool.store.context.LoginUserInfo; +import com.cool.store.dao.DecorationMeasureDAO; +import com.cool.store.dao.EnterpriseUserDAO; +import com.cool.store.dao.ShopInfoDAO; +import com.cool.store.dao.ShopStageInfoDAO; +import com.cool.store.entity.DecorationMeasureDO; +import com.cool.store.entity.LineInfoDO; +import com.cool.store.entity.ShopInfoDO; +import com.cool.store.entity.ShopStageInfoDO; +import com.cool.store.enums.ErrorCodeEnum; +import com.cool.store.enums.MessageEnum; +import com.cool.store.enums.point.ShopSubStageEnum; +import com.cool.store.enums.point.ShopSubStageStatusEnum; +import com.cool.store.exception.ServiceException; +import com.cool.store.mapper.LineInfoMapper; +import com.cool.store.request.DecorationMeasureRequest; +import com.cool.store.service.DecorationMeasureService; +import com.cool.store.utils.RedisUtilPool; +import com.cool.store.vo.DecorationMeasureVO; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import java.util.*; + +@Service +@RequiredArgsConstructor +public class DecorationMeasureServiceImpl implements DecorationMeasureService { + + private final DecorationMeasureDAO decorationMeasureDAO; + private final EnterpriseUserDAO enterpriseUserDAO; + private final RedisUtilPool redisUtilPool; + private final ShopStageInfoDAO shopStageInfoDAO; + private final ShopInfoDAO shopInfoDAO; + private final CommonService commonService; + @Resource + private LineInfoMapper lineInfoMapper; + + @Override + public DecorationMeasureVO getDecorationMeasureByShopId(Long shopId) { + DecorationMeasureDO measureDO = decorationMeasureDAO.getByShopId(shopId); + if (measureDO == null) { + return new DecorationMeasureVO(); + } + + DecorationMeasureVO measureVO = BeanUtil.toBean(measureDO, DecorationMeasureVO.class); + + // 收集需要查询的用户ID + Set userIds = new HashSet<>(); + Optional.ofNullable(measureVO.getMeasureUserId()).ifPresent(userIds::add); + Optional.ofNullable(measureVO.getDesignUserId()).ifPresent(userIds::add); + + // 只有当有用户ID需要查询时才进行查询 + if (!userIds.isEmpty()) { + Map userNameMap = enterpriseUserDAO.getUserNameMap(new ArrayList<>(userIds)); + measureVO.setMeasureUserName(userNameMap.getOrDefault(measureVO.getMeasureUserId(), null)); + measureVO.setDesignUserName(userNameMap.getOrDefault(measureVO.getDesignUserId(), null)); + } + + return measureVO; + } + + @Override + @Transactional(rollbackFor = Exception.class) + public Boolean submitDecorationMeasure(DecorationMeasureRequest request) { + // 重复提交校验(3秒内不能重复提交) + String lockKey = "submitDecorationMeasure:" + request.getShopId(); + String lockValue = UUID.randomUUID().toString(); + boolean acquired = redisUtilPool.setNxExpire(lockKey, lockValue, CommonConstants.THREE * CommonConstants.ONE_SECONDS); + if (!acquired) { + throw new ServiceException(ErrorCodeEnum.DUPLICATE_SUBMISSION); + } + ShopStageInfoDO subStage = shopStageInfoDAO.getShopSubStageInfo(request.getShopId(), ShopSubStageEnum.SHOP_STAGE_8_6); + // 获取当前登录用户 + LoginUserInfo user = CurrentUserHolder.getUser(); + DecorationMeasureDO saveDO = request.buildDecorationMeasureDO(); + DecorationMeasureDO measureDO = decorationMeasureDAO.getByShopId(request.getShopId()); + if (Objects.nonNull(measureDO)) { + // 更新已有数据 + BeanUtil.copyProperties(saveDO, measureDO, "id"); + measureDO.setSubmitTime(new Date()); + decorationMeasureDAO.updateByPrimaryKeySelective(measureDO, user.getUserId()); + Integer currentStatus = subStage.getShopSubStageStatus(); + + // 处理状态861->862 + if (ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_861.getShopSubStageStatus().equals(currentStatus)) { + shopStageInfoDAO.batchUpdateShopStageStatus(request.getShopId(), Arrays.asList(ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_862, ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_90)); + // 给测量员发送企业微信消息 + sendMeasureUserMessage(request.getShopId(), request.getMeasureUserId()); + return Boolean.TRUE; + } + // 处理状态862->863 + if (ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_862.getShopSubStageStatus().equals(currentStatus)) { + shopStageInfoDAO.updateShopStageInfo(request.getShopId(), ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_863); + return Boolean.TRUE; + } + } else { + decorationMeasureDAO.insertSelective(saveDO, user.getUserId()); + // 更新设计状态和测量状态 + shopStageInfoDAO.batchUpdateShopStageStatus(request.getShopId(), + Arrays.asList(ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_862, ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_90)); + // 给测量员发送企业微信消息 + sendMeasureUserMessage(request.getShopId(), request.getMeasureUserId()); + } + return Boolean.TRUE; + } + + /** + * 发送测量消息给测量员 + */ + private void sendMeasureUserMessage(Long shopId, String userId) { + // 获取商店信息 + ShopInfoDO shopInfo = shopInfoDAO.getShopInfo(shopId); + LineInfoDO lineInfo = lineInfoMapper.getByLineId(shopInfo.getLineId()); + if (shopInfo == null) { + throw new ServiceException(ErrorCodeEnum.SHOP_NOT_EXIST); + } + HashMap map = new HashMap<>(4); + map.put("partnerUsername", lineInfo.getUsername()); + map.put("partnerMobile", lineInfo.getMobile()); + map.put("storeName", shopInfo.getShopName()); + commonService.sendQWMessage( + Collections.singletonList(userId), + MessageEnum.MESSAGE_55, + map + ); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public Boolean saveDecorationMeasure(DecorationMeasureRequest request) { + // 参数校验 + if (request == null || request.getShopId() == null) { + throw new ServiceException(ErrorCodeEnum.PARAMS_REQUIRED); + } + // 获取当前登录用户 + LoginUserInfo user = CurrentUserHolder.getUser(); + DecorationMeasureDO saveDO = request.buildDecorationMeasureDO(); + DecorationMeasureDO measureDO = decorationMeasureDAO.getByShopId(request.getShopId()); + + if (Objects.nonNull(measureDO)) { + // 更新已有数据 + BeanUtil.copyProperties(saveDO, measureDO, "id"); + decorationMeasureDAO.updateByPrimaryKeySelective(measureDO, user.getUserId()); + } else { + // 插入新数据 + decorationMeasureDAO.insertSelective(saveDO, user.getUserId()); + } + + return Boolean.TRUE; + } +} diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/DecorationServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/DecorationServiceImpl.java index 27b0eb9c9..f44136ddf 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/DecorationServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/DecorationServiceImpl.java @@ -6,19 +6,15 @@ import com.cool.store.constants.CommonConstants; import com.cool.store.context.LoginUserInfo; import com.cool.store.dao.*; import com.cool.store.dto.decoration.*; -import com.cool.store.dto.openPreparation.OpenPlanShopInfoDTO; -import com.cool.store.dto.openPreparation.UserNameDTO; import com.cool.store.entity.*; import com.cool.store.enums.*; import com.cool.store.enums.point.PayBusinessTypeEnum; -import com.cool.store.enums.point.ShopStageEnum; import com.cool.store.enums.point.ShopSubStageEnum; import com.cool.store.enums.point.ShopSubStageStatusEnum; import com.cool.store.exception.ServiceException; import com.cool.store.mapper.LineInfoMapper; import com.cool.store.mapper.ShopInfoMapper; import com.cool.store.request.*; - import com.cool.store.response.ThreeSignResponse; import com.cool.store.service.*; import com.cool.store.utils.CoolDateUtils; @@ -27,11 +23,9 @@ import com.cool.store.utils.poi.StringUtils; import com.cool.store.vo.*; import com.cool.store.vo.Fitment.DecorationStageVO; import com.cool.store.vo.Fitment.DesignInfoVo; - import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import org.apache.commons.collections4.CollectionUtils; -import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -40,12 +34,7 @@ import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import java.math.BigDecimal; -import java.math.RoundingMode; -import java.text.ParseException; -import java.text.SimpleDateFormat; import java.util.*; -import java.util.concurrent.atomic.AtomicInteger; -import java.util.function.Function; import java.util.stream.Collectors; @@ -99,6 +88,9 @@ public class DecorationServiceImpl implements DecorationService { RedisUtilPool redisUtilPool; @Resource DecorationDesignInfoDAO decorationDesignInfoDAO; + @Resource + DecorationMeasureDAO decorationMeasureDAO; + @Override public DesignInfoVo DesignInfo(Long shopId) { return null; @@ -349,7 +341,7 @@ public class DecorationServiceImpl implements DecorationService { @Override @Transactional(rollbackFor = Exception.class) public Boolean miniSubmitAcceptanceSign(ThreeAcceptanceRequest request) { - if (!request.miniCheck()){ + if (!request.miniCheck()) { throw new ServiceException(ErrorCodeEnum.THE_DATA_IS_NOT_FILLED); } //加盟商 @@ -383,7 +375,7 @@ public class DecorationServiceImpl implements DecorationService { @Override public PageInfo getFitmentAcceptanceList(AcceptanceListRequest request, LoginUserInfo user) { List regions = new ArrayList<>(); - if ( !sysRoleService.checkIsAdmin(user.getUserId())){ + if (!sysRoleService.checkIsAdmin(user.getUserId())) { List authRegionIds = userAuthMappingService.getAuthRegionIdAndSubRegionIdByUserId(user.getUserId()); for (String authRegionId : authRegionIds) { regions.add(Long.parseLong(authRegionId)); @@ -543,25 +535,57 @@ public class DecorationServiceImpl implements DecorationService { if (Objects.isNull(request) || request.getShopId() == null) { throw new ServiceException(ErrorCodeEnum.PARAMS_REQUIRED); } -// //必须是待提交状态才能提交 -// ShopStageInfoDO shopStageInfo = shopStageInfoDAO.getByShopIdAndSubStage(request.getShopId(), ShopSubStageEnum.SHOP_STAGE_9.getShopSubStage()); -// if (shopStageInfo != null && !ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_90.getShopSubStageStatus().equals(shopStageInfo.getShopSubStageStatus())) { -// throw new ServiceException(ErrorCodeEnum.STATUS_NOT_SUPPORT_SUMMIT); -// } + DecorationDesignInfoDO decorationDesignInfoDO = request.toDecorationDesignInfoDO(); DecorationDesignInfoDO decoration = decorationDesignInfoDAO.getByShopId(request.getShopId()); if (Objects.nonNull(decoration)) { + //更新设计阶段状态 + ShopStageInfoDO subStage = shopStageInfoDAO.getShopSubStageInfo(request.getShopId(), ShopSubStageEnum.SHOP_STAGE_9); + decorationDesignInfoDO.setUpdateTime(new Date()); decorationDesignInfoDO.setId(decoration.getId()); + if (ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_901.getShopSubStageStatus().equals(subStage.getShopSubStageStatus())) { + decorationDesignInfoDO.setDesignSubmitTime(new Date()); + } + if (ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_902.getShopSubStageStatus().equals(subStage.getShopSubStageStatus())) { + decorationDesignInfoDO.setQuotationSubmitTime(new Date()); + } decorationDesignInfoDAO.updateByPrimaryKeySelective(decorationDesignInfoDO); - } else { - decorationDesignInfoDAO.insertSelective(decorationDesignInfoDO); - //更新装修设计状态 - shopStageInfoDAO.updateShopStageInfo(request.getShopId(), ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_905); ShopInfoDO shopInfo = shopInfoDAO.getShopInfo(request.getShopId()); LineInfoDO lineInfo = lineInfoMapper.getByLineId(shopInfo.getLineId()); - Map templateParam = new HashMap<>(); - templateParam.put("shopName", shopInfo.getShopName()); - commonService.sendSms(lineInfo.getMobile(), SMSMsgEnum.DESIGN_STAGE, templateParam); + if (ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_90.getShopSubStageStatus().equals(subStage.getShopSubStageStatus())) { + shopStageInfoDAO.updateShopStageInfo(request.getShopId(), ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_901); + // 给设计师发送企业微信消息 + sendMeasureUserMessage(request.getShopId(), decorationDesignInfoDO.getDesignUserId(), MessageEnum.MESSAGE_55); + return Boolean.TRUE; + } + if (ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_901.getShopSubStageStatus().equals(subStage.getShopSubStageStatus())) { + shopStageInfoDAO.updateShopStageInfo(request.getShopId(), ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_902); + return Boolean.TRUE; + } + if (ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_902.getShopSubStageStatus().equals(subStage.getShopSubStageStatus())) { + shopStageInfoDAO.updateShopStageInfo(request.getShopId(), ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_903); + // 给报价员发送企业微信消息 + sendMeasureUserMessage(request.getShopId(), request.getQuotationUserId(), MessageEnum.MESSAGE_55); + return Boolean.TRUE; + } + //更新设计阶段状态=待确认,装修子流程=待进场 + if (ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_903.getShopSubStageStatus().equals(subStage.getShopSubStageStatus())) { + shopStageInfoDAO.batchUpdateShopStageStatus(request.getShopId(), Arrays.asList(ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_905, ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_110)); + Map templateParam = new HashMap<>(); + templateParam.put("shopName", shopInfo.getShopName()); + commonService.sendSms(lineInfo.getMobile(), SMSMsgEnum.DESIGN_STAGE, templateParam); + // 发送企业微信消息 + sendMeasureUserMessage(request.getShopId(), shopInfo.getInvestmentManager(), MessageEnum.MESSAGE_36); + return Boolean.TRUE; + } + } else { + decorationDesignInfoDO.setCreateTime(new Date()); + decorationDesignInfoDO.setUpdateTime(new Date()); + decorationDesignInfoDAO.insertSelective(decorationDesignInfoDO); + //更新装修设计状态 + shopStageInfoDAO.updateShopStageInfo(request.getShopId(), ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_901); + // 给设计师发送企业微信消息 + sendMeasureUserMessage(request.getShopId(), decorationDesignInfoDO.getDesignUserId(), MessageEnum.MESSAGE_55); } return Boolean.TRUE; } @@ -572,16 +596,29 @@ public class DecorationServiceImpl implements DecorationService { throw new ServiceException(ErrorCodeEnum.PARAMS_REQUIRED); } DecorationDesignInfoDO decoration = decorationDesignInfoDAO.getByShopId(shopId); - if (!Objects.isNull(decoration)) { + if (decoration == null) { + //查询测量阶段的设计组长 + DecorationMeasureDO measureDO = decorationMeasureDAO.getByShopId(shopId); + if (measureDO == null) { + throw new ServiceException(ErrorCodeEnum.SHOP_STAGE_NOT_OPERATE); + } DecorationDesignVO decorationDesignVO = new DecorationDesignVO(); - decorationDesignVO.setDesignUrl(decoration.getDesignUrl()); - decorationDesignVO.setRemark(decoration.getRemark()); - decorationDesignVO.setQuotationUrl(decoration.getQuotationUrl()); - decorationDesignVO.setShopId(decoration.getShopId()); - decorationDesignVO.setPartnerAcceptanceSignatures(decoration.getPartnerAcceptanceSignatures()); + decorationDesignVO.setDesignLeaderId(measureDO.getDesignUserId()); + String userName = enterpriseUserDAO.getUserName(measureDO.getDesignUserId().toString()); + decorationDesignVO.setDesignLeaderName(userName); return decorationDesignVO; } - return null; + DecorationDesignVO decorationDesignVO = BeanUtil.toBean(decoration, DecorationDesignVO.class); + //查询员工名称 + Set userIds = new HashSet<>(); + Optional.ofNullable(decorationDesignVO.getDesignLeaderId()).ifPresent(userIds::add); + Optional.ofNullable(decorationDesignVO.getDesignUserId()).ifPresent(userIds::add); + Optional.ofNullable(decorationDesignVO.getQuotationUserId()).ifPresent(userIds::add); + Map userNameMap = enterpriseUserDAO.getUserNameMap(new ArrayList<>(userIds)); + decorationDesignVO.setDesignLeaderName(userNameMap.get(decorationDesignVO.getDesignLeaderId())); + decorationDesignVO.setQuotationUserName(userNameMap.get(decorationDesignVO.getQuotationUserId())); + decorationDesignVO.setDesignUserName(userNameMap.get(decorationDesignVO.getDesignUserId())); + return decorationDesignVO; } @Override @@ -638,10 +675,10 @@ public class DecorationServiceImpl implements DecorationService { @Transactional(rollbackFor = Exception.class) public Boolean confirmDesign(DecorationDesignRequest request, LoginUserInfo user) { DecorationDesignInfoDO decoration = decorationDesignInfoDAO.getByShopId(request.getShopId()); - if (StringUtils.isBlank(decoration.getQuotationUrl())){ + if (StringUtils.isBlank(decoration.getQuotationUrl())) { throw new ServiceException(ErrorCodeEnum.QUOTATION_URL_REQUIRED); } - if (StringUtils.isBlank(decoration.getDesignUrl())){ + if (StringUtils.isBlank(decoration.getDesignUrl())) { throw new ServiceException(ErrorCodeEnum.DESIGN_URL_REQUIRED); } //重复提交校验 3秒内不能重复提交 @@ -653,20 +690,11 @@ public class DecorationServiceImpl implements DecorationService { } DecorationDesignInfoDO decorationDesignInfoDO = request.toDecorationDesignInfoDO(); if (Objects.nonNull(decoration)) { - decorationDesignInfoDO.setId(decoration.getId()); - decorationDesignInfoDAO.updateByPrimaryKeySelective(decorationDesignInfoDO); + BeanUtil.copyProperties(decorationDesignInfoDO, decoration, "id"); + decorationDesignInfoDAO.updateByPrimaryKeySelective(decoration); } //更新装修设计状态 - shopStageInfoDAO.batchUpdateShopStageStatus(request.getShopId(), Arrays.asList(ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_91, ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_110)); - ShopInfoDO shopInfo = shopInfoDAO.getShopInfo(request.getShopId()); - LineInfoDO lineInfoDO = lineInfoMapper.getByLineId(shopInfo.getLineId()); - HashMap map = new HashMap<>(); - map.put("partnerUsername", lineInfoDO.getUsername()); - map.put("partnerMobile", lineInfoDO.getMobile()); - map.put("storeName", shopInfo.getShopName()); - commonService.sendQWMessage(Collections.singletonList(shopInfo.getInvestmentManager()), - MessageEnum.MESSAGE_36, - map); + shopStageInfoDAO.batchUpdateShopStageStatus(request.getShopId(), Arrays.asList(ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_91)); return Boolean.TRUE; } @@ -698,7 +726,7 @@ public class DecorationServiceImpl implements DecorationService { @Override public Boolean pcSubmitAcceptanceSign(ThreeAcceptanceRequest request) { log.info("submitAcceptance, request:{} ", JSONObject.toJSONString(request)); - if(StringUtils.isAnyBlank(request.getShopDoorwayPhoto(),request.getShopInteriorPhoto())){ + if (StringUtils.isAnyBlank(request.getShopDoorwayPhoto(), request.getShopInteriorPhoto())) { throw new ServiceException(ErrorCodeEnum.THE_DATA_IS_NOT_FILLED); } //营运部 验收签名 @@ -767,6 +795,25 @@ public class DecorationServiceImpl implements DecorationService { return Boolean.TRUE; } + @Override + public Boolean saveDecorationDesign(DecorationDesignRequest request, LoginUserInfo user) { + //校验参数 + if (Objects.isNull(request) || request.getShopId() == null) { + throw new ServiceException(ErrorCodeEnum.PARAMS_REQUIRED); + } + DecorationDesignInfoDO decorationDesignInfoDO = request.toDecorationDesignInfoDO(); + DecorationDesignInfoDO decoration = decorationDesignInfoDAO.getByShopId(request.getShopId()); + if (Objects.nonNull(decoration)) { + decorationDesignInfoDO.setUpdateTime(new Date()); + decorationDesignInfoDO.setId(decoration.getId()); + decorationDesignInfoDAO.updateByPrimaryKeySelective(decorationDesignInfoDO); + } else { + decorationDesignInfoDO.setCreateTime(new Date()); + decorationDesignInfoDO.setUpdateTime(new Date()); + decorationDesignInfoDAO.insertSelective(decorationDesignInfoDO); + } + return Boolean.TRUE; + } private DecorationDTO getDecorationDTO(Long shopId) { ShopInfoDO shopInfo = shopInfoDAO.getShopInfo(shopId); @@ -783,4 +830,25 @@ public class DecorationServiceImpl implements DecorationService { return null; } + /** + * 发送测量消息给测量员 + */ + private void sendMeasureUserMessage(Long shopId, String userId, MessageEnum messageEnum) { + // 获取商店信息 + ShopInfoDO shopInfo = shopInfoDAO.getShopInfo(shopId); + LineInfoDO lineInfo = lineInfoMapper.getByLineId(shopInfo.getLineId()); + if (shopInfo == null) { + throw new ServiceException(ErrorCodeEnum.SHOP_NOT_EXIST); + } + HashMap map = new HashMap<>(4); + map.put("partnerUsername", lineInfo.getUsername()); + map.put("partnerMobile", lineInfo.getMobile()); + map.put("storeName", shopInfo.getShopName()); + commonService.sendQWMessage( + Collections.singletonList(userId), + messageEnum, + map + ); + } + } diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/DeskServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/DeskServiceImpl.java index bd18654e1..a03b492ff 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/DeskServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/DeskServiceImpl.java @@ -3,9 +3,9 @@ package com.cool.store.service.impl; import cn.hutool.core.bean.BeanUtil; import com.cool.store.context.LoginUserInfo; import com.cool.store.dao.*; +import com.cool.store.dto.DeskStageDTO; import com.cool.store.dto.InvestmentCountDTO; import com.cool.store.dto.PendingCountDTO; -import com.cool.store.dto.DeskStageDTO; import com.cool.store.dto.openPreparation.PlanLineDTO; import com.cool.store.entity.*; import com.cool.store.enums.UserRoleEnum; @@ -25,7 +25,10 @@ import com.cool.store.utils.StringUtil; import com.cool.store.utils.poi.DateUtils; import com.cool.store.vo.BaseInfoVO; import com.cool.store.vo.LabelBaseInfoVO; -import com.cool.store.vo.desk.*; +import com.cool.store.vo.desk.IntendPendingVO; +import com.cool.store.vo.desk.PayStagePendingVO; +import com.cool.store.vo.desk.PreparationCommonPendingVO; +import com.cool.store.vo.desk.SigningPendingVO; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import org.apache.commons.collections4.CollectionUtils; @@ -386,23 +389,26 @@ public class DeskServiceImpl implements DeskService { @Override public PageInfo designPendingList(Integer pageNum, Integer pageSize, LoginUserInfo user) { - PageInfo pageInfo = commonPendingVOPageInfo(pageNum, pageSize, user, ShopSubStageEnum.SHOP_STAGE_9, - Arrays.asList(SHOP_SUB_STAGE_STATUS_90.getShopSubStageStatus()), Boolean.TRUE); - List list = pageInfo.getList(); - if (CollectionUtils.isEmpty(list)) { - return pageInfo; + List userRoleIds = enterpriseUserRoleMapper.getUserRoleIds(user.getUserId()); + List subStageStatusList = new ArrayList<>(); + if (userRoleIds.contains(UserRoleEnum.HEAD_OF_DESIGN.getCode())) { + subStageStatusList.add(ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_90.getShopSubStageStatus()); } - List shopIds = list.stream().map(PreparationCommonPendingVO::getShopId).collect(Collectors.toList()); - Map> deskStageMap = new HashMap<>(); - List subStageList = shopStageInfoDAO.getSubStages(shopIds, ShopSubStageEnum.SHOP_STAGE_8.getShopSubStage()); - doThing(deskStageMap, subStageList); - for (PreparationCommonPendingVO vo : list) { - if (deskStageMap.get(vo.getShopId()) != null) { - vo.setSubmitTime(deskStageMap.get(vo.getShopId()).get(0).getActualCompleteTime()); - } + if (userRoleIds.contains(UserRoleEnum.DESIGN_CUSTOMER.getCode())) { + subStageStatusList.add(ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_901.getShopSubStageStatus()); } - pageInfo.setList(list); - return pageInfo; + if (userRoleIds.contains(UserRoleEnum.QUOTATION_OFFICE.getCode())) { + subStageStatusList.add(ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_902.getShopSubStageStatus()); + subStageStatusList.add(ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_903.getShopSubStageStatus()); + } + Boolean isAdmin = sysRoleService.checkIsAdmin(user.getUserId()); + if (isAdmin) { + subStageStatusList.add(ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_90.getShopSubStageStatus()); + subStageStatusList.add(ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_901.getShopSubStageStatus()); + subStageStatusList.add(ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_902.getShopSubStageStatus()); + subStageStatusList.add(ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_903.getShopSubStageStatus()); + } + return commonPendingVOPageInfo(pageNum, pageSize, isAdmin ? null : user, ShopSubStageEnum.SHOP_STAGE_9, subStageStatusList, isAdmin ? Boolean.FALSE : Boolean.TRUE); } @Override @@ -504,27 +510,44 @@ public class DeskServiceImpl implements DeskService { } if (userRoleIds.contains(UserRoleEnum.FINANCE.getCode())) { subStageStatusList.add(ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_152.getShopSubStageStatus()); - } + } if (userRoleIds.contains(UserRoleEnum.HEAD_OF_DIVISION.getCode()) || userRoleIds.contains(UserRoleEnum.REGIONAL_MANAGER.getCode())) { subStageStatusList.add(ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_153.getShopSubStageStatus()); } - if (userRoleIds.contains(UserRoleEnum.VICE_PRESIDENT_IN_CHARGE.getCode()) ) { + if (userRoleIds.contains(UserRoleEnum.VICE_PRESIDENT_IN_CHARGE.getCode())) { subStageStatusList.add(ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_154.getShopSubStageStatus()); } - if (userRoleIds.contains(UserRoleEnum.PRESIDENT.getCode()) ) { + if (userRoleIds.contains(UserRoleEnum.PRESIDENT.getCode())) { subStageStatusList.add(ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_155.getShopSubStageStatus()); } Boolean isAdmin = sysRoleService.checkIsAdmin(user.getUserId()); - if(isAdmin){ + if (isAdmin) { subStageStatusList.add(ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_151.getShopSubStageStatus()); subStageStatusList.add(ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_152.getShopSubStageStatus()); subStageStatusList.add(ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_153.getShopSubStageStatus()); subStageStatusList.add(ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_154.getShopSubStageStatus()); subStageStatusList.add(ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_155.getShopSubStageStatus()); } - return commonPendingVOPageInfo(pageNum, pageSize, isAdmin?null:user, ShopSubStageEnum.SHOP_STAGE_15, subStageStatusList, isAdmin?Boolean.FALSE:Boolean.TRUE); + return commonPendingVOPageInfo(pageNum, pageSize, isAdmin ? null : user, ShopSubStageEnum.SHOP_STAGE_15, subStageStatusList, isAdmin ? Boolean.FALSE : Boolean.TRUE); } + @Override + public PageInfo measurePendingList(Integer pageNum, Integer pageSize, LoginUserInfo user) { + List userRoleIds = enterpriseUserRoleMapper.getUserRoleIds(user.getUserId()); + List subStageStatusList = new ArrayList<>(); + if (userRoleIds.contains(UserRoleEnum.CONSTRUCTION_CUSTOMER.getCode())) { + subStageStatusList.add(ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_861.getShopSubStageStatus()); + } + if (userRoleIds.contains(UserRoleEnum.MEASURE_OFFICE.getCode())) { + subStageStatusList.add(ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_862.getShopSubStageStatus()); + } + Boolean isAdmin = sysRoleService.checkIsAdmin(user.getUserId()); + if (isAdmin) { + subStageStatusList.add(ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_861.getShopSubStageStatus()); + subStageStatusList.add(ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_862.getShopSubStageStatus()); + } + return commonPendingVOPageInfo(pageNum, pageSize, isAdmin ? null : user, ShopSubStageEnum.SHOP_STAGE_8_6, subStageStatusList, isAdmin ? Boolean.FALSE : Boolean.TRUE); + } /** * 通用查询 diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/PreparationServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/PreparationServiceImpl.java index 886680648..308bd1984 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/PreparationServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/PreparationServiceImpl.java @@ -204,7 +204,7 @@ public class PreparationServiceImpl implements PreparationService { list.add(ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_30); list.add(ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_40); list.add(ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_85_1); - list.add(ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_90); + list.add(ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_861); list.add(ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_140); list.add(ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_150); shopStageInfoDAO.batchUpdateShopStageStatus(shopId, list); diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/SignFranchiseServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/SignFranchiseServiceImpl.java index b19c45340..40108236a 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/SignFranchiseServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/SignFranchiseServiceImpl.java @@ -192,9 +192,9 @@ public class SignFranchiseServiceImpl implements SignFranchiseService, AuditResu if (Objects.nonNull(userDOList)) { finances.addAll(userDOList.stream().map(EnterpriseUserDO::getUserId).collect(Collectors.toList())); } - commonService.sendQWMessage(finances, - MessageEnum.MESSAGE_34, - map); +// commonService.sendQWMessage(finances, +// MessageEnum.MESSAGE_34, +// map); commonService.sendQWMessage(Collections.singletonList(shopInfoDO.getInvestmentManager()), MessageEnum.MESSAGE_35, map); diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/UserAuthMappingServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/UserAuthMappingServiceImpl.java index 9a9317ea2..cca76a2d5 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/UserAuthMappingServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/UserAuthMappingServiceImpl.java @@ -1,8 +1,12 @@ package com.cool.store.service.impl; +import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.StrUtil; import com.cool.store.constants.CommonConstants; +import com.cool.store.context.CurrentUserHolder; +import com.cool.store.context.LoginUserInfo; import com.cool.store.dao.EnterpriseUserDAO; +import com.cool.store.dao.EnterpriseUserRoleDao; import com.cool.store.dao.RegionAreaConfigDao; import com.cool.store.dto.UserDTO; import com.cool.store.entity.*; @@ -11,6 +15,7 @@ import com.cool.store.exception.ServiceException; import com.cool.store.mapper.RegionMapper; import com.cool.store.mapper.SysRoleMapper; import com.cool.store.mapper.UserAuthMappingMapper; +import com.cool.store.request.SysRoleRequest; import com.cool.store.service.UserAuthMappingService; import com.cool.store.utils.RedisConstantUtil; import com.cool.store.utils.RedisUtilPool; @@ -71,6 +76,10 @@ public class UserAuthMappingServiceImpl implements UserAuthMappingService { @Value("${spring.profiles.active}") private String active; + @Resource + private EnterpriseUserRoleDao enterpriseUserRoleDao; + + @Override public List listUserAuthMappingByUserId(String userId) { if (StringUtils.isBlank(userId)) { @@ -305,7 +314,7 @@ public class UserAuthMappingServiceImpl implements UserAuthMappingService { @Override public String getShopManagerUserId() { Boolean isOnline = active.equals(CommonConstants.HD_ENV) || active.equals(CommonConstants.ONLINE_ENV); - return isOnline ? CommonConstants.DEAULT_SHOP_MANAGER_USER_ID_ONLINE : CommonConstants.DEAULT_SHOP_MANAGER_USER_ID_TEST; + return isOnline ? CommonConstants.DEAULT_SHOP_MANAGER_USER_ID_ONLINE : CommonConstants.DEAULT_SHOP_MANAGER_USER_ID_TEST; } // 查找有战区权限的人 @@ -399,11 +408,11 @@ public class UserAuthMappingServiceImpl implements UserAuthMappingService { private String getDefaultJobnumber(UserRoleEnum userRoleEnum) { Boolean isOnline = active.equals(CommonConstants.HD_ENV) || active.equals(CommonConstants.ONLINE_ENV); // 如果找不到招商专员,则分配给默认的招商经理 - if (UserRoleEnum.INVESTMENT_COMMISSIONER.equals(userRoleEnum)|| UserRoleEnum.STRONG_INVESTMENT_COMMISSIONER.equals(userRoleEnum)) { - return isOnline ? CommonConstants.DEAULT_INVESTMENT_JOBNUMBER_ONLINE : CommonConstants.DEAULT_INVESTMENT_JOBNUMBER_TEST; + if (UserRoleEnum.INVESTMENT_COMMISSIONER.equals(userRoleEnum) || UserRoleEnum.STRONG_INVESTMENT_COMMISSIONER.equals(userRoleEnum)) { + return isOnline ? CommonConstants.DEAULT_INVESTMENT_JOBNUMBER_ONLINE : CommonConstants.DEAULT_INVESTMENT_JOBNUMBER_TEST; } else if (UserRoleEnum.SELECT_SITE_COMMISSIONER.equals(userRoleEnum)) { // 如果找不到选址专员,则分配给默认的选址经理 - return isOnline ? CommonConstants.DEAULT_SELECT_SITE_MANAGER_ONLINE : CommonConstants.DEAULT_SELECT_SITE_MANAGER_TEST; + return isOnline ? CommonConstants.DEAULT_SELECT_SITE_MANAGER_ONLINE : CommonConstants.DEAULT_SELECT_SITE_MANAGER_TEST; } return null; } @@ -420,32 +429,32 @@ public class UserAuthMappingServiceImpl implements UserAuthMappingService { List bigRegions = regionByRegionIds.stream().filter(item -> Constants.ONE_STRING.equals(item.getThirdRegionType())).collect(Collectors.toList()); RegionDO fightRegion = new RegionDO(); RegionDO bigRegion = new RegionDO(); - if (CollectionUtils.isNotEmpty(fightRegions)){ + if (CollectionUtils.isNotEmpty(fightRegions)) { fightRegion = fightRegions.get(0); } - if (CollectionUtils.isNotEmpty(bigRegions)){ + if (CollectionUtils.isNotEmpty(bigRegions)) { bigRegion = bigRegions.get(0); } try { - if (Objects.isNull(supervisionUser)){ + if (Objects.isNull(supervisionUser)) { //战区经理 EnterpriseUserDO theaterManager = getUserByRoleEnumAndRegionId(UserRoleEnum.THEATER_MANAGER, fightRegion.getId()); - if (Objects.isNull(theaterManager)){ + if (Objects.isNull(theaterManager)) { //大区总 EnterpriseUserDO regionManager = getUserByRoleEnumAndRegionId(UserRoleEnum.REGION_MANAGER, bigRegion.getId()); - if (Objects.isNull(regionManager)){ + if (Objects.isNull(regionManager)) { EnterpriseUserDO userInfoByJobnumber = enterpriseUserDAO.getUserInfoByJobnumber(Constants.WANG_LEI_JOB_NUMBER); - if (Objects.isNull(userInfoByJobnumber)){ + if (Objects.isNull(userInfoByJobnumber)) { throw new ServiceException("找不到督导"); - }else { + } else { return userInfoByJobnumber; } } } return theaterManager; } - }catch (Exception e){ - log.error("hierarchicalSearch errorMessage:{}",e.getMessage()); + } catch (Exception e) { + log.error("hierarchicalSearch errorMessage:{}", e.getMessage()); throw new ServiceException(ErrorCodeEnum.UNKNOWN); } @@ -454,11 +463,33 @@ public class UserAuthMappingServiceImpl implements UserAuthMappingService { @Override public PageInfo getAllUser(String keyword, Integer pageNum, Integer pageSize) { - PageHelper.startPage(pageNum,pageSize); + PageHelper.startPage(pageNum, pageSize); List allUser = enterpriseUserDAO.getAllUser(eid, keyword); return new PageInfo<>(allUser); } + @Override + public List findUserListByRole(SysRoleRequest request) { + UserRoleEnum userRoleEnum = UserRoleEnum.getByDesc(request.getRoleName()); + List hasRoleUserIdList = enterpriseUserRoleDao.selectUserIdsByRoleIdList(Collections.singletonList(userRoleEnum.getCode())); + if (CollectionUtils.isEmpty(hasRoleUserIdList)) { + return new ArrayList<>(); + } + if (CollectionUtils.isNotEmpty(hasRoleUserIdList)) { + List userDOList = enterpriseUserDAO.findUserInfoByUserIdsAndKeyword(hasRoleUserIdList, request.getKeyword()); + if (CollUtil.isEmpty(userDOList)) { + return new ArrayList<>(); + } + // 报价员只能看到自己 + if (UserRoleEnum.QUOTATION_OFFICE.getDesc().equals(request.getRoleName())) { + LoginUserInfo userInfo = CurrentUserHolder.getUser(); + return userDOList.stream().filter(row -> row.getUserId().equals(userInfo.getUserId())).collect(Collectors.toList()); + } + return userDOList; + } + return new ArrayList<>(); + } + private List extractNumbers(String regionPath) { List regionIds = new ArrayList<>(); Pattern pattern = Pattern.compile("\\d+"); diff --git a/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/DeskController.java b/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/DeskController.java index 33a2cff3d..9cc187441 100644 --- a/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/DeskController.java +++ b/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/DeskController.java @@ -205,5 +205,11 @@ public class DeskController { return ResponseResult.success(deskService.buildInformationPendingList(pageNumber,pageSize,userInfo)); } - + @ApiOperation("待处理-测量阶段") + @GetMapping("/measurePendingList") + public ResponseResult> measurePendingList(@RequestParam(value = "pageNumber",required = true,defaultValue = "1")Integer pageNumber, + @RequestParam(value = "pageSize",required = true,defaultValue = "10")Integer pageSize) { + LoginUserInfo userInfo = CurrentUserHolder.getUser(); + return ResponseResult.success(deskService.measurePendingList(pageNumber,pageSize,userInfo)); + } } diff --git a/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/PCDecorationController.java b/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/PCDecorationController.java index 55e3ca2df..a00024554 100644 --- a/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/PCDecorationController.java +++ b/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/PCDecorationController.java @@ -2,21 +2,17 @@ package com.cool.store.controller.webb; import com.cool.store.context.CurrentUserHolder; import com.cool.store.context.LoginUserInfo; - import com.cool.store.dto.decoration.ConstructionScheduleDTO; import com.cool.store.entity.ShopAuditInfoDO; import com.cool.store.request.*; import com.cool.store.response.ResponseResult; import com.cool.store.response.ThreeSignResponse; +import com.cool.store.service.DecorationMeasureService; import com.cool.store.service.DecorationService; import com.cool.store.service.PreparationService; import com.cool.store.service.SeeAcceptanceService; -import com.cool.store.vo.ConstructionDataVO; -import com.cool.store.vo.DecorationDesignVO; +import com.cool.store.vo.*; import com.cool.store.vo.Fitment.DesignInfoVo; -import com.cool.store.vo.LinePayVO; - -import com.cool.store.vo.fitmentCheckVO; import com.github.pagehelper.PageInfo; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -44,116 +40,157 @@ public class PCDecorationController { private PreparationService preparationService; @Resource private SeeAcceptanceService seeAcceptanceService; + @Resource + private DecorationMeasureService decorationMeasureService; + @ApiOperation("获取新店装修flush") @GetMapping("/flush") public ResponseResult getFitmentSub(@RequestParam Long shopId) { return ResponseResult.success(preparationService.decorationFlush(shopId)); } + @ApiOperation("获取设计子阶段信息") @GetMapping("/designSub") - public ResponseResult getDesignSub(@RequestParam Long shopId){ - return ResponseResult.success( decorationService.DesignInfo(shopId)) ; + public ResponseResult getDesignSub(@RequestParam Long shopId) { + return ResponseResult.success(decorationService.DesignInfo(shopId)); } @ApiOperation("获取施工子阶段信息") @GetMapping("/getConstructionSub") - public ResponseResult> getConstructionSub(@RequestParam Long shopId){ - return ResponseResult.success(decorationService.getConstruction(shopId)) ; + public ResponseResult> getConstructionSub(@RequestParam Long shopId) { + return ResponseResult.success(decorationService.getConstruction(shopId)); } + @ApiOperation("获取装修款信息") @GetMapping("/getDecorationModelInfo") - public ResponseResult getDecorationModelInfo(@RequestParam Long shopId){ - return ResponseResult.success(decorationService.getDecorationModel(shopId,null)); + public ResponseResult getDecorationModelInfo(@RequestParam Long shopId) { + return ResponseResult.success(decorationService.getDecorationModel(shopId, null)); } + @ApiOperation("获取验收列表:三方验收1200待预约,1210 待验收,1220验收中,1230已验收;视觉验收:1300待验收,1310验收不通过,1320验收通过") @PostMapping("/getAcceptanceList") - public ResponseResult> getAcceptanceList(@RequestBody AcceptanceListRequest request){ + public ResponseResult> getAcceptanceList(@RequestBody AcceptanceListRequest request) { LoginUserInfo user = CurrentUserHolder.getUser(); - return ResponseResult.success(decorationService.getFitmentAcceptanceList(request,user)); + return ResponseResult.success(decorationService.getFitmentAcceptanceList(request, user)); } + @ApiOperation("获取三方验收列表详情") @GetMapping("/getAcceptanceDetail") - public ResponseResult getAcceptanceDetail(@RequestParam("shopId") Long shopId){ + public ResponseResult getAcceptanceDetail(@RequestParam("shopId") Long shopId) { LoginUserInfo user = CurrentUserHolder.getUser(); - return ResponseResult.success(decorationService.getAcceptanceDetail(shopId,user)); + return ResponseResult.success(decorationService.getAcceptanceDetail(shopId, user)); } + @ApiOperation("预约三方验收") @PostMapping("/bookingAcceptance") - public ResponseResult submitBookingAcceptance(@RequestBody BookingAcceptanceRequest response){ + public ResponseResult submitBookingAcceptance(@RequestBody BookingAcceptanceRequest response) { LoginUserInfo user = CurrentUserHolder.getUser(); - return ResponseResult.success(decorationService.bookingAcceptance(response,user)); + return ResponseResult.success(decorationService.bookingAcceptance(response, user)); } + @ApiOperation("获取三方验收检查项") @GetMapping("/getAcceptanceChecks") - public ResponseResult getAcceptanceChecks(@RequestParam Long shopId){ + public ResponseResult getAcceptanceChecks(@RequestParam Long shopId) { return ResponseResult.success(decorationService.getThreeChecks(shopId)); } + @ApiOperation("提交三方验收签字") @PostMapping("/submitThreeAcceptanceSign") - public ResponseResult submitThreeAcceptanceSign(@RequestBody @Validated ThreeAcceptanceRequest request){ + public ResponseResult submitThreeAcceptanceSign(@RequestBody @Validated ThreeAcceptanceRequest request) { return ResponseResult.success(decorationService.pcSubmitAcceptanceSign(request)); } + @ApiOperation("查看三方验收签字") @GetMapping("/getThreeSign") - public ResponseResult getThreeAcceptance(@RequestParam Long shopId){ + public ResponseResult getThreeAcceptance(@RequestParam Long shopId) { return ResponseResult.success(decorationService.getThreeAcceptanceSign(shopId)); } + @ApiOperation("获取视觉验收撤场数据") @GetMapping("/getSeeAcceptanceWithdrawal") - public ResponseResult getSeeAcceptanceWithdrawal(@RequestParam Long shopId){ + public ResponseResult getSeeAcceptanceWithdrawal(@RequestParam Long shopId) { return ResponseResult.success(seeAcceptanceService.getWithdrawal(shopId)); } + @ApiOperation("视觉验收列表") @PostMapping("/getSeeAcceptanceList") - public ResponseResult< PageInfo> getSeeAcceptanceList(@RequestBody AcceptanceListRequest request){ + public ResponseResult> getSeeAcceptanceList(@RequestBody AcceptanceListRequest request) { LoginUserInfo user = CurrentUserHolder.getUser(); - return ResponseResult.success(seeAcceptanceService.getAcceptanceList(request,user)); + return ResponseResult.success(seeAcceptanceService.getAcceptanceList(request, user)); } + @ApiOperation("获取撤场数据") @GetMapping("/getWithdrawal") - public ResponseResult getWithdrawal(@RequestParam Long shopId){ + public ResponseResult getWithdrawal(@RequestParam Long shopId) { return ResponseResult.success(seeAcceptanceService.getWithdrawal(shopId)); } + @ApiOperation("获取视觉验收审核数据") @GetMapping("/getSeeAuditInfo") - public ResponseResult< List > getAuditInfo(@RequestParam Long shopId){ + public ResponseResult> getAuditInfo(@RequestParam Long shopId) { return ResponseResult.success(seeAcceptanceService.getAuditInfo(shopId)); } + @ApiOperation("验收视觉验收") @PostMapping("/auditSee") - public ResponseResult auditSee(@RequestBody SeeAcceptanceRequest request){ + public ResponseResult auditSee(@RequestBody SeeAcceptanceRequest request) { LoginUserInfo user = CurrentUserHolder.getUser(); - return ResponseResult.success(seeAcceptanceService.auditSeeAcceptance(request,user)); + return ResponseResult.success(seeAcceptanceService.auditSeeAcceptance(request, user)); } @ApiOperation("提交设计方案") @PostMapping("/submitDecorationDesign") - public ResponseResult submitDecorationDesign(@RequestBody DecorationDesignRequest request){ - return ResponseResult.success(decorationService.submitDecorationDesign(request,CurrentUserHolder.getUser())); + public ResponseResult submitDecorationDesign(@RequestBody DecorationDesignRequest request) { + return ResponseResult.success(decorationService.submitDecorationDesign(request, CurrentUserHolder.getUser())); } @ApiOperation("查询设计方案") @GetMapping("/getDecorationDesign") - public ResponseResult getDecorationDesign(@RequestParam Long shopId){ + public ResponseResult getDecorationDesign(@RequestParam Long shopId) { return ResponseResult.success(decorationService.getDecorationDesign(shopId)); } @ApiOperation("提交施工方案") @PostMapping("/submitConstructionData") - public ResponseResult submitConstructionData(@RequestBody ConstructionRequest request){ - return ResponseResult.success(decorationService.submitConstructionData(request,CurrentUserHolder.getUser())); + public ResponseResult submitConstructionData(@RequestBody ConstructionRequest request) { + return ResponseResult.success(decorationService.submitConstructionData(request, CurrentUserHolder.getUser())); } @ApiOperation("查询施工方案") @GetMapping("/getConstructionData") - public ResponseResult getConstructionData(@RequestParam Long shopId){ + public ResponseResult getConstructionData(@RequestParam Long shopId) { return ResponseResult.success(decorationService.getConstructionData(shopId)); } @ApiOperation("装修阶段完成") @PostMapping("/confirmComplete") - public ResponseResult confirmComplete(@RequestBody DecorationDesignRequest request){ - return ResponseResult.success(decorationService.confirmComplete(request.getShopId(),CurrentUserHolder.getUser())); + public ResponseResult confirmComplete(@RequestBody DecorationDesignRequest request) { + return ResponseResult.success(decorationService.confirmComplete(request.getShopId(), CurrentUserHolder.getUser())); + } + + @ApiOperation("查询测量方案") + @GetMapping("/getDecorationMeasure/{shopId}") + public ResponseResult getDecorationMeasure(@PathVariable Long shopId) { + return ResponseResult.success(decorationMeasureService.getDecorationMeasureByShopId(shopId)); + } + + @ApiOperation("保存测量方案") + @PostMapping("/saveDecorationMeasure") + public ResponseResult saveDecorationMeasure(@Validated @RequestBody DecorationMeasureRequest request) { + return ResponseResult.success(decorationMeasureService.saveDecorationMeasure(request)); + } + + @ApiOperation("提交测量方案") + @PostMapping("/submitDecorationMeasure") + public ResponseResult submitDecorationMeasure(@Validated @RequestBody DecorationMeasureRequest request) { + return ResponseResult.success(decorationMeasureService.submitDecorationMeasure(request)); + } + + @ApiOperation("保存设计方案") + @PostMapping("/saveDecorationDesign") + public ResponseResult saveDecorationDesign(@Validated @RequestBody DecorationDesignRequest request) { + LoginUserInfo user = CurrentUserHolder.getUser(); + return ResponseResult.success(decorationService.saveDecorationDesign(request, user)); } } diff --git a/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/SysRoleController.java b/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/SysRoleController.java index f04e3fd88..335714e77 100644 --- a/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/SysRoleController.java +++ b/coolstore-partner-web/src/main/java/com/cool/store/controller/webb/SysRoleController.java @@ -2,6 +2,7 @@ package com.cool.store.controller.webb; import com.cool.store.entity.EnterpriseUserDO; import com.cool.store.enums.UserRoleEnum; +import com.cool.store.request.SysRoleRequest; import com.cool.store.response.ResponseResult; import com.cool.store.service.SysRoleService; import com.cool.store.service.UserAuthMappingService; @@ -9,10 +10,7 @@ import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import java.util.Arrays; @@ -47,4 +45,10 @@ public class SysRoleController { UserRoleEnum userRoleEnum = UserRoleEnum.getByDesc(roleName); return ResponseResult.success(userAuthMappingService.getUserByRoleEnumAndRegionId(userRoleEnum, regionId)); } + + @PostMapping(path = "/findUserListByRole") + @ApiOperation("根据角色获取用户") + public ResponseResult> findUserListByRole(@RequestBody SysRoleRequest request) { + return ResponseResult.success(userAuthMappingService.findUserListByRole(request)); + } } diff --git a/coolstore-partner-web/src/main/java/com/cool/store/controller/webc/MiniDecorationController.java b/coolstore-partner-web/src/main/java/com/cool/store/controller/webc/MiniDecorationController.java index c98d52621..6fc62bd93 100644 --- a/coolstore-partner-web/src/main/java/com/cool/store/controller/webc/MiniDecorationController.java +++ b/coolstore-partner-web/src/main/java/com/cool/store/controller/webc/MiniDecorationController.java @@ -14,6 +14,7 @@ import com.cool.store.response.ResponseResult; import com.cool.store.response.ThreeSignResponse; import com.cool.store.service.AssessmentTemplateService; +import com.cool.store.service.DecorationMeasureService; import com.cool.store.service.DecorationService; import com.cool.store.service.SeeAcceptanceService; import com.cool.store.vo.*; @@ -45,6 +46,8 @@ public class MiniDecorationController { private AssessmentTemplateService assessmentTemplateService; @Resource private SeeAcceptanceService seeAcceptanceService; + @Resource + private DecorationMeasureService decorationMeasureService; @ApiOperation("获取设计阶段子阶段信息") @GetMapping("/designSub") public ResponseResult getDesign(@RequestParam Long shopId){ @@ -131,5 +134,9 @@ public class MiniDecorationController { return ResponseResult.success(decorationService.confirmDesign(request,CurrentUserHolder.getUser())); } - + @ApiOperation("查询测量方案") + @GetMapping("/getDecorationMeasure") + public ResponseResult getDecorationMeasure(@RequestParam Long shopId){ + return ResponseResult.success(decorationMeasureService.getDecorationMeasureByShopId(shopId)); + } } diff --git a/coolstore-partner-web/src/main/java/com/cool/store/controller/webc/TestController.java b/coolstore-partner-web/src/main/java/com/cool/store/controller/webc/TestController.java index c9b86b8f7..1c17c6db7 100644 --- a/coolstore-partner-web/src/main/java/com/cool/store/controller/webc/TestController.java +++ b/coolstore-partner-web/src/main/java/com/cool/store/controller/webc/TestController.java @@ -23,6 +23,8 @@ import com.cool.store.service.*; import com.cool.store.utils.poi.ExcelUtil; import com.cool.store.utils.poi.StringUtils; import com.cool.store.vo.RegionPathNameVO; +import io.swagger.annotations.ApiModelProperty; +import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; @@ -33,6 +35,7 @@ import java.time.LocalDate; import java.time.LocalTime; import java.time.temporal.ChronoUnit; import java.util.ArrayList; +import java.util.Arrays; import java.util.HashMap; import java.util.List; import java.util.concurrent.Future; @@ -257,6 +260,62 @@ public class TestController { } + @ApiModelProperty("装修阶段数据处理") + @GetMapping("/decorationStageDataHandler") + public ResponseResult decorationStageDataHandler(){ + //查询设计阶段 + List subStages = shopStageInfoDAO.getSubStages(ShopSubStageEnum.SHOP_STAGE_9.getShopSubStage()); + //已经含有测量阶段 + List existSubStages = shopStageInfoDAO.getSubStages(ShopSubStageEnum.SHOP_STAGE_8_6.getShopSubStage()); + + List shopIds = existSubStages.stream().map(ShopStageInfoDO::getShopId).collect(Collectors.toList()); + List list = new ArrayList<>(); + List updateList = new ArrayList<>(); + for (ShopStageInfoDO x : subStages) { + if (shopIds.contains(x.getShopId())) { + log.info("已存在"); + continue; + } + ShopStageInfoDO shopStageInfo = new ShopStageInfoDO(); + shopStageInfo.setLineId(x.getLineId()); + shopStageInfo.setShopId(x.getShopId()); + ShopStageEnum shopStageEnum = ShopStageEnum.SHOP_STAGE_2; + shopStageInfo.setShopStage(shopStageEnum.getShopStage()); + ShopSubStageEnum shopSubStageEnum = ShopSubStageEnum.SHOP_STAGE_8_6; + shopStageInfo.setShopSubStage(shopSubStageEnum.getShopSubStage()); + + /** + * 原设计阶段为【已完成】或者【待确认】测量阶段为【已完成】 + * 原设计阶段为【待上传】,将设计阶段回退到【未开始】,测量阶段为【待分配测量员、设计组】 + * 原设计阶段为【未开始】,测量阶段为【未开始】 + */ + ShopSubStageStatusEnum initStatus = ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_00; + if (x.getShopSubStageStatus()==900){ + //当前状态回退 测量阶段为【待分配测量员、设计组】 + initStatus = ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_861; + x.setShopSubStageStatus(ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_00.getShopSubStageStatus()); + x.setRemark("设计阶段" + CommonConstants.PATH_BAR + ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_00.getShopSubStageStatusName()); + shopStageInfoDAO.updateByPrimaryKeySelective(x); + }else if (x.getShopSubStageStatus()==905||x.getShopSubStageStatus()==910){ + //测量阶段已完成 + initStatus = ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_863; + } + shopStageInfo.setShopSubStageStatus(initStatus.getShopSubStageStatus()); + shopStageInfo.setRemark(shopSubStageEnum.getShopSubStageName() + CommonConstants.PATH_BAR + initStatus.getShopSubStageStatusName()); + shopStageInfo.setIsTerminated(initStatus.isTerminated()); + LocalDate localDate = LocalDate.parse(x.getPlanCompleteTime()).plusDays(-1); + shopStageInfo.setPlanCompleteTime(shopSubStageEnum.getPlanCompleteTime(localDate)); + list.add(shopStageInfo); + } + log.info("list:{}",JSONObject.toJSONString(list)); + shopStageInfoDAO.batchInsert(list); + return ResponseResult.success(); + } + + + + + @Resource PointService pointService; @Resource