GoodsSkuService.java 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154
  1. package com.dk.mdm.service.mst;
  2. import com.dk.common.infrastructure.annotaiton.Pagination;
  3. import com.dk.common.infrastructure.constant.Constant;
  4. import com.dk.common.model.pojo.PageList;
  5. import com.dk.common.response.ResponseResultUtil;
  6. import com.dk.common.response.ResponseResultVO;
  7. import com.dk.mdm.infrastructure.convert.mst.GoodsSkuConvert;
  8. import com.dk.mdm.infrastructure.util.AuthUtils;
  9. import com.dk.mdm.model.pojo.mst.GoodsSku;
  10. import com.dk.mdm.mapper.mst.GoodsSkuMapper;
  11. import com.dk.common.service.BaseService;
  12. import com.dk.common.mapper.BaseMapper;
  13. import com.dk.mdm.model.pojo.mst.Role;
  14. import com.dk.mdm.model.query.mac.OtherReceivableItemQuery;
  15. import com.dk.mdm.model.query.mst.GoodsSkuQuery;
  16. import com.dk.mdm.model.query.mst.RoleQuery;
  17. import com.dk.mdm.model.response.mac.OtherReceivableItemResponse;
  18. import com.dk.mdm.model.response.mst.GoodsSkuResponse;
  19. import com.dk.mdm.model.response.mst.RoleResponse;
  20. import com.dk.mdm.model.vo.ivt.InOutRecordVO;
  21. import com.dk.mdm.model.vo.ivt.InboundItemVO;
  22. import com.dk.mdm.model.vo.ivt.InboundVO;
  23. import com.dk.mdm.model.vo.mst.GoodsSkuVO;
  24. import com.dk.mdm.model.vo.mst.RoleVo;
  25. import com.dk.mdm.service.common.CommonService;
  26. import com.dk.mdm.service.ivt.inbound.InboundCheckService;
  27. import com.dk.mdm.service.ivt.inventory.InventoryService;
  28. import org.springframework.stereotype.Service;
  29. import org.springframework.beans.factory.annotation.Autowired;
  30. import org.springframework.transaction.annotation.Transactional;
  31. import java.math.BigDecimal;
  32. import java.time.LocalDate;
  33. import java.time.LocalDateTime;
  34. import java.util.ArrayList;
  35. import java.util.HashMap;
  36. import java.util.List;
  37. import java.util.Map;
  38. @Service
  39. @Transactional
  40. public class GoodsSkuService extends BaseService<GoodsSku> {
  41. @Override
  42. public BaseMapper<GoodsSku> getRepository() {
  43. return goodsSkuMapper;
  44. }
  45. @Autowired
  46. private GoodsSkuMapper goodsSkuMapper;
  47. @Autowired
  48. private GoodsSkuConvert goodsSkuConvert;
  49. @Autowired
  50. private InboundCheckService inboundCheckService;
  51. @Autowired
  52. InventoryService inventoryService;
  53. /**
  54. * @desc : 重写组件
  55. * @author : 王英杰
  56. * @date : 2024/3/4 14:51
  57. */
  58. @Override
  59. public String getPrimaryKey() {
  60. return "sku_id";
  61. }
  62. @Autowired
  63. private CommonService commonService;
  64. @Autowired
  65. private AuthUtils authUtils;
  66. /**
  67. * @desc : 查询
  68. * @author : 王英杰
  69. * @date : 2023/1/5 9:39
  70. */
  71. @Pagination
  72. public ResponseResultVO<PageList<GoodsSkuResponse>> selectByCond(GoodsSkuQuery goodsSkuQuery) {
  73. return super.mergeListWithCount(goodsSkuQuery, goodsSkuMapper.selectByCond(goodsSkuQuery),
  74. goodsSkuMapper.countByCond(goodsSkuQuery));
  75. }
  76. /**
  77. * @desc : 新建
  78. * @author : 王英杰
  79. * @date : 2023/1/5 9:39
  80. */
  81. @Transactional(
  82. rollbackFor = {Exception.class}
  83. )
  84. public ResponseResultVO<?> insert(GoodsSkuVO goodsSkuVO) {
  85. GoodsSku goodsSku = goodsSkuConvert.convertToPo(goodsSkuVO);
  86. // 获取编码和主键UuId
  87. Map<String, Object> codeMap = commonService.getUniqueNoteCode(Constant.docNameConstant.GOODSSKU.getName(), true);
  88. goodsSku.setSkuId(codeMap.get("outId").toString());
  89. goodsSku.setSkuCode(codeMap.get("outNote").toString());
  90. super.insert(goodsSku);
  91. if(goodsSkuVO.getWhId()!=null){ //生成入库单数据 插入存货表
  92. String StaffId = authUtils.getStaff().getStaffId();
  93. //总单
  94. InboundVO inboundVO = new InboundVO();
  95. inboundVO.setIntoType(Constant.IntoType.BEGIN.getName());
  96. inboundVO.setIntoingQty(goodsSkuVO.getIntoQty());
  97. inboundVO.setIntoingAmt(goodsSkuVO.getIntoQty().multiply(goodsSkuVO.getPriceInto()));
  98. inboundVO.setStaffId(StaffId);
  99. inboundVO.setMakeStaff(StaffId);
  100. inboundVO.setOrgId(goodsSkuVO.getOrgId());
  101. inboundVO.setMakeTime(LocalDateTime.now());
  102. inboundVO.setIntoDate(LocalDate.now());
  103. inboundVO.setWhId(goodsSkuVO.getWhId());
  104. inboundVO.setFlgAutoHandle(true);
  105. //明细
  106. List<InboundItemVO> inboundItemVOList = new ArrayList<>();
  107. InboundItemVO inboundItemVO = new InboundItemVO();
  108. inboundItemVO.setIntoingQty(goodsSkuVO.getIntoQty());
  109. inboundItemVO.setIntoingAmt(goodsSkuVO.getIntoQty().multiply(goodsSkuVO.getPriceInto()));
  110. inboundItemVO.setPriceInto(goodsSkuVO.getPriceInto());
  111. inboundItemVO.setIntoQty(goodsSkuVO.getIntoQty());
  112. inboundItemVO.setItemIndex(0);
  113. inboundItemVO.setSkuId(goodsSku.getSkuId());
  114. inboundItemVO.setWhId(goodsSkuVO.getWhId());
  115. inboundItemVO.setNonStdCode(goodsSkuVO.getNonStdCode());
  116. inboundItemVOList.add(inboundItemVO);
  117. Map<String, Object> map = new HashMap<>();
  118. map.put("total",inboundVO);
  119. map.put("detail",inboundItemVOList);
  120. inboundCheckService.checkInboundInsert(map);
  121. }
  122. return ResponseResultUtil.success();
  123. }
  124. /**
  125. * @desc : 新建
  126. * @author : 王英杰
  127. * @date : 2023/1/5 9:39
  128. */
  129. @Transactional(
  130. rollbackFor = {Exception.class}
  131. )
  132. public ResponseResultVO<?> update(GoodsSkuVO goodsSkuVO) {
  133. GoodsSku goodsSku = goodsSkuConvert.convertToPo(goodsSkuVO);
  134. // 获取编码和主键UuId
  135. super.updateByUuid(goodsSku);
  136. return ResponseResultUtil.success();
  137. }
  138. }