Compare commits

...

2 Commits

Author SHA1 Message Date
佟明轩 945c08c20f Merge branch 'master' of ssh://git.jizhiweb.cn:2222/clinic-v2/server 2025-05-20 11:13:02 +08:00
佟明轩 1a6d1e47db dev 2025-05-20 11:12:50 +08:00
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.setCode(101);
log.error(e.getMessage());
e.printStackTrace();
return result;
}
}

View File

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

View File

@ -20,14 +20,14 @@ import java.util.Map;
*/
public interface InventoryMapper extends BaseMapper<Inventory> {
@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" +
" 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);
@Select("SELECT" +
" count(1)" +
" 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();
}

View File

@ -38,6 +38,7 @@ import java.time.LocalDate;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Objects;
@Service
public class GoodsService extends BaseService {
@ -97,6 +98,21 @@ public class GoodsService extends BaseService {
} else {
//修改建档信息
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);
if (!dbGoods.getTrdnFlag().equals(goods.getTrdnFlag())) {
// todo 拆零标志变化 重新初始化医保库存

View File

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

View File

@ -32,7 +32,9 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.temporal.ChronoUnit;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
@ -258,12 +260,18 @@ public class InventoryService extends BaseService {
Integer limit = pageSize;
Integer offset = (pageNum - 1) * pageSize;
Long totalCount = inventoryMapper.countExpiryWarn();
System.out.println(totalCount);
int totalPage= (int) (totalCount % pageSize == 0 ? totalCount / pageSize : totalCount / pageSize + 1);
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.setList(maps);
page.setTotal_page(totalPage);
page.setTotal_count(totalCount);
return page;
}