diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/cons/rest/TbProskuConController.java b/eladmin-system/src/main/java/cn/ysk/cashier/cons/rest/TbProskuConController.java index 2ce34092..623a318b 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/cons/rest/TbProskuConController.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/cons/rest/TbProskuConController.java @@ -51,7 +51,7 @@ public class TbProskuConController { @PutMapping @Log("修改商品规格耗材信息") @ApiOperation("修改商品规格耗材信息") - public ResponseEntity updateTbProskuCon(@Validated @RequestBody ProskuInfo resources) throws Exception { + public ResponseEntity updateTbProskuCon(@Validated @RequestBody TbProskuCon resources) throws Exception { tbProskuConService.update(resources); return new ResponseEntity<>(HttpStatus.NO_CONTENT); } diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/cons/service/TbProskuConService.java b/eladmin-system/src/main/java/cn/ysk/cashier/cons/service/TbProskuConService.java index b34ef5b7..c59dc515 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/cons/service/TbProskuConService.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/cons/service/TbProskuConService.java @@ -49,7 +49,7 @@ public interface TbProskuConService { * 编辑 * @param resources / */ - void update(ProskuInfo resources) throws Exception; + void update(TbProskuCon resources) throws Exception; /** * 多选删除 diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/cons/service/impl/TbConsInfoFlowServiceImpl.java b/eladmin-system/src/main/java/cn/ysk/cashier/cons/service/impl/TbConsInfoFlowServiceImpl.java index 8ddbc77d..f130de1b 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/cons/service/impl/TbConsInfoFlowServiceImpl.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/cons/service/impl/TbConsInfoFlowServiceImpl.java @@ -11,6 +11,8 @@ import cn.ysk.cashier.cons.service.TbConsInfoFlowService; import cn.ysk.cashier.cons.service.dto.TbConsInfoFlowDto; import cn.ysk.cashier.cons.service.dto.TbConsInfoFlowQueryCriteria; import cn.ysk.cashier.cons.service.mapstruct.TbConsInfoFlowMapper; +import org.springframework.data.domain.PageRequest; +import org.springframework.data.domain.Sort; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.data.domain.Page; @@ -37,6 +39,10 @@ public class TbConsInfoFlowServiceImpl implements TbConsInfoFlowService { @Override public Map queryAll(TbConsInfoFlowQueryCriteria criteria, Pageable pageable){ + + Sort sort = Sort.by(Sort.Direction.DESC, "id"); + pageable = PageRequest.of(pageable.getPageNumber(), pageable.getPageSize(), sort); + Page page = tbConsInfoFlowRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root,criteria,criteriaBuilder),pageable); return PageUtil.toPage(page.map(tbConsInfoFlowMapper::toDto)); } diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/cons/service/impl/TbConsInfoServiceImpl.java b/eladmin-system/src/main/java/cn/ysk/cashier/cons/service/impl/TbConsInfoServiceImpl.java index b7392d7b..67ece8fe 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/cons/service/impl/TbConsInfoServiceImpl.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/cons/service/impl/TbConsInfoServiceImpl.java @@ -8,14 +8,19 @@ import cn.ysk.cashier.cons.repository.TbConsInfoFlowRepository; import cn.ysk.cashier.cons.repository.TbConsSuppFlowRepository; import cn.ysk.cashier.cons.repository.TbConsTypeRepository; import cn.ysk.cashier.cons.service.mapstruct.TbConsSuppFlowMapper; +import cn.ysk.cashier.pojo.product.TbProductStockOperate; import cn.ysk.cashier.pojo.shop.TbShopInfo; import cn.ysk.cashier.pojo.shop.TbShopPurveyor; +import cn.ysk.cashier.pojo.shop.TbShopPurveyorTransact; +import cn.ysk.cashier.repository.product.TbProductStockOperateRepository; import cn.ysk.cashier.repository.shop.TbShopInfoRepository; import cn.ysk.cashier.repository.shop.TbShopPurveyorRepository; +import cn.ysk.cashier.repository.shop.TbShopPurveyorTransactRepository; import cn.ysk.cashier.utils.FileUtil; import cn.ysk.cashier.utils.PageUtil; import cn.ysk.cashier.utils.QueryHelp; import cn.ysk.cashier.utils.ValidationUtil; +import com.alibaba.fastjson.JSON; import lombok.RequiredArgsConstructor; import cn.ysk.cashier.cons.repository.TbConsInfoRepository; import cn.ysk.cashier.cons.service.TbConsInfoService; @@ -55,6 +60,14 @@ public class TbConsInfoServiceImpl implements TbConsInfoService { private final TbShopPurveyorRepository tbShopPurveyorRepository; private final TbShopInfoRepository tbShopInfoRepository; + + + private final TbShopPurveyorTransactRepository purveyorTransactRepository; + + + private final TbProductStockOperateRepository tbProductStockOperateRepository; + + @Override public Map queryAll(TbConsInfoQueryCriteria criteria, Pageable pageable){ Page page = tbConsInfoRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root,criteria,criteriaBuilder),pageable); @@ -151,6 +164,41 @@ public class TbConsInfoServiceImpl implements TbConsInfoService { TbConsInfoFlow flow=new TbConsInfoFlow(); + + TbShopPurveyorTransact purveyorTransact = new TbShopPurveyorTransact(); + purveyorTransact.setShopId(tbShopInfo.getId().toString()); + purveyorTransact.setPurveyorName(purveyor.getPurveyorName()); + purveyorTransact.setPurveyorId(purveyor.getId().toString()); + purveyorTransact.setRemark(""); + purveyorTransact.setCreatedAt(System.currentTimeMillis()); + purveyorTransact.setUpdatedAt(System.currentTimeMillis()); + + + + + + + TbProductStockOperate stockOperate = new TbProductStockOperate(); + stockOperate.setShopId(tbShopInfo.getId().toString()); + stockOperate.setStockSnap(""); + stockOperate.setType(resources.getType()); + stockOperate.setSubType(-1); + Map operatorSnapMap = new HashMap<>(); + operatorSnapMap.put("name", tbShopInfo.getShopName()); + operatorSnapMap.put("account", tbShopInfo.getAccount()); + + stockOperate.setOperatorSnap(JSON.toJSONString(operatorSnapMap)); + stockOperate.setBatchNumber(""); + stockOperate.setRemark(""); + stockOperate.setStockTime(System.currentTimeMillis()); + stockOperate.setCreatedAt(System.currentTimeMillis()); + stockOperate.setUpdatedAt(System.currentTimeMillis()); + stockOperate.setStatus("normal"); + stockOperate.setPurveyorId(resources.getSupplierId().toString()); + stockOperate.setPurveyorName(purveyor.getPurveyorName()); + + tbProductStockOperateRepository.save(stockOperate); + if("in".equals(resources.getType())){ info.setStockNumber(info.getStockNumber().add(resources.getStockNumber())); info.setLasterInStock(resources.getStockNumber()); @@ -159,6 +207,11 @@ public class TbConsInfoServiceImpl implements TbConsInfoService { flow.setBizCode("stockIn"); flow.setBizName("耗材入库"); flow.setBizType("+"); + + purveyorTransact.setTotalAmount(resources.getAccountsPayable()); + purveyorTransact.setPaidAmount(resources.getActualPayment()); + purveyorTransact.setWaitAmount((resources.getAccountsPayable().subtract(resources.getActualPayment()))); + purveyorTransact.setType("cons_in"); }else { @@ -168,9 +221,33 @@ public class TbConsInfoServiceImpl implements TbConsInfoService { flow.setBizCode("stockout"); flow.setBizName("耗材出库"); flow.setBizType("-"); + + + purveyorTransact.setTotalAmount(resources.getAccountsPayable().negate()); + purveyorTransact.setPaidAmount(resources.getActualPayment()); + purveyorTransact.setWaitAmount((resources.getAccountsPayable().subtract(resources.getActualPayment())).negate()); + purveyorTransact.setType("cons_out"); } + if (resources.getAccountsPayable().compareTo(resources.getActualPayment()) <= 0) { + purveyorTransact.setStatus(1); + } else { + purveyorTransact.setStatus(0); + } + purveyorTransact.setPaidAt(System.currentTimeMillis()); + + purveyorTransactRepository.save(purveyorTransact); + if (resources.getSupplierId() != null) { + tbShopPurveyorRepository.upLastTransactAt(resources.getSupplierId().toString()); + } + + + + + + + tbConsInfoRepository.save(info); diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/cons/service/impl/TbProskuConServiceImpl.java b/eladmin-system/src/main/java/cn/ysk/cashier/cons/service/impl/TbProskuConServiceImpl.java index cadb8f57..fc1dbc84 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/cons/service/impl/TbProskuConServiceImpl.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/cons/service/impl/TbProskuConServiceImpl.java @@ -2,6 +2,7 @@ package cn.ysk.cashier.cons.service.impl; import cn.hutool.core.util.ObjectUtil; import cn.ysk.cashier.cons.domain.TbConsInfo; +import cn.ysk.cashier.cons.domain.TbConsSuppFlow; import cn.ysk.cashier.cons.domain.TbProskuCon; import cn.ysk.cashier.cons.repository.TbConsInfoRepository; import cn.ysk.cashier.cons.service.dto.ProskuInfo; @@ -126,55 +127,58 @@ public class TbProskuConServiceImpl implements TbProskuConService { if(Objects.nonNull(list)&&list.size()>0){ tbProskuConRepository.saveAll(list); } - - return new TbProskuConDto(); } @Override @Transactional(rollbackFor = Exception.class) - public void update(ProskuInfo resources) throws Exception { + public void update(TbProskuCon resources) throws Exception { + TbProskuCon tbProskuCon = tbProskuConRepository.findById(resources.getId()).orElseGet(TbProskuCon::new); + ValidationUtil.isNull( tbProskuCon.getId(),"TbProskuCon","id",resources.getId()); + tbProskuCon.copy(resources); + tbProskuConRepository.save(tbProskuCon); - TbProduct product= tbProductRepository.getById(resources.getProductId()); - if(Objects.isNull(product)){ - throw new Exception("对应的商品信息不存在"); - } - TbConsInfo tbConsInfo= tbConsInfoRepository.getById(resources.getConsInfoId()); - if(Objects.isNull(tbConsInfo)){ - throw new Exception("对应的耗材信息不存在"); - } - - List list=new ArrayList<>(); - if("1".equals(product.getIsDistribute().toString())){ - //查询商品对应的所有规格 - List skuList= tbProductSkuRepository.searchSku(product.getId().toString()); - if(Objects.nonNull(skuList)&&skuList.size()>0){ - for (TbProductSku tbProductSku : skuList) { - TbProskuCon tbProskuCon=tbProskuConRepository.selectByConInfoIdAndProductSkuIdAndShopId(resources.getConsInfoId(), tbProductSku.getId(), Integer.valueOf(tbProductSku.getShopId()), Integer.valueOf(tbProductSku.getProductId())); - if(Objects.nonNull(tbProskuCon)){ - tbProskuCon.setSurplusStock(resources.getSurplusStock()); - tbProskuCon.setStatus(resources.getStatus()); - tbProskuCon.setCreateTime(new Timestamp(System.currentTimeMillis())); - list.add(tbProskuCon); - } - } - } - - }else { - - for (ProskuInfo.SkuInfo skuInfo : resources.getSkuInfos()) { - TbProskuCon tbProskuCon=tbProskuConRepository.selectByConInfoIdAndProductSkuIdAndShopId(resources.getConsInfoId(), skuInfo.getSkuId(), skuInfo.getShopId(), resources.getProductId()); - if(Objects.nonNull(tbProskuCon)){ - tbProskuCon.setSurplusStock(skuInfo.getSurplusStock()); - tbProskuCon.setStatus(skuInfo.getStatus()); - tbProskuCon.setCreateTime(new Timestamp(System.currentTimeMillis())); - list.add(tbProskuCon); - } - } - - } - tbProskuConRepository.saveAll(list); +// TbProduct product= tbProductRepository.getById(resources.getProductId()); +// if(Objects.isNull(product)){ +// throw new Exception("对应的商品信息不存在"); +// } +// +// TbConsInfo tbConsInfo= tbConsInfoRepository.getById(resources.getConsInfoId()); +// if(Objects.isNull(tbConsInfo)){ +// throw new Exception("对应的耗材信息不存在"); +// } +// +// List list=new ArrayList<>(); +// if("1".equals(product.getIsDistribute().toString())){ +// //查询商品对应的所有规格 +// List skuList= tbProductSkuRepository.searchSku(product.getId().toString()); +// if(Objects.nonNull(skuList)&&skuList.size()>0){ +// for (TbProductSku tbProductSku : skuList) { +// TbProskuCon tbProskuCon=tbProskuConRepository.selectByConInfoIdAndProductSkuIdAndShopId(resources.getConsInfoId(), tbProductSku.getId(), Integer.valueOf(tbProductSku.getShopId()), Integer.valueOf(tbProductSku.getProductId())); +// if(Objects.nonNull(tbProskuCon)){ +// tbProskuCon.setSurplusStock(resources.getSurplusStock()); +// tbProskuCon.setStatus(resources.getStatus()); +// tbProskuCon.setCreateTime(new Timestamp(System.currentTimeMillis())); +// list.add(tbProskuCon); +// } +// } +// } +// +// }else { +// +// for (ProskuInfo.SkuInfo skuInfo : resources.getSkuInfos()) { +// TbProskuCon tbProskuCon=tbProskuConRepository.selectByConInfoIdAndProductSkuIdAndShopId(resources.getConsInfoId(), skuInfo.getSkuId(), skuInfo.getShopId(), resources.getProductId()); +// if(Objects.nonNull(tbProskuCon)){ +// tbProskuCon.setSurplusStock(skuInfo.getSurplusStock()); +// tbProskuCon.setStatus(skuInfo.getStatus()); +// tbProskuCon.setCreateTime(new Timestamp(System.currentTimeMillis())); +// list.add(tbProskuCon); +// } +// } +// +// } +// tbProskuConRepository.saveAll(list); } @Override