package com.dk.mdm.service.mst; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.dk.common.infrastructure.annotaiton.Pagination; import com.dk.common.model.pojo.PageList; import com.dk.common.response.ResponseResultUtil; import com.dk.common.response.ResponseResultVO; import com.dk.mdm.infrastructure.convert.mst.OrgConvert; import com.dk.mdm.infrastructure.convert.mst.SupplierConvert; import com.dk.mdm.model.pojo.mst.Org; import com.dk.mdm.model.pojo.mst.Staff; import com.dk.mdm.model.pojo.mst.Supplier; import com.dk.mdm.mapper.mst.SupplierMapper; import com.dk.common.service.BaseService; import com.dk.common.mapper.BaseMapper; import com.dk.mdm.model.query.mst.OrgQuery; import com.dk.mdm.model.query.mst.SupplierQuery; import com.dk.mdm.model.vo.mst.OrgVO; import com.dk.mdm.model.vo.mst.StaffVO; import com.dk.mdm.model.vo.mst.SupplierVo; import org.springframework.stereotype.Service; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.interceptor.TransactionAspectSupport; import java.sql.CallableStatement; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; import java.util.UUID; @Service @Transactional public class SupplierService extends BaseService { /** * @desc : 重写主键 * @author : 王英杰 * @date : 2023/1/9 10:39 */ @Override public String getPrimaryKey() { return "sup_id"; } @Override public BaseMapper getRepository() { return supplierMapper; } @Autowired private SupplierMapper supplierMapper; @Autowired private SupplierConvert supplierConvert; /** * @desc : 条件查询 * @author : 王英杰 * @date : 2023/1/10 17:19 */ @Pagination public ResponseResultVO> selectByCond(SupplierQuery supplierQuery) { return super.mergeListWithCount(supplierQuery, supplierMapper.selectByCond(supplierQuery), supplierMapper.countByCond(supplierQuery)); } /** * @desc : 停用 供应商 * @author : 王英杰 * @date : 2023/1/10 17:19 */ public ResponseResultVO deactivateData(SupplierVo supplierVo) { return super.disable(supplierVo.getSupId()); } /** * @desc : 新建供应商 * @author : 王英杰 * @date : 2024/2/27 9:17 */ @Transactional(rollbackFor = {Exception.class}) public ResponseResultVO insert(SupplierVo supplierVo) { // 转化实体 Supplier supplier = supplierConvert.convertToPo(supplierVo); try { // 获取第一个插入操作生成的id String supID = supplierMapper.selectUuid(); // 先生成id supplierVo.setSupId(supID); String supCode = supplierMapper.selectSupCode(supplierVo); //拿着生成的id 传过来的cpid 去生成code supplierVo.setSupCode(supCode); //插入供应商品牌的实体 supplier.setSupCode(supCode); //插入供应商表的实体 super.insert(supplier);// 先插入自己的供应商表 if (supplierVo.getBrandId() != null) { //如果有 商品品牌 // 设置supplierVo的supplierId supplierMapper.insertSupplierBrand(supplierVo); // 向供应商品牌表插入数据 } return ResponseResultUtil.success(); } catch (Exception e) { TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); // 手动回滚事务 return ResponseResultUtil.error("保存失败"); } } /** * @desc : 编辑方法 * @author : 王英杰 * @date : 2023/1/9 10:49 */ @Transactional( rollbackFor = {Exception.class} ) public ResponseResultVO update(SupplierVo supplierVo) { // 转化实体 Supplier supplier = supplierConvert.convertToPo(supplierVo); try { super.updateByUuid(supplier);// 先更新的供应商表 supplierMapper.batchDelete(supplierVo);//批量删除供应商对应的供应商品牌 if (supplierVo.getBrandId() != null) { //如果有 商品品牌 // 设置supplierVo的supplierId supplierMapper.insertSupplierBrand(supplierVo); // 向供应商品牌表插入数据 } return ResponseResultUtil.success(); } catch (Exception e) { TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); // 手动回滚事务 return ResponseResultUtil.error("更新失败"); } } }