package com.dk.mdm.service.pur; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.dk.common.exception.BaseBusinessException; import com.dk.common.infrastructure.annotaiton.Pagination; import com.dk.common.infrastructure.constant.Constant; import com.dk.common.infrastructure.enums.ErrorCodeEnum; import com.dk.common.model.pojo.PageList; import com.dk.common.response.ResponseCodeEnum; import com.dk.common.response.ResponseResultUtil; import com.dk.common.response.ResponseResultVO; import com.dk.mdm.infrastructure.convert.pur.PurChaseConvert; import com.dk.mdm.model.pojo.mst.Staff; import com.dk.mdm.model.pojo.pur.Purchase; import com.dk.mdm.mapper.pur.PurchaseMapper; import com.dk.common.service.BaseService; import com.dk.common.mapper.BaseMapper; import com.dk.mdm.model.query.pur.PurchaseQuery; import com.dk.mdm.model.response.pur.PurchaseResponse; import com.dk.mdm.model.vo.mst.StaffVO; import com.dk.mdm.model.vo.pur.PurchaseVO; import org.springframework.stereotype.Service; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; import java.time.LocalDateTime; import java.util.Map; import java.util.UUID; @Service @Transactional public class PurchaseService extends BaseService { @Override public BaseMapper getRepository() { return purchaseMapper; } @Autowired private PurchaseMapper purchaseMapper; @Autowired private PurChaseConvert purChaseConvert; /** * @desc : 条件查询 * @author : 常皓宁 * @date : 2024/2/28 9:47 */ @Pagination public ResponseResultVO> selectByCond(PurchaseQuery purchaseQuery) { return super.mergeListWithCount(purchaseQuery, purchaseMapper.selectByCond(purchaseQuery), purchaseMapper.countByCond(purchaseQuery)); } /** * @desc : 新建 * @author : 常皓宁 * @date : 2024/2/28 9:42 */ @Transactional(rollbackFor = {Exception.class}) public ResponseResultVO insert(PurchaseVO purchasevo) { //region 组织结构不能为空 if (purchasevo.getOrgId() == null) { throw new BaseBusinessException(ResponseCodeEnum.OPERATE_FAIL.getCode(), ErrorCodeEnum.ORGANIZATION_CANNOT_BE_EMPTY.getMessage()); } //endregion //region 员工不能为空 if (purchasevo.getStaffId() == null) { throw new BaseBusinessException(ResponseCodeEnum.OPERATE_FAIL.getCode(), ErrorCodeEnum.STAFF_CANNOT_BE_EMPTY.getMessage()); } //endregion //region 供应商不能为空 if (purchasevo.getSupId() == null) { throw new BaseBusinessException(ResponseCodeEnum.OPERATE_FAIL.getCode(), ErrorCodeEnum.SUPLIER_CANNOT_BE_EMPTY.getMessage()); } //endregion //region 设置销售订单总单信息并新建 purchasevo.setPurId(null); purchasevo.setMakeTime(LocalDateTime.now()); purchasevo.setPurType(Constant.DocumentType.PUR_CHASE.getName()); Purchase purchase = purChaseConvert.convertToPo(purchasevo); purchaseMapper.insert(purchase); purchasevo.setPurId(purchase.getPurId()); purchasevo.setPurNo(purchaseMapper.getDocNo(purchasevo.getCpId(),purchase.getPurId(),Constant.DocumentType.PUR_CHASE.getName())); purchaseMapper.updatePurNO(purchasevo); //endregion return ResponseResultUtil.success(); } /** * @desc : 编辑方法 * @author : 常皓宁 * @date : 2024/2/28 10:57 */ @Transactional( rollbackFor = {Exception.class} ) public ResponseResultVO update(PurchaseVO Purchasevo) { // 转化实体 Purchase purchase = purChaseConvert.convertToPo(Purchasevo); return ResponseResultUtil.success(super.update(purchase,new UpdateWrapper().lambda().eq(Purchase::getPurId, UUID.fromString(purchase.getPurId())))) ; } }