This commit is contained in:
佟明轩 2025-05-20 11:12:50 +08:00
parent e456844d91
commit 1a6d1e47db
7 changed files with 39 additions and 6 deletions

Binary file not shown.

View File

@ -43,6 +43,7 @@ public class ControllerAspect {
result.setData(null); result.setData(null);
result.setCode(101); result.setCode(101);
log.error(e.getMessage()); log.error(e.getMessage());
e.printStackTrace();
return result; return result;
} }
} }

View File

@ -80,4 +80,7 @@ public class Inventory implements Serializable {
@ApiModelProperty("标识码 由追溯码生成") @ApiModelProperty("标识码 由追溯码生成")
private String idCodes; private String idCodes;
@ApiModelProperty("警告日期")
private LocalDate warmDate;
} }

View File

@ -20,14 +20,14 @@ import java.util.Map;
*/ */
public interface InventoryMapper extends BaseMapper<Inventory> { public interface InventoryMapper extends BaseMapper<Inventory> {
@Select("SELECT" + @Select("SELECT" +
" inventory.*,goods.expiry_warn_days,goods.unit_price,EXTRACT(EPOCH FROM AGE(expiry_date, CURRENT_DATE)) / 86400 AS remaining_days" + " inventory.*,goods.expiry_warn_days,goods.unit_price" +
" FROM inventory LEFT JOIN goods ON inventory.good_id = goods.id" + " FROM inventory LEFT JOIN goods ON inventory.good_id = goods.id" +
" WHERE CURRENT_DATE + INTERVAL '1 day' * goods.expiry_warn_days >= inventory.expiry_date AND inventory.whole_number !=0 ORDER BY inventory.expiry_date ASC LIMIT #{limit} offset #{offset} ") " WHERE CURRENT_DATE >= inventory.warm_date AND inventory.whole_number !=0 ORDER BY inventory.expiry_date ASC LIMIT #{limit} offset #{offset} ")
List<Map<String, Object>> selectExpiryWarn(@Param("limit") Integer limit, @Param("offset") Integer offset); List<Map<String, Object>> selectExpiryWarn(@Param("limit") Integer limit, @Param("offset") Integer offset);
@Select("SELECT" + @Select("SELECT" +
" count(1)" + " count(1)" +
" FROM inventory LEFT JOIN goods ON inventory.good_id = goods.id" + " FROM inventory LEFT JOIN goods ON inventory.good_id = goods.id" +
" WHERE CURRENT_DATE + INTERVAL '1 day' * goods.expiry_warn_days >= inventory.expiry_date AND inventory.whole_number !=0 ") " WHERE CURRENT_DATE >= inventory.warm_date AND inventory.whole_number !=0 ")
Long countExpiryWarn(); Long countExpiryWarn();
} }

View File

@ -38,6 +38,7 @@ import java.time.LocalDate;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
import java.util.Objects;
@Service @Service
public class GoodsService extends BaseService { public class GoodsService extends BaseService {
@ -97,6 +98,21 @@ public class GoodsService extends BaseService {
} else { } else {
//修改建档信息 //修改建档信息
Goods dbGoods = goodsMapper.selectById(goods.getId()); Goods dbGoods = goodsMapper.selectById(goods.getId());
if (!Objects.equals(dbGoods.getExpiryWarnDays(), goods.getExpiryWarnDays()))
{
QueryWrapper<Inventory> inventoryWrapper = new QueryWrapper<>();
inventoryWrapper.eq("good_id", goods.getId());
List<Inventory> inventoryList = inventoryMapper.selectList(inventoryWrapper);
for (Inventory inventory : inventoryList) {
inventory.setWarmDate(inventory.getExpiryDate().minusDays(goods.getExpiryWarnDays()));
inventoryMapper.updateById(inventory);
}
}
goodsMapper.updateById(goods); goodsMapper.updateById(goods);
if (!dbGoods.getTrdnFlag().equals(goods.getTrdnFlag())) { if (!dbGoods.getTrdnFlag().equals(goods.getTrdnFlag())) {
// todo 拆零标志变化 重新初始化医保库存 // todo 拆零标志变化 重新初始化医保库存

View File

@ -136,6 +136,11 @@ public class InventoryPurchaseService extends BaseService {
remark = Constants.InitInventory; remark = Constants.InitInventory;
} }
inventory.setRefererType(refererTypeEnum.getType()); inventory.setRefererType(refererTypeEnum.getType());
if (goods.getExpiryWarnDays() != null && goods.getExpiryWarnDays() > 0) {
inventory.setWarmDate(inventory.getExpiryDate().minusDays(goods.getExpiryWarnDays()));
}
inventoryMapper.insert(inventory); inventoryMapper.insert(inventory);
if (init != null) { if (init != null) {
init.setInventoryId(inventory.getId()); init.setInventoryId(inventory.getId());

View File

@ -31,7 +31,9 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.time.temporal.ChronoUnit;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
@ -257,12 +259,18 @@ public class InventoryService extends BaseService {
Integer limit = pageSize; Integer limit = pageSize;
Integer offset = (pageNum - 1) * pageSize; Integer offset = (pageNum - 1) * pageSize;
Long totalCount = inventoryMapper.countExpiryWarn(); Long totalCount = inventoryMapper.countExpiryWarn();
System.out.println(totalCount);
int totalPage= (int) (totalCount % pageSize == 0 ? totalCount / pageSize : totalCount / pageSize + 1); int totalPage= (int) (totalCount % pageSize == 0 ? totalCount / pageSize : totalCount / pageSize + 1);
List<Map<String, Object>> maps = inventoryMapper.selectExpiryWarn(limit, offset); List<Map<String, Object>> maps = inventoryMapper.selectExpiryWarn(limit, offset);
for (Map<String, Object> map : maps) {
long days = LocalDate.now().until(LocalDate.parse(map.get("expiry_date").toString()), ChronoUnit.DAYS);
map.put("remaining_days",days);
}
Page<Map<String, Object>> page = new Page<>(); Page<Map<String, Object>> page = new Page<>();
page.setList(maps);
page.setTotal_page(totalPage);
page.setTotal_count(totalCount);
return page; return page;
} }