|
@@ -0,0 +1,145 @@
|
|
|
+package com.platform.service.longyanpurchaseorder.impl;
|
|
|
+import com.platform.common.bean.AbstractPageResultBean;
|
|
|
+import com.platform.common.exception.BusinessException;
|
|
|
+import com.platform.common.model.UserInfo;
|
|
|
+import com.platform.common.util.BeanConverterUtil;
|
|
|
+import com.platform.common.util.IdGeneratorUtils;
|
|
|
+import com.platform.common.util.SecurityUtils;
|
|
|
+import com.platform.dao.bean.MyPage;
|
|
|
+import com.github.pagehelper.PageHelper;
|
|
|
+import com.platform.dao.bean.MyVOPage;
|
|
|
+import com.platform.dao.dto.longyanpurchaseorder.LongYanPurchaseDetailDTO;
|
|
|
+import com.platform.dao.dto.sb.SbInfoDTO;
|
|
|
+import com.platform.dao.dto.sb.SbModelSpareBomDTO;
|
|
|
+import com.platform.dao.dto.store.OutStoreDetailDTO;
|
|
|
+import com.platform.dao.entity.longyanpurchaseorder.LongYanPurchaseDetail;
|
|
|
+import com.platform.dao.entity.repair.RepairApplicationForm;
|
|
|
+import com.platform.dao.entity.sb.SbModelSpareBom;
|
|
|
+import com.platform.dao.mapper.longyanpurchaseorder.LongYanPurchaseDetailMapper;
|
|
|
+import com.platform.dao.mapper.sb.SbInfoMapper;
|
|
|
+import com.platform.dao.mapper.sb.SbModelSpareBomMapper;
|
|
|
+import com.platform.dao.vo.query.longyanpurchaseorder.LongYanPurchaseOrderVO;
|
|
|
+import com.platform.dao.dto.longyanpurchaseorder.LongYanPurchaseOrderDTO;
|
|
|
+import com.platform.dao.entity.longyanpurchaseorder.LongYanPurchaseOrder;
|
|
|
+import com.platform.dao.mapper.longyanpurchaseorder.LongYanPurchaseOrderMapper;
|
|
|
+import com.platform.dao.vo.sb.SbInfoVO;
|
|
|
+import com.platform.dao.vo.sb.SbModelSpareBomVO;
|
|
|
+import com.platform.service.longyanpurchaseorder.LongYanPurchaseOrderService;
|
|
|
+import org.springframework.stereotype.Service;
|
|
|
+import com.platform.service.base.impl.BaseServiceImpl;
|
|
|
+import org.springframework.transaction.annotation.Transactional;
|
|
|
+import tk.mybatis.mapper.weekend.Weekend;
|
|
|
+import tk.mybatis.mapper.weekend.WeekendCriteria;
|
|
|
+import lombok.AllArgsConstructor;
|
|
|
+
|
|
|
+import java.math.BigDecimal;
|
|
|
+import java.time.LocalDateTime;
|
|
|
+import java.util.ArrayList;
|
|
|
+import java.util.List;
|
|
|
+import java.util.stream.Collectors;
|
|
|
+
|
|
|
+/**
|
|
|
+ * @Description 龙岩采购单表 service 实现类
|
|
|
+ * @Author lsq
|
|
|
+ * @Date 2023-07-11 11:07:21
|
|
|
+ * @Version Copyright (c) 2020,北京乾元坤和科技有限公司 All rights reserved.
|
|
|
+ */
|
|
|
+@AllArgsConstructor
|
|
|
+@Service("longYanPurchaseOrderService")
|
|
|
+public class LongYanPurchaseOrderServiceImpl extends BaseServiceImpl<LongYanPurchaseOrderMapper, LongYanPurchaseOrder, LongYanPurchaseOrderDTO> implements LongYanPurchaseOrderService {
|
|
|
+ private LongYanPurchaseDetailMapper longYanPurchaseDetailMapper;
|
|
|
+ private SbModelSpareBomMapper sbModelSpareBomMapper;
|
|
|
+ private SbInfoMapper sbInfoMapper;
|
|
|
+ @Override
|
|
|
+ public LongYanPurchaseOrder saveModelByDTO(LongYanPurchaseOrderDTO model) {
|
|
|
+ List<LongYanPurchaseDetailDTO> detailDTOS = model.getDetailDTOS();
|
|
|
+ UserInfo userInfo = SecurityUtils.getUserInfo();
|
|
|
+ for (LongYanPurchaseDetailDTO detailDTO : detailDTOS) {
|
|
|
+ detailDTO.setId(IdGeneratorUtils.getObjectId());
|
|
|
+ detailDTO.setCreatedTime(LocalDateTime.now());
|
|
|
+ detailDTO.setCreatedUserId(userInfo.getUserId());
|
|
|
+ detailDTO.setCreatedUserName(userInfo.getUsername());
|
|
|
+ }
|
|
|
+
|
|
|
+ longYanPurchaseDetailMapper.insertListforComplex(BeanConverterUtil.copyListProperties(detailDTOS, LongYanPurchaseDetail.class));
|
|
|
+ SbModelSpareBomDTO sbModelSpareBomDTO = new SbModelSpareBomDTO();
|
|
|
+ sbModelSpareBomDTO.setSbId(model.getSbId());
|
|
|
+ List<SbModelSpareBomVO> bomVOS = sbModelSpareBomMapper.selectVOList(sbModelSpareBomDTO);
|
|
|
+ boolean flag = false;
|
|
|
+ List<SbModelSpareBom> boms = new ArrayList<>();
|
|
|
+ for (LongYanPurchaseDetailDTO detailDTO : detailDTOS) {
|
|
|
+ flag = false;
|
|
|
+ if (bomVOS != null) {
|
|
|
+ for (SbModelSpareBomVO vo : bomVOS) {
|
|
|
+ if (vo.getSpareId().equals(detailDTO.getSpareId())) {
|
|
|
+ flag = true;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (!flag) {
|
|
|
+ packageBom(boms,detailDTO, model.getSbId());
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ packageBom(boms, detailDTO, model.getSbId());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ sbModelSpareBomMapper.insertListforComplex(boms);
|
|
|
+ return super.saveModelByDTO(model);
|
|
|
+ }
|
|
|
+
|
|
|
+ private void packageBom(List<SbModelSpareBom> boms, LongYanPurchaseDetailDTO detailDTO,String sbId){
|
|
|
+ SbModelSpareBom sbModelSpareBom = new SbModelSpareBom();
|
|
|
+ sbModelSpareBom.setSpareId(detailDTO.getSpareId());
|
|
|
+ sbModelSpareBom.setSbId(sbId);
|
|
|
+ sbModelSpareBom.setNum(new BigDecimal(1));
|
|
|
+ sbModelSpareBom.setId(IdGeneratorUtils.getObjectId());
|
|
|
+ sbModelSpareBom.setGgxh(detailDTO.getGgxh());
|
|
|
+ sbModelSpareBom.setSpareName(detailDTO.getSpareName());
|
|
|
+ sbModelSpareBom.setModelId(sbId);
|
|
|
+ sbModelSpareBom.setNo(detailDTO.getNo());
|
|
|
+ boms.add(sbModelSpareBom);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public AbstractPageResultBean<SbInfoVO> getPurchaseRecord(SbInfoDTO dto, Integer pageNum, Integer pageSize) {
|
|
|
+ PageHelper.startPage(pageNum,pageSize);
|
|
|
+ List<SbInfoVO> sbInfoVOS = sbInfoMapper.selectVOList(dto);
|
|
|
+ List<String> sbIds = sbInfoVOS.stream().map(SbInfoVO::getId).collect(Collectors.toList());
|
|
|
+ LongYanPurchaseOrderDTO orderDTO = new LongYanPurchaseOrderDTO();
|
|
|
+ orderDTO.setSbIds(sbIds);
|
|
|
+ List<LongYanPurchaseOrderVO> orderVOS = mapper.selectList(orderDTO);
|
|
|
+ for (SbInfoVO vo:sbInfoVOS){
|
|
|
+ List<LongYanPurchaseOrderVO> orderVOList = new ArrayList<>();
|
|
|
+ for (LongYanPurchaseOrderVO vo1:orderVOS){
|
|
|
+ if (vo.getId().equals(vo1.getSbId())){
|
|
|
+ orderVOList.add(vo1);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ vo.setLongYanPurchaseOrderVOS(orderVOList);
|
|
|
+ }
|
|
|
+ return new MyPage(sbInfoVOS);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public int batchDelete(List<String> ids) {
|
|
|
+ Weekend<LongYanPurchaseOrder> weekend = new Weekend<>(LongYanPurchaseOrder.class);
|
|
|
+ WeekendCriteria<LongYanPurchaseOrder, Object> weekendCriteria = weekend.weekendCriteria();
|
|
|
+ weekendCriteria.andIn(LongYanPurchaseOrder::getId, ids);
|
|
|
+ mapper.deleteByExample(weekend);
|
|
|
+ return 1;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public AbstractPageResultBean<LongYanPurchaseOrderVO> selectPageList(LongYanPurchaseOrderDTO record, int pageNum, int pageSize) {
|
|
|
+ PageHelper.startPage(pageNum, pageSize);
|
|
|
+ return new MyPage(mapper.selectList(record));
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public AbstractPageResultBean<LongYanPurchaseOrder> selectPageInfo(LongYanPurchaseOrderDTO record, int pageNum, int pageSize) {
|
|
|
+ PageHelper.startPage(pageNum, pageSize);
|
|
|
+ return new MyPage(mapper.selectList(record));
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|