完善批量新增入库或出库单据接口
This commit is contained in:
@@ -421,6 +421,9 @@ public class ExceptionConstants {
|
|||||||
//单据录入-部分采购的单据不能进行反审核
|
//单据录入-部分采购的单据不能进行反审核
|
||||||
public static final int DEPOT_HEAD_PURCHASE_STATUS_THREE_CODE = 8500027;
|
public static final int DEPOT_HEAD_PURCHASE_STATUS_THREE_CODE = 8500027;
|
||||||
public static final String DEPOT_HEAD_PURCHASE_STATUS_THREE_MSG = "抱歉,部分采购的单据不能进行反审核";
|
public static final String DEPOT_HEAD_PURCHASE_STATUS_THREE_MSG = "抱歉,部分采购的单据不能进行反审核";
|
||||||
|
//单据录入-单据中存在部分状态,需要到新增界面关联单据
|
||||||
|
public static final int DEPOT_ITEM_EXIST_PARTIALLY_STATUS_FAILED_CODE = 8500028;
|
||||||
|
public static final String DEPOT_ITEM_EXIST_PARTIALLY_STATUS_FAILED_MSG = "抱歉,单据:%s是部分%s状态,需要到新增界面关联单据";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 单据明细信息
|
* 单据明细信息
|
||||||
@@ -441,6 +444,12 @@ public class ExceptionConstants {
|
|||||||
//单据明细-明细中仓库不存在
|
//单据明细-明细中仓库不存在
|
||||||
public static final int DEPOT_ITEM_DEPOTNAME_IS_NOT_EXIST_CODE = 9000004;
|
public static final int DEPOT_ITEM_DEPOTNAME_IS_NOT_EXIST_CODE = 9000004;
|
||||||
public static final String DEPOT_ITEM_DEPOTNAME_IS_NOT_EXIST_MSG = "抱歉,仓库:%s在基础资料-仓库信息中不存在";
|
public static final String DEPOT_ITEM_DEPOTNAME_IS_NOT_EXIST_MSG = "抱歉,仓库:%s在基础资料-仓库信息中不存在";
|
||||||
|
//单据明细-单据中存在序列号,需要到新增界面关联单据
|
||||||
|
public static final int DEPOT_ITEM_EXIST_SERIAL_NUMBER_FAILED_CODE = 9000005;
|
||||||
|
public static final String DEPOT_ITEM_EXIST_SERIAL_NUMBER_FAILED_MSG = "抱歉,单据:%s里面存在序列号,需要到新增界面关联单据";
|
||||||
|
//单据明细-单据中存在批号,需要到新增界面关联单据
|
||||||
|
public static final int DEPOT_ITEM_EXIST_BATCH_NUMBER_FAILED_CODE = 9000006;
|
||||||
|
public static final String DEPOT_ITEM_EXIST_BATCH_NUMBER_FAILED_MSG = "抱歉,单据:%s里面存在批号,需要到新增界面关联单据";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 财务信息
|
* 财务信息
|
||||||
|
|||||||
@@ -1512,12 +1512,20 @@ public class DepotHeadService {
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Transactional(value = "transactionManager", rollbackFor = Exception.class)
|
||||||
public void batchAddDepotHeadAndDetail(String ids, HttpServletRequest request) throws Exception {
|
public void batchAddDepotHeadAndDetail(String ids, HttpServletRequest request) throws Exception {
|
||||||
List<DepotHead> dhList = getDepotHeadListByIds(ids);
|
List<DepotHead> dhList = getDepotHeadListByIds(ids);
|
||||||
|
StringBuilder sb = new StringBuilder();
|
||||||
|
User userInfo=userService.getCurrentUser();
|
||||||
for(DepotHead depotHead : dhList) {
|
for(DepotHead depotHead : dhList) {
|
||||||
String prefixNo = BusinessConstants.DEPOTHEAD_TYPE_IN.equals(depotHead.getType())?"QTRK":"QTCK";
|
String prefixNo = BusinessConstants.DEPOTHEAD_TYPE_IN.equals(depotHead.getType())?"QTRK":"QTCK";
|
||||||
//关联单据单号
|
//关联单据单号
|
||||||
depotHead.setLinkNumber(depotHead.getNumber());
|
String oldNumber = depotHead.getNumber();
|
||||||
|
if("3".equals(depotHead.getStatus())) {
|
||||||
|
throw new BusinessRunTimeException(ExceptionConstants.DEPOT_ITEM_EXIST_PARTIALLY_STATUS_FAILED_CODE,
|
||||||
|
String.format(ExceptionConstants.DEPOT_ITEM_EXIST_PARTIALLY_STATUS_FAILED_MSG, oldNumber, depotHead.getType()));
|
||||||
|
}
|
||||||
|
depotHead.setLinkNumber(oldNumber);
|
||||||
//给单号重新赋值
|
//给单号重新赋值
|
||||||
depotHead.setNumber(prefixNo + sequenceService.buildOnlyNumber());
|
depotHead.setNumber(prefixNo + sequenceService.buildOnlyNumber());
|
||||||
depotHead.setDefaultNumber(prefixNo + sequenceService.buildOnlyNumber());
|
depotHead.setDefaultNumber(prefixNo + sequenceService.buildOnlyNumber());
|
||||||
@@ -1526,16 +1534,24 @@ public class DepotHeadService {
|
|||||||
depotHead.setChangeAmount(BigDecimal.ZERO);
|
depotHead.setChangeAmount(BigDecimal.ZERO);
|
||||||
depotHead.setTotalPrice(BigDecimal.ZERO);
|
depotHead.setTotalPrice(BigDecimal.ZERO);
|
||||||
depotHead.setDiscountLastMoney(BigDecimal.ZERO);
|
depotHead.setDiscountLastMoney(BigDecimal.ZERO);
|
||||||
|
depotHead.setCreator(userInfo==null?null:userInfo.getId());
|
||||||
depotHead.setOrganId(null);
|
depotHead.setOrganId(null);
|
||||||
depotHead.setAccountId(null);
|
depotHead.setAccountId(null);
|
||||||
|
depotHead.setStatus("0");
|
||||||
depotHead.setTenantId(null);
|
depotHead.setTenantId(null);
|
||||||
//查询明细
|
//查询明细
|
||||||
List<DepotItemVo4WithInfoEx> itemList = depotItemService.getDetailList(depotHead.getId());
|
List<DepotItemVo4WithInfoEx> itemList = depotItemService.getDetailList(depotHead.getId());
|
||||||
depotHead.setId(null);
|
depotHead.setId(null);
|
||||||
String beanJson = JSONObject.toJSONString(depotHead);
|
|
||||||
JSONArray rowArr = new JSONArray();
|
JSONArray rowArr = new JSONArray();
|
||||||
for(DepotItemVo4WithInfoEx item: itemList) {
|
for(DepotItemVo4WithInfoEx item: itemList) {
|
||||||
//TODO 增加序列号和批次的提示,不能进行录入
|
if("1".equals(item.getEnableSerialNumber())) {
|
||||||
|
throw new BusinessRunTimeException(ExceptionConstants.DEPOT_ITEM_EXIST_SERIAL_NUMBER_FAILED_CODE,
|
||||||
|
String.format(ExceptionConstants.DEPOT_ITEM_EXIST_SERIAL_NUMBER_FAILED_MSG, oldNumber));
|
||||||
|
}
|
||||||
|
if("1".equals(item.getEnableBatchNumber())) {
|
||||||
|
throw new BusinessRunTimeException(ExceptionConstants.DEPOT_ITEM_EXIST_BATCH_NUMBER_FAILED_CODE,
|
||||||
|
String.format(ExceptionConstants.DEPOT_ITEM_EXIST_BATCH_NUMBER_FAILED_MSG, oldNumber));
|
||||||
|
}
|
||||||
item.setUnitPrice(BigDecimal.ZERO);
|
item.setUnitPrice(BigDecimal.ZERO);
|
||||||
item.setAllPrice(BigDecimal.ZERO);
|
item.setAllPrice(BigDecimal.ZERO);
|
||||||
item.setLinkId(item.getId());
|
item.setLinkId(item.getId());
|
||||||
@@ -1547,7 +1563,20 @@ public class DepotHeadService {
|
|||||||
}
|
}
|
||||||
String rows = rowArr.toJSONString();
|
String rows = rowArr.toJSONString();
|
||||||
//新增其它入库单或其它出库单
|
//新增其它入库单或其它出库单
|
||||||
this.addDepotHeadAndDetail(beanJson, rows, request);
|
sb.append("[").append(depotHead.getNumber()).append("]");
|
||||||
|
depotHeadMapper.insertSelective(depotHead);
|
||||||
|
//根据单据编号查询单据id
|
||||||
|
DepotHeadExample dhExample = new DepotHeadExample();
|
||||||
|
dhExample.createCriteria().andNumberEqualTo(depotHead.getNumber()).andDeleteFlagNotEqualTo(BusinessConstants.DELETE_FLAG_DELETED);
|
||||||
|
List<DepotHead> list = depotHeadMapper.selectByExample(dhExample);
|
||||||
|
if(list!=null) {
|
||||||
|
Long headId = list.get(0).getId();
|
||||||
|
/**入库和出库处理单据子表信息*/
|
||||||
|
depotItemService.saveDetials(rows, headId, "add", request);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
logService.insertLog("单据",
|
||||||
|
new StringBuffer(BusinessConstants.LOG_OPERATION_TYPE_BATCH_ADD).append(sb).toString(),
|
||||||
|
((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user