PurchaseService.java 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  1. package com.dk.mdm.service.pur;
  2. import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
  3. import com.dk.common.exception.BaseBusinessException;
  4. import com.dk.common.infrastructure.annotaiton.Pagination;
  5. import com.dk.common.infrastructure.constant.Constant;
  6. import com.dk.common.infrastructure.enums.ErrorCodeEnum;
  7. import com.dk.common.model.pojo.PageList;
  8. import com.dk.common.response.ResponseCodeEnum;
  9. import com.dk.common.response.ResponseResultUtil;
  10. import com.dk.common.response.ResponseResultVO;
  11. import com.dk.mdm.infrastructure.convert.pur.PurChaseConvert;
  12. import com.dk.mdm.model.pojo.mst.Staff;
  13. import com.dk.mdm.model.pojo.pur.Purchase;
  14. import com.dk.mdm.mapper.pur.PurchaseMapper;
  15. import com.dk.common.service.BaseService;
  16. import com.dk.common.mapper.BaseMapper;
  17. import com.dk.mdm.model.query.pur.PurchaseQuery;
  18. import com.dk.mdm.model.response.pur.PurchaseResponse;
  19. import com.dk.mdm.model.vo.mst.StaffVO;
  20. import com.dk.mdm.model.vo.pur.PurchaseVO;
  21. import org.springframework.stereotype.Service;
  22. import org.springframework.beans.factory.annotation.Autowired;
  23. import org.springframework.transaction.annotation.Transactional;
  24. import org.springframework.web.bind.annotation.PathVariable;
  25. import org.springframework.web.bind.annotation.PostMapping;
  26. import java.time.LocalDateTime;
  27. import java.util.Map;
  28. import java.util.UUID;
  29. @Service
  30. @Transactional
  31. public class PurchaseService extends BaseService<Purchase> {
  32. @Override
  33. public BaseMapper<Purchase> getRepository() {
  34. return purchaseMapper;
  35. }
  36. @Autowired
  37. private PurchaseMapper purchaseMapper;
  38. @Autowired
  39. private PurChaseConvert purChaseConvert;
  40. /**
  41. * @desc : 条件查询
  42. * @author : 常皓宁
  43. * @date : 2024/2/28 9:47
  44. */
  45. @Pagination
  46. public ResponseResultVO<PageList<PurchaseResponse>> selectByCond(PurchaseQuery purchaseQuery) {
  47. return super.mergeListWithCount(purchaseQuery, purchaseMapper.selectByCond(purchaseQuery), purchaseMapper.countByCond(purchaseQuery));
  48. }
  49. /**
  50. * @desc : 新建
  51. * @author : 常皓宁
  52. * @date : 2024/2/28 9:42
  53. */
  54. @Transactional(rollbackFor = {Exception.class})
  55. public ResponseResultVO<Boolean> insert(PurchaseVO purchasevo) {
  56. //region 组织结构不能为空
  57. if (purchasevo.getOrgId() == null) {
  58. throw new BaseBusinessException(ResponseCodeEnum.OPERATE_FAIL.getCode(), ErrorCodeEnum.ORGANIZATION_CANNOT_BE_EMPTY.getMessage());
  59. }
  60. //endregion
  61. //region 员工不能为空
  62. if (purchasevo.getStaffId() == null) {
  63. throw new BaseBusinessException(ResponseCodeEnum.OPERATE_FAIL.getCode(), ErrorCodeEnum.STAFF_CANNOT_BE_EMPTY.getMessage());
  64. }
  65. //endregion
  66. //region 供应商不能为空
  67. if (purchasevo.getSupId() == null) {
  68. throw new BaseBusinessException(ResponseCodeEnum.OPERATE_FAIL.getCode(), ErrorCodeEnum.SUPLIER_CANNOT_BE_EMPTY.getMessage());
  69. }
  70. //endregion
  71. //region 设置销售订单总单信息并新建
  72. purchasevo.setPurId(null);
  73. purchasevo.setMakeTime(LocalDateTime.now());
  74. purchasevo.setPurType(Constant.DocumentType.PUR_CHASE.getName());
  75. Purchase purchase = purChaseConvert.convertToPo(purchasevo);
  76. purchaseMapper.insert(purchase);
  77. purchasevo.setPurId(purchase.getPurId());
  78. purchasevo.setPurNo(purchaseMapper.getDocNo(purchasevo.getCpId(),purchase.getPurId(),Constant.DocumentType.PUR_CHASE.getName()));
  79. purchaseMapper.updatePurNO(purchasevo);
  80. //endregion
  81. return ResponseResultUtil.success();
  82. }
  83. /**
  84. * @desc : 编辑方法
  85. * @author : 常皓宁
  86. * @date : 2024/2/28 10:57
  87. */
  88. @Transactional(
  89. rollbackFor = {Exception.class}
  90. )
  91. public ResponseResultVO<Boolean> update(PurchaseVO Purchasevo) {
  92. // 转化实体
  93. Purchase purchase = purChaseConvert.convertToPo(Purchasevo);
  94. return ResponseResultUtil.success(super.update(purchase,new UpdateWrapper<Purchase>().lambda().eq(Purchase::getPurId,
  95. UUID.fromString(purchase.getPurId())))) ;
  96. }
  97. }