package com.dk.mdm.service.mst; import com.dk.common.infrastructure.annotaiton.Pagination; import com.dk.common.infrastructure.constant.Constant; 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.GoodsSkuConvert; import com.dk.mdm.infrastructure.util.AuthUtils; import com.dk.mdm.model.pojo.mst.GoodsSku; import com.dk.mdm.mapper.mst.GoodsSkuMapper; import com.dk.common.service.BaseService; import com.dk.common.mapper.BaseMapper; import com.dk.mdm.model.pojo.mst.Role; import com.dk.mdm.model.query.mac.OtherReceivableItemQuery; import com.dk.mdm.model.query.mst.GoodsSkuQuery; import com.dk.mdm.model.query.mst.RoleQuery; import com.dk.mdm.model.response.mac.OtherReceivableItemResponse; import com.dk.mdm.model.response.mst.GoodsSkuResponse; import com.dk.mdm.model.response.mst.RoleResponse; import com.dk.mdm.model.vo.ivt.InOutRecordVO; import com.dk.mdm.model.vo.ivt.InboundItemVO; import com.dk.mdm.model.vo.ivt.InboundVO; import com.dk.mdm.model.vo.mst.GoodsSkuVO; import com.dk.mdm.model.vo.mst.RoleVo; import com.dk.mdm.service.common.CommonService; import com.dk.mdm.service.ivt.inbound.InboundCheckService; import com.dk.mdm.service.ivt.inventory.InventoryService; import org.springframework.stereotype.Service; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.transaction.annotation.Transactional; import java.math.BigDecimal; import java.time.LocalDate; import java.time.LocalDateTime; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; @Service @Transactional public class GoodsSkuService extends BaseService { @Override public BaseMapper getRepository() { return goodsSkuMapper; } @Autowired private GoodsSkuMapper goodsSkuMapper; @Autowired private GoodsSkuConvert goodsSkuConvert; @Autowired private InboundCheckService inboundCheckService; @Autowired InventoryService inventoryService; /** * @desc : 重写组件 * @author : 王英杰 * @date : 2024/3/4 14:51 */ @Override public String getPrimaryKey() { return "sku_id"; } @Autowired private CommonService commonService; @Autowired private AuthUtils authUtils; /** * @desc : 查询 * @author : 王英杰 * @date : 2023/1/5 9:39 */ @Pagination public ResponseResultVO> selectByCond(GoodsSkuQuery goodsSkuQuery) { return super.mergeListWithCount(goodsSkuQuery, goodsSkuMapper.selectByCond(goodsSkuQuery), goodsSkuMapper.countByCond(goodsSkuQuery)); } /** * @desc : 新建 * @author : 王英杰 * @date : 2023/1/5 9:39 */ @Transactional( rollbackFor = {Exception.class} ) public ResponseResultVO insert(GoodsSkuVO goodsSkuVO) { GoodsSku goodsSku = goodsSkuConvert.convertToPo(goodsSkuVO); // 获取编码和主键UuId Map codeMap = commonService.getUniqueNoteCode(Constant.docNameConstant.GOODSSKU.getName(), true); goodsSku.setSkuId(codeMap.get("outId").toString()); goodsSku.setSkuCode(codeMap.get("outNote").toString()); super.insert(goodsSku); if(goodsSkuVO.getWhId()!=null){ //生成入库单数据 插入存货表 String StaffId = authUtils.getStaff().getStaffId(); //总单 InboundVO inboundVO = new InboundVO(); inboundVO.setIntoType(Constant.IntoType.BEGIN.getName()); inboundVO.setIntoingQty(goodsSkuVO.getIntoQty()); inboundVO.setIntoingAmt(goodsSkuVO.getIntoQty().multiply(goodsSkuVO.getPriceInto())); inboundVO.setStaffId(StaffId); inboundVO.setMakeStaff(StaffId); inboundVO.setOrgId(goodsSkuVO.getOrgId()); inboundVO.setMakeTime(LocalDateTime.now()); inboundVO.setIntoDate(LocalDate.now()); inboundVO.setWhId(goodsSkuVO.getWhId()); inboundVO.setFlgAutoHandle(true); //明细 List inboundItemVOList = new ArrayList<>(); InboundItemVO inboundItemVO = new InboundItemVO(); inboundItemVO.setIntoingQty(goodsSkuVO.getIntoQty()); inboundItemVO.setIntoingAmt(goodsSkuVO.getIntoQty().multiply(goodsSkuVO.getPriceInto())); inboundItemVO.setPriceInto(goodsSkuVO.getPriceInto()); inboundItemVO.setIntoQty(goodsSkuVO.getIntoQty()); inboundItemVO.setItemIndex(0); inboundItemVO.setSkuId(goodsSku.getSkuId()); inboundItemVO.setWhId(goodsSkuVO.getWhId()); inboundItemVO.setNonStdCode(goodsSkuVO.getNonStdCode()); inboundItemVOList.add(inboundItemVO); Map map = new HashMap<>(); map.put("total",inboundVO); map.put("detail",inboundItemVOList); inboundCheckService.checkInboundInsert(map); } return ResponseResultUtil.success(); } /** * @desc : 新建 * @author : 王英杰 * @date : 2023/1/5 9:39 */ @Transactional( rollbackFor = {Exception.class} ) public ResponseResultVO update(GoodsSkuVO goodsSkuVO) { GoodsSku goodsSku = goodsSkuConvert.convertToPo(goodsSkuVO); // 获取编码和主键UuId super.updateByUuid(goodsSku); return ResponseResultUtil.success(); } }