|
|
@@ -4,9 +4,12 @@ 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.commons.exception.BizExceptionCode;
|
|
|
+import com.usoftchina.saas.context.BaseContextHolder;
|
|
|
import com.usoftchina.saas.document.api.WarehouseApi;
|
|
|
import com.usoftchina.saas.exception.BizException;
|
|
|
import com.usoftchina.saas.exception.ExceptionCode;
|
|
|
@@ -16,7 +19,10 @@ import com.usoftchina.saas.purchase.dto.ProdInOutDTO;
|
|
|
import com.usoftchina.saas.purchase.dto.ProdInOutFormDTO;
|
|
|
import com.usoftchina.saas.purchase.dto.ProdInOutReqDTO;
|
|
|
import com.usoftchina.saas.purchase.mapper.*;
|
|
|
-import com.usoftchina.saas.purchase.po.*;
|
|
|
+import com.usoftchina.saas.purchase.po.ProdIODetail;
|
|
|
+import com.usoftchina.saas.purchase.po.ProdIODetailExample;
|
|
|
+import com.usoftchina.saas.purchase.po.ProdInOut;
|
|
|
+import com.usoftchina.saas.purchase.po.ProdInOutList;
|
|
|
import com.usoftchina.saas.purchase.service.ProdInOutService;
|
|
|
import com.usoftchina.saas.utils.BeanMapper;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
@@ -43,6 +49,9 @@ public class ProdInOutServiceImpl extends CommonBaseServiceImpl<ProdInOutMapper,
|
|
|
@Autowired
|
|
|
private WarehouseApi warehouseApi;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private MaxnumberService maxnumberService;
|
|
|
+
|
|
|
|
|
|
|
|
|
@Override
|
|
|
@@ -99,6 +108,10 @@ public class ProdInOutServiceImpl extends CommonBaseServiceImpl<ProdInOutMapper,
|
|
|
if (null == formdata || null == formdata.getMain()){
|
|
|
throw new BizException(500, "数据为空,请填写后再保存");
|
|
|
}
|
|
|
+ //公司ID
|
|
|
+ Long companyId = BaseContextHolder.getCompanyId();
|
|
|
+ //人员Id
|
|
|
+ Long userId = BaseContextHolder.getUserId();
|
|
|
//获取主表信息
|
|
|
ProdInOutDTO main = formdata.getMain();
|
|
|
List<ProdIODetailDTO> items = formdata.getItems();
|
|
|
@@ -110,61 +123,58 @@ public class ProdInOutServiceImpl extends CommonBaseServiceImpl<ProdInOutMapper,
|
|
|
Long pi_id = main.getId();
|
|
|
String pi_inoutno = main.getPi_inoutno();
|
|
|
ProdInOut prodInOut = BeanMapper.map(main,ProdInOut.class);
|
|
|
-
|
|
|
+ prodInOut.setCompanyId(companyId);
|
|
|
+ prodInOut.setCreatorId(userId);
|
|
|
+ prodInOut.setCreateTime(new Date());
|
|
|
//编号获取
|
|
|
- if (StringUtils.isEmpty(pi_inoutno)) {
|
|
|
- pi_inoutno = "PI" + Math.random() * 1000;
|
|
|
- prodInOut.setPi_inoutno(pi_inoutno);
|
|
|
- }
|
|
|
+ pi_inoutno = pushMaxnubmer(pi_inoutno, pi_id);
|
|
|
+ prodInOut.setPi_inoutno(pi_inoutno);
|
|
|
saveDTO.setCode(pi_inoutno);
|
|
|
//判断更新与保存动作
|
|
|
- if (!StringUtils.isEmpty(pi_id)){
|
|
|
- //更新主表
|
|
|
- getMapper().updateByPrimaryKey(prodInOut);
|
|
|
+ if (StringUtils.isEmpty(pi_id) || "0".equals(pi_id.toString())){
|
|
|
+ //插入操作
|
|
|
+ getMapper().insertSelective(prodInOut);
|
|
|
+ pi_id = prodInOut.getId();
|
|
|
//添加从表传输对象
|
|
|
for (ProdIODetailDTO item : items) {
|
|
|
ProdIODetail detail = BeanMapper.map(item,ProdIODetail.class);
|
|
|
detail.setPd_piid(pi_id);
|
|
|
detail.setPd_inoutno(pi_inoutno);
|
|
|
- if (!StringUtils.isEmpty(detail.getId())) {
|
|
|
- updateDetails.add(detail);
|
|
|
- } else {
|
|
|
- insertDetails.add(detail);
|
|
|
- }
|
|
|
+ detail.setPd_piclass(prodInOut.getPi_class());
|
|
|
+ insertDetails.add(detail);
|
|
|
}
|
|
|
//插入从表
|
|
|
if (insertDetails.size()>0) {
|
|
|
prodIODetailMapper.batchInsert(insertDetails);
|
|
|
}
|
|
|
- //更新从表
|
|
|
- if (updateDetails.size()>0) {
|
|
|
- prodIODetailMapper.batchUpdate(updateDetails);
|
|
|
- }
|
|
|
saveDTO.setId(pi_id);
|
|
|
return saveDTO;
|
|
|
}
|
|
|
-
|
|
|
- //插入操作
|
|
|
- getMapper().insertSelective(prodInOut);
|
|
|
- pi_id = prodInOut.getId();
|
|
|
+ //更新操作
|
|
|
+ getMapper().updateByPrimaryKeySelective(prodInOut);
|
|
|
//添加从表传输对象
|
|
|
for (ProdIODetailDTO item : items) {
|
|
|
ProdIODetail detail = BeanMapper.map(item, ProdIODetail.class);
|
|
|
detail.setPd_piid(pi_id);
|
|
|
detail.setPd_inoutno(pi_inoutno);
|
|
|
- insertDetails.add(detail);
|
|
|
+ if (StringUtils.isEmpty(detail.getId()) || "0".equals(detail.getId().toString())) {
|
|
|
+ insertDetails.add(detail);
|
|
|
+ } else {
|
|
|
+ updateDetails.add(detail);
|
|
|
+ }
|
|
|
}
|
|
|
//插入从表
|
|
|
if (insertDetails.size()>0) {
|
|
|
-
|
|
|
prodIODetailMapper.batchInsert(insertDetails);
|
|
|
}
|
|
|
+ //更新从表
|
|
|
+ if (updateDetails.size()>0) {
|
|
|
+ prodIODetailMapper.batchUpdate(updateDetails);
|
|
|
+ }
|
|
|
saveDTO.setId(pi_id);
|
|
|
-
|
|
|
//更新已转数
|
|
|
if (!isbfaudit)
|
|
|
updateYqty(pi_id,prodInOut.getPi_class());
|
|
|
-
|
|
|
return saveDTO;
|
|
|
}
|
|
|
|
|
|
@@ -245,10 +255,10 @@ public class ProdInOutServiceImpl extends CommonBaseServiceImpl<ProdInOutMapper,
|
|
|
|
|
|
@Override
|
|
|
public void deleteItem(Long id) {
|
|
|
- ProdInOut prodInOut = getMapper().selectByPrimaryKey(id);
|
|
|
- prodIODetailMapper.deleteByPrimaryKey(prodInOut.getId());
|
|
|
+ ProdIODetail prodIODetail = prodIODetailMapper.selectByPrimaryKey(id);
|
|
|
+ prodIODetailMapper.deleteByPrimaryKey(id);
|
|
|
//更新已转数
|
|
|
- updateYqty(prodInOut.getId(),prodInOut.getPi_class());
|
|
|
+ updateYqty(prodIODetail.getPd_piid(),prodIODetail.getPd_piclass());
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
@@ -261,13 +271,10 @@ public class ProdInOutServiceImpl extends CommonBaseServiceImpl<ProdInOutMapper,
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- private void updateYqty(Long id,String piclass) {
|
|
|
+ private void updateYqty(Long pd_piid,String piclass) {
|
|
|
//更新已转数
|
|
|
- prodIODetailMapper.updatePurchaseYqty(id);
|
|
|
- //更新采购单入库状态
|
|
|
-// purchaseMapper.updateAcceptstatus(id);
|
|
|
if ("采购验收单".equals(piclass)){
|
|
|
- purchasedetailMapper.updatePurchaseYqty(id);
|
|
|
+ purchasedetailMapper.updatePurchaseYqty(pd_piid);
|
|
|
}else if ("采购验退单".equals(piclass)){
|
|
|
|
|
|
}
|
|
|
@@ -347,4 +354,14 @@ public class ProdInOutServiceImpl extends CommonBaseServiceImpl<ProdInOutMapper,
|
|
|
return Result.success();
|
|
|
}
|
|
|
|
|
|
+ private String pushMaxnubmer(String code, Long id) {
|
|
|
+ if (null == code) {
|
|
|
+ throw new BizException(BizExceptionCode.NULL_CODE);
|
|
|
+ }
|
|
|
+ Integer count = "0".equals(String.valueOf(id)) ? purchaseMapper.validateCodeWhenInsert(code) :
|
|
|
+ purchaseMapper.validateCodeWhenUpdate(code, id);
|
|
|
+ return maxnumberService.pushMaxnubmer(count, code, "Purchase");
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
}
|