diff --git a/src/main/java/com/syjiaer/clinic/server/common/vo/Page.java b/src/main/java/com/syjiaer/clinic/server/common/vo/Page.java index f32bc08..880dc58 100644 --- a/src/main/java/com/syjiaer/clinic/server/common/vo/Page.java +++ b/src/main/java/com/syjiaer/clinic/server/common/vo/Page.java @@ -3,6 +3,7 @@ package com.syjiaer.clinic.server.common.vo; import lombok.Getter; import lombok.Setter; +import java.util.ArrayList; import java.util.List; import java.util.function.Function; @@ -13,6 +14,12 @@ public class Page { private long total_count; private List list; + public Page() { + this.total_page = 0; + this.total_count = 0; + this.list = new ArrayList<>(); + } + public Page process(Page page, Function, List> processor) { List processedList = processor.apply(page.getList()); page.setList(processedList); diff --git a/src/main/java/com/syjiaer/clinic/server/controller/goods/GoodsController.java b/src/main/java/com/syjiaer/clinic/server/controller/goods/GoodsController.java index f51d0fa..a1bdd3c 100644 --- a/src/main/java/com/syjiaer/clinic/server/controller/goods/GoodsController.java +++ b/src/main/java/com/syjiaer/clinic/server/controller/goods/GoodsController.java @@ -55,10 +55,10 @@ public class GoodsController extends BaseController { return error("定价模式不能为空"); } if (goods.getPricingModel().equals(GoodsPricingModelEnum.Bonus.getPricingModel()) && goods.getMakeUp() == null) { - return error("加成率不能为空"); + return error("定价模式为进价加成时,加成率不能为空"); } if (goods.getPricingModel().equals(GoodsPricingModelEnum.Fixed.getPricingModel()) && goods.getUnitPrice() == null) { - return error("固定售价不能为空"); + return error("定价模式为固定售价时,售价不能为空"); } if (goods.getPackagingUnit() == null){ return error("包装单位不能为空"); diff --git a/src/main/java/com/syjiaer/clinic/server/controller/inventory/InventoryCheckController.java b/src/main/java/com/syjiaer/clinic/server/controller/inventory/InventoryCheckController.java index fb4448d..b77d6e0 100644 --- a/src/main/java/com/syjiaer/clinic/server/controller/inventory/InventoryCheckController.java +++ b/src/main/java/com/syjiaer/clinic/server/controller/inventory/InventoryCheckController.java @@ -39,7 +39,8 @@ public class InventoryCheckController extends BaseController { public Result save() { List list = parmsUtil.getList("list", Map.class); String remark = parmsUtil.getString("remark"); - inventoryCheckService.save(list,remark); + Integer checkUserId = parmsUtil.getInteger("checkUserId","盘点人不能为空"); + inventoryCheckService.save(list,remark,checkUserId); return success(); } diff --git a/src/main/java/com/syjiaer/clinic/server/entity/inventory/InventoryApply.java b/src/main/java/com/syjiaer/clinic/server/entity/inventory/InventoryApply.java index 0c9fd37..a24b20f 100644 --- a/src/main/java/com/syjiaer/clinic/server/entity/inventory/InventoryApply.java +++ b/src/main/java/com/syjiaer/clinic/server/entity/inventory/InventoryApply.java @@ -5,20 +5,20 @@ import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; +import java.io.Serializable; +import java.math.BigDecimal; +import java.time.LocalDateTime; import lombok.Getter; import lombok.Setter; import lombok.ToString; import lombok.experimental.Accessors; - -import java.io.Serializable; -import java.time.LocalDateTime; /** *

* 库存领用表 *

* * @author NiuZiYuan - * @since 2025-04-17 + * @since 2025-05-15 */ @Getter @Setter @@ -34,7 +34,7 @@ public class InventoryApply implements Serializable { @TableId(value = "id", type = IdType.AUTO) private Integer id; - @ApiModelProperty("领用id") + @ApiModelProperty("领用code") private String useCode; @ApiModelProperty("领用人id") @@ -48,4 +48,22 @@ public class InventoryApply implements Serializable { @ApiModelProperty("1已完成 0未完成") private Integer status; + + @ApiModelProperty("总类目") + private Integer kindCount; + + @ApiModelProperty("改变数量(整量)") + private Integer changeTotalWholeCount; + + @ApiModelProperty("盈亏金额(进价)") + private BigDecimal totalPurchasePrice; + + @ApiModelProperty("盈亏金额(售价)") + private BigDecimal totalSalePrice; + + @ApiModelProperty("盘点人名称") + private String applyUserName; + + @ApiModelProperty("改变数量(分量)") + private Integer changeTotalFragmentCount; } diff --git a/src/main/java/com/syjiaer/clinic/server/entity/inventory/InventoryCheck.java b/src/main/java/com/syjiaer/clinic/server/entity/inventory/InventoryCheck.java index 036999b..9cfd0a3 100644 --- a/src/main/java/com/syjiaer/clinic/server/entity/inventory/InventoryCheck.java +++ b/src/main/java/com/syjiaer/clinic/server/entity/inventory/InventoryCheck.java @@ -5,20 +5,20 @@ import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; +import java.io.Serializable; +import java.math.BigDecimal; +import java.time.LocalDateTime; import lombok.Getter; import lombok.Setter; import lombok.ToString; import lombok.experimental.Accessors; - -import java.io.Serializable; -import java.time.LocalDateTime; /** *

* 盘点主表 *

* * @author NiuZiYuan - * @since 2025-04-17 + * @since 2025-05-15 */ @Getter @Setter @@ -45,4 +45,25 @@ public class InventoryCheck implements Serializable { @ApiModelProperty("备注") private String remark; + + @ApiModelProperty("盘点人") + private Integer checkUserId; + + @ApiModelProperty("总类目") + private Integer kindCount; + + @ApiModelProperty("改变数量(整量)") + private Integer changeTotalWholeCount; + + @ApiModelProperty("盈亏金额(进价)") + private BigDecimal totalPurchasePrice; + + @ApiModelProperty("盈亏金额(售价)") + private BigDecimal totalSalePrice; + + @ApiModelProperty("盘点人名称") + private String checkUserName; + + @ApiModelProperty("改变数量(分量)") + private Integer changeTotalFragmentCount; } diff --git a/src/main/java/com/syjiaer/clinic/server/entity/inventory/dto/PurchaseOrderQuery.java b/src/main/java/com/syjiaer/clinic/server/entity/inventory/dto/PurchaseOrderQuery.java index 621cc55..9cc1902 100644 --- a/src/main/java/com/syjiaer/clinic/server/entity/inventory/dto/PurchaseOrderQuery.java +++ b/src/main/java/com/syjiaer/clinic/server/entity/inventory/dto/PurchaseOrderQuery.java @@ -10,11 +10,14 @@ import java.util.List; public class PurchaseOrderQuery { private Integer pageNum; private Integer pageSize; + private Integer offset; private String code; private List supplierIds; private List managerUserIds; private String beginTime; private String endTime; + private String goodsName; + diff --git a/src/main/java/com/syjiaer/clinic/server/mapper/inventory/InventoryPurchaseMapper.java b/src/main/java/com/syjiaer/clinic/server/mapper/inventory/InventoryPurchaseMapper.java index 1fc4137..232f8f6 100644 --- a/src/main/java/com/syjiaer/clinic/server/mapper/inventory/InventoryPurchaseMapper.java +++ b/src/main/java/com/syjiaer/clinic/server/mapper/inventory/InventoryPurchaseMapper.java @@ -2,9 +2,12 @@ package com.syjiaer.clinic.server.mapper.inventory; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.syjiaer.clinic.server.entity.inventory.InventoryPurchase; +import com.syjiaer.clinic.server.entity.inventory.dto.PurchaseOrderQuery; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; +import java.util.List; + /** *

@@ -17,5 +20,19 @@ import org.apache.ibatis.annotations.Select; public interface InventoryPurchaseMapper extends BaseMapper { @Select("select * from inventory_purchase where code = #{code}") InventoryPurchase getByCode(@Param("code") String inventoryPurchaseCode); + + /** + * 查询采购单号 + * @param query + * @return + */ + List listPurchaseCodesByGoodsName(@Param("query")PurchaseOrderQuery query); + + /** + * 查询符合条件的采购单数量 + * @param query + * @return + */ + Long countPurchaseCodesByGoodsName(@Param("query")PurchaseOrderQuery query); } diff --git a/src/main/java/com/syjiaer/clinic/server/service/goods/GoodsService.java b/src/main/java/com/syjiaer/clinic/server/service/goods/GoodsService.java index 8cf715f..22cb070 100644 --- a/src/main/java/com/syjiaer/clinic/server/service/goods/GoodsService.java +++ b/src/main/java/com/syjiaer/clinic/server/service/goods/GoodsService.java @@ -62,10 +62,10 @@ public class GoodsService { } if (goods.getPricingModel().equals(GoodsPricingModelEnum.Bonus.getPricingModel()) && goods.getMakeUp() == null) { - throw new MessageException("售价为进价加成时,加成率不能为空"); + throw new MessageException("定价模式为进价加成时,加成率不能为空"); } if (goods.getPricingModel().equals(GoodsPricingModelEnum.Fixed.getPricingModel()) && goods.getUnitPrice() == null) { - throw new MessageException("售价为固定售价时,售价不能为空"); + throw new MessageException("定价模式为固定售价时,售价不能为空"); } diff --git a/src/main/java/com/syjiaer/clinic/server/service/inventory/InventoryApplyService.java b/src/main/java/com/syjiaer/clinic/server/service/inventory/InventoryApplyService.java index e658204..377a58a 100644 --- a/src/main/java/com/syjiaer/clinic/server/service/inventory/InventoryApplyService.java +++ b/src/main/java/com/syjiaer/clinic/server/service/inventory/InventoryApplyService.java @@ -9,19 +9,25 @@ import com.syjiaer.clinic.server.common.enums.Type; import com.syjiaer.clinic.server.common.exception.MessageException; import com.syjiaer.clinic.server.common.util.DateUtil; import com.syjiaer.clinic.server.common.vo.Page; +import com.syjiaer.clinic.server.entity.goods.Goods; +import com.syjiaer.clinic.server.entity.inventory.Inventory; import com.syjiaer.clinic.server.entity.inventory.InventoryApply; import com.syjiaer.clinic.server.entity.inventory.InventoryApplyLog; import com.syjiaer.clinic.server.entity.inventory.InventoryLog; import com.syjiaer.clinic.server.entity.inventory.dto.ApplyOrderQuery; import com.syjiaer.clinic.server.entity.manager.ManagerUser; +import com.syjiaer.clinic.server.mapper.goods.GoodsMapper; import com.syjiaer.clinic.server.mapper.inventory.InventoryApplyLogMapper; import com.syjiaer.clinic.server.mapper.inventory.InventoryApplyMapper; import com.syjiaer.clinic.server.mapper.inventory.InventoryLogMapper; +import com.syjiaer.clinic.server.mapper.inventory.InventoryMapper; +import com.syjiaer.clinic.server.mapper.manager.ManagerUserMapper; import com.syjiaer.clinic.server.service.BaseService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.math.BigDecimal; import java.text.SimpleDateFormat; import java.time.LocalDateTime; import java.util.Date; @@ -38,6 +44,12 @@ public class InventoryApplyService extends BaseService { private InventoryApplyMapper inventoryApplyMapper; @Autowired private InventoryApplyLogMapper inventoryApplyLogMapper; + @Autowired + private GoodsMapper goodsMapper; + @Autowired + private InventoryMapper inventoryMapper; + @Autowired + private ManagerUserMapper managerUserMapper; /* * 创建领用单 * @param mapList @@ -45,18 +57,25 @@ public class InventoryApplyService extends BaseService { */ @Transactional(rollbackFor = Exception.class) public void create(List mapList, InventoryApply useInfo) { - ManagerUser user = getManagerUser(); - System.out.println(mapList); + + ManagerUser user = managerUserMapper.selectById(useInfo.getUseUserId()); + if (user == null) { + throw new MessageException("盘点人不存在"); + } String applyCode = getApplyCode(); useInfo.setUseCode(applyCode); useInfo.setStatus( 1); useInfo.setCreateDatetime(LocalDateTime.now()); - inventoryApplyMapper.insert(useInfo); - InventoryApplyLog applyLog = new InventoryApplyLog(); - applyLog.setApplyId(useInfo.getId()); - applyLog.setData(JSONArray.toJSONString(mapList)); - inventoryApplyLogMapper.insert(applyLog); + useInfo.setApplyUserName(user.getName()); + + Integer kindCount = 0; + Integer changeTotalWholeCount = 0; + Integer changeTotalFragmentCount = 0; + BigDecimal totalPurchasePrice = new BigDecimal(0); + BigDecimal totalSalePrice = new BigDecimal(0); + for (Map map : mapList){ + kindCount++; List children= (List) map.get("children"); if (children.size()==0){ @@ -79,11 +98,36 @@ public class InventoryApplyService extends BaseService { log.setOperateId(user.getId()); log.setOperateName(user.getName()); inventoryLogMapper.insert(log); + + Inventory inventory = inventoryMapper.selectById(log.getInventoryId()); + Integer changeWholeNumber = log.getChangeWholeNumber(); + Integer changeFragmentNumber = log.getChangeFragmentNumber(); + changeTotalWholeCount += changeWholeNumber; + changeTotalFragmentCount += changeFragmentNumber; + BigDecimal subPurchasePrice = inventory.getPurchaseUnitPrice().multiply(new BigDecimal(changeWholeNumber)) + .add(new BigDecimal(changeFragmentNumber).multiply(inventory.getFragmentPrice())); + totalPurchasePrice = totalPurchasePrice.add(subPurchasePrice); + Goods goods = goodsMapper.selectById(inventory.getGoodId()); + BigDecimal subSalePrice = goods.getUnitPrice().multiply(new BigDecimal(changeWholeNumber)) + .add(new BigDecimal(changeFragmentNumber).multiply(goods.getDisassemblyPrice())); + totalSalePrice = totalSalePrice.add(subSalePrice); + }else { throw new MessageException("领用错误,领用不能增加库存"); } } } + useInfo.setKindCount(kindCount); + useInfo.setChangeTotalWholeCount(changeTotalWholeCount); + useInfo.setChangeTotalFragmentCount(changeTotalFragmentCount); + useInfo.setTotalPurchasePrice(totalPurchasePrice); + useInfo.setTotalSalePrice(totalSalePrice); + inventoryApplyMapper.insert(useInfo); + InventoryApplyLog applyLog = new InventoryApplyLog(); + applyLog.setApplyId(useInfo.getId()); + applyLog.setData(JSONArray.toJSONString(mapList)); + inventoryApplyLogMapper.insert(applyLog); + } /* * 生成领用单号 diff --git a/src/main/java/com/syjiaer/clinic/server/service/inventory/InventoryCheckService.java b/src/main/java/com/syjiaer/clinic/server/service/inventory/InventoryCheckService.java index 9c661f0..86a1d14 100644 --- a/src/main/java/com/syjiaer/clinic/server/service/inventory/InventoryCheckService.java +++ b/src/main/java/com/syjiaer/clinic/server/service/inventory/InventoryCheckService.java @@ -7,21 +7,28 @@ import com.syjiaer.clinic.server.common.enums.InventoryTypeEnum; import com.syjiaer.clinic.server.common.exception.MessageException; import com.syjiaer.clinic.server.common.util.DateUtil; import com.syjiaer.clinic.server.common.vo.Page; +import com.syjiaer.clinic.server.entity.goods.Goods; +import com.syjiaer.clinic.server.entity.inventory.Inventory; import com.syjiaer.clinic.server.entity.inventory.InventoryCheck; import com.syjiaer.clinic.server.entity.inventory.InventoryCheckLog; import com.syjiaer.clinic.server.entity.inventory.InventoryLog; import com.syjiaer.clinic.server.entity.inventory.dto.CheckQuery; import com.syjiaer.clinic.server.entity.manager.ManagerUser; +import com.syjiaer.clinic.server.mapper.goods.GoodsMapper; import com.syjiaer.clinic.server.mapper.inventory.InventoryCheckLogMapper; import com.syjiaer.clinic.server.mapper.inventory.InventoryCheckMapper; import com.syjiaer.clinic.server.mapper.inventory.InventoryLogMapper; +import com.syjiaer.clinic.server.mapper.inventory.InventoryMapper; +import com.syjiaer.clinic.server.mapper.manager.ManagerUserMapper; import com.syjiaer.clinic.server.service.BaseService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.math.BigDecimal; import java.text.SimpleDateFormat; import java.time.LocalDateTime; +import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.Map; @@ -36,8 +43,15 @@ public class InventoryCheckService extends BaseService { private InventoryCheckMapper inventoryCheckMapper; @Autowired private InventoryCheckLogMapper inventoryCheckLogMapper; + @Autowired + private ManagerUserMapper managerUserMapper; + @Autowired + private GoodsMapper goodsMapper; + @Autowired + private InventoryMapper inventoryMapper; + public Page listPage(CheckQuery query) { - if (query == null){ + if (query == null) { throw new MessageException("没有带查询条件"); } QueryWrapper queryWrapper = new QueryWrapper<>(); @@ -52,10 +66,13 @@ public class InventoryCheckService extends BaseService { return pageHelper(query.getPageNum(), query.getPageSize(), queryWrapper, inventoryCheckMapper, "create_datetime", false); } + @Transactional(rollbackFor = Exception.class) - public void save(List list, String remark) { - ManagerUser user = getManagerUser(); - System.out.println(remark); + public void save(List list, String remark, Integer checkUserId) { + ManagerUser user = managerUserMapper.selectById(checkUserId); + if (user == null) { + throw new MessageException("盘点人不存在"); + } InventoryCheck inventoryCheck = new InventoryCheck(); SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss"); String datePart = sdf.format(new Date()); @@ -64,66 +81,89 @@ public class InventoryCheckService extends BaseService { inventoryCheck.setCreateDatetime(LocalDateTime.now()); inventoryCheck.setState(1); inventoryCheck.setRemark(remark); - inventoryCheckMapper.insert(inventoryCheck); + inventoryCheck.setCheckUserId(checkUserId); + inventoryCheck.setCheckUserName(user.getName()); + + Integer kindCount = 0; + List inventoryLogList = new ArrayList<>(); + for (Map map : list) { + kindCount++; + List children = (List) map.get("children"); + if (children.isEmpty()) { + int goodsId = (int) map.get("goodsId"); + Map after = (Map) map.get("after"); + List result = inventoryService.adjustNumberByGoodsId(goodsId, after.get("wholeNumber"), after.get("fragmentNumber"), "盘点"); + inventoryLogList.addAll(result); + + } else { + for (Map child : children) { + int id = (int) child.get("id"); + Map after = (Map) child.get("after"); + Map change = (Map) child.get("change"); + Integer changeWholeNumber = change.get("wholeNumber"); + Integer changeFragmentNumber = change.get("fragmentNumber"); + if (changeWholeNumber == 0 && changeFragmentNumber == 0) { + continue; + } + InventoryLog log = inventoryService.adjustNumber(id, after.get("wholeNumber"), after.get("fragmentNumber"), "盘点"); + inventoryLogList.add(log); + } + } + } + + + Integer changeTotalWholeCount = 0; + Integer changeTotalFragmentCount = 0; + BigDecimal totalPurchasePrice = new BigDecimal(0); + BigDecimal totalSalePrice = new BigDecimal(0); + + //记录库存变更日志 + for (InventoryLog inventoryLog : inventoryLogList) { + if (inventoryLog.getChangeWholeNumber() < 0 || inventoryLog.getChangeFragmentNumber() < 0) { + inventoryLog.setOperateName(user.getName()); + inventoryLog.setOperateId(user.getId()); + inventoryLog.setType(InventoryTypeEnum.CHECK_OUT.getType()); + inventoryLog.setSocialType(InventorySocialTypeEnum.INVENTORY_LOSS.getType()); + } else { + inventoryLog.setOperateName(user.getName()); + inventoryLog.setOperateId(user.getId()); + inventoryLog.setType(InventoryTypeEnum.CHECK_IN.getType()); + inventoryLog.setSocialType(InventorySocialTypeEnum.INVENTORY_SURPLUS.getType()); + } + inventoryLogMapper.insert(inventoryLog); + Inventory inventory = inventoryMapper.selectById(inventoryLog.getInventoryId()); + Integer changeWholeNumber = inventoryLog.getChangeWholeNumber(); + Integer changeFragmentNumber = inventoryLog.getChangeFragmentNumber(); + changeTotalWholeCount += changeWholeNumber; + changeTotalFragmentCount += changeFragmentNumber; + BigDecimal subPurchasePrice = inventory.getPurchaseUnitPrice().multiply(new BigDecimal(changeWholeNumber)) + .add(new BigDecimal(changeFragmentNumber).multiply(inventory.getFragmentPrice())); + totalPurchasePrice = totalPurchasePrice.add(subPurchasePrice); + Goods goods = goodsMapper.selectById(inventory.getGoodId()); + BigDecimal subSalePrice = goods.getUnitPrice().multiply(new BigDecimal(changeWholeNumber)) + .add(new BigDecimal(changeFragmentNumber).multiply(goods.getDisassemblyPrice())); + totalSalePrice = totalSalePrice.add(subSalePrice); + } + + inventoryCheck.setKindCount(kindCount); + inventoryCheck.setChangeTotalWholeCount(changeTotalWholeCount); + inventoryCheck.setChangeTotalFragmentCount(changeTotalFragmentCount); + inventoryCheck.setTotalPurchasePrice(totalPurchasePrice); + inventoryCheck.setTotalSalePrice(totalSalePrice); + inventoryCheckMapper.insert(inventoryCheck); + //插入日志 InventoryCheckLog inventoryCheckLog = new InventoryCheckLog(); inventoryCheckLog.setData(JSONObject.toJSONString(list)); inventoryCheckLog.setInventoryCheckId(inventoryCheck.getId()); inventoryCheckLogMapper.insert(inventoryCheckLog); - for (Map map : list) { - List children= (List) map.get("children"); - if(children.size()==0){ - int goodsId= (int) map.get("goodsId"); - Map after= (Map) map.get("after"); - List result = inventoryService.adjustNumberByGoodsId(goodsId,after.get("wholeNumber"),after.get("fragmentNumber"),"盘点"); - for (InventoryLog inventoryLog : result){ - if (inventoryLog.getChangeWholeNumber()<0 || inventoryLog.getChangeFragmentNumber()<0){ - inventoryLog.setOperateName(user.getName()); - inventoryLog.setOperateId(user.getId()); - inventoryLog.setType(InventoryTypeEnum.CHECK_OUT.getType()); - inventoryLog.setSocialType(InventorySocialTypeEnum.INVENTORY_LOSS.getType()); - }else { - inventoryLog.setOperateName(user.getName()); - inventoryLog.setOperateId(user.getId()); - inventoryLog.setType(InventoryTypeEnum.CHECK_IN.getType()); - inventoryLog.setSocialType(InventorySocialTypeEnum.INVENTORY_SURPLUS.getType()); - } - inventoryLogMapper.insert(inventoryLog); - } - }else{ - for (Map child : children) { - int id= (int) child.get("id"); - Map after= (Map) child.get("after"); - Map change= (Map) child.get("change"); - Integer changeWholeNumber=change.get("wholeNumber"); - Integer changeFragmentNumber=change.get("fragmentNumber"); - if (changeWholeNumber==0&&changeFragmentNumber==0){ - continue; - } - System.out.println(id); - System.out.println(after); - InventoryLog log = inventoryService.adjustNumber(id,after.get("wholeNumber"),after.get("fragmentNumber"),"盘点"); - if (log.getChangeWholeNumber()<0 || log.getChangeFragmentNumber()<0){ - log.setOperateName(user.getName()); - log.setOperateId(user.getId()); - log.setType(InventoryTypeEnum.CHECK_OUT.getType()); - log.setSocialType(InventorySocialTypeEnum.INVENTORY_LOSS.getType()); - }else { - log.setOperateName(user.getName()); - log.setOperateId(user.getId()); - log.setType(InventoryTypeEnum.CHECK_IN.getType()); - log.setSocialType(InventorySocialTypeEnum.INVENTORY_SURPLUS.getType()); - } - inventoryLogMapper.insert(log); - } - } - } } + /** * 获取盘点单详情 */ - public String getCheckDetail(int checkId){ - QueryWrapper queryWrapper=new QueryWrapper(); + public String getCheckDetail(int checkId) { + QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.eq("inventory_check_id", checkId); InventoryCheckLog inventoryCheckLog = inventoryCheckLogMapper.selectOne(queryWrapper); return inventoryCheckLog.getData(); diff --git a/src/main/java/com/syjiaer/clinic/server/service/inventory/InventoryPurchaseService.java b/src/main/java/com/syjiaer/clinic/server/service/inventory/InventoryPurchaseService.java index a6e1fa7..c62c783 100644 --- a/src/main/java/com/syjiaer/clinic/server/service/inventory/InventoryPurchaseService.java +++ b/src/main/java/com/syjiaer/clinic/server/service/inventory/InventoryPurchaseService.java @@ -276,31 +276,23 @@ public class InventoryPurchaseService extends BaseService { if (query.getPageSize() == null || query.getPageSize() == 0) { query.setPageSize(Constants.DetailPageSize); } + query.setOffset((query.getPageNum() - 1) * query.getPageSize()); + Long totalCount = inventoryPurchaseMapper.countPurchaseCodesByGoodsName(query); + if (totalCount == 0){ + return new Page<>(); + } + + List purchaseCodes = inventoryPurchaseMapper.listPurchaseCodesByGoodsName(query); + QueryWrapper queryWrapper = new QueryWrapper<>(); - - if (query.getCode() != null && !query.getCode().isEmpty()) { - queryWrapper.like("code", query.getCode().trim()); + if (purchaseCodes != null && !purchaseCodes.isEmpty()){ + queryWrapper.in("code", purchaseCodes); } - if (query.getSupplierIds() != null && !query.getSupplierIds().isEmpty()) { - queryWrapper.in("supplier_id", query.getSupplierIds()); - } - if (query.getManagerUserIds() != null && !query.getManagerUserIds().isEmpty()) { - queryWrapper.in("manager_user_id", query.getManagerUserIds()); - } - if (query.getBeginTime() != null && !query.getBeginTime().isEmpty()) { - LocalDateTime beginTime = DateUtil.getDateTime(query.getBeginTime()); - queryWrapper.ge("create_datetime", beginTime); - } - if (query.getEndTime() != null && !query.getEndTime().isEmpty()) { - LocalDateTime endTime = DateUtil.getDateTime(query.getEndTime()); - queryWrapper.le("create_datetime", endTime); - } - Page page = pageHelper(query.getPageNum(), query.getPageSize(), - queryWrapper, inventoryPurchaseMapper, "create_datetime", false); + List purchaseList = inventoryPurchaseMapper.selectList(queryWrapper); List voList = new ArrayList<>(); - for (InventoryPurchase inventoryPurchase : page.getList()) { + for (InventoryPurchase inventoryPurchase : purchaseList) { InventoryPurchaseVo vo = new InventoryPurchaseVo(); BeanUtils.copyProperties(inventoryPurchase, vo); vo.setManagerUserName(managerUserMapper.selectById(inventoryPurchase.getManagerUserId()).getName()); @@ -309,8 +301,8 @@ public class InventoryPurchaseService extends BaseService { } Page resultPage = new Page<>(); resultPage.setList(voList); - resultPage.setTotal_count(page.getTotal_count()); - resultPage.setTotal_page(page.getTotal_page()); + resultPage.setTotal_count(totalCount); + resultPage.setTotal_page((int) Math.ceil(totalCount / (double) query.getPageSize())); return resultPage; } diff --git a/src/main/resources/xml/InventoryPurchaseMapper.xml b/src/main/resources/xml/InventoryPurchaseMapper.xml index 23b30f5..fb5ea58 100644 --- a/src/main/resources/xml/InventoryPurchaseMapper.xml +++ b/src/main/resources/xml/InventoryPurchaseMapper.xml @@ -1,5 +1,53 @@ + + + + AND i.name LIKE CONCAT('%', #{query.goodsName}, '%') + + + AND ip.code LIKE CONCAT('%', #{query.code}, '%') + + + AND ip.supplier_id IN + + #{id} + + + + AND ip.manager_user_id IN + + #{id} + + + + AND ip.create_datetime >= #{query.beginTime} + + + AND ip.create_datetime <= #{query.endTime} + + + + +