feat:预炸
This commit is contained in:
@@ -0,0 +1,25 @@
|
||||
package com.cool.store.service;
|
||||
|
||||
import com.cool.store.dto.pre.fry.AddPreFryRecordsDTO;
|
||||
import com.cool.store.vo.PartnerUserInfoVO;
|
||||
|
||||
/**
|
||||
* @Author suzhuhong
|
||||
* @Date 2025/6/23 14:39
|
||||
* @Version 1.0
|
||||
*/
|
||||
public interface PreFryRecordsService {
|
||||
|
||||
|
||||
/**
|
||||
* 批量插入
|
||||
* @param addPreFryRecordsDTO
|
||||
* @return
|
||||
*/
|
||||
Boolean batchInsert(AddPreFryRecordsDTO addPreFryRecordsDTO, PartnerUserInfoVO user);
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
@@ -58,7 +58,7 @@ public class PreFryQualificationApplyServiceImpl implements PreFryQualificationA
|
||||
PreFryQualificationApplyDO apply = createApplyRecord(request,user);
|
||||
|
||||
// 4. 创建审批操作记录
|
||||
createApprovalRecord(apply.getId(), AuditOperationTypeEnum.APPLY.getCode(), user.getUsername());
|
||||
createApprovalRecord(apply.getId(), AuditOperationTypeEnum.APPLY.getCode(),1, user.getUsername(),"");
|
||||
|
||||
return Boolean.TRUE;
|
||||
}
|
||||
@@ -78,12 +78,13 @@ public class PreFryQualificationApplyServiceImpl implements PreFryQualificationA
|
||||
old.setColdStorageBoxPhoto(request.getColdStorageBoxPhoto());
|
||||
old.setProtectiveCoverPhoto(request.getProtectiveCoverPhoto());
|
||||
old.setRefrigeratorPlatePhoto(request.getRefrigeratorPlatePhoto());
|
||||
old.setColdStorageBoxPhoto(request.getColdStorageBoxPhoto());
|
||||
old.setRefrigeratorPhoto(request.getRefrigeratorPhoto());
|
||||
old.setAuditStatus(AuditStatusEnum.TODO.getCode());
|
||||
old.setUpdatedTime(new Date());
|
||||
|
||||
preFryQualificationApplyDAO.updateForce(old);
|
||||
// 4. 创建审批操作记录
|
||||
createApprovalRecord(old.getId(), AuditOperationTypeEnum.APPLY.getCode(), user.getUsername());
|
||||
createApprovalRecord(old.getId(), AuditOperationTypeEnum.APPLY.getCode(),1, user.getUsername(),"");
|
||||
|
||||
return Boolean.TRUE;
|
||||
}
|
||||
@@ -144,7 +145,7 @@ public class PreFryQualificationApplyServiceImpl implements PreFryQualificationA
|
||||
}
|
||||
preFryQualificationApplyDO.setAuditStatus(applyAuditDTO.getAuditStatus());
|
||||
preFryQualificationApplyDAO.updateForce(preFryQualificationApplyDO);
|
||||
createApprovalRecord(applyAuditDTO.getId(),applyAuditDTO.getAuditStatus(),currentUser.getName());
|
||||
createApprovalRecord(applyAuditDTO.getId(), 2,applyAuditDTO.getAuditStatus(),currentUser.getName(),applyAuditDTO.getAuditRemark());
|
||||
return Boolean.TRUE;
|
||||
}
|
||||
|
||||
@@ -183,7 +184,6 @@ public class PreFryQualificationApplyServiceImpl implements PreFryQualificationA
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private PreFryQualificationApplyDO createApplyRecord(ApplyDTO request,PartnerUserInfoVO user) {
|
||||
PreFryQualificationApplyDO apply = new PreFryQualificationApplyDO();
|
||||
BeanUtils.copyProperties(request, apply);
|
||||
@@ -195,12 +195,13 @@ public class PreFryQualificationApplyServiceImpl implements PreFryQualificationA
|
||||
return apply;
|
||||
}
|
||||
|
||||
private void createApprovalRecord(Long applyId, Integer recordType,String userName) {
|
||||
private void createApprovalRecord(Long applyId, Integer recordType,Integer operationStatus,String userName,String remark) {
|
||||
PreFryApprovalRecordsDO record = new PreFryApprovalRecordsDO();
|
||||
record.setApplyId(applyId);
|
||||
record.setRecordType(recordType);
|
||||
record.setOperationStatus(CommonConstants.ONE);
|
||||
record.setOperationStatus(operationStatus);
|
||||
record.setOperatorName(userName);
|
||||
record.setRemark(remark);
|
||||
record.setCreatedTime(new Date());
|
||||
preFryApprovalRecordsDAO.createApprovalRecord(record);
|
||||
}
|
||||
|
||||
@@ -0,0 +1,120 @@
|
||||
package com.cool.store.service.impl;
|
||||
|
||||
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.entity.PreFryQualificationApplyDO;
|
||||
import com.cool.store.entity.PreFryRecordsDO;
|
||||
import com.cool.store.entity.PreFryStageChangesDO;
|
||||
import com.cool.store.enums.ErrorCodeEnum;
|
||||
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.vo.PartnerUserInfoVO;
|
||||
import org.apache.commons.collections4.CollectionUtils;
|
||||
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;
|
||||
|
||||
/**
|
||||
* @Author suzhuhong
|
||||
* @Date 2025/6/23 14:39
|
||||
* @Version 1.0
|
||||
*/
|
||||
@Service
|
||||
public class PreFryRecordsServiceImpl implements PreFryRecordsService {
|
||||
|
||||
|
||||
@Resource
|
||||
PreFryRecordsDAO preFryRecordsDAO;
|
||||
|
||||
@Resource
|
||||
PreFryStageChangesDAO preFryStageChangesDAO;
|
||||
@Resource
|
||||
PreFryQualificationApplyDAO preFryQualificationApplyDAO;
|
||||
|
||||
|
||||
@Override
|
||||
public Boolean batchInsert(AddPreFryRecordsDTO addPreFryRecordsDTO, PartnerUserInfoVO user) {
|
||||
if (CollectionUtils.isEmpty(addPreFryRecordsDTO.getRecords())|| CollectionUtils.isEmpty(addPreFryRecordsDTO.getRecords())){
|
||||
throw new ServiceException(ErrorCodeEnum.PARAMS_REQUIRED);
|
||||
}
|
||||
//查询门店当前最高优先级申请类型
|
||||
PreFryQualificationApplyDO minApplyTypeByStoreCode = preFryQualificationApplyDAO.getMinApplyTypeByStoreCode(addPreFryRecordsDTO.getStoreCode());
|
||||
if (minApplyTypeByStoreCode==null){
|
||||
throw new ServiceException(ErrorCodeEnum.PRE_FRY_APPLY_NOT_EXIST);
|
||||
}
|
||||
//如果出现优先级升高的情况 优先级低的只有报废可选择 1的优先级最高 3最低
|
||||
if (minApplyTypeByStoreCode.getApplyType()<addPreFryRecordsDTO.getApplyType()
|
||||
&&addPreFryRecordsDTO.getCurrentStage()!= PreFryStageEnum.DISCARDED.getCode()){
|
||||
//当前有更优选择,请确认
|
||||
throw new ServiceException(ErrorCodeEnum.CURRENT_STAGE_NOT_OPERATION);
|
||||
}
|
||||
//只有当最高类型是1/3且是预炸完成 或者 2 且放入展示柜 新增一条预炸记录 其他情况只新增阶段记录表
|
||||
List<PreFryStageChangesDO> list = new ArrayList<>();
|
||||
if (addPreFryRecordsFlag(minApplyTypeByStoreCode.getApplyType(), addPreFryRecordsDTO.getCurrentStage())){
|
||||
addPreFryRecordsDTO.getRecords().forEach(x->{
|
||||
PreFryRecordsDO preFryRecordsDO = new PreFryRecordsDO();
|
||||
preFryRecordsDO.setProductId(x.getProductId());
|
||||
preFryRecordsDO.setFryDate(new Date());
|
||||
preFryRecordsDO.setFryCompleteTime(new Date());
|
||||
preFryRecordsDO.setLatestSaleTime(getLatestSaleTime(minApplyTypeByStoreCode.getApplyType()));
|
||||
preFryRecordsDO.setCurrentStage(addPreFryRecordsDTO.getCurrentStage());
|
||||
preFryRecordsDO.setCurrentApplyType(minApplyTypeByStoreCode.getApplyType());
|
||||
preFryRecordsDAO.insert(preFryRecordsDO);
|
||||
PreFryStageChangesDO preFryStageChangesDO = new PreFryStageChangesDO();
|
||||
preFryStageChangesDO.setStage(preFryRecordsDO.getCurrentStage());
|
||||
preFryStageChangesDO.setRecordId(preFryRecordsDO.getId());
|
||||
preFryStageChangesDO.setImage1(x.getImage1());
|
||||
preFryStageChangesDO.setImage2(x.getImage2());
|
||||
preFryStageChangesDO.setOperatorName(user.getUsername());
|
||||
list.add(preFryStageChangesDO);
|
||||
});
|
||||
}else {
|
||||
addPreFryRecordsDTO.getRecords().forEach(x->{
|
||||
PreFryStageChangesDO preFryStageChangesDO = new PreFryStageChangesDO();
|
||||
preFryStageChangesDO.setStage(addPreFryRecordsDTO.getCurrentStage());
|
||||
preFryStageChangesDO.setRecordId(x.getRecordId());
|
||||
preFryStageChangesDO.setImage1(x.getImage1());
|
||||
preFryStageChangesDO.setImage2(x.getImage2());
|
||||
preFryStageChangesDO.setOperatorName(user.getUsername());
|
||||
list.add(preFryStageChangesDO);
|
||||
});
|
||||
}
|
||||
preFryStageChangesDAO.batchInsert(list);
|
||||
return Boolean.TRUE;
|
||||
}
|
||||
|
||||
|
||||
private Boolean addPreFryRecordsFlag(Integer applyType,Integer stage){
|
||||
if (applyType== PreFryApplyTypeEnum.HAS_REFRIGERATED_DISPLAY.getCode() && stage==PreFryStageEnum.PRE_FRY_COMPLETED.getCode()){
|
||||
return Boolean.TRUE;
|
||||
}else if (applyType == PreFryApplyTypeEnum.NO_DISPLAY.getCode() && stage==PreFryStageEnum.PRE_FRY_COMPLETED.getCode()){
|
||||
return Boolean.TRUE;
|
||||
}
|
||||
if (applyType==PreFryApplyTypeEnum.HAS_NORMAL_DISPLAY.getCode() && stage==PreFryStageEnum.STORED_IN_DISPLAY_CABINET.getCode()){
|
||||
return Boolean.TRUE;
|
||||
}
|
||||
return Boolean.FALSE;
|
||||
}
|
||||
|
||||
private Date getLatestSaleTime(Integer applyType) {
|
||||
Calendar calendar = Calendar.getInstance();
|
||||
if (applyType == PreFryApplyTypeEnum.HAS_REFRIGERATED_DISPLAY.getCode()) {
|
||||
// 冷藏展示柜加12小时
|
||||
calendar.add(Calendar.HOUR_OF_DAY, 12);
|
||||
} else {
|
||||
// 常温展示柜或无展示柜加4小时
|
||||
calendar.add(Calendar.HOUR_OF_DAY, 4);
|
||||
}
|
||||
return calendar.getTime();
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user