|
|
@@ -21,6 +21,7 @@ import com.usoftchina.saas.purchase.dto.PurchaseDetailDTO;
|
|
|
import com.usoftchina.saas.purchase.dto.PurchaseFormDTO;
|
|
|
import com.usoftchina.saas.purchase.mapper.*;
|
|
|
import com.usoftchina.saas.purchase.po.*;
|
|
|
+import com.usoftchina.saas.purchase.service.ProdInOutService;
|
|
|
import com.usoftchina.saas.purchase.service.PurchaseService;
|
|
|
import com.usoftchina.saas.utils.BeanMapper;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
@@ -56,6 +57,10 @@ public class PurchaseServiceImpl extends CommonBaseServiceImpl<PurchaseMapper, P
|
|
|
private ProdIODetailMapper prodIODetailMapper;
|
|
|
@Autowired
|
|
|
private MessageLogService messageLogService;
|
|
|
+ @Autowired
|
|
|
+ private ProdInOutService prodInOutService;
|
|
|
+
|
|
|
+
|
|
|
|
|
|
@Override
|
|
|
public PageInfo<PurchaseList> getListData(PageRequest page, ListReqDTO req) {
|
|
|
@@ -270,7 +275,17 @@ public class PurchaseServiceImpl extends CommonBaseServiceImpl<PurchaseMapper, P
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public void closePurchase(long id) {
|
|
|
+ public void batchClose(BatchDealBaseDTO baseDTOs) {
|
|
|
+ if (null == baseDTOs || null == baseDTOs.getBaseDTOs() ||
|
|
|
+ baseDTOs.getBaseDTOs().size() == 0) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ for (DocBaseDTO base : baseDTOs.getBaseDTOs()) {
|
|
|
+ singleClose(base.getId());
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ private DocBaseDTO singleClose(Long id) {
|
|
|
Purchase purchase = purchaseMapper.selectByPrimaryKey(id);
|
|
|
if(Status.CLOSE.name().equals(purchase.getPu_statuscode())){
|
|
|
throw new BizException(BizExceptionCode.BIZ_CLOSE);
|
|
|
@@ -283,11 +298,29 @@ public class PurchaseServiceImpl extends CommonBaseServiceImpl<PurchaseMapper, P
|
|
|
DocBaseDTO docBaseDTO = getBaseDTOById(id);
|
|
|
//日志
|
|
|
messageLogService.close(docBaseDTO);
|
|
|
+ return docBaseDTO;
|
|
|
}
|
|
|
|
|
|
+
|
|
|
@Override
|
|
|
- public void openPurchase(long id) {
|
|
|
+ public void closePurchase(long id) {
|
|
|
+ singleClose(id);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void batchOpen(BatchDealBaseDTO baseDTOs) {
|
|
|
+ if (null == baseDTOs || null == baseDTOs.getBaseDTOs() ||
|
|
|
+ baseDTOs.getBaseDTOs().size() == 0) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ for (DocBaseDTO base : baseDTOs.getBaseDTOs()) {
|
|
|
+ singleOpen(base.getId());
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ private DocBaseDTO singleOpen(Long id) {
|
|
|
Purchase purchase = purchaseMapper.selectByPrimaryKey(id);
|
|
|
+ DocBaseDTO docBaseDTO = null;
|
|
|
if(!Status.CLOSE.name().equals(purchase.getPu_acceptstatuscode())){
|
|
|
throw new BizException(BizExceptionCode.BIZ_OPEN);
|
|
|
}
|
|
|
@@ -318,15 +351,27 @@ public class PurchaseServiceImpl extends CommonBaseServiceImpl<PurchaseMapper, P
|
|
|
purchase.setPu_acceptstatuscode(Status.TURNIN.name());
|
|
|
}
|
|
|
purchaseMapper.updateByPrimaryKeySelective(purchase);
|
|
|
- DocBaseDTO docBaseDTO = getBaseDTOById(id);
|
|
|
+ docBaseDTO = getBaseDTOById(id);
|
|
|
//日志
|
|
|
messageLogService.open(docBaseDTO);
|
|
|
+ return docBaseDTO;
|
|
|
}
|
|
|
+ return docBaseDTO;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void openPurchase(long id) {
|
|
|
+ singleOpen(id);
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
@Transactional
|
|
|
public Result turnProdin(Long id) {
|
|
|
+ //公司ID
|
|
|
+ Long companyId = BaseContextHolder.getCompanyId();
|
|
|
+ //人员Id
|
|
|
+ Long userId = BaseContextHolder.getUserId();
|
|
|
+
|
|
|
Purchase purchase = getMapper().selectByPrimaryKey(id);
|
|
|
|
|
|
Integer count=0;
|
|
|
@@ -356,7 +401,6 @@ public class PurchaseServiceImpl extends CommonBaseServiceImpl<PurchaseMapper, P
|
|
|
ProdInOut prodInOut = new ProdInOut();
|
|
|
//生成单号
|
|
|
String piInoutno =maxnumberService.getMaxnumber(BillCodeSeq.PURCHASEIN.getCaller(),true).getData();
|
|
|
-
|
|
|
prodInOut.setPi_inoutno(piInoutno);
|
|
|
prodInOut.setPi_class("采购验收单");
|
|
|
prodInOut.setPi_date(new Date());
|
|
|
@@ -368,6 +412,11 @@ public class PurchaseServiceImpl extends CommonBaseServiceImpl<PurchaseMapper, P
|
|
|
prodInOut.setPi_vendname(purchase.getPu_vendname());
|
|
|
prodInOut.setPi_puid(purchase.getId().intValue());
|
|
|
prodInOut.setPi_pucode(purchase.getPu_code());
|
|
|
+ prodInOut.setCompanyId(purchase.getCompanyId());
|
|
|
+ prodInOut.setCreatorId(purchase.getCreatorId());
|
|
|
+ prodInOut.setCreateTime(new Date());
|
|
|
+
|
|
|
+
|
|
|
//设置公司id
|
|
|
prodInOut.setCompanyId(purchase.getCompanyId());
|
|
|
|
|
|
@@ -376,7 +425,7 @@ public class PurchaseServiceImpl extends CommonBaseServiceImpl<PurchaseMapper, P
|
|
|
//插入验收单从表
|
|
|
long pi_id = prodInOut.getId();
|
|
|
|
|
|
- for (int i=0;i<purchaseDetails.size();i++){
|
|
|
+ for (int i=1;i<=purchaseDetails.size();i++){
|
|
|
PurchaseDetail purchaseDetail =purchaseDetails.get(i);
|
|
|
ProdIODetail prodIODetail = new ProdIODetail();
|
|
|
pdQty = purchaseDetail.getPd_qty()==null?0:purchaseDetail.getPd_qty();
|
|
|
@@ -393,8 +442,11 @@ public class PurchaseServiceImpl extends CommonBaseServiceImpl<PurchaseMapper, P
|
|
|
prodIODetail.setPd_orderprice(purchaseDetail.getPd_price());
|
|
|
prodIODetail.setPd_prodid(purchaseDetail.getPd_prodid());
|
|
|
prodIODetail.setPd_prodcode(purchaseDetail.getPd_prodcode());
|
|
|
+ prodIODetail.setPd_taxrate(purchaseDetail.getPd_taxrate());
|
|
|
//公司id
|
|
|
prodIODetail.setCompanyId(purchaseDetail.getCompanyId());
|
|
|
+ prodIODetail.setCreateTime(new Date());
|
|
|
+
|
|
|
//本次转单数
|
|
|
prodIODetail.setPd_inqty(pdQty-pdYqty);
|
|
|
prodIODetailMapper.insertSelective(prodIODetail);
|
|
|
@@ -403,6 +455,8 @@ public class PurchaseServiceImpl extends CommonBaseServiceImpl<PurchaseMapper, P
|
|
|
purchasedetailMapper.updateByPrimaryKeySelective(purchaseDetail);
|
|
|
}
|
|
|
}
|
|
|
+ //采购单相关计算
|
|
|
+ prodInOutService.updateYqty(prodInOut);
|
|
|
DocBaseDTO baseDTO = new DocBaseDTO();
|
|
|
baseDTO.setId(pi_id);
|
|
|
baseDTO.setCode(piInoutno);
|