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

This commit is contained in:
zhangchenbiao
2024-04-30 09:35:08 +08:00
53 changed files with 1552 additions and 935 deletions

View File

@@ -20,7 +20,7 @@ public class CommonConstants {
public static final int ACCESS_TOKEN_EXPIRE = 14400;
public static final int THREE_DAY_SECONDS = 60*60*24*3;
public static final int THREE_DAY_SECONDS = 60 * 60 * 24 * 3;
public static final int NORMAL_LOCK_TIMES = 60 * 1000;
@@ -108,8 +108,8 @@ public class CommonConstants {
public static final int ONE_THOUSAND = 1000;
public static final int FIFTY_FIVE = 55;
public static final int SIXTY_FIVE = 65;
public static final int MIN_CODE = 10000000;
public static final int MAX_CODE = 89999999;
public static final int MIN_CODE = 10000000;
public static final int MAX_CODE = 89999999;
public static final String ONE_STR = "1";
@@ -123,23 +123,22 @@ public class CommonConstants {
public static final String NINE_STR = "9";
public static final String TEN_STR = "10";
public static final String FOLLOW = "follow";
public static final String PENDING = "pending";
public static final String FOLLOW = "follow";
public static final String PENDING = "pending";
public static final String CLOSE = "close";
public static final String OPEN = "open";
public static final String CLOSE = "close";
public static final String OPEN = "open";
public static final String ALLOCATION = "allocation";
public static final String ALLOCATION = "allocation";
public static final String TRANSFER = "transfer";
public static final String TRANSFER = "transfer";
// 短信模版-意向申请审批通过
public static final String SMS_TEMPLATE_CODE_INTENT = "SMS_461990823";
public static final String SMS_TEMPLATE_CODE_INTENT = "SMS_461990823";
// 短信模版-资质审核通过
public static final String SMS_TEMPLATE_CODE_VERIFY = "SMS_461980876";
public static final String SMS_TEMPLATE_CODE_VERIFY = "SMS_461980876";
public static final String DAY_END_TIME_SUFFIX = " 23:59:59";
@@ -157,4 +156,21 @@ public class CommonConstants {
public static final int MAX_LENGTH_ONE_HUNDRED = 100;
public static final String YUN_XUE_TANG_SUC_CODE = "10000";
//鲜丰
//设计阶段+施工阶段
public static final String CONSTRUCTION_PHASE = "施工阶段";
public static final String MEASURING_THE_ROOM = "量房";
public static final String CONSTRUCTION_DRAWING = "施工图+预算";
public static final String FLOOR_PLAN = "平面图+门头效果图";
public static final String APPROACH="进场";
public static final String ONE_DAY="第一天-进场拆除、基础材料下单、物料设备下单";
public static final String TWO_DAY="第二天-水电预埋、地砖铺贴";
public static final String THREE_DAY="第三天-橱窗隔断、木工包柱、电工布线";
public static final String FOUR_DAY="第四天-护墙板安装、空调安装";
public static final String FIVE_DAY="第五天-吊顶隔断、木工铝塑板";
public static final String SIX_DAY="第六天-灯具安装、室内广告安装、冷柜安装、道具卸货";
public static final String SEVEN_DAY="第七天-道具安装、室外招牌安装";
public static final String EIGHT_DAY="第八天-卫生保洁、网络及收银设备安装、撤场交接";
public static final String WITHDRAWAL="撤场";
}

View File

@@ -169,6 +169,10 @@ public enum ErrorCodeEnum {
FOOD_BUSINESS_LICENSE_PARSE_FAIL(109007, "食营证照解析失败", null),
STORE_NUM_NOT_FOUND(109008, "未找到门店编码", null),
INSERT_OPENING_OPERATION_PLAN_AUDIT_FALSE(103001,"插入运营方案审核信息失败",null),
INSERT_OPENING_OPERATION_PLAN_FALSE(103002,"插入运营方案失败",null),
SHOP_ID_IS_NULL(103003,"验参shopId失败为空",null),

View File

@@ -0,0 +1,37 @@
package com.cool.store.enums;
/**
* 营业执照类型 0.个体工商户 1.有限责任公司 2.独资企业 3.自然人经营
*/
public enum LicenseTypeEnum {
ZERO(0, "个体工商户"),
ONE(1,"有限责任公司"),
TWO(2,"独资企业"),
THREE(3,"自然人经营");
private Integer code;
private String message;
public Integer getCode() {
return code;
}
public String getMessage() {
return message;
}
LicenseTypeEnum(Integer code, String message) {
this.code = code;
this.message = message;
}
public static LicenseTypeEnum match(Integer code) {
for (LicenseTypeEnum type : LicenseTypeEnum.values()) {
if (type.getCode().equals(code)) {
return type;
}
}
return null;
}
}

View File

@@ -54,7 +54,6 @@ public enum ShopSubStageStatusEnum {
//加盟合同签约
SHOP_SUB_STAGE_STATUS_80(ShopSubStageEnum.SHOP_STAGE_8, 800, "待提交", Boolean.FALSE),
SHOP_SUB_STAGE_STATUS_81(ShopSubStageEnum.SHOP_STAGE_8, 810, "待缴费", Boolean.FALSE),
SHOP_SUB_STAGE_STATUS_83(ShopSubStageEnum.SHOP_STAGE_8, 830, "审核中", Boolean.FALSE),
SHOP_SUB_STAGE_STATUS_84(ShopSubStageEnum.SHOP_STAGE_8, 840, "已签约", Boolean.TRUE),
SHOP_SUB_STAGE_STATUS_85(ShopSubStageEnum.SHOP_STAGE_8, 850, "退回", Boolean.FALSE),

View File

@@ -0,0 +1,45 @@
package com.cool.store.dao;
import com.cool.store.entity.AcceptanceInfoDO;
import com.cool.store.mapper.AcceptanceInfoMapper;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Repository;
import javax.annotation.Resource;
import java.util.List;
import java.util.Objects;
/**
* @Auther: WangShuo
* @Date: 2024/04/29/下午7:47
* @Version 1.0
* @注释:
*/
@Repository
public class AcceptanceInfoDAO {
@Resource
private AcceptanceInfoMapper acceptanceInfoMapper;
public Long insertAcceptanceInfo(AcceptanceInfoDO acceptanceInfoDO){
if (Objects.isNull(acceptanceInfoDO)){
return null;
}
acceptanceInfoMapper.insert(acceptanceInfoDO);
return acceptanceInfoDO.getId();
}
public List<AcceptanceInfoDO> selectAcceptanceInfo(){
return acceptanceInfoMapper.selectShopIdListBySignatures();
}
public Integer updateAcceptanceInfo(AcceptanceInfoDO acceptanceInfoDO){
if (Objects.isNull(acceptanceInfoDO)){
return 0;
}
return acceptanceInfoMapper.updateByShopIDSelective(acceptanceInfoDO);
}
public AcceptanceInfoDO selectByShopId (Long shopId){
if (Objects.isNull(shopId)){
return null;
}
return acceptanceInfoMapper.selectByShopId(shopId);
}
}

View File

@@ -0,0 +1,38 @@
package com.cool.store.dao;
import com.cool.store.entity.AssessmentDataDO;
import com.cool.store.mapper.AssessmentDataMapper;
import org.apache.commons.collections4.CollectionUtils;
import org.springframework.stereotype.Repository;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.List;
/**
* @Auther: WangShuo
* @Date: 2024/04/29/下午10:38
* @Version 1.0
* @注释: AssessmentDataDO
*/
@Repository
public class AssessmentDataDAO {
@Resource
private AssessmentDataMapper assessmentDataMapper;
public Boolean batchInsert(List<AssessmentDataDO> assessmentDataDOS) {
if (CollectionUtils.isEmpty(assessmentDataDOS) && assessmentDataDOS.size() > 0) {
for (AssessmentDataDO assessmentDataDO : assessmentDataDOS) {
assessmentDataMapper.insert(assessmentDataDO);
}
return Boolean.TRUE;
}
return Boolean.FALSE;
}
public Integer batchUpdate(List<AssessmentDataDO> assessmentDataDOS) {
if (CollectionUtils.isEmpty(assessmentDataDOS) && assessmentDataDOS.size() > 0) {
return assessmentDataMapper.batchUpdate(assessmentDataDOS);
}
return 0;
}
}

View File

@@ -1,9 +1,11 @@
package com.cool.store.dao;
import com.cool.store.entity.TempUserDetailDO;
import com.cool.store.mapper.TempUserDetailMapper;
import org.springframework.stereotype.Repository;
import javax.annotation.Resource;
import java.util.List;
/**
* @author byd
@@ -14,4 +16,20 @@ public class TempUserDetailDAO {
@Resource
private TempUserDetailMapper tempUserDetailMapper;
public List<TempUserDetailDO> userList(Long shopId) {
return tempUserDetailMapper.select(TempUserDetailDO.builder().deleted(false).shopId(shopId).build());
}
public TempUserDetailDO selectByIdCard(String idCard) {
return tempUserDetailMapper.selectOne(TempUserDetailDO.builder().deleted(false).idCard(idCard).build());
}
public int insertSelective(TempUserDetailDO detailDO) {
return tempUserDetailMapper.insertSelective(detailDO);
}
public TempUserDetailDO selectById(Long id) {
return tempUserDetailMapper.selectOne(TempUserDetailDO.builder().id(id).build());
}
}

View File

@@ -1,7 +1,24 @@
package com.cool.store.mapper;
import com.cool.store.entity.AcceptanceInfoDO;
import org.apache.ibatis.annotations.Param;
import tk.mybatis.mapper.common.Mapper;
import java.util.List;
public interface AcceptanceInfoMapper extends Mapper<AcceptanceInfoDO> {
/**
* @Auther: wangshuo
* @Date: 2024/4/29
* @description:根据shopid查询
*/
List<AcceptanceInfoDO> selectShopIdListBySignatures();
/**
* @Auther: wangshuo
* @Date: 2024/4/29
* @description:根据shopID修改
*/
Integer updateByShopIDSelective(AcceptanceInfoDO acceptanceInfoDO);
AcceptanceInfoDO selectByShopId(@Param("shopId") Long shopId);
}

View File

@@ -1,7 +1,12 @@
package com.cool.store.mapper;
import com.cool.store.entity.AssessmentDataDO;
import com.cool.store.entity.ShopStageInfoDO;
import org.apache.ibatis.annotations.Param;
import tk.mybatis.mapper.common.Mapper;
import java.util.List;
public interface AssessmentDataMapper extends Mapper<AssessmentDataDO> {
Integer batchUpdate( List<AssessmentDataDO> AssessmentDataDOS);
}

View File

@@ -3,6 +3,7 @@ package com.cool.store.mapper;
import com.cool.store.dto.Preparation.PreparationDTO;
import com.cool.store.dto.openPreparation.OpenPlanShopInfoDTO;
import com.cool.store.dto.point.LineCountDTO;
import com.cool.store.entity.PointInfoDO;
import com.cool.store.entity.ShopInfoDO;
import com.cool.store.request.PlanListRequest;
import com.cool.store.request.PreparationRequest;
@@ -67,12 +68,6 @@ public interface ShopInfoMapper extends Mapper<ShopInfoDO> {
*/
List<ShopInfoDO> getShopListByIds(@Param("shopIds")List<Long> shopIds);
/**
* @Auther: wangshuo
* @Date: 2024/4/25
* @description:获取筹建阶段shopid
*/
List<Long> queryShopIdListByStage();
/**
* @Auther: wangshuo
* @Date: 2024/4/25
@@ -86,4 +81,5 @@ public interface ShopInfoMapper extends Mapper<ShopInfoDO> {
List<PreparationDTO> ListByCondition(@Param("request") PreparationRequest request);
Long getRegionIdByid(@Param("shopId") Long shopId);
}
ShopInfoDO selectByStoreNum(@Param("storeNum") String storeNum);}

View File

@@ -20,4 +20,62 @@
<result column="update_time" jdbcType="TIMESTAMP" property="updateTime" />
<result column="deleted" jdbcType="BIT" property="deleted" />
</resultMap>
<sql id="baseColumn">
id,shop_id,actual_entry_time,planned_completion_time,planned_start_time,decoration_planned_completion_time,
decoration_planned_start_time,construction_completion_time,engineering_acceptance_signatures,
operations_acceptance_signatures,partner_acceptance_signatures,
create_time,update_time,deleted
</sql>
<update id="updateByShopIDSelective">
update xfsg_acceptance_info
<set>
<if test="actualEntryTime != null">
actual_entry_time = #{actualEntryTime} ,
</if>
<if test="plannedCompletionTime != null">
planned_completion_time = #{plannedCompletionTime} ,
</if>
<if test="plannedStartTime != null">
planned_start_time = #{plannedStartTime} ,
</if>
<if test="decorationPlannedCompletionTime != null">
decoration_planned_completion_time = #{decorationPlannedCompletionTime} ,
</if>
<if test="decorationPlannedStartTime != null">
decoration_planned_start_time = #{decorationPlannedStartTime} ,
</if>
<if test="constructionCompletionTime != null">
construction_completion_time = #{constructionCompletionTime} ,
</if>
<if test="engineeringAcceptanceSignatures != null">
engineering_acceptance_signatures = #{engineeringAcceptanceSignatures} ,
</if>
<if test="operationsAcceptanceSignatures != null">
operations_acceptance_signatures = #{operationsAcceptanceSignatures} ,
</if>
<if test="partnerAcceptanceSignatures != null">
partner_acceptance_signatures = #{partnerAcceptanceSignatures} ,
</if>
<if test="updateTime != null">
update_time = #{updateTime} ,
</if>
<if test="deleted != null">
deleted = #{deleted} ,
</if>
</set>
where shop_id = #{shopId}
</update>
<select id="selectShopIdListBySignatures" resultType="com.cool.store.entity.AcceptanceInfoDO">
select <include refid="baseColumn"/>
from xfsg_acceptance_info a
left join join xfsg_shop_stage_info b on a.shop_id = b.shop_id
where b.shop_sub_stage_status = 1200 and a.deleted = 0
</select>
<select id="selectByShopId" resultType="com.cool.store.entity.AcceptanceInfoDO">
select
<include refid="baseColumn"/>
from xfsg_acceptance_info
where shop_id = #{shopId}
</select>
</mapper>

View File

@@ -14,4 +14,31 @@
<result column="reason" jdbcType="VARCHAR" property="reason" />
<result column="comments" jdbcType="VARCHAR" property="comments" />
</resultMap>
<update id="batchUpdate">
update xfsg_assessment_data
<set>
qualified = CASE id
<foreach collection="AssessmentDataDOS" separator=" " item="item">
WHEN #{item.id} THEN #{item.qualified}
</foreach>,
score = CASE id
<foreach collection="AssessmentDataDOS" separator=" " item="item">
WHEN #{item.id} THEN #{item.score}
</foreach>,
reason = CASE id
<foreach collection="AssessmentDataDOS" separator=" " item="item">
WHEN #{item.id} THEN #{item.reason}
</foreach>,
comments = CASE id
<foreach collection="AssessmentDataDOS" separator=" " item="item">
WHEN #{item.id} THEN #{item.comments}
</foreach>
END
</set>
where id in (
<foreach collection="addShopStageList" item="item" separator=",">
#{item.id}
</foreach>
)
</update>
</mapper>

View File

@@ -73,12 +73,7 @@
</foreach>
</select>
<select id="queryShopIdListByStage" resultType="java.lang.Long">
select id
from xfsg_shop_info
where shop_stage = 2
and deleted = 0
</select>
<select id="queryStoreNumeListByid" resultType="com.cool.store.dto.openPreparation.OpenPlanShopInfoDTO">
select id as shopId,store_num as storeNum
from xfsg_shop_info
@@ -155,6 +150,11 @@
join region_${enterpriseId} r on r.id = xsi.region_id
where xsi.id = #{shopId}
</select>
<select id="selectByStoreNum" resultType="com.cool.store.entity.ShopInfoDO">
select <include refid="allColumn"/>
from xfsg_shop_info
where store_num = #{storeNum}
</select>
</mapper>

View File

@@ -14,6 +14,7 @@
<result column="sex" jdbcType="VARCHAR" property="sex" />
<result column="age" jdbcType="INTEGER" property="age" />
<result column="id_card" jdbcType="VARCHAR" property="idCard" />
<result column="status" jdbcType="VARCHAR" property="status" />
<result column="educational" jdbcType="TINYINT" property="educational" />
<result column="role_id" jdbcType="BIGINT" property="roleId" />
<result column="id_card_positive_url" jdbcType="VARCHAR" property="idCardPositiveUrl" />

View File

@@ -1,5 +1,6 @@
package com.cool.store.dto.openPreparation;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@@ -19,6 +20,7 @@ public class FirstOrderDTO {
private Long shopId;
@ApiModelProperty("首批订货金总额")
private String totalOrderDeposit;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@ApiModelProperty("最晚打款时间")
private Date latestPaymentDate;
@@ -34,7 +36,7 @@ public class FirstOrderDTO {
@ApiModelProperty("更新人")
private String updateUserId;
@ApiModelProperty("结果")
private Integer resultType;
@ApiModelProperty("订货金阶段状态1500 待上传, 1505 带缴纳,1510 已完成")
private Integer firstOrderSubStage;
}

View File

@@ -1,8 +1,16 @@
package com.cool.store.entity;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.Date;
import javax.persistence.*;
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Table(name = "xfsg_employee_training")
public class EmployeeTrainingDO {
@Id
@@ -133,396 +141,4 @@ public class EmployeeTrainingDO {
* 是否删除0.否 1.是
*/
private Boolean deleted;
/**
* @return id
*/
public Long getId() {
return id;
}
/**
* @param id
*/
public void setId(Long id) {
this.id = id;
}
/**
* 获取shop_info.id
*
* @return shop_id - shop_info.id
*/
public Long getShopId() {
return shopId;
}
/**
* 设置shop_info.id
*
* @param shopId shop_info.id
*/
public void setShopId(Long shopId) {
this.shopId = shopId;
}
/**
* 获取区域ID
*
* @return region_id - 区域ID
*/
public Long getRegionId() {
return regionId;
}
/**
* 设置区域ID
*
* @param regionId 区域ID
*/
public void setRegionId(Long regionId) {
this.regionId = regionId;
}
/**
* 获取xfsg_temp_user_detail.id
*
* @return xfsg_user_detail_id - xfsg_temp_user_detail.id
*/
public Long getXfsgUserDetailId() {
return xfsgUserDetailId;
}
/**
* 设置xfsg_temp_user_detail.id
*
* @param xfsgUserDetailId xfsg_temp_user_detail.id
*/
public void setXfsgUserDetailId(Long xfsgUserDetailId) {
this.xfsgUserDetailId = xfsgUserDetailId;
}
/**
* 获取是否分配 0-待分配 1-已分配
*
* @return assign_flag - 是否分配 0-待分配 1-已分配
*/
public Byte getAssignFlag() {
return assignFlag;
}
/**
* 设置是否分配 0-待分配 1-已分配
*
* @param assignFlag 是否分配 0-待分配 1-已分配
*/
public void setAssignFlag(Byte assignFlag) {
this.assignFlag = assignFlag;
}
/**
* 获取实训开始时间
*
* @return training_start_time - 实训开始时间
*/
public Date getTrainingStartTime() {
return trainingStartTime;
}
/**
* 设置实训开始时间
*
* @param trainingStartTime 实训开始时间
*/
public void setTrainingStartTime(Date trainingStartTime) {
this.trainingStartTime = trainingStartTime;
}
/**
* 获取实训结束时间
*
* @return training_end_time - 实训结束时间
*/
public Date getTrainingEndTime() {
return trainingEndTime;
}
/**
* 设置实训结束时间
*
* @param trainingEndTime 实训结束时间
*/
public void setTrainingEndTime(Date trainingEndTime) {
this.trainingEndTime = trainingEndTime;
}
/**
* 获取实训门店ID
*
* @return training_store_id - 实训门店ID
*/
public String getTrainingStoreId() {
return trainingStoreId;
}
/**
* 设置实训门店ID
*
* @param trainingStoreId 实训门店ID
*/
public void setTrainingStoreId(String trainingStoreId) {
this.trainingStoreId = trainingStoreId;
}
/**
* 获取带教老师ID
*
* @return training_teacher_user_id - 带教老师ID
*/
public String getTrainingTeacherUserId() {
return trainingTeacherUserId;
}
/**
* 设置带教老师ID
*
* @param trainingTeacherUserId 带教老师ID
*/
public void setTrainingTeacherUserId(String trainingTeacherUserId) {
this.trainingTeacherUserId = trainingTeacherUserId;
}
/**
* 获取实操考核人员ID
*
* @return practical_assessment_user_id - 实操考核人员ID
*/
public String getPracticalAssessmentUserId() {
return practicalAssessmentUserId;
}
/**
* 设置实操考核人员ID
*
* @param practicalAssessmentUserId 实操考核人员ID
*/
public void setPracticalAssessmentUserId(String practicalAssessmentUserId) {
this.practicalAssessmentUserId = practicalAssessmentUserId;
}
/**
* 获取预计考核时间
*
* @return estimated_assessment_time - 预计考核时间
*/
public Date getEstimatedAssessmentTime() {
return estimatedAssessmentTime;
}
/**
* 设置预计考核时间
*
* @param estimatedAssessmentTime 预计考核时间
*/
public void setEstimatedAssessmentTime(Date estimatedAssessmentTime) {
this.estimatedAssessmentTime = estimatedAssessmentTime;
}
/**
* 获取实际考核时间
*
* @return actual_assessment_time - 实际考核时间
*/
public Date getActualAssessmentTime() {
return actualAssessmentTime;
}
/**
* 设置实际考核时间
*
* @param actualAssessmentTime 实际考核时间
*/
public void setActualAssessmentTime(Date actualAssessmentTime) {
this.actualAssessmentTime = actualAssessmentTime;
}
/**
* 获取考核项数
*
* @return assessment_num - 考核项数
*/
public Integer getAssessmentNum() {
return assessmentNum;
}
/**
* 设置考核项数
*
* @param assessmentNum 考核项数
*/
public void setAssessmentNum(Integer assessmentNum) {
this.assessmentNum = assessmentNum;
}
/**
* 获取考核总项数
*
* @return assessment_total_num - 考核总项数
*/
public Integer getAssessmentTotalNum() {
return assessmentTotalNum;
}
/**
* 设置考核总项数
*
* @param assessmentTotalNum 考核总项数
*/
public void setAssessmentTotalNum(Integer assessmentTotalNum) {
this.assessmentTotalNum = assessmentTotalNum;
}
/**
* 获取理论考试状态 0-未开始 1-合格 2-不合格
*
* @return theoretical_exam_status - 理论考试状态 0-未开始 1-合格 2-不合格
*/
public Byte getTheoreticalExamStatus() {
return theoreticalExamStatus;
}
/**
* 设置理论考试状态 0-未开始 1-合格 2-不合格
*
* @param theoreticalExamStatus 理论考试状态 0-未开始 1-合格 2-不合格
*/
public void setTheoreticalExamStatus(Byte theoreticalExamStatus) {
this.theoreticalExamStatus = theoreticalExamStatus;
}
/**
* 获取理论考试分值
*
* @return theoretical_exam_score - 理论考试分值
*/
public Integer getTheoreticalExamScore() {
return theoreticalExamScore;
}
/**
* 设置理论考试分值
*
* @param theoreticalExamScore 理论考试分值
*/
public void setTheoreticalExamScore(Integer theoreticalExamScore) {
this.theoreticalExamScore = theoreticalExamScore;
}
/**
* 获取实操考试状态 0-未开始 1-合格 2-不合格
*
* @return practical_exam_status - 实操考试状态 0-未开始 1-合格 2-不合格
*/
public Byte getPracticalExamStatus() {
return practicalExamStatus;
}
/**
* 设置实操考试状态 0-未开始 1-合格 2-不合格
*
* @param practicalExamStatus 实操考试状态 0-未开始 1-合格 2-不合格
*/
public void setPracticalExamStatus(Byte practicalExamStatus) {
this.practicalExamStatus = practicalExamStatus;
}
/**
* 获取实操考试分值
*
* @return practical_exam_score - 实操考试分值
*/
public Integer getPracticalExamScore() {
return practicalExamScore;
}
/**
* 设置实操考试分值
*
* @param practicalExamScore 实操考试分值
*/
public void setPracticalExamScore(Integer practicalExamScore) {
this.practicalExamScore = practicalExamScore;
}
/**
* 获取考核状态 0-培训中 1-带考核 2-考核通过 3-考核不通过
*
* @return assessment_status - 考核状态 0-培训中 1-带考核 2-考核通过 3-考核不通过
*/
public Byte getAssessmentStatus() {
return assessmentStatus;
}
/**
* 设置考核状态 0-培训中 1-带考核 2-考核通过 3-考核不通过
*
* @param assessmentStatus 考核状态 0-培训中 1-带考核 2-考核通过 3-考核不通过
*/
public void setAssessmentStatus(Byte assessmentStatus) {
this.assessmentStatus = assessmentStatus;
}
/**
* 获取创建时间
*
* @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;
}
/**
* 设置是否删除0.否 1.是
*
* @param deleted 是否删除0.否 1.是
*/
public void setDeleted(Boolean deleted) {
this.deleted = deleted;
}
}

View File

@@ -1,8 +1,17 @@
package com.cool.store.entity;
import io.swagger.models.auth.In;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.Date;
import javax.persistence.*;
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Table(name = "xfsg_temp_user_detail")
public class TempUserDetailDO {
@Id
@@ -47,6 +56,8 @@ public class TempUserDetailDO {
*/
private Integer age;
private Integer status;
/**
* 身份证号码
*/
@@ -56,7 +67,7 @@ public class TempUserDetailDO {
/**
* 学历 0-小学 1-初中 2-高中 3-中专 4-大专 5-本科 6-硕士 7-硕士以上
*/
private Byte educational;
private Integer educational;
/**
* 角色id 170000000-店长 180000000-店员
@@ -115,360 +126,4 @@ public class TempUserDetailDO {
* 是否删除0.否 1.是
*/
private Boolean deleted;
/**
* @return id
*/
public Long getId() {
return id;
}
/**
* @param id
*/
public void setId(Long id) {
this.id = id;
}
/**
* 获取line_info.id
*
* @return line_id - line_info.id
*/
public Long getLineId() {
return lineId;
}
/**
* 设置line_info.id
*
* @param lineId line_info.id
*/
public void setLineId(Long lineId) {
this.lineId = lineId;
}
/**
* 获取shop_info.id
*
* @return shop_id - shop_info.id
*/
public Long getShopId() {
return shopId;
}
/**
* 设置shop_info.id
*
* @param shopId shop_info.id
*/
public void setShopId(Long shopId) {
this.shopId = shopId;
}
/**
* 获取区域ID
*
* @return region_id - 区域ID
*/
public Long getRegionId() {
return regionId;
}
/**
* 设置区域ID
*
* @param regionId 区域ID
*/
public void setRegionId(Long regionId) {
this.regionId = regionId;
}
/**
* 获取手机号
*
* @return mobile - 手机号
*/
public String getMobile() {
return mobile;
}
/**
* 设置手机号
*
* @param mobile 手机号
*/
public void setMobile(String mobile) {
this.mobile = mobile;
}
/**
* 获取申请人姓名
*
* @return username - 申请人姓名
*/
public String getUsername() {
return username;
}
/**
* 设置申请人姓名
*
* @param username 申请人姓名
*/
public void setUsername(String username) {
this.username = username;
}
/**
* 获取性别0未选,1男,2女
*
* @return sex - 性别0未选,1男,2女
*/
public String getSex() {
return sex;
}
/**
* 设置性别0未选,1男,2女
*
* @param sex 性别0未选,1男,2女
*/
public void setSex(String sex) {
this.sex = sex;
}
/**
* 获取年龄
*
* @return age - 年龄
*/
public Integer getAge() {
return age;
}
/**
* 设置年龄
*
* @param age 年龄
*/
public void setAge(Integer age) {
this.age = age;
}
/**
* 获取身份证号码
*
* @return id_card - 身份证号码
*/
public String getIdCard() {
return idCard;
}
/**
* 设置身份证号码
*
* @param idCard 身份证号码
*/
public void setIdCard(String idCard) {
this.idCard = idCard;
}
/**
* 获取学历 0-小学 1-初中 2-高中 3-中专 4-大专 5-本科 6-硕士 7-硕士以上
*
* @return educational - 学历 0-小学 1-初中 2-高中 3-中专 4-大专 5-本科 6-硕士 7-硕士以上
*/
public Byte getEducational() {
return educational;
}
/**
* 设置学历 0-小学 1-初中 2-高中 3-中专 4-大专 5-本科 6-硕士 7-硕士以上
*
* @param educational 学历 0-小学 1-初中 2-高中 3-中专 4-大专 5-本科 6-硕士 7-硕士以上
*/
public void setEducational(Byte educational) {
this.educational = educational;
}
/**
* 获取角色id 170000000-店长 180000000-店员
*
* @return role_id - 角色id 170000000-店长 180000000-店员
*/
public Long getRoleId() {
return roleId;
}
/**
* 设置角色id 170000000-店长 180000000-店员
*
* @param roleId 角色id 170000000-店长 180000000-店员
*/
public void setRoleId(Long roleId) {
this.roleId = roleId;
}
/**
* 获取身份证正面url
*
* @return id_card_positive_url - 身份证正面url
*/
public String getIdCardPositiveUrl() {
return idCardPositiveUrl;
}
/**
* 设置身份证正面url
*
* @param idCardPositiveUrl 身份证正面url
*/
public void setIdCardPositiveUrl(String idCardPositiveUrl) {
this.idCardPositiveUrl = idCardPositiveUrl;
}
/**
* 获取身份证反面url
*
* @return id_card_negative_url - 身份证反面url
*/
public String getIdCardNegativeUrl() {
return idCardNegativeUrl;
}
/**
* 设置身份证反面url
*
* @param idCardNegativeUrl 身份证反面url
*/
public void setIdCardNegativeUrl(String idCardNegativeUrl) {
this.idCardNegativeUrl = idCardNegativeUrl;
}
/**
* 获取健康证url
*
* @return health_certificate_url - 健康证url
*/
public String getHealthCertificateUrl() {
return healthCertificateUrl;
}
/**
* 设置健康证url
*
* @param healthCertificateUrl 健康证url
*/
public void setHealthCertificateUrl(String healthCertificateUrl) {
this.healthCertificateUrl = healthCertificateUrl;
}
/**
* 获取登记时间
*
* @return register_time - 登记时间
*/
public Date getRegisterTime() {
return registerTime;
}
/**
* 设置登记时间
*
* @param registerTime 登记时间
*/
public void setRegisterTime(Date registerTime) {
this.registerTime = registerTime;
}
/**
* 获取来源create-创建 sync-钉钉同步
*
* @return source - 来源create-创建 sync-钉钉同步
*/
public String getSource() {
return source;
}
/**
* 设置来源create-创建 sync-钉钉同步
*
* @param source 来源create-创建 sync-钉钉同步
*/
public void setSource(String source) {
this.source = source;
}
/**
* 获取提交时间
*
* @return submit_time - 提交时间
*/
public Date getSubmitTime() {
return submitTime;
}
/**
* 设置提交时间
*
* @param submitTime 提交时间
*/
public void setSubmitTime(Date submitTime) {
this.submitTime = submitTime;
}
/**
* 获取创建时间
*
* @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;
}
/**
* 设置是否删除0.否 1.是
*
* @param deleted 是否删除0.否 1.是
*/
public void setDeleted(Boolean deleted) {
this.deleted = deleted;
}
}

View File

@@ -0,0 +1,8 @@
package com.cool.store.request;
import lombok.Data;
@Data
public class LicenseBizContentRequest {
private String storeNum;
}

View File

@@ -25,7 +25,7 @@ public class LinePaySubmitRequest {
@ApiModelProperty("支付方式 1微信 2银行转账")
private Integer payType;
@ApiModelProperty("付款人姓名")
@ApiModelProperty("付款人姓名/加盟商姓名")
private String payUserName;
@ApiModelProperty("付款账号")

View File

@@ -0,0 +1,57 @@
package com.cool.store.request;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.models.auth.In;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.Date;
/**
* 员工详细信息数据接口
*
* @author byd
*/
@NoArgsConstructor
@Data
public class TempUserDetailRequest {
@ApiModelProperty("店铺id")
private Long shopId;
@ApiModelProperty("姓名")
private String name;
@ApiModelProperty("身份证")
private String idCard;
@ApiModelProperty("性别 0未选,1男,2女")
private String sex;
@ApiModelProperty("年龄")
private Integer age;
@ApiModelProperty("学历 0-小学 1-初中 2-高中 3-中专 4-大专 5-本科 6-硕士 7-硕士以上")
private Integer highestDegree;
@ApiModelProperty("手机号OA侧绑定的手机号")
private String phone;
@ApiModelProperty("岗位Id")
private Long jobId;
@ApiModelProperty("身份证-人像面")
private String idNumPhoto;
@ApiModelProperty("身份证-国徽面")
private String emblemPhoto;
@ApiModelProperty("健康证")
private String healthCertificate;
@ApiModelProperty("登记时间")
private Date registerTime;
}

View File

@@ -0,0 +1,21 @@
package com.cool.store.request;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @Auther: WangShuo
* @Date: 2024/04/29/下午11:35
* @Version 1.0
* @注释:三方验收
*/
@Data
public class ThreeAcceptanceRequest {
private Long shopId;
@ApiModelProperty("工程部验收签名 {pic\":\"\",\"acceptanceTime\":\"\",\"result\":\"\",\"remark\":\"\",\"status\":1}")
private String engineeringAcceptanceSignatures;
@ApiModelProperty("营运部验收签名 {\"pic\":\"\",\"acceptanceTime\":\"\",\"result\":\"\",\"remark\":\"\",\"status\":1}")
private String operationsAcceptanceSignatures;
@ApiModelProperty("加密商验收签名 {\"pic\":\"\",\"acceptanceTime\":\"\",\"result\":\"\",\"remark\":\"\",\"status\":0}")
private String partnerAcceptanceSignatures;
}

View File

@@ -0,0 +1,113 @@
package com.cool.store.response;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
@ApiModel("证照信息回调响应体")
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class LicenseApiResponse {
/**
* 营业执照经营场所/住所
*/
@ApiModelProperty("营业执照经营场所/住所")
private String storeBusinessAdd;
/**
* 营业执照发证日期
*/
@ApiModelProperty("营业执照发证日期")
private String storeBusinessDate;
/**
* 营业执照图片
*/
@ApiModelProperty("营业执照图片")
private String storeBusinessImg;
/**
* 营业执照名称
*/
@ApiModelProperty("营业执照名称")
private String storeBusinessName;
/**
* 营业执照统一社会信用代码
*/
@ApiModelProperty("营业执照统一社会信用代码")
private String storeBusinessNumber;
/**
* 营业执照类型
*/
@ApiModelProperty("营业执照类型")
private String storeBusinessType;
/**
* 营业执照有效期, 非OCR识别手填。9=长期有效非长期有效则为具体日期2026-06-01
*/
@ApiModelProperty("营业执照有效期, 非OCR识别手填。9=长期有效非长期有效则为具体日期2026-06-01")
private String storeBusinessValidPeriod;
/**
* 门店代码
*/
@ApiModelProperty("门店代码")
private String storeCode;
/**
* 营业执照经营者/法人
*/
@ApiModelProperty("营业执照经营者/法人")
private String storeDirector;
/**
* 食品流通经营许可证编号
*/
@ApiModelProperty("食品流通经营许可证编号")
private String storeFoodLicense;
/**
* 食品流通/经营许可证有效期开始日期
*/
@ApiModelProperty("食品流通/经营许可证有效期开始日期")
private String storeFoodLicenseBeginDate;
/**
* 食品经营许可证经营场所
*/
@ApiModelProperty("食品经营许可证经营场所")
private String storeFoodLicenseBusinessAddress;
/**
* 食品经营许可证经营项目
*/
@ApiModelProperty("食品经营许可证经营项目")
private String storeFoodLicenseBusinessScope;
/**
* 食品流通/经营许可证有效期结束日期
*/
@ApiModelProperty("食品流通/经营许可证有效期结束日期")
private String storeFoodLicenseEndDate;
/**
* 食品经营许可证照片
*/
@ApiModelProperty("食品经营许可证照片")
private String storeFoodLicenseImg;
/**
* 食品经营许可证法定代表人(负责人)
*/
@ApiModelProperty("食品经营许可证法定代表人(负责人)")
private String storeFoodLicenseLegalRepresentative;
/**
* 食品经营许可证主体业态
*/
@ApiModelProperty("食品经营许可证主体业态")
private String storeFoodLicenseMainBusiness;
/**
* 食品经营许可证经营者名称
*/
@ApiModelProperty("食品经营许可证经营者名称")
private String storeFoodLicenseOperatorName;
/**
* 备注
*/
@ApiModelProperty("备注")
private String storeRemark;
}

View File

@@ -0,0 +1,31 @@
package com.cool.store.response;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
/**
* @Auther: WangShuo
* @Date: 2024/04/29/下午11:51
* @Version 1.0
* @注释:
*/
@Data
public class ThreeAcceptanceResponse {
@ApiModelProperty("工程部验收签名 {pic\":\"\",\"acceptanceTime\":\"\",\"result\":\"\",\"remark\":\"\",\"status\":1}")
private String engineeringAcceptanceSignatures;
@ApiModelProperty("营运部验收签名 {\"pic\":\"\",\"acceptanceTime\":\"\",\"result\":\"\",\"remark\":\"\",\"status\":1}")
private String operationsAcceptanceSignatures;
@ApiModelProperty("加密商验收签名 {\"pic\":\"\",\"acceptanceTime\":\"\",\"result\":\"\",\"remark\":\"\",\"status\":0}")
private String partnerAcceptanceSignatures;
@ApiModelProperty("验收日期")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date acceptanceTime;
@ApiModelProperty("验收结果")
private Byte resultType;
@ApiModelProperty("验收评语")
private String acceptanceComments;
}

View File

@@ -0,0 +1,38 @@
package com.cool.store.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
/**
* @Auther: WangShuo
* @Date: 2024/04/29/下午4:24
* @Version 1.0
* @注释:
*/
@Data
public class DecorationModelVO {
@ApiModelProperty("支付状态 45:待缴费 50:已缴费 55缴费失败")
private Integer payStatus;
@ApiModelProperty("付款人姓名/加盟商姓名")
private String payUserName;
@ApiModelProperty("付款账号")
private String payAccount;
@ApiModelProperty("付款截图")
private String payPic;
@ApiModelProperty("支行名称")
private String branchBankName;
@ApiModelProperty("开户行名称")
private String bankName;
@ApiModelProperty("缴纳金额")
private String amount;
@ApiModelProperty("缴纳时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date payTime;
@ApiModelProperty("上传时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date updateTime;
}

View File

@@ -4,7 +4,7 @@ import com.cool.store.dto.decoration.AttachmentsDTO;
import com.cool.store.dto.decoration.BudgetDTO;
import com.cool.store.dto.decoration.ConstructionScheduleDTO;
import com.cool.store.dto.decoration.DesignSchemeDTO;
import com.cool.store.vo.log.DesignLogVo;
import lombok.Data;
import java.util.List;

View File

@@ -42,6 +42,8 @@ public class OpeningOperationPlanVO {
@ApiModelProperty("提交人")
private String submittedUserId;
@ApiModelProperty("提交人名字")
private String submittedUserName;
@ApiModelProperty("通过原因")
private String passReason;

View File

@@ -0,0 +1,117 @@
package com.cool.store.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.persistence.*;
import java.util.Date;
/**
* @author byd
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class TempUserDetailInfoVO {
@ApiModelProperty("id")
private Long id;
/**
* line_info.id
*/
@ApiModelProperty("线索id")
private Long lineId;
/**
* shop_info.id
*/
@ApiModelProperty("店铺id")
private Long shopId;
/**
* 区域ID
*/
@ApiModelProperty("区域ID")
private Long regionId;
/**
* 手机号
*/
@ApiModelProperty("手机号")
private String mobile;
/**
* 申请人姓名
*/
@ApiModelProperty("姓名")
private String username;
/**
* 性别0未选,1男,2女
*/
@ApiModelProperty("性别0未选,1男,2女")
private String sex;
/**
* 年龄
*/
@ApiModelProperty("年龄")
private Integer age;
@ApiModelProperty("0-待审核 1-已登记 2-审核未通过")
private Integer status;
/**
* 身份证号码
*/
@ApiModelProperty("身份证号码")
private String idCard;
/**
* 学历 0-小学 1-初中 2-高中 3-中专 4-大专 5-本科 6-硕士 7-硕士以上
*/
@ApiModelProperty("学历 0-小学 1-初中 2-高中 3-中专 4-大专 5-本科 6-硕士 7-硕士以上")
private Integer educational;
/**
* 角色id 170000000-店长 180000000-店员
*/
@ApiModelProperty("角色id 170000000-店长 180000000-店员")
private Long roleId;
/**
* 身份证正面url
*/
@ApiModelProperty("身份证正面url")
private String idCardPositiveUrl;
/**
* 身份证反面url
*/
@ApiModelProperty("身份证反面url")
private String idCardNegativeUrl;
/**
* 健康证url
*/
@ApiModelProperty("健康证url")
private String healthCertificateUrl;
/**
* 登记时间
*/
@ApiModelProperty("登记时间")
private Date registerTime;
/**
* 来源create-创建 sync-钉钉同步
*/
@ApiModelProperty("来源create-创建 sync-钉钉同步")
private String source;
}

View File

@@ -0,0 +1,23 @@
package com.cool.store.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
/**
* @author byd
* @date 2024-04-29 17:33
*/
@Data
public class TempUserDetailListVO {
@ApiModelProperty("员工列表")
private List<TempUserDetailVO> userList;
@ApiModelProperty("店铺id")
private Long shopId;
@ApiModelProperty("店铺code")
private String storeNum;
}

View File

@@ -0,0 +1,77 @@
package com.cool.store.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.persistence.*;
import java.util.Date;
/**
* @author byd
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class TempUserDetailVO {
@ApiModelProperty("id")
private Long id;
/**
* line_info.id
*/
@ApiModelProperty("line_info.id")
private Long lineId;
/**
* shop_info.id
*/
@ApiModelProperty("店铺id")
private Long shopId;
/**
* 区域ID
*/
@ApiModelProperty("区域ID")
private Long regionId;
/**
* 手机号
*/
@ApiModelProperty("手机号")
private String mobile;
/**
* 申请人姓名
*/
@ApiModelProperty("姓名")
private String username;
/**
* 身份证号码
*/
@ApiModelProperty("身份证号码")
private String idCard;
/**
* 角色id 170000000-店长 180000000-店员
*/
@ApiModelProperty("角色id 170000000-店长 180000000-店员")
private Long roleId;
/**
* 登记时间
*/
@ApiModelProperty("登记时间")
private Date registerTime;
/**
* 来源create-创建 sync-钉钉同步
*/
@ApiModelProperty("来源create-创建 sync-钉钉同步")
private String source;
}

View File

@@ -1,20 +0,0 @@
package com.cool.store.vo.log;
import lombok.Data;
import java.util.List;
/**
* @Auther: WangShuo
* @Date: 2024/04/28/下午4:02
* @Version 1.0
* @注释:设计阶段跟踪日志
*/
@Data
public class DesignLogVo {
private String logTime;
private String name;
private String description;
private List<String> attachmentUrl;
}

View File

@@ -0,0 +1,18 @@
package com.cool.store.service;
import com.cool.store.entity.AssessmentDataDO;
import io.swagger.models.auth.In;
import java.util.List;
/**
* @Auther: WangShuo
* @Date: 2024/04/29/下午10:46
* @Version 1.0
* @注释:
*/
public interface AssessmentDataService {
Boolean batchInsert(List<AssessmentDataDO> assessmentDataDOS);
Integer batchUpdate(List<AssessmentDataDO> assessmentDataDOS);
}

View File

@@ -2,8 +2,12 @@ package com.cool.store.service;
import com.cool.store.dto.decoration.ConstructionScheduleDTO;
import com.cool.store.dto.decoration.DecorationModelDTO;
import com.cool.store.entity.AcceptanceInfoDO;
import com.cool.store.request.DecorationPayRequest;
import com.cool.store.request.LinePaySubmitRequest;
import com.cool.store.request.ThreeAcceptanceRequest;
import com.cool.store.response.ThreeAcceptanceResponse;
import com.cool.store.vo.DecorationModelVO;
import com.cool.store.vo.DesignInfoVo;
import com.cool.store.vo.PartnerUserInfoVO;
@@ -16,12 +20,13 @@ import java.util.List;
* @注释:
*/
public interface DecorationService {
/**
* @Auther: wangshuo
* @Date: 2024/4/28
* @description:获取装修阶段子阶段信息
* @Date: 2024/4/29
* @description:刷新
*/
List<DesignInfoVo> decorations();
Boolean flush(Long shopId );
/**
* @Auther: wangshuo
* @Date: 2024/4/28
@@ -40,10 +45,35 @@ public interface DecorationService {
* @description:提交装修款付款凭证
*/
String submitDecorationModel(LinePaySubmitRequest LinePaySubmitRequest, PartnerUserInfoVO partnerUserInfoVO);
/**
* @Auther: wangshuo
* @Date: 2024/4/29
* @description:获得装修款信息
*/
DecorationModelVO getDecorationModel(Long shopId,PartnerUserInfoVO partnerUserInfoVO);
/**
* @Auther: wangshuo
* @Date: 2024/4/28
* @description:施工阶段
* @description:施工阶段下信息
*/
List<ConstructionScheduleDTO> getConstruction(Long shopId);
/**
* @Auther: wangshuo
* @Date: 2024/4/29
* @description:获取施工阶段信息
*/
ConstructionScheduleDTO getConstructionInfo(Long shopId);
/**
* @Auther: wangshuo
* @Date: 2024/4/29
* @description:提交三方验收
*/
Integer submitAcceptance(ThreeAcceptanceRequest request);
/**
* @Auther: wangshuo
* @Date: 2024/4/29
* @description:查看三方验收
*/
ThreeAcceptanceResponse getThreeAcceptance(Long shopId);
}

View File

@@ -2,6 +2,7 @@ package com.cool.store.service;
import com.cool.store.request.AuditResultRequest;
import com.cool.store.request.SysBuildResultRequest;
import com.cool.store.response.LicenseApiResponse;
public interface KdzApiService {
/**
@@ -11,4 +12,6 @@ public interface KdzApiService {
*/
boolean auditResult(AuditResultRequest request);
LicenseApiResponse license(String storeNum);
}

View File

@@ -0,0 +1,22 @@
package com.cool.store.service;
import com.cool.store.request.TempUserDetailRequest;
import com.cool.store.vo.TempUserDetailInfoVO;
import com.cool.store.vo.TempUserDetailListVO;
import com.cool.store.vo.TempUserDetailVO;
import java.util.List;
/**
* @author byd
* @date 2024-04-29 16:13
*/
public interface TempUserDetailService {
TempUserDetailListVO userList(Long shopId);
void addTempUserDetail(TempUserDetailRequest tempUserDetailRequest);
TempUserDetailInfoVO getUserInfoByIdUserDetailId(Long id);
}

View File

@@ -19,6 +19,6 @@ public interface YlfService {
* @Date: 2024/4/25
* @description:项目列表
*/
ProjectDTO getProjectList(String shopCode);
ProjectDTO getProjectList(String storeNum);
}

View File

@@ -0,0 +1,30 @@
package com.cool.store.service.impl;
import com.cool.store.dao.AssessmentDataDAO;
import com.cool.store.entity.AssessmentDataDO;
import com.cool.store.service.AssessmentDataService;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.List;
/**
* @Auther: WangShuo
* @Date: 2024/04/29/下午10:47
* @Version 1.0
* @注释:
*/
@Service
public class AssessmentDataServiceImpl implements AssessmentDataService {
@Resource
private AssessmentDataDAO assessmentDataDAO;
@Override
public Boolean batchInsert(List<AssessmentDataDO> assessmentDataDOS) {
return assessmentDataDAO.batchInsert(assessmentDataDOS);
}
@Override
public Integer batchUpdate(List<AssessmentDataDO> assessmentDataDOS) {
return assessmentDataDAO.batchUpdate(assessmentDataDOS);
}
}

View File

@@ -2,15 +2,15 @@ package com.cool.store.service.impl;
import cn.hutool.core.bean.BeanUtil;
import com.alibaba.fastjson.JSONObject;
import com.cool.store.constants.CommonConstants;
import com.cool.store.context.PartnerUserHolder;
import com.cool.store.dao.LineInfoDAO;
import com.cool.store.dao.LinePayDAO;
import com.cool.store.dao.RegionQrcodeConfigDao;
import com.cool.store.dao.ShopInfoDAO;
import com.cool.store.dao.*;
import com.cool.store.dto.decoration.*;
import com.cool.store.dto.openPreparation.OpenPlanShopInfoDTO;
import com.cool.store.entity.AcceptanceInfoDO;
import com.cool.store.entity.LineInfoDO;
import com.cool.store.entity.LinePayDO;
import com.cool.store.entity.ShopInfoDO;
import com.cool.store.enums.ErrorCodeEnum;
import com.cool.store.enums.WorkflowSubStageStatusEnum;
import com.cool.store.enums.point.PayBusinessTypeEnum;
@@ -18,14 +18,19 @@ import com.cool.store.enums.point.PayTypeEnum;
import com.cool.store.exception.ServiceException;
import com.cool.store.request.DecorationPayRequest;
import com.cool.store.request.LinePaySubmitRequest;
import com.cool.store.request.ThreeAcceptanceRequest;
import com.cool.store.response.ThreeAcceptanceResponse;
import com.cool.store.service.DecorationService;
import com.cool.store.service.LinePayService;
import com.cool.store.service.PreparationService;
import com.cool.store.service.YlfService;
import com.cool.store.utils.poi.StringUtils;
import com.cool.store.utils.poi.constant.Constants;
import com.cool.store.vo.DecorationModelVO;
import com.cool.store.vo.DesignInfoVo;
import com.cool.store.vo.LinePayVO;
import com.cool.store.vo.PartnerUserInfoVO;
import com.cool.store.vo.log.DesignLogVo;
import org.apache.poi.ss.formula.functions.T;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -54,32 +59,37 @@ public class DecorationServiceImpl implements DecorationService {
@Resource
private ShopInfoDAO shopInfoDAO;
@Resource
private LineInfoDAO lineInfoDAO;
private AcceptanceInfoDAO acceptanceInfoDAO;
@Resource
private PreparationService preparationService;
@Resource
private LinePayService linePayService;
private static String MEASURING_THE_ROOM = "量房";
private static String CONSTRUCTION_DRAWING = "施工图+预算";
@Override
public List<DesignInfoVo> decorations() {
return Collections.emptyList();
public Boolean flush(Long shopId) {
//TODO
return null;
}
@Override
public DesignInfoVo DesignInfo(Long shopId) {
DecorationDTO decoration = getDecorationDTO(shopId);
if (decoration == null) {
log.error("DecorationModel shopCode is null");
return null;
}
List<DesignSchemeDTO> designScheme = decoration.getDesignScheme();
List<ConstructionScheduleDTO> constructionSchedule = decoration.getConstructionSchedule();
Map<String, ConstructionScheduleDTO> constructionScheduleMap = constructionSchedule.stream().collect(Collectors.toMap(ConstructionScheduleDTO::getName,
dto -> dto));
//量房
ConstructionScheduleDTO measuringRoom = constructionScheduleMap.get(MEASURING_THE_ROOM);
//施工图
ConstructionScheduleDTO ConstructionDrawings = constructionScheduleMap.get(CONSTRUCTION_DRAWING);
ConstructionScheduleDTO measuringRoom = constructionScheduleMap.get(CommonConstants.MEASURING_THE_ROOM);
//施工图
ConstructionScheduleDTO ConstructionDrawings = constructionScheduleMap.get(CommonConstants.CONSTRUCTION_DRAWING);
//预算
List<BudgetDTO> proposedBookBudget = decoration.getProposedBookBudget();
Collections.sort(decoration.getProposedBookBudget(),(x1,x2)->x2.getId().compareTo(x1.getId()));
Collections.sort(decoration.getProposedBookBudget(), (x1, x2) -> x2.getId().compareTo(x1.getId()));
DesignInfoVo designInfoVo = new DesignInfoVo();
designInfoVo.setMeasuringRoom(measuringRoom);
@@ -91,16 +101,19 @@ public class DecorationServiceImpl implements DecorationService {
@Override
public DecorationModelDTO DecorationModel(Long shopId) {
if (shopId == null){
public DecorationModelDTO DecorationModel(Long shopId) {
if (shopId == null) {
log.error("DecorationModel shopCode is null");
throw new ServiceException(ErrorCodeEnum.PARAMS_VALIDATE_ERROR);
}
DecorationDTO decoration = getDecorationDTO(shopId);
//TODO 验证
if (decoration == null) {
log.error("DecorationModel shopCode is null");
return null;
}
//预算
List<BudgetDTO> proposedBookBudget = decoration.getProposedBookBudget();
Collections.sort(decoration.getProposedBookBudget(),(x1,x2)->x2.getId().compareTo(x1.getId()));
Collections.sort(decoration.getProposedBookBudget(), (x1, x2) -> x2.getId().compareTo(x1.getId()));
String totalAmount = proposedBookBudget.get(0).getTotalAmount();
//支付二维码url
Long regionId = shopInfoDAO.getRegionIdByid(shopId);
@@ -110,33 +123,119 @@ public class DecorationServiceImpl implements DecorationService {
decorationModelDTO.setTotalAmount(totalAmount);
return decorationModelDTO;
}
@Transactional(rollbackFor = Exception.class)
@Override
public String submitDecorationModel(LinePaySubmitRequest request, PartnerUserInfoVO partnerUserInfoVO) {
DecorationDTO decoration = getDecorationDTO(request.getShopId());
if ( decoration.getPayment() != null && decoration.getPayment().size()>0){
if (decoration == null) {
log.error("DecorationModel shopCode is null");
return null;
}
if (decoration.getPayment() != null && decoration.getPayment().size() > 0) {
request.setPayStatus(WorkflowSubStageStatusEnum.PAY_DEPOSIT_50.getCode());
}else {
} else {
request.setPayStatus(WorkflowSubStageStatusEnum.PAY_DEPOSIT_45.getCode());
}
Long payId = linePayService.submitPayInfo(request, partnerUserInfoVO);
return payId.toString();
}
@Override
public DecorationModelVO getDecorationModel(Long shopId, PartnerUserInfoVO partnerUserInfoVO) {
ShopInfoDO shopInfo = shopInfoDAO.getShopInfo(shopId);
Long lineId = shopInfo.getLineId();
LinePayVO linePayInfo = linePayService.getLinePayInfo(lineId);
if (Objects.isNull(linePayInfo)) {
return null;
}
if (Objects.isNull(partnerUserInfoVO)) {
partnerUserInfoVO = new PartnerUserInfoVO();
BeanUtil.copyProperties(shopInfo, partnerUserInfoVO);
}
DecorationDTO decoration = getDecorationDTO(shopId);
if (decoration == null) {
log.error("DecorationModel shopCode is null");
return null;
}
List<BudgetDTO> proposedBookBudget = decoration.getProposedBookBudget();
Collections.sort(decoration.getProposedBookBudget(), (x1, x2) -> x2.getId().compareTo(x1.getId()));
String totalAmount = proposedBookBudget.get(0).getTotalAmount();
if (decoration.getPayment() != null && decoration.getPayment().size() > 0
&& (byte) WorkflowSubStageStatusEnum.PAY_DEPOSIT_50.getCode().intValue() == linePayInfo.getPayStatus()) {
linePayInfo.setPayStatus((byte) WorkflowSubStageStatusEnum.PAY_DEPOSIT_50.getCode().intValue());
LinePaySubmitRequest submitRequest = new LinePaySubmitRequest();
BeanUtil.copyProperties(linePayInfo, submitRequest);
linePayService.submitPayInfo(submitRequest, partnerUserInfoVO);
}
DecorationModelVO decorationModelVO = new DecorationModelVO();
BeanUtil.copyProperties(linePayInfo, decorationModelVO);
decorationModelVO.setAmount(totalAmount);
return decorationModelVO;
}
@Override
public List<ConstructionScheduleDTO> getConstruction(Long shopId) {
DecorationDTO decoration = getDecorationDTO(shopId);
if (decoration == null) {
log.error("DecorationModel shopCode is null");
return null;
}
List<ConstructionScheduleDTO> constructionSchedule = decoration.getConstructionSchedule();
Map<String, ConstructionScheduleDTO> constructionScheduleMap = constructionSchedule.stream().collect(Collectors.toMap(ConstructionScheduleDTO::getName,
dto -> dto));
constructionScheduleMap.remove(MEASURING_THE_ROOM);
constructionScheduleMap.remove(CONSTRUCTION_DRAWING);
List<ConstructionScheduleDTO> collect = constructionScheduleMap.values().stream().collect(Collectors.toList());
collect.sort(Comparator.comparing(ConstructionScheduleDTO::getId));
List<ConstructionScheduleDTO> collect = new ArrayList<>();
collect.add(constructionScheduleMap.get(CommonConstants.APPROACH));
collect.add(constructionScheduleMap.get(CommonConstants.ONE_DAY));
collect.add(constructionScheduleMap.get(CommonConstants.TWO_DAY));
collect.add(constructionScheduleMap.get(CommonConstants.THREE_DAY));
collect.add(constructionScheduleMap.get(CommonConstants.FOUR_DAY));
collect.add(constructionScheduleMap.get(CommonConstants.FIVE_DAY));
collect.add(constructionScheduleMap.get(CommonConstants.SIX_DAY));
collect.add(constructionScheduleMap.get(CommonConstants.SEVEN_DAY));
collect.add(constructionScheduleMap.get(CommonConstants.EIGHT_DAY));
collect.add(constructionScheduleMap.get(CommonConstants.WITHDRAWAL));
collect.sort(Comparator.comparing(ConstructionScheduleDTO::getId));
return collect;
}
@Override
public ConstructionScheduleDTO getConstructionInfo(Long shopId) {
DecorationDTO decoration = getDecorationDTO(shopId);
if (decoration == null) {
log.error("DecorationModel shopCode is null");
return null;
}
List<ConstructionScheduleDTO> constructionSchedule = decoration.getConstructionSchedule();
Map<String, ConstructionScheduleDTO> constructionScheduleMap = constructionSchedule.stream().collect(Collectors.toMap(ConstructionScheduleDTO::getName,
dto -> dto));
ConstructionScheduleDTO constructionScheduleDTO = constructionScheduleMap.get(CommonConstants.CONSTRUCTION_PHASE);
return constructionScheduleDTO;
}
@Transactional(rollbackFor = Exception.class)
@Override
public Integer submitAcceptance(ThreeAcceptanceRequest request) {
AcceptanceInfoDO acceptanceInfoDO = new AcceptanceInfoDO();
BeanUtil.copyProperties(request, acceptanceInfoDO);
acceptanceInfoDO.setUpdateTime(new Date());
Integer flag = acceptanceInfoDAO.updateAcceptanceInfo(acceptanceInfoDO);
if (flag != null && flag > 0) {
preparationService.whetherToOpenForAcceptance(request.getShopId());
}
return flag;
}
@Override
public ThreeAcceptanceResponse getThreeAcceptance(Long shopId) {
AcceptanceInfoDO acceptanceInfoDO = acceptanceInfoDAO.selectByShopId(shopId);
ThreeAcceptanceResponse response = new ThreeAcceptanceResponse();
BeanUtil.copyProperties(acceptanceInfoDO, response);
response.setAcceptanceTime(acceptanceInfoDO.getUpdateTime());
return response;
}
private DecorationDTO getDecorationDTO(Long shopId) {
List<Long> shopIds =new ArrayList<>();
List<Long> shopIds = new ArrayList<>();
shopIds.add(shopId);
List<OpenPlanShopInfoDTO> openPlanShopInfoDTOS = shopInfoDAO.queryStoreNumeListByid(shopIds);
String storeNum = openPlanShopInfoDTOS.get(0).getStoreNum();

View File

@@ -111,7 +111,7 @@ public class FirstOrderServiceImp implements FirstOrderService {
FirstOrderDTO order = firstOrderDAO.selectFirstOrderByShopId(shopId);
ShopStageInfoDO firstOrderStageInfo = shopStageInfoDAO.
getShopSubStageInfo(shopId, ShopSubStageEnum.SHOP_STAGE_15);
order.setResultType(firstOrderStageInfo.getShopSubStageStatus());
order.setFirstOrderSubStage(firstOrderStageInfo.getShopSubStageStatus());
return order;
}

View File

@@ -60,18 +60,20 @@ public class FranchiseFeeServiceImpl implements FranchiseFeeService {
FranchiseFeeDO franchiseFeeDO = new FranchiseFeeDO();
franchiseFeeDO.setShopId(shopId);
FranchiseFeeDO result = franchiseFeeMapper.selectOne(franchiseFeeDO);
LinePayDO linePayDO = linePayMapper.selectByPrimaryKey(result.getPayId());
LineInfoDO lineInfoDO = lineInfoMapper.getByLineId(linePayDO.getLineId());
FranchiseFeeResponse resp = FranchiseFeeResponse.from(result);
FranchiseFeeResponse.LinePay linePayResult = FranchiseFeeResponse.LinePay.from(linePayDO);
linePayResult.setAmount(new BigInteger(result.getPerformanceBond()).add(new BigInteger(result.getFirstYearFee())).toString());
linePayResult.setPartnerName(lineInfoDO.getUsername());
if (Objects.nonNull(result.getAuditId())){
ShopAuditInfoDO shopAuditInfoDO = shopAuditInfoMapper.selectByPrimaryKey(result.getAuditId());
linePayResult.setStatus(shopAuditInfoDO.getResultType());
linePayResult.setResult(shopAuditInfoDO.getResultType() == 0 ? shopAuditInfoDO.getPassReason() : shopAuditInfoDO.getRejectReason());
LinePayDO linePayDO = linePayMapper.selectByPrimaryKey(result.getPayId());
if (Objects.nonNull(linePayDO)){
FranchiseFeeResponse.LinePay linePayResult = FranchiseFeeResponse.LinePay.from(linePayDO);
LineInfoDO lineInfoDO = lineInfoMapper.getByLineId(linePayDO.getLineId());
linePayResult.setPartnerName(lineInfoDO.getUsername());
linePayResult.setAmount(new BigInteger(result.getPerformanceBond()).add(new BigInteger(result.getFirstYearFee())).toString());
if (Objects.nonNull(result.getAuditId())){
ShopAuditInfoDO shopAuditInfoDO = shopAuditInfoMapper.selectByPrimaryKey(result.getAuditId());
linePayResult.setStatus(shopAuditInfoDO.getResultType());
linePayResult.setResult(shopAuditInfoDO.getResultType() == 0 ? shopAuditInfoDO.getPassReason() : shopAuditInfoDO.getRejectReason());
}
resp.setLinePayDO(linePayResult);
}
resp.setLinePayDO(linePayResult);
return resp;
}

View File

@@ -1,12 +1,23 @@
package com.cool.store.service.impl;
import com.cool.store.entity.LicenseTransactDO;
import com.cool.store.entity.ShopInfoDO;
import com.cool.store.enums.ErrorCodeEnum;
import com.cool.store.enums.LicenseTypeEnum;
import com.cool.store.exception.ServiceException;
import com.cool.store.mapper.ApplyLicenseMapper;
import com.cool.store.mapper.PointInfoMapper;
import com.cool.store.mapper.ShopInfoMapper;
import com.cool.store.request.AuditResultRequest;
import com.cool.store.response.LicenseApiResponse;
import com.cool.store.service.KdzApiService;
import com.cool.store.utils.StringUtil;
import com.cool.store.utils.poi.DateUtils;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.ResponseBody;
import springfox.documentation.swagger2.mappers.LicenseMapper;
import javax.annotation.Resource;
import java.util.Objects;
@@ -18,6 +29,12 @@ public class KdzApiServiceImpl implements KdzApiService {
@Resource
private CommonService commonService;
@Resource
private ShopInfoMapper shopInfoMapper;
@Resource
ApplyLicenseMapper applyLicenseMapper;
@Override
public boolean auditResult(AuditResultRequest request) {
if (Objects.isNull(request) || StringUtil.isBlank(request.getKdzBusinessId())) {
@@ -27,4 +44,44 @@ public class KdzApiServiceImpl implements KdzApiService {
return result;
}
@Override
public LicenseApiResponse license(String storeNum) {
ShopInfoDO shopInfoDO = shopInfoMapper.selectByStoreNum(storeNum);
if (Objects.isNull(shopInfoDO)){
throw new ServiceException(ErrorCodeEnum.STORE_NUM_NOT_FOUND);
}
Long shopId = shopInfoDO.getId();
LicenseTransactDO licenseTransactDO = new LicenseTransactDO();
licenseTransactDO.setShopId(shopId);
licenseTransactDO = applyLicenseMapper.selectOne(licenseTransactDO);
LicenseApiResponse convertResp = convert(licenseTransactDO,storeNum);
return convertResp;
}
public LicenseApiResponse convert(LicenseTransactDO licenseTransactDO,
String storeNum){
LicenseApiResponse response = LicenseApiResponse.builder()
.storeBusinessAdd(licenseTransactDO.getLicenseAddress())
.storeBusinessDate(DateUtils.dateTime(licenseTransactDO.getIssueTime()))
.storeBusinessImg(licenseTransactDO.getCreditUrl())
.storeBusinessName(licenseTransactDO.getBusinessLicense())
.storeBusinessNumber(licenseTransactDO.getCreditCode())
.storeBusinessType(LicenseTypeEnum.match(licenseTransactDO.getLicenseType()).getMessage())
.storeBusinessValidPeriod(Objects.isNull(licenseTransactDO.getValidity()) ? "9" : DateUtils.dateTime(licenseTransactDO.getValidity()))
.storeCode(storeNum)
.storeDirector(licenseTransactDO.getLicenseLegalPerson())
.storeFoodLicense(licenseTransactDO.getFoodBusinessLicenseCode())
.storeFoodLicenseBeginDate(DateUtils.dateTime(licenseTransactDO.getFoodBusinessStartTime()))
.storeFoodLicenseEndDate(DateUtils.dateTime(licenseTransactDO.getFoodBusinessEndTime()))
.storeFoodLicenseBusinessAddress(licenseTransactDO.getFoodLicenseAddress())
.storeFoodLicenseBusinessScope(licenseTransactDO.getBusinessProject())
.storeFoodLicenseImg(licenseTransactDO.getFoodBusinessLicenseUrl())
.storeFoodLicenseLegalRepresentative(licenseTransactDO.getFoodLicenseLegalPerson())
.storeFoodLicenseMainBusiness(licenseTransactDO.getMainBusiness())
.storeFoodLicenseOperatorName(licenseTransactDO.getOperator())
.storeRemark("")
.build();
return response;
}
}

View File

@@ -56,9 +56,9 @@ public class LinePayServiceImpl implements LinePayService {
public LinePayVO getLinePayInfo(Long lineId) {
LinePayVO result = null;
LinePayDO linePayDO = linePayDAO.getLinePayByLineId(lineId);
if (linePayDO != null){
if (linePayDO != null) {
result = new LinePayVO();
BeanUtil.copyProperties(linePayDO,result);
BeanUtil.copyProperties(linePayDO, result);
LineInfoDO lineInfo = lineInfoDAO.getLineInfo(lineId);
result.setPartnerName(lineInfo != null ? lineInfo.getUsername() : "");
result.setMobile(lineInfo != null ? lineInfo.getMobile() : "");
@@ -70,14 +70,14 @@ public class LinePayServiceImpl implements LinePayService {
@Transactional(rollbackFor = Exception.class)
public Long submitPayInfo(LinePaySubmitRequest request, PartnerUserInfoVO partnerUser) {
LineInfoDO lineInfo = lineInfoDAO.getLineInfo(request.getLineId());
if(Objects.isNull(lineInfo)){
if (Objects.isNull(lineInfo)) {
throw new ServiceException(ErrorCodeEnum.LINE_ID_IS_NOT_EXIST);
}
if (request.getPayBusinessType() != null
&& request.getPayBusinessType() == Constants.ONE_INTEGER
&& request.getShopId() != null){
LinePayDO linePayDO = linePayDAO.getLinePayByLineIdAndPayType(request.getLineId(),request.getPayBusinessType());
if (Objects.isNull(linePayDO)){
&& request.getShopId() != null) {
LinePayDO linePayDO = linePayDAO.getLinePayByLineIdAndPayType(request.getLineId(), request.getPayBusinessType());
if (Objects.isNull(linePayDO)) {
fillLinePay(true, linePayDO, request, partnerUser);
Long aLong = linePayDAO.addLinePay(linePayDO);
FranchiseFeeDO franchiseFeeDO = new FranchiseFeeDO();
@@ -85,21 +85,31 @@ public class LinePayServiceImpl implements LinePayService {
FranchiseFeeDO result = franchiseFeeMapper.selectOneByExample(franchiseFeeDO);
result.setPayId(aLong);
franchiseFeeMapper.updateByPrimaryKeySelective(result);
}else {
} else {
fillLinePay(false, linePayDO, request, partnerUser);
linePayDAO.updateLinePay(linePayDO);
}
shopStageInfoDAO.updateShopStageInfo(request.getShopId(), ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_72);
}
if(request.getPayBusinessType() != null
&& request.getPayBusinessType() == 0
} else if (request.getPayBusinessType() != null
&& request.getPayBusinessType() == PayBusinessTypeEnum.DECORATION_MODEL.getCode()
&& request.getShopId() != null) {
LinePayDO linePayDO = linePayDAO.getLinePayByLineIdAndPayType(request.getLineId(),0);
if(linePayDO == null){
LinePayDO linePayDO = linePayDAO.getLinePayByLineIdAndPayType(request.getLineId(), PayBusinessTypeEnum.DECORATION_MODEL.getCode());
if (linePayDO == null) {
linePayDO = new LinePayDO();
fillLinePay(true, linePayDO, request, partnerUser);
linePayDAO.addLinePay(linePayDO);
}else {
} else {
fillLinePay(false, linePayDO, request, partnerUser);
linePayDAO.updateLinePay(linePayDO);
}
return linePayDO.getId();
} else {
LinePayDO linePayDO = linePayDAO.getLinePayByLineIdAndPayType(request.getLineId(), 0);
if (linePayDO == null) {
linePayDO = new LinePayDO();
fillLinePay(true, linePayDO, request, partnerUser);
linePayDAO.addLinePay(linePayDO);
} else {
fillLinePay(false, linePayDO, request, partnerUser);
linePayDAO.updateLinePay(linePayDO);
}
@@ -109,20 +119,7 @@ public class LinePayServiceImpl implements LinePayService {
lineInfoDAO.insertOrUpdate(lineInfo);
return linePayDO.getId();
}
if (request.getPayBusinessType() != null
&& request.getPayBusinessType() == PayBusinessTypeEnum.DECORATION_MODEL.getCode()
&& request.getShopId() != null){
LinePayDO linePayDO = linePayDAO.getLinePayByLineIdAndPayType(request.getLineId(),PayBusinessTypeEnum.DECORATION_MODEL.getCode());
if(linePayDO == null){
linePayDO = new LinePayDO();
fillLinePay(true, linePayDO, request, partnerUser);
linePayDAO.addLinePay(linePayDO);
}else {
fillLinePay(false, linePayDO, request, partnerUser);
linePayDAO.updateLinePay(linePayDO);
}
return linePayDO.getId();
}
return null;
}
@@ -139,13 +136,13 @@ public class LinePayServiceImpl implements LinePayService {
linePayDO.setPromisePic(request.getPromisePic());
linePayDO.setPayStatus(WorkflowSubStageStatusEnum.PAY_DEPOSIT_50.getCode());
linePayDO.setPayBusinessType(request.getPayBusinessType());
if(isAdd){
if (isAdd) {
linePayDO.setPartnerId(partnerUser.getPartnerId());
linePayDO.setLineId(request.getLineId());
linePayDO.setCreateTime(new Date());
linePayDO.setCreateUserId(partnerUser.getPartnerId());
linePayDO.setDeleted(false);
}else {
} else {
linePayDO.setUpdateTime(new Date());
linePayDO.setUpdateUserId(partnerUser.getPartnerId());
}

View File

@@ -10,6 +10,7 @@ import com.cool.store.dto.openPreparation.OpenPlanShopInfoDTO;
import com.cool.store.dto.openPreparation.OpeningOperationPlanDTO;
import com.cool.store.dto.openPreparation.PlanLineDTO;
import com.cool.store.dto.openPreparation.UserNameDTO;
import com.cool.store.entity.EnterpriseUserDO;
import com.cool.store.entity.OpeningOperationPlanDO;
import com.cool.store.entity.ShopInfoDO;
import com.cool.store.entity.ShopStageInfoDO;
@@ -123,6 +124,8 @@ public class OpeningOperationPlanImpl implements OpeningOperationPlanService {
String preparationUserIds = openingOperationPlanDO.getPreparationUserIds();
List<String> stream = Arrays.stream(preparationUserIds.split(CommonConstants.COMMA)).collect(Collectors.toList());
List<UserNameDTO> nameByUserId = enterpriseUserDAO.getNameByUserId(stream);
EnterpriseUserDO username = enterpriseUserDAO.getUserInfoById(openingOperationPlanDO.getSubmittedUserId());
openingOperationPlanVO.setSubmittedUserName(username.getName());
openingOperationPlanVO.setPreparationUsers(nameByUserId);
return openingOperationPlanVO;
}

View File

@@ -4,6 +4,10 @@ import com.cool.store.constants.CommonConstants;
import com.cool.store.dao.*;
import com.cool.store.dto.Preparation.PreparationDTO;
import com.cool.store.dto.Preparation.ScheduleDTO;
import com.cool.store.dto.decoration.ConstructionScheduleDTO;
import com.cool.store.dto.decoration.DecorationDTO;
import com.cool.store.dto.decoration.ProjectDTO;
import com.cool.store.dto.openPreparation.OpenPlanShopInfoDTO;
import com.cool.store.entity.*;
import com.cool.store.enums.ErrorCodeEnum;
import com.cool.store.enums.point.ShopStageEnum;
@@ -11,10 +15,7 @@ import com.cool.store.enums.point.ShopSubStageEnum;
import com.cool.store.enums.point.ShopSubStageStatusEnum;
import com.cool.store.exception.ServiceException;
import com.cool.store.request.PreparationRequest;
import com.cool.store.service.PreparationService;
import com.cool.store.service.RegionService;
import com.cool.store.service.SysRoleService;
import com.cool.store.service.UserAuthMappingService;
import com.cool.store.service.*;
import com.cool.store.utils.poi.DateUtils;
import com.cool.store.utils.poi.StringUtils;
import com.cool.store.utils.poi.constant.Constants;
@@ -24,9 +25,13 @@ import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.google.common.collect.Lists;
import org.apache.commons.collections4.CollectionUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.stream.Collectors;
@@ -36,8 +41,9 @@ import java.util.stream.Collectors;
* @Version 1.0
*/
@Service
public class PreparationServiceImpl implements PreparationService {
public class PreparationServiceImpl implements PreparationService {
private static final Logger log = LoggerFactory.getLogger(PreparationServiceImpl.class);
@Resource
private ShopStageInfoDAO shopStageInfoDAO;
@Resource
@@ -53,18 +59,23 @@ public class PreparationServiceImpl implements PreparationService {
@Resource
EnterpriseUserDAO enterpriseUserDAO;
@Resource
LineInfoDAO lineInfoDAO;
LineInfoDAO lineInfoDAO;
@Resource
private AcceptanceInfoDAO acceptanceInfoDAO;
@Resource
private YlfService ylfService;
@Resource
private DecorationService decorationService;
@Override
public PageInfo<PreparationScheduleVO> getPreparationSchedule(PreparationRequest request) {
if(!sysRoleService.checkIsAdmin(request.getCurUserId())){
if (!sysRoleService.checkIsAdmin(request.getCurUserId())) {
request.setAuthRegionIds(userAuthMappingService.getAuthRegionIdAndSubRegionIdByUserId(request.getCurUserId()));
}
if(CollectionUtils.isNotEmpty(request.getRegionIds())){
if(request.getRegionIds().contains(CommonConstants.ROOT_DEPT_ID_STR)){
if (CollectionUtils.isNotEmpty(request.getRegionIds())) {
if (request.getRegionIds().contains(CommonConstants.ROOT_DEPT_ID_STR)) {
request.setRegionIds(null);
}else{
} else {
request.setRegionIds(regionService.getSubRegionIdsByRegionIds(request.getRegionIds()));
}
}
@@ -79,13 +90,13 @@ public class PreparationServiceImpl implements PreparationService {
Map<Long, ShopStageInfoDO> shopStageInfoDOMap = shopContractActualCompletionTime.stream().collect(Collectors.toMap(ShopStageInfoDO::getShopId, x -> x));
List<Long> regionIds = preparationDTOS.stream().map(PreparationDTO::getRegionId).collect(Collectors.toList());
Map<Long, String> regionNameMap = regionService.getBelongWarRegionNameMap(regionIds);
Set<String> userIds = preparationDTOS.stream().filter(x->StringUtils.isNotEmpty(x.getShopManagerUserId())).map(PreparationDTO::getShopManagerUserId).collect(Collectors.toSet());
userIds.addAll(preparationDTOS.stream().filter(x->StringUtils.isNotEmpty(x.getInvestmentManager())).map(PreparationDTO::getInvestmentManager).collect(Collectors.toSet()));
userIds.addAll(preparationDTOS.stream().filter(x->StringUtils.isNotEmpty(x.getSupervisorUserId())).map(PreparationDTO::getSupervisorUserId).collect(Collectors.toSet()));
Set<String> userIds = preparationDTOS.stream().filter(x -> StringUtils.isNotEmpty(x.getShopManagerUserId())).map(PreparationDTO::getShopManagerUserId).collect(Collectors.toSet());
userIds.addAll(preparationDTOS.stream().filter(x -> StringUtils.isNotEmpty(x.getInvestmentManager())).map(PreparationDTO::getInvestmentManager).collect(Collectors.toSet()));
userIds.addAll(preparationDTOS.stream().filter(x -> StringUtils.isNotEmpty(x.getSupervisorUserId())).map(PreparationDTO::getSupervisorUserId).collect(Collectors.toSet()));
Map<String, EnterpriseUserDO> userInfoMap = enterpriseUserDAO.getUserInfoMap(new ArrayList<>(userIds));
List<PreparationScheduleVO> preparationScheduleVOS = new ArrayList<>();
preparationDTOS.forEach(x->{
preparationDTOS.forEach(x -> {
PreparationScheduleVO preparationScheduleVO = new PreparationScheduleVO();
preparationScheduleVO.setMobile(x.getMobile());
preparationScheduleVO.setUsername(x.getUsername());
@@ -102,7 +113,7 @@ public class PreparationServiceImpl implements PreparationService {
preparationScheduleVO.setCompletionColumn(dto.getCompletionColumn());
preparationScheduleVO.setTotalColumn(dto.getTotalColumn());
ShopStageInfoDO stageInfoDO = shopStageInfoDOMap.getOrDefault(x.getId(), new ShopStageInfoDO());
if (StringUtils.isNotEmpty(stageInfoDO.getActualCompleteTime())){
if (StringUtils.isNotEmpty(stageInfoDO.getActualCompleteTime())) {
preparationScheduleVO.setContractCompletionTime(DateUtils.strToDate(stageInfoDO.getActualCompleteTime(), DateUtils.YYYY_MM_DD_HH_MM_SS));
}
preparationScheduleVO.setDays();
@@ -115,7 +126,7 @@ public class PreparationServiceImpl implements PreparationService {
@Override
public PreparationScheduleDetailVO getPreparationDetail(Long shopId) {
ShopInfoDO shopInfo = shopInfoDAO.getShopInfo(shopId);
if (shopInfo == null){
if (shopInfo == null) {
throw new ServiceException(ErrorCodeEnum.SHOP_ID_IS_NULL);
}
LineInfoDO lineInfo = lineInfoDAO.getLineInfo(shopInfo.getLineId());
@@ -124,10 +135,10 @@ public class PreparationServiceImpl implements PreparationService {
PreparationScheduleDetailVO preparationScheduleDetailVO = new PreparationScheduleDetailVO();
List<ShopStageInfoDO> shop = shopStageInfoDAO.getShopContractActualCompletionTime(Collections.singletonList(shopId));
Set<Object> userSet = new HashSet<>();
if (StringUtils.isNotEmpty(lineInfo.getInvestmentManager())){
if (StringUtils.isNotEmpty(lineInfo.getInvestmentManager())) {
userSet.add(lineInfo.getInvestmentManager());
}
if (StringUtils.isNotEmpty(lineInfo.getDevelopmentManager())){
if (StringUtils.isNotEmpty(lineInfo.getDevelopmentManager())) {
userSet.add(lineInfo.getDevelopmentManager());
}
Map<Long, String> regionNameMap = regionService.getBelongWarRegionNameMap(Collections.singletonList(shopInfo.getRegionId()));
@@ -140,13 +151,13 @@ public class PreparationServiceImpl implements PreparationService {
preparationScheduleDetailVO.setPlanOpenTime(shopInfo.getPlanOpenTime());
preparationScheduleDetailVO.setStoreNum(shopInfo.getStoreNum());
preparationScheduleDetailVO.setJoinStatus(lineInfo.getJoinStatus());
if (CollectionUtils.isNotEmpty(shopContractActualCompletionTime)){
if (CollectionUtils.isNotEmpty(shopContractActualCompletionTime)) {
ScheduleDTO scheduleDTO = shopContractActualCompletionTime.get(CommonConstants.ZERO);
preparationScheduleDetailVO.setCompletionColumn(scheduleDTO.getCompletionColumn());
preparationScheduleDetailVO.setTotalColumn(scheduleDTO.getTotalColumn());
preparationScheduleDetailVO.setPlanCompletionTime(scheduleDTO.getPlanCompleteTime());
}
if (CollectionUtils.isNotEmpty(shop)){
if (CollectionUtils.isNotEmpty(shop)) {
ShopStageInfoDO shopStageInfoDO = shop.get(CommonConstants.ZERO);
preparationScheduleDetailVO.setContractCompletionTime(DateUtils.strToDate(shopStageInfoDO.getActualCompleteTime(), DateUtils.YYYY_MM_DD_HH_MM_SS));
}
@@ -164,13 +175,13 @@ public class PreparationServiceImpl implements PreparationService {
@Override
public void contractAndBuildStoreCompletion(Long shopId) {
List<ShopStageInfoDO> shopStageInfo = shopStageInfoDAO.getShopStageInfo(shopId, null);
if (CollectionUtils.isNotEmpty(shopStageInfo)){
if (CollectionUtils.isNotEmpty(shopStageInfo)) {
Map<Integer, ShopStageInfoDO> shopStageInfoDOMap = shopStageInfo.stream().collect(Collectors.toMap(ShopStageInfoDO::getShopSubStage, data -> data));
Boolean buildStoreCompletionFlag= ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_33.getShopSubStageStatus().equals(shopStageInfoDOMap.get(ShopSubStageEnum.SHOP_STAGE_3.getShopSubStage()).getShopSubStageStatus());
Boolean contractCompletionFlag= ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_73.getShopSubStageStatus().equals(shopStageInfoDOMap.get(ShopSubStageEnum.SHOP_STAGE_7.getShopSubStage()).getShopSubStageStatus());
Boolean buildStoreCompletionFlag = ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_33.getShopSubStageStatus().equals(shopStageInfoDOMap.get(ShopSubStageEnum.SHOP_STAGE_3.getShopSubStage()).getShopSubStageStatus());
Boolean contractCompletionFlag = ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_73.getShopSubStageStatus().equals(shopStageInfoDOMap.get(ShopSubStageEnum.SHOP_STAGE_7.getShopSubStage()).getShopSubStageStatus());
//都完成了 初始化后续流程数据
if (buildStoreCompletionFlag && contractCompletionFlag){
if (buildStoreCompletionFlag && contractCompletionFlag) {
//初始化后续流程数据 设计阶段 装修阶段 开业运营方案 首批订货清单
List<ShopStageInfoDO> list = new ArrayList<>();
ShopStageInfoDO data1 = shopStageInfoDOMap.get(ShopSubStageEnum.SHOP_STAGE_9.getShopSubStage());
@@ -179,6 +190,11 @@ public class PreparationServiceImpl implements PreparationService {
ShopStageInfoDO data2 = shopStageInfoDOMap.get(ShopSubStageEnum.SHOP_STAGE_11.getShopSubStage());
data2.setShopSubStageStatus(ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_110.getShopSubStageStatus());
list.add(data2);
//初始化xfsg_acceptance_info表
AcceptanceInfoDO acceptanceInfoDO = new AcceptanceInfoDO();
acceptanceInfoDO.setShopId(shopId);
acceptanceInfoDO.setCreateTime(new Date());
acceptanceInfoDAO.insertAcceptanceInfo(acceptanceInfoDO);
ShopStageInfoDO data3 = shopStageInfoDOMap.get(ShopSubStageEnum.SHOP_STAGE_14.getShopSubStage());
data3.setShopSubStageStatus(ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_140.getShopSubStageStatus());
list.add(data3);
@@ -190,12 +206,11 @@ public class PreparationServiceImpl implements PreparationService {
}
}
@Override
public void whetherToOpenForAcceptance(Long shopId) {
Integer allCompletionCount = shopStageInfoDAO.getAllCompletionCount(shopId);
//如果等于6 表示前面阶段都已经完成 初始化开业验收数据
if (allCompletionCount.equals(CommonConstants.SIX)){
if (allCompletionCount.equals(CommonConstants.SIX)) {
OpenAcceptanceInfoDO openAcceptanceInfoDO = new OpenAcceptanceInfoDO();
openAcceptanceInfoDO.setShopId(shopId);
openAcceptanceInfoDO.setAcceptanceStatus(CommonConstants.ZERO);

View File

@@ -17,6 +17,7 @@ import com.cool.store.request.FranchiseAgreementRequest;
import com.cool.store.response.AddSignFranchiseResponse;
import com.cool.store.response.ResponseResult;
import com.cool.store.service.CoolStoreStartFlowService;
import com.cool.store.service.PreparationService;
import com.cool.store.service.SignFranchiseService;
import com.cool.store.utils.poi.DateUtils;
import com.cool.store.utils.poi.constant.Constants;
@@ -76,6 +77,9 @@ public class SignFranchiseServiceImpl implements SignFranchiseService, AuditResu
@Resource
ShopAuditInfoMapper shopAuditInfoMapper;
@Resource
PreparationService preparationService;
@Override
public Boolean auditResult(AuditResultRequest request) {
log.info("SignFranchiseServiceImpl auditResult request{}", JSONObject.toJSONString(request));
@@ -99,6 +103,8 @@ public class SignFranchiseServiceImpl implements SignFranchiseService, AuditResu
}else if (request.getAuditResult() == Constants.ONE_INTEGER){
shopAuditInfoDO.setResultType(Constants.ZERO_INTEGER);
shopAuditInfoDO.setPassReason(request.getCause());
//校验建店与加盟签约合同是否完成 并初始化后续流程数据
preparationService.contractAndBuildStoreCompletion(shopId);
}
shopAuditInfoMapper.insertSelective(shopAuditInfoDO);
Long auditId = shopAuditInfoDO.getId();

View File

@@ -0,0 +1,131 @@
package com.cool.store.service.impl;
import com.cool.store.dao.EnterpriseUserDAO;
import com.cool.store.dao.ShopInfoDAO;
import com.cool.store.dao.TempUserDetailDAO;
import com.cool.store.entity.EnterpriseUserDO;
import com.cool.store.entity.ShopInfoDO;
import com.cool.store.entity.TempUserDetailDO;
import com.cool.store.exception.ServiceException;
import com.cool.store.request.TempUserDetailRequest;
import com.cool.store.service.TempUserDetailService;
import com.cool.store.utils.StringUtil;
import com.cool.store.vo.TempUserDetailInfoVO;
import com.cool.store.vo.TempUserDetailListVO;
import com.cool.store.vo.TempUserDetailVO;
import org.apache.commons.collections4.CollectionUtils;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
/**
* @author byd
* @date 2024-04-29 16:14
*/
@Service
public class TempUserDetailServiceImpl implements TempUserDetailService {
@Resource
private TempUserDetailDAO tempUserDetailDAO;
@Resource
private ShopInfoDAO shopInfoDAO;
@Resource
private EnterpriseUserDAO enterpriseUserDAO;
@Override
public TempUserDetailListVO userList(Long shopId) {
List<TempUserDetailDO> tempUserDetailDOList = tempUserDetailDAO.userList(shopId);
List<TempUserDetailVO> resultList = new ArrayList<>();
if (CollectionUtils.isNotEmpty(tempUserDetailDOList)) {
tempUserDetailDOList.forEach(tempUserDetailDO -> {
TempUserDetailVO tempUserDetailVO = new TempUserDetailVO();
tempUserDetailVO.setId(tempUserDetailDO.getId());
tempUserDetailVO.setMobile(tempUserDetailDO.getMobile());
tempUserDetailVO.setIdCard(tempUserDetailDO.getIdCard());
tempUserDetailVO.setSource(tempUserDetailDO.getSource());
tempUserDetailVO.setRegisterTime(tempUserDetailDO.getRegisterTime());
tempUserDetailVO.setShopId(tempUserDetailDO.getShopId());
tempUserDetailVO.setLineId(tempUserDetailDO.getLineId());
tempUserDetailVO.setUsername(tempUserDetailDO.getUsername());
tempUserDetailVO.setRegionId(tempUserDetailDO.getRegionId());
tempUserDetailVO.setRoleId(tempUserDetailDO.getRoleId());
resultList.add(tempUserDetailVO);
});
}
ShopInfoDO shopInfoDO = shopInfoDAO.getShopInfo(shopId);
if(shopInfoDO == null){
throw new ServiceException("该店铺不存在");
}
TempUserDetailListVO tempUserDetailListVO = new TempUserDetailListVO();
tempUserDetailListVO.setUserList(resultList);
tempUserDetailListVO.setShopId(shopId);
tempUserDetailListVO.setStoreNum(shopInfoDO.getStoreNum());
return tempUserDetailListVO;
}
@Override
public void addTempUserDetail(TempUserDetailRequest tempUserDetailRequest) {
TempUserDetailDO tempUserDetailDO = tempUserDetailDAO.selectByIdCard(tempUserDetailRequest.getIdCard());
if(tempUserDetailDO != null){
throw new ServiceException("该员工已登记");
}
EnterpriseUserDO enterpriseUserDO = enterpriseUserDAO.getUserInfoByThirdOaUniqueFlag(tempUserDetailRequest.getIdCard());
if(enterpriseUserDO == null){
throw new ServiceException("用户不存在");
}
ShopInfoDO shopInfoDO = shopInfoDAO.getShopInfo(tempUserDetailRequest.getShopId());
if(shopInfoDO == null){
throw new ServiceException("该店铺不存在");
}
if(StringUtil.isNotBlank(shopInfoDO.getStoreNum())){
throw new ServiceException("系统建店已完成,无法手动登记");
}
tempUserDetailDO = new TempUserDetailDO();
tempUserDetailDO.setLineId(shopInfoDO.getLineId());
tempUserDetailDO.setShopId(tempUserDetailRequest.getShopId());
tempUserDetailDO.setRegionId(shopInfoDO.getRegionId());
tempUserDetailDO.setMobile(tempUserDetailRequest.getPhone());
tempUserDetailDO.setUsername(tempUserDetailRequest.getName());
tempUserDetailDO.setSex(tempUserDetailRequest.getSex());
tempUserDetailDO.setAge(tempUserDetailRequest.getAge());
tempUserDetailDO.setIdCard(tempUserDetailRequest.getIdCard());
tempUserDetailDO.setStatus(1);
tempUserDetailDO.setEducational(tempUserDetailRequest.getHighestDegree());
tempUserDetailDO.setRoleId(tempUserDetailRequest.getJobId());
tempUserDetailDO.setIdCardNegativeUrl(tempUserDetailRequest.getEmblemPhoto());
tempUserDetailDO.setIdCardPositiveUrl(tempUserDetailRequest.getIdNumPhoto());
tempUserDetailDO.setHealthCertificateUrl(tempUserDetailRequest.getHealthCertificate());
tempUserDetailDO.setRegisterTime(new Date());
tempUserDetailDO.setSubmitTime(new Date());
tempUserDetailDO.setSource("create");
tempUserDetailDAO.insertSelective(tempUserDetailDO);
}
@Override
public TempUserDetailInfoVO getUserInfoByIdUserDetailId(Long userDetailId) {
TempUserDetailDO tempUserDetailDO = tempUserDetailDAO.selectById(userDetailId);
TempUserDetailInfoVO tempUserDetailInfoVO = new TempUserDetailInfoVO();
tempUserDetailInfoVO.setLineId(tempUserDetailDO.getLineId());
tempUserDetailInfoVO.setShopId(tempUserDetailDO.getShopId());
tempUserDetailInfoVO.setRegionId(tempUserDetailDO.getRegionId());
tempUserDetailInfoVO.setMobile(tempUserDetailDO.getMobile());
tempUserDetailInfoVO.setUsername(tempUserDetailDO.getUsername());
tempUserDetailInfoVO.setSex(tempUserDetailDO.getSex());
tempUserDetailInfoVO.setAge(tempUserDetailDO.getAge());
tempUserDetailInfoVO.setIdCard(tempUserDetailDO.getIdCard());
tempUserDetailInfoVO.setStatus(tempUserDetailDO.getStatus());
tempUserDetailInfoVO.setEducational(tempUserDetailDO.getEducational());
tempUserDetailInfoVO.setRoleId(tempUserDetailDO.getRoleId());
tempUserDetailInfoVO.setIdCardNegativeUrl(tempUserDetailDO.getIdCardNegativeUrl());
tempUserDetailInfoVO.setIdCardPositiveUrl(tempUserDetailDO.getIdCardPositiveUrl());
tempUserDetailInfoVO.setHealthCertificateUrl(tempUserDetailDO.getHealthCertificateUrl());
tempUserDetailInfoVO.setRegisterTime(new Date());
return tempUserDetailInfoVO;
}
}

View File

@@ -60,12 +60,12 @@ public class YlfServiceImpl implements YlfService {
}
@Override
public ProjectDTO getProjectList(String shopCode) {
log.info("getProjectList param:{}", shopCode);
if (Objects.isNull(shopCode)) {
public ProjectDTO getProjectList(String storeNum) {
log.info("getProjectList param:{}", storeNum);
if (Objects.isNull(storeNum)) {
throw new ServiceException(ErrorCodeEnum.PARAMS_VALIDATE_ERROR);
}
String url = String.format(Constants.GET_PROJECT_LIST, shopCode);
String url = String.format(Constants.GET_PROJECT_LIST, storeNum);
log.info("CoolStoreStartFlowServiceImpl#getOrder, url:{}", url);
try {
String jsonString = httpRestTemplateService.getForObject(url, String.class, new HashMap<>());
@@ -82,7 +82,7 @@ public class YlfServiceImpl implements YlfService {
return rows.get(0);
}
} else {
log.info("获取云立方装修公司信息失败,shopCode:{}", shopCode);
log.info("获取云立方装修公司信息失败,shopCode:{}", storeNum);
throw new ServiceException(ErrorCodeEnum.YLF_ERROR);
}

View File

@@ -57,7 +57,8 @@ public class SignValidateFilter implements Filter {
"/**/swagger*/**",
"/**/webjars/**",
"/xfsg/mini/program/v1/partnerManage/openArea/areaApplyQuery",
"/xfsg/*/api/audit/result",
"/xfsg/**/api/audit/result",
"/xfsg/**/api/license",
"/xfsg/mini/line/getRegionPayPic"
);

View File

@@ -3,8 +3,10 @@ package com.cool.store.controller.webb;
import com.alibaba.fastjson.JSONObject;
import com.cool.store.enums.ErrorCodeEnum;
import com.cool.store.request.AuditResultRequest;
import com.cool.store.request.LicenseBizContentRequest;
import com.cool.store.request.SysBuildResultRequest;
import com.cool.store.request.XfsgOpenApiRequest;
import com.cool.store.response.LicenseApiResponse;
import com.cool.store.response.ResponseResult;
import com.cool.store.service.KdzApiService;
import com.cool.store.utils.EncryptUtil;
@@ -42,6 +44,22 @@ public class KdzApiController {
return ResponseResult.success(kdzApiService.auditResult(auditResultRequest));
}
@ApiOperation("证照信息回调")
@PostMapping("/license")
public ResponseResult<LicenseApiResponse> license(@PathVariable(value = "enterprise-id") String eid,
@RequestBody XfsgOpenApiRequest request) {
log.info("auditResult requestBody :{}", JSONObject.toJSONString(request));
if(!verifyMD5(request,eid)){
return ResponseResult.fail(ErrorCodeEnum.VERIFY_MD5_FALSE);
}
if(eid == null || request.getBizContent() == null){
return ResponseResult.fail(ErrorCodeEnum.PARAMS_VALIDATE_ERROR);
}
LicenseBizContentRequest storeNum = JSONObject.parseObject(request.getBizContent(), LicenseBizContentRequest.class);
return ResponseResult.success(kdzApiService.license(storeNum.getStoreNum()));
}
public static boolean verifyMD5(XfsgOpenApiRequest request, String eid){

View File

@@ -7,10 +7,13 @@ import com.cool.store.dto.decoration.DecorationDTO;
import com.cool.store.dto.decoration.DecorationModelDTO;
import com.cool.store.request.DecorationPayRequest;
import com.cool.store.request.LinePaySubmitRequest;
import com.cool.store.request.ThreeAcceptanceRequest;
import com.cool.store.response.ResponseResult;
import com.cool.store.response.ThreeAcceptanceResponse;
import com.cool.store.service.CoolStoreStartFlowService;
import com.cool.store.service.DecorationService;
import com.cool.store.service.YlfService;
import com.cool.store.vo.DecorationModelVO;
import com.cool.store.vo.DesignInfoVo;
import com.cool.store.vo.PartnerUserInfoVO;
import io.swagger.annotations.Api;
@@ -34,6 +37,10 @@ import java.util.List;
public class PCDecorationController {
@Resource
private DecorationService decorationService;
@GetMapping("/flush")
public ResponseResult<Boolean> flush(@RequestParam("shopId") Long shopId) {
return ResponseResult.success(decorationService.flush(shopId));
}
@ApiModelProperty("获取设计阶段信息")
@GetMapping("/design")
public ResponseResult<DesignInfoVo> get(@RequestParam Long shopId){
@@ -45,4 +52,15 @@ public class PCDecorationController {
public ResponseResult<List<ConstructionScheduleDTO>> getConstruction(@RequestParam Long shopId){
return ResponseResult.success(decorationService.getConstruction(shopId)) ;
}
@ApiModelProperty("获取装修款信息")
@GetMapping("/getDecorationModelInfo")
public ResponseResult<DecorationModelVO> getDecorationModelInfo(@RequestParam Long shopId){
PartnerUserInfoVO user = null;
return ResponseResult.success(decorationService.getDecorationModel(shopId,user));
}
@ApiModelProperty("查看三方验收")
@GetMapping("/getThreeAcceptance")
public ResponseResult<ThreeAcceptanceResponse> getThreeAcceptance(@RequestParam Long shopId){
return ResponseResult.success(decorationService.getThreeAcceptance(shopId));
}
}

View File

@@ -3,9 +3,13 @@ package com.cool.store.controller.webc;
import com.cool.store.context.PartnerUserHolder;
import com.cool.store.dto.decoration.DecorationModelDTO;
import com.cool.store.request.LinePaySubmitRequest;
import com.cool.store.request.ThreeAcceptanceRequest;
import com.cool.store.response.ResponseResult;
import com.cool.store.response.ThreeAcceptanceResponse;
import com.cool.store.service.DecorationService;
import com.cool.store.vo.DecorationModelVO;
import com.cool.store.vo.PartnerUserInfoVO;
import com.sun.xml.bind.v2.TODO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiModelProperty;
import lombok.extern.slf4j.Slf4j;
@@ -29,13 +33,30 @@ public class MiniDecorationController {
@PostMapping("/submitDecorationModel")
public ResponseResult submitDecorationModel(@RequestBody LinePaySubmitRequest linePaySubmitRequest){
PartnerUserInfoVO user = PartnerUserHolder.getUser();
//TODO
user.setPartnerId("61bf57dc65334885802a278835f499d0");
decorationService.submitDecorationModel(linePaySubmitRequest, user);
return ResponseResult.success();
return ResponseResult.success(decorationService.submitDecorationModel(linePaySubmitRequest, user));
}
@ApiModelProperty("获取装修款信息,和二维码")
@GetMapping("/getDecorationModel")
public ResponseResult<DecorationModelDTO> getDecorationModel(@RequestParam Long shopId){
return ResponseResult.success(decorationService.DecorationModel(shopId)) ;
}
@ApiModelProperty("获取装修款信息")
@GetMapping("/getDecorationModelInfo")
public ResponseResult<DecorationModelVO> getDecorationModelInfo(@RequestParam Long shopId){
PartnerUserInfoVO user = PartnerUserHolder.getUser();
user.setPartnerId("61bf57dc65334885802a278835f499d0");
return ResponseResult.success(decorationService.getDecorationModel(shopId,user));
}
@ApiModelProperty("提交三方验收")
@PostMapping("/submitThreeAcceptance")
public ResponseResult<Integer> submitThreeAcceptance(@RequestParam ThreeAcceptanceRequest request){
return ResponseResult.success(decorationService.submitAcceptance(request));
}
@ApiModelProperty("查看三方验收")
@GetMapping("/getThreeAcceptance")
public ResponseResult<ThreeAcceptanceResponse> getThreeAcceptance(@RequestParam Long shopId){
return ResponseResult.success(decorationService.getThreeAcceptance(shopId));
}
}

View File

@@ -14,6 +14,7 @@ import com.cool.store.response.ResponseResult;
import com.cool.store.service.*;
import com.cool.store.vo.OpeningOperationPlanVO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.GetMapping;
@@ -30,24 +31,16 @@ import javax.annotation.Resource;
* @注释:
*/
@RestController
@RequestMapping("/mini/OpenPreparation")
@RequestMapping("/mini/openPreparation")
@Api(tags = "mini开业筹备")
@Slf4j
public class MiniOpenPreparationController {
@Resource
private OpeningOperationPlanService openingOperationPlanService;
@Resource
private AuditOpeningOperationPlanService auditOpeningOperationPlanService;
@Resource
private CoolStoreStartFlowService coolStoreStartFlowService;
@Resource
private ShopStageInfoDAO shopStageInfoDAO;
@Resource
private FirstOrderService firstOrderService;
@Resource
private ShopService shopService;
@Resource
private PreparationService preparationService;
@GetMapping("/openingOperationPlan/getPlan")
@ApiOperation("查询开业运营方案")
@@ -65,10 +58,5 @@ public class MiniOpenPreparationController {
public ResponseResult<FirstOrderDTO> get(@RequestParam("shopId") Long shopId) {
return ResponseResult.success(firstOrderService.getOrder(shopId));
}
@GetMapping("/firstOrder/flush")
public ResponseResult<FirstOrderDTO> flush(@RequestParam Long shopId) {
return ResponseResult.success( firstOrderService.flush(shopId));
}
}

View File

@@ -0,0 +1,68 @@
package com.cool.store.controller.webc;
import com.cool.store.dto.ehr.StaffBaseInfoDTO;
import com.cool.store.request.TempUserDetailRequest;
import com.cool.store.response.ResponseResult;
import com.cool.store.service.TempUserDetailService;
import com.cool.store.service.XfsgEhrService;
import com.cool.store.vo.TempUserDetailInfoVO;
import com.cool.store.vo.TempUserDetailListVO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
/**
* @author byd
* @date 2024-04-29 16:15
*/
@RestController
@RequestMapping({"/mini/tempUserDetail"})
@Slf4j
@Api(tags = "培训登记")
public class TempUserDetailController {
@Autowired
private TempUserDetailService tempUserDetailService;
@Autowired
private XfsgEhrService xfsgEhrService;
@GetMapping(path = "/getUserList")
@ApiOperation("登记员工列表")
@ApiImplicitParams({
@ApiImplicitParam(name = "shopId", value = "店铺Id")
})
public ResponseResult<TempUserDetailListVO> getUserList(@RequestParam(value = "shopId") Long shopId) {
return ResponseResult.success(tempUserDetailService.userList(shopId));
}
@GetMapping(path = "/getUserInfoByIdCard")
@ApiImplicitParams({
@ApiImplicitParam(name = "idCard", value = "身份证号")
})
@ApiOperation("培训登记-身份证号查询信息")
public ResponseResult<StaffBaseInfoDTO> getUserInfoByIdCard(@RequestParam(value = "idCard") String idCard) {
return ResponseResult.success(xfsgEhrService.getUserInfoByIdCard((idCard)));
}
@PostMapping(path = "/addTempUserDetail")
@ApiOperation("培训登记-确认登记")
public ResponseResult<Boolean> addTempUserDetail(@RequestBody TempUserDetailRequest tempUserDetailRequest) {
tempUserDetailService.addTempUserDetail((tempUserDetailRequest));
return ResponseResult.success(Boolean.TRUE);
}
@GetMapping(path = "/getUserInfoByIdUserDetailId")
@ApiImplicitParams({
@ApiImplicitParam(name = "userDetailId", value = "用户详情表id")
})
@ApiOperation("培训登记-查询信息根据用户详情id")
public ResponseResult<TempUserDetailInfoVO> getUserInfoByIdUserDetailId(@RequestParam(value = "userDetailId") Long userDetailId) {
return ResponseResult.success(tempUserDetailService.getUserInfoByIdUserDetailId((userDetailId)));
}
}

View File

@@ -2,19 +2,26 @@ package com.cool.store.job;
import com.alibaba.fastjson.JSONObject;
import com.cool.store.dao.*;
import com.cool.store.dto.decoration.ConstructionScheduleDTO;
import com.cool.store.dto.openPreparation.OpenPlanShopInfoDTO;
import com.cool.store.entity.AcceptanceInfoDO;
import com.cool.store.entity.LeaseBaseInfoDO;
import com.cool.store.entity.LineInterviewDO;
import com.cool.store.entity.ShopStageInfoDO;
import com.cool.store.enums.*;
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.TrainingExperienceMapper;
import com.cool.store.mq.util.HttpRestTemplateService;
import com.cool.store.service.CoolStoreStartFlowService;
import com.cool.store.service.DecorationService;
import com.cool.store.service.PreparationService;
import com.cool.store.utils.poi.StringUtils;
import com.cool.store.utils.poi.constant.Constants;
import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper;
import com.xxl.job.core.context.XxlJobHelper;
import com.xxl.job.core.handler.annotation.XxlJob;
import lombok.extern.slf4j.Slf4j;
@@ -23,10 +30,9 @@ import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.stream.Collectors;
@Slf4j
@@ -54,6 +60,11 @@ public class XxlJobHandler {
private ShopStageInfoDAO shopStageInfoDAO;
@Resource
private CoolStoreStartFlowService coolStoreStartFlowService;
@Resource
private AcceptanceInfoDAO acceptanceInfoDAO;
@Resource
private DecorationService decorationService;
/**
* 每天都将待体验门店信息变更到体验中
*/
@@ -90,6 +101,7 @@ public class XxlJobHandler {
lineInterviewDAO.batchUpdateInterviewStatus(interviewIds, InterviewStatusEnum.WAIT_AUDIT);
XxlJobHelper.handleSuccess();
}
/**
* @Auther: wangshuo
* @Date: 2024/4/25
@@ -97,13 +109,13 @@ public class XxlJobHandler {
*/
@XxlJob("updateFirstOrder")
public void updateFirstOrder() {
boolean hasNext =true;
boolean hasNext = true;
int PageNum = 1;
int PageSize = 50;
while(hasNext){
while (hasNext) {
log.info("----查询更新订货金----");
Page<Long> shopIdListByStageStatus = shopStageInfoDAO.getShopIdListByStageStatus(PageNum,PageSize);
Page<Long> shopIdListByStageStatus = shopStageInfoDAO.getShopIdListByStageStatus(PageNum, PageSize);
if (CollectionUtils.isEmpty(shopIdListByStageStatus)) {
log.info("------今日没有待更新数据------");
return;
@@ -111,20 +123,20 @@ public class XxlJobHandler {
List<OpenPlanShopInfoDTO> openPlanShopInfoDTOS = shopInfoDAO.queryStoreNumeListByid(shopIdListByStageStatus);
Map<Long, String> map = openPlanShopInfoDTOS.stream().
collect(Collectors.toMap(OpenPlanShopInfoDTO::getShopId, OpenPlanShopInfoDTO::getStoreNum));
for (Long shopId : map.keySet()){
for (Long shopId : map.keySet()) {
String shopCode = map.get(shopId);
try {
Boolean firstOrder = coolStoreStartFlowService.getFirstOrder(shopCode);
if (firstOrder == null) {
throw new ServiceException(ErrorCodeEnum.GET_FIRST_ORDER);
throw new ServiceException(ErrorCodeEnum.GET_FIRST_ORDER);
}
if (firstOrder.equals(Boolean.TRUE)) {
shopStageInfoDAO.updateShopStageAndAuditInfo(shopId, ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_151, null);
preparationService.whetherToOpenForAcceptance(shopId);
}
}catch (Exception e) {
log.error("获取鲜丰订货金异常",e);
} catch (Exception e) {
log.error("获取鲜丰订货金异常", e);
}
}
hasNext = shopIdListByStageStatus.size() >= PageSize;
@@ -134,4 +146,81 @@ public class XxlJobHandler {
}
/**
* @Auther: wangshuo
* @Date: 2024/4/29
* @description: 每天更新装修阶段进场时间等,至预约状态
*/
@XxlJob("acceptanceInfo")
public void AcceptanceInfoDO() {
boolean hasNext = true;
int PageNum = 1;
int PageSize = 50;
while (hasNext) {
log.info("----每天更新装修阶段进场时间等,至预约状态----");
PageHelper.startPage(PageNum, PageSize);
List<AcceptanceInfoDO> acceptanceInfoDOS = acceptanceInfoDAO.selectAcceptanceInfo();
if (CollectionUtils.isEmpty(acceptanceInfoDOS)) {
log.info("------今日没有待更新数据------");
return;
}
for (AcceptanceInfoDO acceptanceInfoDO : acceptanceInfoDOS) {
Long shopId = acceptanceInfoDO.getShopId();
acceptanceInfoDO.setUpdateTime(new Date());
ConstructionScheduleDTO constructionInfo = decorationService.getConstructionInfo(shopId);
List<ConstructionScheduleDTO> construction = decorationService.getConstruction(shopId);
//施工完成时间
if (Objects.nonNull(constructionInfo) && !StringUtils.isNull(constructionInfo.getPlanEndDate())
&& Objects.isNull(acceptanceInfoDO.getConstructionCompletionTime())) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
try {
Date constructionEndTime = sdf.parse(constructionInfo.getPlanEndDate());
acceptanceInfoDO.setConstructionCompletionTime(constructionEndTime);
} catch (ParseException e) {
log.error("初始化acceptanceInfo鲜丰服务施工完成时间日期转化异常");
}
}
//进场时间
if (Objects.nonNull(construction) && !StringUtils.isNull(construction.get(0).getActualBeginDate())
&& Objects.isNull(acceptanceInfoDO.getActualEntryTime())) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
try {
Date constructionBeginTime = sdf.parse(construction.get(0).getActualBeginDate());
acceptanceInfoDO.setActualEntryTime(constructionBeginTime);
} catch (ParseException e) {
log.error("初始化acceptanceInfo鲜丰服务进场时间日期转化异常");
}
}
//进场时间+5
if (Objects.nonNull(construction) && !StringUtils.isNull(construction.get(0).getActualBeginDate())
&& Objects.nonNull(acceptanceInfoDO.getActualEntryTime())) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(acceptanceInfoDO.getActualEntryTime());
calendar.add(Calendar.DAY_OF_MONTH, 5); // 添加5天
Date dateAfterFiveDays = calendar.getTime();
Date now =new Date();
//TODO
List<ShopStageInfoDO> shopStageInfo = shopStageInfoDAO.getShopStageInfo(shopId, null);
if (CollectionUtils.isNotEmpty(shopStageInfo)) {
Map<Integer, ShopStageInfoDO> shopStageInfoDOMap = shopStageInfo.stream().collect(Collectors.toMap(ShopStageInfoDO::getShopSubStage, data -> data));
Boolean buildStoreCompletionFlag = ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_33.getShopSubStageStatus().equals(shopStageInfoDOMap.get(ShopSubStageEnum.SHOP_STAGE_3.getShopSubStage()).getShopSubStageStatus());
Boolean contractCompletionFlag = ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_73.getShopSubStageStatus().equals(shopStageInfoDOMap.get(ShopSubStageEnum.SHOP_STAGE_7.getShopSubStage()).getShopSubStageStatus());
if (buildStoreCompletionFlag && contractCompletionFlag) {
List<ShopStageInfoDO> list = new ArrayList<>();
ShopStageInfoDO data1 = shopStageInfoDOMap.get(ShopSubStageEnum.SHOP_STAGE_12.getShopSubStage());
data1.setShopSubStageStatus(ShopSubStageStatusEnum.SHOP_SUB_STAGE_STATUS_120.getShopSubStageStatus());
list.add(data1);
shopStageInfoDAO.batchUpdate(list);
}
}
}
acceptanceInfoDAO.insertAcceptanceInfo(acceptanceInfoDO);
//TODO 短信通知
}
hasNext = acceptanceInfoDOS.size() >= PageSize;
PageNum++;
}
}
}