解决删除采购订单关联的请购单状态不变的bug
This commit is contained in:
@@ -508,6 +508,23 @@ public class DepotHeadService {
|
||||
depotHeadMapper.updateByExampleSelective(dh, example);
|
||||
}
|
||||
}
|
||||
//将关联的单据置为审核状态-针对请购单转采购订单的情况
|
||||
if(StringUtil.isNotEmpty(depotHead.getLinkApply())){
|
||||
if(BusinessConstants.DEPOTHEAD_TYPE_OTHER.equals(depotHead.getType()) &&
|
||||
BusinessConstants.SUB_TYPE_PURCHASE_ORDER.equals(depotHead.getSubType())) {
|
||||
String status = BusinessConstants.BILLS_STATUS_AUDIT;
|
||||
//查询除当前单据之外的关联单据列表
|
||||
List<DepotHead> exceptCurrentList = getListByLinkApplyExceptCurrent(depotHead.getLinkApply(), depotHead.getNumber(), depotHead.getType());
|
||||
if(exceptCurrentList!=null && exceptCurrentList.size()>0) {
|
||||
status = BusinessConstants.BILLS_STATUS_SKIPING;
|
||||
}
|
||||
DepotHead dh = new DepotHead();
|
||||
dh.setStatus(status);
|
||||
DepotHeadExample example = new DepotHeadExample();
|
||||
example.createCriteria().andNumberEqualTo(depotHead.getLinkApply());
|
||||
depotHeadMapper.updateByExampleSelective(dh, example);
|
||||
}
|
||||
}
|
||||
//将关联的销售订单单据置为未采购状态-针对销售订单转采购订单的情况
|
||||
if(StringUtil.isNotEmpty(depotHead.getLinkNumber())){
|
||||
if(BusinessConstants.DEPOTHEAD_TYPE_OTHER.equals(depotHead.getType()) &&
|
||||
@@ -959,6 +976,20 @@ public class DepotHeadService {
|
||||
return depotHeadMapper.selectByExample(example);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询除当前单据之外的关联单据列表
|
||||
* @param linkApply
|
||||
* @param number
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
public List<DepotHead> getListByLinkApplyExceptCurrent(String linkApply, String number, String type)throws Exception {
|
||||
DepotHeadExample example = new DepotHeadExample();
|
||||
example.createCriteria().andLinkApplyEqualTo(linkApply).andNumberNotEqualTo(number).andTypeEqualTo(type)
|
||||
.andDeleteFlagNotEqualTo(BusinessConstants.DELETE_FLAG_DELETED);
|
||||
return depotHeadMapper.selectByExample(example);
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据原单号查询关联的单据列表(批量)
|
||||
* @param linkNumberList
|
||||
|
||||
@@ -268,15 +268,15 @@ public class DepotItemService {
|
||||
|
||||
/**
|
||||
* 查询被关联订单中指定商品的明细信息
|
||||
* @param linkNumber
|
||||
* @param linkStr
|
||||
* @param meId
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
public DepotItem getPreItemByHeaderIdAndMaterial(String linkNumber, Long meId, Long linkId)throws Exception {
|
||||
public DepotItem getPreItemByHeaderIdAndMaterial(String linkStr, Long meId, Long linkId)throws Exception {
|
||||
DepotItem depotItem = new DepotItem();
|
||||
try{
|
||||
DepotHead depotHead = depotHeadService.getDepotHead(linkNumber);
|
||||
DepotHead depotHead = depotHeadService.getDepotHead(linkStr);
|
||||
DepotItemExample example = new DepotItemExample();
|
||||
example.createCriteria().andHeaderIdEqualTo(depotHead.getId()).andMaterialExtendIdEqualTo(meId).andIdEqualTo(linkId).andDeleteFlagNotEqualTo(BusinessConstants.DELETE_FLAG_DELETED);
|
||||
List<DepotItem> list = depotItemMapper.selectByExample(example);
|
||||
@@ -549,9 +549,9 @@ public class DepotItemService {
|
||||
depotItem.setBasicNumber(oNumber); //其他情况
|
||||
}
|
||||
}
|
||||
//如果数量+已完成数量>原订单数量,给出预警(判断前提是存在关联订单)
|
||||
if (StringUtil.isNotEmpty(depotHead.getLinkNumber())
|
||||
&& StringUtil.isExist(rowObj.get("preNumber")) && StringUtil.isExist(rowObj.get("finishNumber"))) {
|
||||
//如果数量+已完成数量>原订单数量,给出预警(判断前提是存在关联订单|关联请购单)
|
||||
String linkStr = StringUtil.isNotEmpty(depotHead.getLinkNumber())? depotHead.getLinkNumber(): depotHead.getLinkApply();
|
||||
if (StringUtil.isNotEmpty(linkStr) && StringUtil.isExist(rowObj.get("preNumber")) && StringUtil.isExist(rowObj.get("finishNumber"))) {
|
||||
if("add".equals(actionType)) {
|
||||
//在新增模式进行状态赋值
|
||||
BigDecimal preNumber = rowObj.getBigDecimal("preNumber");
|
||||
@@ -567,9 +567,9 @@ public class DepotItemService {
|
||||
String currentSubType = depotHead.getSubType();
|
||||
//在更新模式进行状态赋值
|
||||
String unit = rowObj.get("unit").toString();
|
||||
Long preHeaderId = depotHeadService.getDepotHead(depotHead.getLinkNumber()).getId();
|
||||
Long preHeaderId = depotHeadService.getDepotHead(linkStr).getId();
|
||||
//前一个单据的数量
|
||||
BigDecimal preNumber = getPreItemByHeaderIdAndMaterial(depotHead.getLinkNumber(), depotItem.getMaterialExtendId(), depotItem.getLinkId()).getOperNumber();
|
||||
BigDecimal preNumber = getPreItemByHeaderIdAndMaterial(linkStr, depotItem.getMaterialExtendId(), depotItem.getLinkId()).getOperNumber();
|
||||
//除去此单据之外的已入库|已出库
|
||||
BigDecimal realFinishNumber = getRealFinishNumber(currentSubType, depotItem.getMaterialExtendId(), depotItem.getLinkId(), preHeaderId, headerId, unitInfo, unit);
|
||||
if(depotItem.getOperNumber().add(realFinishNumber).compareTo(preNumber)>0) {
|
||||
|
||||
Reference in New Issue
Block a user