|
|
@@ -2,23 +2,25 @@ package com.usoftchina.saas.purchase.service.impl;
|
|
|
|
|
|
import com.github.pagehelper.PageHelper;
|
|
|
import com.github.pagehelper.PageInfo;
|
|
|
+
|
|
|
import com.usoftchina.saas.base.Result;
|
|
|
import com.usoftchina.saas.base.service.CommonBaseServiceImpl;
|
|
|
+
|
|
|
+import com.usoftchina.saas.commons.api.MaxnumberService;
|
|
|
import com.usoftchina.saas.commons.dto.BatchDealBaseDTO;
|
|
|
import com.usoftchina.saas.commons.dto.DocBaseDTO;
|
|
|
import com.usoftchina.saas.commons.dto.DocSavedDTO;
|
|
|
+import com.usoftchina.saas.context.BaseContextHolder;
|
|
|
import com.usoftchina.saas.document.api.ProductApi;
|
|
|
import com.usoftchina.saas.exception.BizException;
|
|
|
import com.usoftchina.saas.exception.ExceptionCode;
|
|
|
import com.usoftchina.saas.page.PageRequest;
|
|
|
-import com.usoftchina.saas.purchase.dto.PurchaseDTO;
|
|
|
-import com.usoftchina.saas.purchase.dto.PurchaseDetailDTO;
|
|
|
-import com.usoftchina.saas.purchase.dto.PurchaseFormDTO;
|
|
|
-import com.usoftchina.saas.purchase.dto.PurchaseReqDTO;
|
|
|
+import com.usoftchina.saas.purchase.dto.*;
|
|
|
import com.usoftchina.saas.purchase.mapper.*;
|
|
|
import com.usoftchina.saas.purchase.po.*;
|
|
|
import com.usoftchina.saas.purchase.service.PurchaseService;
|
|
|
import com.usoftchina.saas.utils.BeanMapper;
|
|
|
+
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.util.StringUtils;
|
|
|
@@ -44,11 +46,11 @@ public class PurchaseServiceImpl extends CommonBaseServiceImpl<PurchaseMapper, P
|
|
|
@Autowired
|
|
|
private ProductApi productApi;
|
|
|
@Autowired
|
|
|
+ private MaxnumberService maxnumberService;
|
|
|
+ @Autowired
|
|
|
private ProdInOutMapper prodInOutMapper;
|
|
|
@Autowired
|
|
|
private ProdIODetailMapper prodIODetailMapper;
|
|
|
-
|
|
|
-
|
|
|
|
|
|
@Override
|
|
|
public PageInfo<PurchaseList> getListData(PageRequest page, PurchaseReqDTO req) {
|
|
|
@@ -86,7 +88,10 @@ public class PurchaseServiceImpl extends CommonBaseServiceImpl<PurchaseMapper, P
|
|
|
if (null == formdata || null == formdata.getMain()){
|
|
|
throw new BizException(500, "数据为空,请填写后再保存");
|
|
|
}
|
|
|
-
|
|
|
+ //公司ID
|
|
|
+ Long companyId = BaseContextHolder.getCompanyId();
|
|
|
+ //人员Id
|
|
|
+ Long userId = BaseContextHolder.getUserId();
|
|
|
//获取主表信息
|
|
|
PurchaseDTO main = formdata.getMain();
|
|
|
List<PurchaseDetailDTO> items = formdata.getItems();
|
|
|
@@ -98,12 +103,13 @@ public class PurchaseServiceImpl extends CommonBaseServiceImpl<PurchaseMapper, P
|
|
|
Long pu_id = main.getId();
|
|
|
String pu_code = main.getPu_code();
|
|
|
Purchase purchase = BeanMapper.map(main, Purchase.class);
|
|
|
+ purchase.setCompanyId(companyId);
|
|
|
+ purchase.setCreatorId(userId);
|
|
|
+ purchase.setCreateTime(new Date());
|
|
|
|
|
|
- //编号获取 到时候确定处理
|
|
|
- if (StringUtils.isEmpty(pu_code)) {
|
|
|
- pu_code = "PU" + Math.random() * 1000;
|
|
|
- purchase.setPu_code(pu_code);
|
|
|
- }
|
|
|
+ //编号校验
|
|
|
+ pu_code = pushMaxnubmer(pu_code, pu_id);
|
|
|
+ purchase.setPu_code(pu_code);
|
|
|
saveDTO.setCode(pu_code);
|
|
|
//判断更新与保存动作
|
|
|
if (!StringUtils.isEmpty(pu_id)) {
|
|
|
@@ -179,8 +185,10 @@ public class PurchaseServiceImpl extends CommonBaseServiceImpl<PurchaseMapper, P
|
|
|
@Override
|
|
|
public void batchAudit(BatchDealBaseDTO baseDTOs) {
|
|
|
if (null == baseDTOs || null == baseDTOs.getBaseDTOs() ||
|
|
|
- baseDTOs.getBaseDTOs().size() == 0)
|
|
|
+ baseDTOs.getBaseDTOs().size() == 0) {
|
|
|
return;
|
|
|
+ }
|
|
|
+
|
|
|
String validate = purchaseMapper.validateAudit(baseDTOs.getBaseDTOs());
|
|
|
if (!StringUtils.isEmpty(validate)) {
|
|
|
throw new BizException(500, "存在已审核单据,单据编号:" + validate);
|
|
|
@@ -193,8 +201,10 @@ public class PurchaseServiceImpl extends CommonBaseServiceImpl<PurchaseMapper, P
|
|
|
@Override
|
|
|
public void batchDelete(BatchDealBaseDTO baseDTOs) {
|
|
|
if (null == baseDTOs || null == baseDTOs.getBaseDTOs() ||
|
|
|
- baseDTOs.getBaseDTOs().size() == 0)
|
|
|
+ baseDTOs.getBaseDTOs().size() == 0) {
|
|
|
return;
|
|
|
+ }
|
|
|
+
|
|
|
for (DocBaseDTO base : baseDTOs.getBaseDTOs()) {
|
|
|
singleDelete(base.getId());
|
|
|
}
|
|
|
@@ -215,8 +225,10 @@ public class PurchaseServiceImpl extends CommonBaseServiceImpl<PurchaseMapper, P
|
|
|
@Override
|
|
|
public void batchUnAudit(BatchDealBaseDTO baseDTOs) {
|
|
|
if (null == baseDTOs || null == baseDTOs.getBaseDTOs() ||
|
|
|
- baseDTOs.getBaseDTOs().size() == 0)
|
|
|
+ baseDTOs.getBaseDTOs().size() == 0) {
|
|
|
return;
|
|
|
+ }
|
|
|
+
|
|
|
String msg = purchaseMapper.validateBatchUnAudit(baseDTOs.getBaseDTOs());
|
|
|
if (null != msg) {
|
|
|
throw new BizException(500, "存在未审核单据,单据编号:" + msg);
|
|
|
@@ -238,13 +250,16 @@ public class PurchaseServiceImpl extends CommonBaseServiceImpl<PurchaseMapper, P
|
|
|
@Override
|
|
|
public void openPurchase(long id) {
|
|
|
List<PurchaseDetail> purchaseDetailList = purchasedetailMapper.selectByFK(id);
|
|
|
- int partTurnCount = 0,turnCount = 0; //部分入库、全部入库
|
|
|
+ //部分入库、全部入库
|
|
|
+ int partTurnCount = 0,turnCount = 0;
|
|
|
if(purchaseDetailList != null && purchaseDetailList.size() > 0){
|
|
|
for(PurchaseDetail purchaseDetail : purchaseDetailList){
|
|
|
- if(purchaseDetail.getPd_acceptqty() >= purchaseDetail.getPd_qty()){ //入库数大于等于采购数
|
|
|
+ //入库数大于等于采购数
|
|
|
+ if(purchaseDetail.getPd_acceptqty() >= purchaseDetail.getPd_qty()){
|
|
|
turnCount++;
|
|
|
- }else if(purchaseDetail.getPd_acceptqty() > 0 && purchaseDetail.getPd_acceptqty() < purchaseDetail.getPd_qty()){ // 0 < 入库数 < 采购数
|
|
|
+ // 0 < 入库数 < 采购数
|
|
|
partTurnCount++;
|
|
|
+ }else if(purchaseDetail.getPd_acceptqty() > 0 && purchaseDetail.getPd_acceptqty() < purchaseDetail.getPd_qty()){
|
|
|
}
|
|
|
}
|
|
|
//构造更新对象
|
|
|
@@ -265,9 +280,9 @@ public class PurchaseServiceImpl extends CommonBaseServiceImpl<PurchaseMapper, P
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public Result turnProdio(Long id) {
|
|
|
+ public Result turnProdin(Long id) {
|
|
|
Purchase purchase = getMapper().selectByPrimaryKey(id);
|
|
|
-
|
|
|
+
|
|
|
Integer count=0;
|
|
|
double pdQty=0, pdYqty=0;
|
|
|
//检查转单状态
|
|
|
@@ -306,11 +321,10 @@ public class PurchaseServiceImpl extends CommonBaseServiceImpl<PurchaseMapper, P
|
|
|
prodInOut.setPi_puid(purchase.getId().intValue());
|
|
|
prodInOut.setPi_pucode(purchase.getPu_code());
|
|
|
//设置公司id
|
|
|
- prodInOut.setCompanyId(1);
|
|
|
+ prodInOut.setCompanyId(purchase.getCompanyId());
|
|
|
|
|
|
prodInOutMapper.insertSelective(prodInOut);
|
|
|
-
|
|
|
-
|
|
|
+
|
|
|
//插入验收单从表
|
|
|
long pi_id = prodInOut.getId();
|
|
|
|
|
|
@@ -341,8 +355,6 @@ public class PurchaseServiceImpl extends CommonBaseServiceImpl<PurchaseMapper, P
|
|
|
|
|
|
}
|
|
|
|
|
|
- System.out.println("pi_id:"+pi_id);
|
|
|
-
|
|
|
//更新主表入库状态
|
|
|
purchase.setPu_acceptstatus("已入库");
|
|
|
purchase.setPu_acceptstatuscode("TURNIN");
|
|
|
@@ -358,6 +370,7 @@ public class PurchaseServiceImpl extends CommonBaseServiceImpl<PurchaseMapper, P
|
|
|
purchase.setPu_status(Status.AUDITED.getDisplay());
|
|
|
purchase.setPu_statuscode(Status.AUDITED.name());
|
|
|
purchase.setUpdateTime(new Date());
|
|
|
+ purchase.setUpdaterId(BaseContextHolder.getUserId());
|
|
|
//更新存在字段
|
|
|
purchaseMapper.updateByPrimaryKeySelective(purchase);
|
|
|
//更新最新采购单价
|
|
|
@@ -371,6 +384,7 @@ public class PurchaseServiceImpl extends CommonBaseServiceImpl<PurchaseMapper, P
|
|
|
purchase.setPu_status(Status.UNAUDITED.getDisplay());
|
|
|
purchase.setPu_statuscode(Status.UNAUDITED.name());
|
|
|
purchase.setUpdateTime(new Date());
|
|
|
+ purchase.setUpdaterId(BaseContextHolder.getUserId());
|
|
|
//更新存在字段
|
|
|
purchaseMapper.updateByPrimaryKeySelective(purchase);
|
|
|
}
|
|
|
@@ -393,4 +407,17 @@ public class PurchaseServiceImpl extends CommonBaseServiceImpl<PurchaseMapper, P
|
|
|
}
|
|
|
return list;
|
|
|
}
|
|
|
+
|
|
|
+ /**
|
|
|
+ * @Description: 检验获取并更新单号
|
|
|
+ * @Param: [code, id]
|
|
|
+ * @return: java.lang.String
|
|
|
+ * @Author: guq
|
|
|
+ * @Date: 2018/10/19
|
|
|
+ */
|
|
|
+ private String pushMaxnubmer(String code, Long id) {
|
|
|
+ Integer count = id != null ? purchaseMapper.validateCodeWhenUpdate(code, id) :
|
|
|
+ purchaseMapper.validateCodeWhenInsert(code);
|
|
|
+ return maxnumberService.pushMaxnubmer(count, code, "Purchase");
|
|
|
+ }
|
|
|
}
|