测试问题修复

This commit is contained in:
liux 2025-09-15 16:00:22 +08:00
parent 842390d66f
commit 7fb8c4fb77
3 changed files with 120 additions and 51 deletions

View File

@ -8,6 +8,7 @@ import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.ObjectUtil;
import com.bonus.canteen.core.ims.domain.ImsIntoInventory;
import com.bonus.canteen.core.ims.domain.ImsIntoInventoryDetail;
import com.bonus.canteen.core.ims.domain.ImsSetting;
import com.bonus.canteen.core.ims.domain.param.ImsInventoryAdd;
import com.bonus.canteen.core.ims.domain.param.ImsInventoryQuery;
import com.bonus.canteen.core.ims.domain.param.ImsInventoryUpdate;
@ -17,6 +18,7 @@ import com.bonus.canteen.core.ims.domain.vo.ImsInventoryVO;
import com.bonus.canteen.core.ims.dto.ExpireWarningDTO;
import com.bonus.canteen.core.ims.dto.InventoryWarningDTO;
import com.bonus.canteen.core.ims.mapper.ImsIntoInventoryMapper;
import com.bonus.canteen.core.ims.service.IImsSettingService;
import com.bonus.canteen.core.ims.vo.ExpireWarningVO;
import com.bonus.canteen.core.ims.vo.InventoryWarningVO;
import com.bonus.canteen.core.ims.vo.PriceAndNumDVO;
@ -29,6 +31,8 @@ import com.bonus.canteen.core.ims.mapper.ImsInventoryMapper;
import com.bonus.canteen.core.ims.domain.ImsInventory;
import com.bonus.canteen.core.ims.service.IImsInventoryService;
import javax.annotation.Resource;
/**
* 库存Service业务层处理
*
@ -43,6 +47,9 @@ public class ImsInventoryServiceImpl implements IImsInventoryService
@Autowired
private ImsIntoInventoryMapper imsIntoInventoryMapper;
@Resource
private IImsSettingService imsSettingService;
/**
* 查询库存
*
@ -85,6 +92,23 @@ public class ImsInventoryServiceImpl implements IImsInventoryService
inventory.setTotalPrice(totalPrice == null ? BigDecimal.ZERO : totalPrice);
}
}
ImsSetting setting = new ImsSetting();
setting.setItemName("goods_lacking_number_reminder");
List<ImsSetting> settingList = imsSettingService.selectImsSettingList(setting);
Integer dayNum;
if(settingList !=null && !settingList.isEmpty()){
dayNum = Integer.parseInt(settingList.get(0).getItemValue());
} else {
dayNum = -1;
}
imsInventoryList.stream().filter(i -> i.getMaterialNum() != null && dayNum > 0)
.forEach(i -> {
if(i.getMaterialNum().compareTo(BigDecimal.valueOf(dayNum)) <= 0){
i.setInventoryStatus(2L);
} else {
i.setInventoryStatus(1L);
}
});
return imsInventoryList;
}
@ -175,7 +199,38 @@ public class ImsInventoryServiceImpl implements IImsInventoryService
@Override
public List<ExpireWarningVO> expireWarning(ExpireWarningDTO content) {
return imsInventoryMapper.expireWarning(content);
List<ExpireWarningVO> list = imsInventoryMapper.expireWarning(content);
ImsSetting setting = new ImsSetting();
setting.setItemName("goods_expireing_day_reminder");
List<ImsSetting> settingList = imsSettingService.selectImsSettingList(setting);
Integer dayNum;
if(settingList !=null && !settingList.isEmpty()){
dayNum = Integer.parseInt(settingList.get(0).getItemValue());
} else {
dayNum = -1;
}
if(dayNum >0 && content.getExpireState() !=null){
list.stream().filter(l -> l.getExpireState() != null)
.forEach(l -> {
if(l.getExpireDay() !=null){
Integer betweenDay = l.getExpireDay();
if(betweenDay<=0){
l.setExpireState(1);
} else if (betweenDay >0 && betweenDay <= dayNum) {
l.setExpireState(3);
}else{
l.setExpireState(2);
}
}
});
List<ExpireWarningVO> warningList = list.stream().filter(l -> Objects.equals(l.getExpireState(), content.getExpireState())).collect(Collectors.toList());
System.out.println("warningList = " + warningList);
System.out.println("warningList.size = " + warningList.size());
return warningList;
}
return list;
}
@Override

View File

@ -38,6 +38,7 @@ import java.util.ArrayList;
import java.util.Collections;
import java.util.Iterator;
import java.util.List;
import java.util.stream.Collectors;
@Service
public class SupplierScoreRuleServiceImpl extends ServiceImpl<SupplierScoreRuleMapper, SupplierScoreRule> implements SupplierScoreRuleService {
@ -98,48 +99,67 @@ public class SupplierScoreRuleServiceImpl extends ServiceImpl<SupplierScoreRuleM
}
}
} else {
var6 = supplierScoreRuleList.iterator();
label55:
while (var6.hasNext()) {
SupplierScoreRule supplierScoreRule = var6.next();
Long ruleId = supplierScoreRule.getRuleId();
boolean ifNeedDeal = true;
var7 = content.iterator();
while (true) {
SupplierScoreRuleAddDTO supplierScoreRuleAddDTO;
do {
do {
if (!var7.hasNext()) {
if (ifNeedDeal) {
this.supplierScoreRuleSectionMapper.delete(Wrappers.lambdaQuery(SupplierScoreRuleSection.class).eq(SupplierScoreRuleSection::getRuleId, ruleId));
this.baseMapper.update(null, Wrappers.lambdaUpdate(SupplierScoreRule.class)
.eq(SupplierScoreRule::getRuleId, ruleId));
}
continue label55;
}
supplierScoreRuleAddDTO = var7.next();
} while (!ObjectUtil.equal(supplierScoreRule.getRuleType(), supplierScoreRuleAddDTO.getRuleType()));
ifNeedDeal = false;
SupplierScoreRule updateRule = new SupplierScoreRule();
BeanUtil.copyProperties(supplierScoreRuleAddDTO, updateRule);
this.baseMapper.update(updateRule, Wrappers.lambdaQuery(SupplierScoreRule.class).eq(SupplierScoreRule::getRuleId, ruleId));
} while (CollUtil.isEmpty(supplierScoreRuleAddDTO.getSectionVOList()));
this.supplierScoreRuleSectionMapper.delete(Wrappers.lambdaQuery(SupplierScoreRuleSection.class).eq(SupplierScoreRuleSection::getRuleId, ruleId));
Iterator<SupplierScoreRuleSectionAddDTO> var12 = supplierScoreRuleAddDTO.getSectionVOList().iterator();
while (var12.hasNext()) {
SupplierScoreRuleSectionAddDTO supplierScoreRuleSectionAddDTO = var12.next();
SupplierScoreRuleSection supplierScoreRuleSection = new SupplierScoreRuleSection();
BeanUtil.copyProperties(supplierScoreRuleSectionAddDTO, supplierScoreRuleSection);
supplierScoreRuleSection.setRuleId(ruleId);
this.supplierScoreRuleSectionMapper.insert(supplierScoreRuleSection);
}
this.supplierScoreRuleSectionMapper.delete(Wrappers.lambdaQuery(SupplierScoreRuleSection.class));
this.baseMapper.delete( Wrappers.lambdaUpdate(SupplierScoreRule.class));
for (SupplierScoreRuleAddDTO supplierScoreRuleAddDTO : content) {
SupplierScoreRule supplierScoreRule = new SupplierScoreRule();
BeanUtil.copyProperties(supplierScoreRuleAddDTO, supplierScoreRule);
Long ruleId = Id.next();
supplierScoreRule.setRuleId(ruleId);
this.baseMapper.insert(supplierScoreRule);
if (CollUtil.isEmpty(supplierScoreRuleAddDTO.getSectionVOList())) {
continue;
}
for (SupplierScoreRuleSectionAddDTO supplierScoreRuleSectionAddDTO : supplierScoreRuleAddDTO.getSectionVOList()) {
SupplierScoreRuleSection supplierScoreRuleSection = new SupplierScoreRuleSection();
BeanUtil.copyProperties(supplierScoreRuleSectionAddDTO, supplierScoreRuleSection);
supplierScoreRuleSection.setRuleId(ruleId);
this.supplierScoreRuleSectionMapper.insert(supplierScoreRuleSection);
}
}
// var6 = supplierScoreRuleList.iterator();
// label55:
// while (var6.hasNext()) {
// SupplierScoreRule supplierScoreRule = var6.next();
// Long ruleId = supplierScoreRule.getRuleId();
// boolean ifNeedDeal = true;
// var7 = content.iterator();
//
// while (true) {
// SupplierScoreRuleAddDTO supplierScoreRuleAddDTO;
// do {
// do {
// if (!var7.hasNext()) {
// if (ifNeedDeal) {
// this.supplierScoreRuleSectionMapper.delete(Wrappers.lambdaQuery(SupplierScoreRuleSection.class).eq(SupplierScoreRuleSection::getRuleId, ruleId));
// this.baseMapper.delete( Wrappers.lambdaUpdate(SupplierScoreRule.class)
// .eq(SupplierScoreRule::getRuleId, ruleId));
// }
// continue label55;
// }
//
// supplierScoreRuleAddDTO = var7.next();
// } while (!ObjectUtil.equal(supplierScoreRule.getRuleType(), supplierScoreRuleAddDTO.getRuleType()));
//
// ifNeedDeal = false;
// SupplierScoreRule updateRule = new SupplierScoreRule();
// BeanUtil.copyProperties(supplierScoreRuleAddDTO, updateRule);
// this.baseMapper.update(updateRule, Wrappers.lambdaQuery(SupplierScoreRule.class).eq(SupplierScoreRule::getRuleId, ruleId));
// } while (CollUtil.isEmpty(supplierScoreRuleAddDTO.getSectionVOList()));
//
// this.supplierScoreRuleSectionMapper.delete(Wrappers.lambdaQuery(SupplierScoreRuleSection.class).eq(SupplierScoreRuleSection::getRuleId, ruleId));
// Iterator<SupplierScoreRuleSectionAddDTO> var12 = supplierScoreRuleAddDTO.getSectionVOList().iterator();
//
// while (var12.hasNext()) {
// SupplierScoreRuleSectionAddDTO supplierScoreRuleSectionAddDTO = var12.next();
// SupplierScoreRuleSection supplierScoreRuleSection = new SupplierScoreRuleSection();
// BeanUtil.copyProperties(supplierScoreRuleSectionAddDTO, supplierScoreRuleSection);
// supplierScoreRuleSection.setRuleId(ruleId);
// this.supplierScoreRuleSectionMapper.insert(supplierScoreRuleSection);
// }
// }
// }
}
}

View File

@ -292,10 +292,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<where>
did.expire_time is not null
and did.inventory_num > 0
and (
did.expire_time <![CDATA[ <]]> NOW() -- 已过期
OR TIMESTAMPDIFF(DAY, NOW(), did.expire_time) <![CDATA[ <= ]]> mm.shelf_life_days -- 临期
)
<!-- and (-->
<!-- did.expire_time <![CDATA[ <]]> NOW() &#45;&#45; 已过期-->
<!-- OR TIMESTAMPDIFF(DAY, NOW(), did.expire_time) <![CDATA[ <= ]]> mm.shelf_life_days &#45;&#45; 临期-->
<!-- )-->
<if test="content.areaIdList != null and content.areaIdList.size() > 0">
AND dw.area_id in
<foreach collection="content.areaIdList" item="item" separator="," open="(" close=")">
@ -318,12 +318,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="content.materialName != null and content.materialName != ''">
and mm.material_name like concat('%',#{content.materialName},'%')
</if>
<if test="content.expireState != null and content.expireState == 1">
and TIMESTAMPDIFF(DAY,NOW(),did.expire_time) <![CDATA[ < ]]> 0
</if>
<if test="content.expireState != null and content.expireState == 2">
and TIMESTAMPDIFF(DAY,NOW(),did.expire_time) <![CDATA[ >= ]]> 0
</if>
<if test="content.warningDay != null ">
and (TIMESTAMPDIFF(DAY,NOW(),did.expire_time) between 0 and #{content.warningDay})
</if>