|
|
@@ -19,6 +19,9 @@ import com.usoftchina.saas.document.entities.Product;
|
|
|
import com.usoftchina.saas.exception.BizException;
|
|
|
import com.usoftchina.saas.page.PageDefault;
|
|
|
import com.usoftchina.saas.page.PageRequest;
|
|
|
+import com.usoftchina.saas.purchase.po.Purchase;
|
|
|
+import com.usoftchina.saas.purchase.po.PurchaseDetail;
|
|
|
+import com.usoftchina.saas.purchase.po.PurchaseList;
|
|
|
import com.usoftchina.saas.sale.dto.*;
|
|
|
import com.usoftchina.saas.sale.mapper.*;
|
|
|
import com.usoftchina.saas.sale.po.Sale;
|
|
|
@@ -29,6 +32,7 @@ import com.usoftchina.saas.sale.service.SaleService;
|
|
|
import com.usoftchina.saas.storage.po.ProdIODetail;
|
|
|
import com.usoftchina.saas.storage.po.ProdInOut;
|
|
|
import com.usoftchina.saas.utils.BeanMapper;
|
|
|
+import io.swagger.models.auth.In;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
@@ -285,6 +289,12 @@ public class SaleServiceImpl implements SaleService{
|
|
|
if (num > 0) {
|
|
|
throw new BizException(BizExceptionCode.SALEOUT_UNAUDIT_ERROR);
|
|
|
}
|
|
|
+ //检查是否转采购订单
|
|
|
+ String purchaseCode = saleMapper.checkIsTurnPurchase(id,BaseContextHolder.getCompanyId());
|
|
|
+ if (purchaseCode != null && purchaseCode.length()>0){
|
|
|
+ throw new BizException(BizExceptionCode.SALE_EXISTS_PURCHASE.getCode(),
|
|
|
+ String.format(BizExceptionCode.SALE_EXISTS_PURCHASE.getMessage(),purchaseCode));
|
|
|
+ }
|
|
|
singleUnAudit(id);
|
|
|
}
|
|
|
|
|
|
@@ -534,8 +544,15 @@ public class SaleServiceImpl implements SaleService{
|
|
|
Sale sale = saleMapper.selectByPrimaryKey(id);
|
|
|
List<SaleList> dateilList = saleListMapper.selectSaleListByCondition("sa_id="+id,BaseContextHolder.getCompanyId());
|
|
|
|
|
|
- PurchaseDTO purchase = new PurchaseDTO();
|
|
|
- List<PurchaseDetailDTO> listPurchaseDetail = new ArrayList<PurchaseDetailDTO>();
|
|
|
+ //判断是否已转采购单
|
|
|
+ String purchaseCode = saleMapper.checkIsTurnPurchase(id,BaseContextHolder.getCompanyId());
|
|
|
+ if (purchaseCode != null && purchaseCode.length()>0){
|
|
|
+ throw new BizException(BizExceptionCode.SALE_EXISTS_PURCHASE.getCode(),
|
|
|
+ String.format(BizExceptionCode.SALE_EXISTS_PURCHASE.getMessage(),purchaseCode));
|
|
|
+ }
|
|
|
+
|
|
|
+ Purchase purchase = new Purchase();
|
|
|
+ List<PurchaseDetail> listPurchaseDetail = new ArrayList<PurchaseDetail>();
|
|
|
|
|
|
//销售主表转采购主表
|
|
|
Result<String> result = maxnumberService.getMaxnumber(BillCodeSeq.PURCHASE.getCaller(),false);
|
|
|
@@ -550,33 +567,30 @@ public class SaleServiceImpl implements SaleService{
|
|
|
|
|
|
Long purchaseId = purchase.getId();
|
|
|
for (SaleList detail : dateilList){
|
|
|
- PurchaseDetailDTO purchaseDetailDTO = new PurchaseDetailDTO();
|
|
|
+ PurchaseDetail purchaseDetail = new PurchaseDetail();
|
|
|
Double taxPrice = detail.getPr_purcprice()==null?new Double(0):Double.valueOf(detail.getPr_purcprice());
|
|
|
Double taxrate = detail.getSd_taxrate()==null?new Double(0):detail.getSd_taxrate();
|
|
|
Double qty = detail.getSd_qty()==null?new Double(0):detail.getSd_qty();
|
|
|
- purchaseDetailDTO.setPd_prodid(Long.valueOf(String.valueOf(detail.getSd_prodid())));
|
|
|
- purchaseDetailDTO.setPd_prodcode(detail.getSd_prodcode());
|
|
|
- purchaseDetailDTO.setPd_detno(detail.getSd_detno());
|
|
|
- purchaseDetailDTO.setPd_qty(detail.getSd_qty());
|
|
|
- purchaseDetailDTO.setPd_price(taxPrice/(1+taxrate));
|
|
|
- purchaseDetailDTO.setPd_salecode(sale.getSa_code());
|
|
|
- purchaseDetailDTO.setPd_saledetno(detail.getSd_detno());
|
|
|
- purchaseDetailDTO.setPd_taxrate(taxrate);
|
|
|
- purchaseDetailDTO.setPd_taxprice(taxPrice);
|
|
|
- purchaseDetailDTO.setPd_taxtotal(taxPrice*qty);
|
|
|
- purchaseDetailDTO.setCompanyId(BaseContextHolder.getCompanyId());
|
|
|
- purchaseDetailDTO.setCreatorId(BaseContextHolder.getUserId());
|
|
|
- purchaseDetailDTO.setCreateTime(new Date());
|
|
|
- purchaseDetailDTO.setCreatorName(BaseContextHolder.getUserName());
|
|
|
- purchaseDetailDTO.setPd_puid(purchaseId);
|
|
|
- purchaseDetailDTO.setPd_code(result.getData());
|
|
|
- listPurchaseDetail.add(purchaseDetailDTO);
|
|
|
+ purchaseDetail.setPd_prodid(Long.valueOf(String.valueOf(detail.getSd_prodid())));
|
|
|
+ purchaseDetail.setPd_prodcode(detail.getSd_prodcode());
|
|
|
+ purchaseDetail.setPd_detno(detail.getSd_detno());
|
|
|
+ purchaseDetail.setPd_qty(detail.getSd_qty());
|
|
|
+ purchaseDetail.setPd_price(taxPrice/(1+taxrate));
|
|
|
+ purchaseDetail.setPd_salecode(sale.getSa_code());
|
|
|
+ purchaseDetail.setPd_saledetno(detail.getSd_detno());
|
|
|
+ purchaseDetail.setPd_saleid(sale.getId());
|
|
|
+ purchaseDetail.setPd_taxrate(taxrate);
|
|
|
+ purchaseDetail.setPd_taxprice(taxPrice);
|
|
|
+ purchaseDetail.setPd_taxtotal(taxPrice*qty);
|
|
|
+ purchaseDetail.setCompanyId(BaseContextHolder.getCompanyId());
|
|
|
+ purchaseDetail.setCreatorId(BaseContextHolder.getUserId());
|
|
|
+ purchaseDetail.setCreateTime(new Date());
|
|
|
+ purchaseDetail.setCreatorName(BaseContextHolder.getUserName());
|
|
|
+ purchaseDetail.setPd_puid(purchaseId);
|
|
|
+ purchaseDetail.setPd_code(result.getData());
|
|
|
+ listPurchaseDetail.add(purchaseDetail);
|
|
|
}
|
|
|
-
|
|
|
saleMapper.turnPurchaseDetail(listPurchaseDetail);
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
DocBaseDTO baseDTO = new DocBaseDTO();
|
|
|
baseDTO.setCode(result.getData());
|
|
|
baseDTO.setId(Long.valueOf(String.valueOf(purchaseId)));
|