diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/dao/PreFriedProductsDAO.java b/coolstore-partner-dao/src/main/java/com/cool/store/dao/PreFriedProductsDAO.java index 28b48550f..67fabe447 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/dao/PreFriedProductsDAO.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/dao/PreFriedProductsDAO.java @@ -2,6 +2,7 @@ package com.cool.store.dao; import com.cool.store.entity.PreFriedProductsDO; import com.cool.store.mapper.PreFriedProductsMapper; +import com.google.common.collect.Lists; import org.apache.commons.collections4.CollectionUtils; import org.springframework.stereotype.Repository; @@ -28,6 +29,14 @@ public class PreFriedProductsDAO { return preFriedProductsMapper.forceUpdate(product); } + public List selectByProductIds( List productIds) { + if (CollectionUtils.isEmpty(productIds)){ + return Lists.newArrayList(); + } + return preFriedProductsMapper.selectByProductIds(productIds); + } + + public PreFriedProductsDO queryById(Long id){ return preFriedProductsMapper.selectByPrimaryKey(id); } diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/dao/PreFryRecordsDAO.java b/coolstore-partner-dao/src/main/java/com/cool/store/dao/PreFryRecordsDAO.java index 3fa1671df..6ae4a2491 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/dao/PreFryRecordsDAO.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/dao/PreFryRecordsDAO.java @@ -1,6 +1,7 @@ package com.cool.store.dao; import com.cool.store.constants.CommonConstants; +import com.cool.store.dto.pre.fry.DailyFryCountDTO; import com.cool.store.entity.PreFryRecordsDO; import com.cool.store.mapper.PreFryRecordsMapper; import org.apache.commons.collections4.CollectionUtils; @@ -8,6 +9,7 @@ import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Repository; import javax.annotation.Resource; +import java.util.Date; import java.util.List; import java.util.Objects; @@ -48,7 +50,7 @@ public class PreFryRecordsDAO { } - int batchUpdateStageByIds( List ids, + public int batchUpdateStageByIds( List ids, Integer currentStage){ if (CollectionUtils.isEmpty(ids)) { return CommonConstants.ZERO; @@ -56,13 +58,20 @@ public class PreFryRecordsDAO { return preFryRecordsMapper.batchUpdateStageByIds(ids,currentStage); } - List selectByStoreAndDateStage(String storeCode, - List yesterdayStageList, - Integer todayStage){ + public List selectByStoreAndDateStage(String storeCode, + List yesterdayStageList, + Integer todayStage, String queryDate){ if (StringUtils.isBlank(storeCode) || CollectionUtils.isEmpty(yesterdayStageList)) { return null; } - return preFryRecordsMapper.selectByStoreAndDateStage(storeCode,yesterdayStageList,todayStage); + return preFryRecordsMapper.selectByStoreAndDateStage(storeCode,yesterdayStageList,todayStage,queryDate); + } + + public List selectDailyFryCountInCurrentMonth(String storeCode,Long time) { + if (StringUtils.isEmpty(storeCode)) { + return null; + } + return preFryRecordsMapper.selectDailyFryCountInCurrentMonth(storeCode,time); } diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/dao/PreFryStageChangesDAO.java b/coolstore-partner-dao/src/main/java/com/cool/store/dao/PreFryStageChangesDAO.java index 15e1c3ece..49d4ce2b9 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/dao/PreFryStageChangesDAO.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/dao/PreFryStageChangesDAO.java @@ -31,14 +31,19 @@ public class PreFryStageChangesDAO { } - public List selectByRecordId( Integer recordId){ + public List selectByRecordId( Long recordId){ if (recordId == null){ return new ArrayList<>(); } return preFryStageChangesMapper.selectByRecordId(recordId); } - + public List selectByRecordIdList( List recordIdList){ + if (recordIdList == null){ + return new ArrayList<>(); + } + return preFryStageChangesMapper.selectByRecordIdList(recordIdList); + } diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/PreFriedProductsMapper.java b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/PreFriedProductsMapper.java index 3eb4012a5..8709f59a0 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/PreFriedProductsMapper.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/PreFriedProductsMapper.java @@ -47,5 +47,7 @@ public interface PreFriedProductsMapper extends Mapper { */ int forceUpdate(@Param("product") PreFriedProductsDO product); + List selectByProductIds(@Param("productIds") List productIds); + } \ No newline at end of file diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/PreFryRecordsMapper.java b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/PreFryRecordsMapper.java index 3e888f680..299e880ae 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/PreFryRecordsMapper.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/PreFryRecordsMapper.java @@ -1,22 +1,27 @@ package com.cool.store.mapper; +import com.cool.store.dto.pre.fry.DailyFryCountDTO; import com.cool.store.entity.PreFryRecordsDO; import org.apache.ibatis.annotations.Param; import tk.mybatis.mapper.common.Mapper; +import java.util.Date; import java.util.List; public interface PreFryRecordsMapper extends Mapper { int batchInsert(List records); - int batchUpdateStageByIds(@Param("ids") List ids, + int batchUpdateStageByIds(@Param("ids") List ids, @Param("currentStage") Integer currentStage); List selectByStoreAndDateStage( @Param("storeCode") String storeCode, @Param("yesterdayStageList") List yesterdayStageList, - @Param("todayStage") Integer todayStage); + @Param("todayStage") Integer todayStage, + @Param("queryDate") String queryDate); + List selectDailyFryCountInCurrentMonth( + @Param("storeCode") String storeCode,@Param("time") Long time); } \ No newline at end of file diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/PreFryStageChangesMapper.java b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/PreFryStageChangesMapper.java index dcaba1c59..f35712624 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/PreFryStageChangesMapper.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/PreFryStageChangesMapper.java @@ -12,7 +12,8 @@ public interface PreFryStageChangesMapper extends Mapper { int batchInsert(List records); - List selectByRecordId(@Param("recordId") Integer recordId); + List selectByRecordId(@Param("recordId") Long recordId); + List selectByRecordIdList(@Param("recordIdList") List recordIdList); } \ No newline at end of file diff --git a/coolstore-partner-dao/src/main/resources/mapper/PreFriedProductsMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/PreFriedProductsMapper.xml index ee102fc3e..f257b44d5 100644 --- a/coolstore-partner-dao/src/main/resources/mapper/PreFriedProductsMapper.xml +++ b/coolstore-partner-dao/src/main/resources/mapper/PreFriedProductsMapper.xml @@ -59,6 +59,14 @@ + + UPDATE xfsg_pre_fried_products diff --git a/coolstore-partner-dao/src/main/resources/mapper/PreFryRecordsMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/PreFryRecordsMapper.xml index ed96e024d..77aee25e2 100644 --- a/coolstore-partner-dao/src/main/resources/mapper/PreFryRecordsMapper.xml +++ b/coolstore-partner-dao/src/main/resources/mapper/PreFryRecordsMapper.xml @@ -7,7 +7,8 @@ --> - + + @@ -44,16 +45,28 @@ SELECT * FROM xfsg_pre_fry_records WHERE store_code = #{storeCode} AND ( - (fry_date = DATE_SUB(CURDATE(), INTERVAL 1 DAY) + (fry_date = DATE_SUB(#{queryDate}, INTERVAL 1 DAY) AND current_stage IN #{stage} ) OR - (fry_date = CURDATE() AND current_stage = #{todayStage}) + (fry_date = #{queryDate} AND current_stage = #{todayStage}) ) + + \ No newline at end of file diff --git a/coolstore-partner-dao/src/main/resources/mapper/PreFryStageChangesMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/PreFryStageChangesMapper.xml index cb072b389..250b5ccb5 100644 --- a/coolstore-partner-dao/src/main/resources/mapper/PreFryStageChangesMapper.xml +++ b/coolstore-partner-dao/src/main/resources/mapper/PreFryStageChangesMapper.xml @@ -34,6 +34,18 @@ WHERE record_id = #{recordId} ORDER BY created_time DESC + + \ No newline at end of file diff --git a/coolstore-partner-model/src/main/java/com/cool/store/dto/pre/fry/DailyFryCountDTO.java b/coolstore-partner-model/src/main/java/com/cool/store/dto/pre/fry/DailyFryCountDTO.java new file mode 100644 index 000000000..2ec5a0d34 --- /dev/null +++ b/coolstore-partner-model/src/main/java/com/cool/store/dto/pre/fry/DailyFryCountDTO.java @@ -0,0 +1,18 @@ +package com.cool.store.dto.pre.fry; + +import lombok.Data; + +import java.util.Date; + +/** + * @Author suzhuhong + * @Date 2025/6/23 19:04 + * @Version 1.0 + */ +@Data +public class DailyFryCountDTO { + + private Date fryDate; + private Integer count; + +} diff --git a/coolstore-partner-model/src/main/java/com/cool/store/dto/pre/fry/FryRecordsQueryDTO.java b/coolstore-partner-model/src/main/java/com/cool/store/dto/pre/fry/FryRecordsQueryDTO.java new file mode 100644 index 000000000..d728d3dd8 --- /dev/null +++ b/coolstore-partner-model/src/main/java/com/cool/store/dto/pre/fry/FryRecordsQueryDTO.java @@ -0,0 +1,25 @@ +package com.cool.store.dto.pre.fry; + +import com.cool.store.common.PageBasicInfo; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.Date; + +/** + * @Author suzhuhong + * @Date 2025/6/23 18:24 + * @Version 1.0 + */ +@Data +public class FryRecordsQueryDTO extends PageBasicInfo { + + @ApiModelProperty("门店编码") + private String storeCode; + @ApiModelProperty("当前日期") + private Date currentDate; + @ApiModelProperty("申请类型") + private Integer applyType; + + +} diff --git a/coolstore-partner-model/src/main/java/com/cool/store/dto/pre/fry/PreFryRecordsDetailDTO.java b/coolstore-partner-model/src/main/java/com/cool/store/dto/pre/fry/PreFryRecordsDetailDTO.java new file mode 100644 index 000000000..725aff1bc --- /dev/null +++ b/coolstore-partner-model/src/main/java/com/cool/store/dto/pre/fry/PreFryRecordsDetailDTO.java @@ -0,0 +1,49 @@ +package com.cool.store.dto.pre.fry; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.Date; +import java.util.List; + +/** + * @Author suzhuhong + * @Date 2025/6/23 17:23 + * @Version 1.0 + */ +@Data +public class PreFryRecordsDetailDTO { + + @ApiModelProperty( "ID") + private Long id; + + @ApiModelProperty( "门店编码") + private String storeCode; + + @ApiModelProperty( "预炸产品编码") + private Long productId; + + @ApiModelProperty( "预炸产品名称") + private String productName; + @ApiModelProperty( "预炸记录编码") + private String recordCode; + + @ApiModelProperty( "预炸产品图片") + private String productImageUrl; + + @ApiModelProperty( "预炸完成时间") + private Date fryCompleteTime; + + @ApiModelProperty( "最迟售卖时间") + private Date latestSaleTime; + + @ApiModelProperty( "当前产品阶段:1-预炸完成,2-存入展示柜,3-放入冰箱,4-次日拿出,5-报废") + private Integer currentStage; + + @ApiModelProperty( "申请类型") + private Integer currentApplyType; + + @ApiModelProperty( "状态记录") + private List stageHistory; + +} diff --git a/coolstore-partner-model/src/main/java/com/cool/store/dto/pre/fry/PreFryStageImagesDTO.java b/coolstore-partner-model/src/main/java/com/cool/store/dto/pre/fry/PreFryStageImagesDTO.java index bfeacfef8..440d00abb 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/dto/pre/fry/PreFryStageImagesDTO.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/dto/pre/fry/PreFryStageImagesDTO.java @@ -1,5 +1,6 @@ package com.cool.store.dto.pre.fry; +import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.util.Date; @@ -12,10 +13,17 @@ import java.util.Date; @Data public class PreFryStageImagesDTO { + @ApiModelProperty("ID") private Integer id; - private Integer recordId; + @ApiModelProperty("记录ID") + private Long recordId; + @ApiModelProperty("当前阶段") + private Integer stage; + @ApiModelProperty("图片1") private String image1; + @ApiModelProperty("图片2") private String image2; + @ApiModelProperty("时间") private Date createdTime; } diff --git a/coolstore-partner-model/src/main/java/com/cool/store/entity/PreFryRecordsDO.java b/coolstore-partner-model/src/main/java/com/cool/store/entity/PreFryRecordsDO.java index bdd557194..cd66179ce 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/entity/PreFryRecordsDO.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/entity/PreFryRecordsDO.java @@ -24,6 +24,9 @@ public class PreFryRecordsDO { @Column(name = "product_id") private Long productId; + @Column(name = "record_code") + private String recordCode; + /** * 预炸日期 @@ -76,6 +79,14 @@ public class PreFryRecordsDO { this.currentApplyType = currentApplyType; } + public String getRecordCode() { + return recordCode; + } + + public void setRecordCode(String recordCode) { + this.recordCode = recordCode; + } + /** * 获取主键ID * diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/PreFryRecordsService.java b/coolstore-partner-service/src/main/java/com/cool/store/service/PreFryRecordsService.java index a5e78de2a..68e1df6f3 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/PreFryRecordsService.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/PreFryRecordsService.java @@ -1,7 +1,13 @@ package com.cool.store.service; import com.cool.store.dto.pre.fry.AddPreFryRecordsDTO; +import com.cool.store.dto.pre.fry.DailyFryCountDTO; +import com.cool.store.dto.pre.fry.FryRecordsQueryDTO; +import com.cool.store.dto.pre.fry.PreFryRecordsDetailDTO; import com.cool.store.vo.PartnerUserInfoVO; +import com.github.pagehelper.PageInfo; + +import java.util.List; /** * @Author suzhuhong @@ -19,6 +25,13 @@ public interface PreFryRecordsService { Boolean batchInsert(AddPreFryRecordsDTO addPreFryRecordsDTO, PartnerUserInfoVO user); + PageInfo ListByStoreCodeAndDate(FryRecordsQueryDTO dto); + + PreFryRecordsDetailDTO getById(Long id); + + List queryByStoreCode(String storeCode, Long time); + + diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/PreFryQualificationApplyServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/PreFryQualificationApplyServiceImpl.java index 1a382b976..592cc6976 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/PreFryQualificationApplyServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/PreFryQualificationApplyServiceImpl.java @@ -209,7 +209,7 @@ public class PreFryQualificationApplyServiceImpl implements PreFryQualificationA public String getPreFlyQualificationApplyCode() { //当前日期 String today = CoolDateUtils.getToday(); - return "13" + today + String.format("%04d", ThreadLocalRandom.current().nextInt(10000)); + return "13" + today + String.format("%04d", ThreadLocalRandom.current().nextInt(100000)); } diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/PreFryRecordsServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/PreFryRecordsServiceImpl.java index 0e862814e..db1f9d171 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/PreFryRecordsServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/PreFryRecordsServiceImpl.java @@ -1,9 +1,11 @@ package com.cool.store.service.impl; +import com.cool.store.dao.PreFriedProductsDAO; import com.cool.store.dao.PreFryQualificationApplyDAO; import com.cool.store.dao.PreFryRecordsDAO; import com.cool.store.dao.PreFryStageChangesDAO; -import com.cool.store.dto.pre.fry.AddPreFryRecordsDTO; +import com.cool.store.dto.pre.fry.*; +import com.cool.store.entity.PreFriedProductsDO; import com.cool.store.entity.PreFryQualificationApplyDO; import com.cool.store.entity.PreFryRecordsDO; import com.cool.store.entity.PreFryStageChangesDO; @@ -12,15 +14,21 @@ import com.cool.store.enums.PreFryApplyTypeEnum; import com.cool.store.enums.PreFryStageEnum; import com.cool.store.exception.ServiceException; import com.cool.store.service.PreFryRecordsService; +import com.cool.store.utils.CoolDateUtils; +import com.cool.store.utils.poi.DateUtils; import com.cool.store.vo.PartnerUserInfoVO; +import com.github.pagehelper.PageHelper; +import com.github.pagehelper.PageInfo; import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Service; import javax.annotation.Resource; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.Date; -import java.util.List; +import java.util.*; +import java.util.concurrent.ThreadLocalRandom; +import java.util.stream.Collectors; + +import static com.cool.store.enums.PreFryStageEnum.*; /** * @Author suzhuhong @@ -38,6 +46,8 @@ public class PreFryRecordsServiceImpl implements PreFryRecordsService { PreFryStageChangesDAO preFryStageChangesDAO; @Resource PreFryQualificationApplyDAO preFryQualificationApplyDAO; + @Resource + PreFriedProductsDAO preFriedProductsDAO; @Override @@ -52,7 +62,7 @@ public class PreFryRecordsServiceImpl implements PreFryRecordsService { } //如果出现优先级升高的情况 优先级低的只有报废可选择 1的优先级最高 3最低 if (minApplyTypeByStoreCode.getApplyType(){ PreFryRecordsDO preFryRecordsDO = new PreFryRecordsDO(); + preFryRecordsDO.setStoreCode(addPreFryRecordsDTO.getStoreCode()); preFryRecordsDO.setProductId(x.getProductId()); preFryRecordsDO.setFryDate(new Date()); + preFryRecordsDO.setRecordCode(getRecordCode()); preFryRecordsDO.setFryCompleteTime(new Date()); preFryRecordsDO.setLatestSaleTime(getLatestSaleTime(minApplyTypeByStoreCode.getApplyType())); preFryRecordsDO.setCurrentStage(addPreFryRecordsDTO.getCurrentStage()); @@ -77,6 +89,7 @@ public class PreFryRecordsServiceImpl implements PreFryRecordsService { list.add(preFryStageChangesDO); }); }else { + List recordList= new ArrayList<>(); addPreFryRecordsDTO.getRecords().forEach(x->{ PreFryStageChangesDO preFryStageChangesDO = new PreFryStageChangesDO(); preFryStageChangesDO.setStage(addPreFryRecordsDTO.getCurrentStage()); @@ -84,21 +97,91 @@ public class PreFryRecordsServiceImpl implements PreFryRecordsService { preFryStageChangesDO.setImage1(x.getImage1()); preFryStageChangesDO.setImage2(x.getImage2()); preFryStageChangesDO.setOperatorName(user.getUsername()); + recordList.add(x.getRecordId()); list.add(preFryStageChangesDO); }); + preFryRecordsDAO.batchUpdateStageByIds(recordList,addPreFryRecordsDTO.getCurrentStage()); } preFryStageChangesDAO.batchInsert(list); return Boolean.TRUE; } + @Override + public PageInfo ListByStoreCodeAndDate(FryRecordsQueryDTO dto) { + PageHelper.startPage(dto.getPageNum(),dto.getPageSize()); + if (dto.getCurrentDate()==null|| StringUtils.isBlank(dto.getStoreCode())){ + throw new ServiceException(ErrorCodeEnum.PARAMS_REQUIRED); + } + List preFryRecordsDOS = preFryRecordsDAO.selectByStoreAndDateStage(dto.getStoreCode(), Arrays.asList(STORED_IN_FRIDGE.getCode(), + TAKEN_OUT_NEXT_DAY.getCode(), DISCARDED.getCode()), PRE_FRY_COMPLETED.getCode(), DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD,dto.getCurrentDate())); + PageInfo result = new PageInfo<>(preFryRecordsDOS); + if (CollectionUtils.isEmpty(preFryRecordsDOS)){ + return result; + } + List recordIdList = preFryRecordsDOS.stream().map(PreFryRecordsDO::getId).collect(Collectors.toList()); + List stageImagesDTOS = preFryStageChangesDAO.selectByRecordIdList(recordIdList); + List productIdList = preFryRecordsDOS.stream().map(PreFryRecordsDO::getProductId).collect(Collectors.toList()); + List preFriedProductsDOS = preFriedProductsDAO.selectByProductIds(productIdList); + Map preFriedProductsDOSMap = preFriedProductsDOS.stream().collect(Collectors.toMap(PreFriedProductsDO::getId, x -> x)); + + //将数据根据recordId分组 并根据id排序 + Map> stageImagesDTOMap = + stageImagesDTOS.stream().collect(Collectors.groupingBy(PreFryStageImagesDTO::getRecordId)); + List list = new ArrayList<>(); + preFryRecordsDOS.forEach(x->{ + PreFryRecordsDetailDTO preFryRecordsDetailDTO = new PreFryRecordsDetailDTO(); + preFryRecordsDetailDTO.setId(x.getId()); + preFryRecordsDetailDTO.setStoreCode(x.getStoreCode()); + preFryRecordsDetailDTO.setProductId(x.getProductId()); + preFryRecordsDetailDTO.setProductName(preFriedProductsDOSMap.getOrDefault(x.getProductId(),new PreFriedProductsDO()).getProductName()); + preFryRecordsDetailDTO.setProductImageUrl(preFriedProductsDOSMap.getOrDefault(x.getProductId(),new PreFriedProductsDO()).getProductImage()); + preFryRecordsDetailDTO.setFryCompleteTime(x.getFryCompleteTime()); + preFryRecordsDetailDTO.setLatestSaleTime(x.getLatestSaleTime()); + preFryRecordsDetailDTO.setCurrentStage(x.getCurrentStage()); + preFryRecordsDetailDTO.setCurrentApplyType(x.getCurrentApplyType()); + preFryRecordsDetailDTO.setStageHistory(stageImagesDTOMap.getOrDefault(x.getId(),new ArrayList<>())); + list.add(preFryRecordsDetailDTO); + }); + result.setList( list); + return result; + } + + @Override + public PreFryRecordsDetailDTO getById(Long id) { + PreFryRecordsDO preFryRecordsDO = preFryRecordsDAO.queryById(id); + if (preFryRecordsDO == null) { + throw new ServiceException(ErrorCodeEnum.PARAMS_REQUIRED); + } + List preFryStageImagesDTOS = preFryStageChangesDAO.selectByRecordId(id); + PreFriedProductsDO preFriedProductsDO = preFriedProductsDAO.queryById(preFryRecordsDO.getProductId()); + PreFryRecordsDetailDTO preFryRecordsDetailDTO = new PreFryRecordsDetailDTO(); + preFryRecordsDetailDTO.setId(preFryRecordsDO.getId()); + preFryRecordsDetailDTO.setStoreCode(preFryRecordsDO.getStoreCode()); + preFryRecordsDetailDTO.setProductId(preFryRecordsDO.getProductId()); + preFryRecordsDetailDTO.setRecordCode(preFryRecordsDO.getRecordCode()); + preFryRecordsDetailDTO.setProductName(preFriedProductsDO.getProductName()); + preFryRecordsDetailDTO.setProductImageUrl(preFriedProductsDO.getProductImage()); + preFryRecordsDetailDTO.setFryCompleteTime(preFryRecordsDO.getFryCompleteTime()); + preFryRecordsDetailDTO.setLatestSaleTime(preFryRecordsDO.getLatestSaleTime()); + preFryRecordsDetailDTO.setCurrentStage(preFryRecordsDO.getCurrentStage()); + preFryRecordsDetailDTO.setCurrentApplyType(preFryRecordsDO.getCurrentApplyType()); + preFryRecordsDetailDTO.setStageHistory(preFryStageImagesDTOS); + return preFryRecordsDetailDTO; + } + + @Override + public List queryByStoreCode(String storeCode,Long time) { + return preFryRecordsDAO.selectDailyFryCountInCurrentMonth(storeCode, time); + } + private Boolean addPreFryRecordsFlag(Integer applyType,Integer stage){ - if (applyType== PreFryApplyTypeEnum.HAS_REFRIGERATED_DISPLAY.getCode() && stage==PreFryStageEnum.PRE_FRY_COMPLETED.getCode()){ + if (applyType== PreFryApplyTypeEnum.HAS_REFRIGERATED_DISPLAY.getCode() && stage== PRE_FRY_COMPLETED.getCode()){ return Boolean.TRUE; - }else if (applyType == PreFryApplyTypeEnum.NO_DISPLAY.getCode() && stage==PreFryStageEnum.PRE_FRY_COMPLETED.getCode()){ + }else if (applyType == PreFryApplyTypeEnum.NO_DISPLAY.getCode() && stage== PRE_FRY_COMPLETED.getCode()){ return Boolean.TRUE; } - if (applyType==PreFryApplyTypeEnum.HAS_NORMAL_DISPLAY.getCode() && stage==PreFryStageEnum.STORED_IN_DISPLAY_CABINET.getCode()){ + if (applyType==PreFryApplyTypeEnum.HAS_NORMAL_DISPLAY.getCode() && stage== STORED_IN_DISPLAY_CABINET.getCode()){ return Boolean.TRUE; } return Boolean.FALSE; @@ -116,5 +199,11 @@ public class PreFryRecordsServiceImpl implements PreFryRecordsService { return calendar.getTime(); } + public String getRecordCode() { + //当前日期 + String today = CoolDateUtils.getToday(); + return "14" + today + String.format("%04d", ThreadLocalRandom.current().nextInt(100000)); + } + } diff --git a/coolstore-partner-service/src/main/java/com/cool/store/utils/poi/DateUtils.java b/coolstore-partner-service/src/main/java/com/cool/store/utils/poi/DateUtils.java index 28c0255ae..861a9166b 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/utils/poi/DateUtils.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/utils/poi/DateUtils.java @@ -203,9 +203,9 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils { * @param millis 毫秒数 * @return 时间 */ - public static String getDateByMillis(long millis) { + public static String getDateByMillis(long millis,String format) { //12小时制 - SimpleDateFormat simpleDateFormat = new SimpleDateFormat(YYYY_MM_DD_HH_MM_SS); + SimpleDateFormat simpleDateFormat = new SimpleDateFormat(format); Date date = new Date(); date.setTime(millis); return simpleDateFormat.format(date); diff --git a/coolstore-partner-web/src/main/java/com/cool/store/controller/webc/PreFryRecordsController.java b/coolstore-partner-web/src/main/java/com/cool/store/controller/webc/PreFryRecordsController.java new file mode 100644 index 000000000..e5bdf49df --- /dev/null +++ b/coolstore-partner-web/src/main/java/com/cool/store/controller/webc/PreFryRecordsController.java @@ -0,0 +1,63 @@ +package com.cool.store.controller.webc; + +import com.alibaba.fastjson.JSONObject; +import com.cool.store.context.PartnerUserHolder; +import com.cool.store.dto.pre.fry.*; +import com.cool.store.response.ResponseResult; +import com.cool.store.service.PreFryRecordsService; +import com.github.pagehelper.PageInfo; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import java.util.List; + +/** + * @Author suzhuhong + * @Date 2025/6/23 19:00 + * @Version 1.0 + */ +@Slf4j +@Api(tags = "预炸-预炸记录") +@RestController +@RequestMapping("/mini/pre/record/") +public class PreFryRecordsController { + + + @Resource + PreFryRecordsService preFryRecordsService; + + @ApiOperation("预炸记录-按日期查询是否有预炸记录") + @GetMapping("/queryByStoreCode") + public ResponseResult> queryByStoreCode(@RequestParam(required = true, value = "storeCode") String storeCode, + @RequestParam(required = true, value = "time") Long time) { + log.info("预炸记录-按日期查询是否有预炸记录:{}", JSONObject.toJSONString(storeCode)); + return ResponseResult.success(preFryRecordsService.queryByStoreCode(storeCode,time)); + } + + @ApiOperation("预炸记录详情列表") + @GetMapping("/queryById") + public ResponseResult queryById(@RequestParam(required = true, value = "id") Long id) { + log.info("预炸记录详情:{}", JSONObject.toJSONString(id)); + return ResponseResult.success(preFryRecordsService.getById(id)); + } + + + @ApiOperation("预炸批量新增") + @PostMapping("/batchAdd") + public ResponseResult batchInsert(@RequestBody @Validated AddPreFryRecordsDTO dto) { + log.info("批量新增:{}", JSONObject.toJSONString(dto)); + return ResponseResult.success(preFryRecordsService.batchInsert(dto, PartnerUserHolder.getUser())); + } + + @ApiOperation("预炸列表 根据门店编码与日期查询") + @PostMapping("/ListByStoreCodeAndDate") + public ResponseResult> ListByStoreCodeAndDate(@RequestBody @Validated FryRecordsQueryDTO dto) { + log.info("预炸列表 根据门店编码与日期查询:{}", JSONObject.toJSONString(dto)); + return ResponseResult.success(preFryRecordsService.ListByStoreCodeAndDate(dto)); + } + +}