解决删除采购订单关联的请购单状态不变的bug
This commit is contained in:
@@ -508,6 +508,23 @@ public class DepotHeadService {
|
|||||||
depotHeadMapper.updateByExampleSelective(dh, example);
|
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(StringUtil.isNotEmpty(depotHead.getLinkNumber())){
|
||||||
if(BusinessConstants.DEPOTHEAD_TYPE_OTHER.equals(depotHead.getType()) &&
|
if(BusinessConstants.DEPOTHEAD_TYPE_OTHER.equals(depotHead.getType()) &&
|
||||||
@@ -959,6 +976,20 @@ public class DepotHeadService {
|
|||||||
return depotHeadMapper.selectByExample(example);
|
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
|
* @param linkNumberList
|
||||||
|
|||||||
@@ -268,15 +268,15 @@ public class DepotItemService {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询被关联订单中指定商品的明细信息
|
* 查询被关联订单中指定商品的明细信息
|
||||||
* @param linkNumber
|
* @param linkStr
|
||||||
* @param meId
|
* @param meId
|
||||||
* @return
|
* @return
|
||||||
* @throws Exception
|
* @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();
|
DepotItem depotItem = new DepotItem();
|
||||||
try{
|
try{
|
||||||
DepotHead depotHead = depotHeadService.getDepotHead(linkNumber);
|
DepotHead depotHead = depotHeadService.getDepotHead(linkStr);
|
||||||
DepotItemExample example = new DepotItemExample();
|
DepotItemExample example = new DepotItemExample();
|
||||||
example.createCriteria().andHeaderIdEqualTo(depotHead.getId()).andMaterialExtendIdEqualTo(meId).andIdEqualTo(linkId).andDeleteFlagNotEqualTo(BusinessConstants.DELETE_FLAG_DELETED);
|
example.createCriteria().andHeaderIdEqualTo(depotHead.getId()).andMaterialExtendIdEqualTo(meId).andIdEqualTo(linkId).andDeleteFlagNotEqualTo(BusinessConstants.DELETE_FLAG_DELETED);
|
||||||
List<DepotItem> list = depotItemMapper.selectByExample(example);
|
List<DepotItem> list = depotItemMapper.selectByExample(example);
|
||||||
@@ -549,9 +549,9 @@ public class DepotItemService {
|
|||||||
depotItem.setBasicNumber(oNumber); //其他情况
|
depotItem.setBasicNumber(oNumber); //其他情况
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//如果数量+已完成数量>原订单数量,给出预警(判断前提是存在关联订单)
|
//如果数量+已完成数量>原订单数量,给出预警(判断前提是存在关联订单|关联请购单)
|
||||||
if (StringUtil.isNotEmpty(depotHead.getLinkNumber())
|
String linkStr = StringUtil.isNotEmpty(depotHead.getLinkNumber())? depotHead.getLinkNumber(): depotHead.getLinkApply();
|
||||||
&& StringUtil.isExist(rowObj.get("preNumber")) && StringUtil.isExist(rowObj.get("finishNumber"))) {
|
if (StringUtil.isNotEmpty(linkStr) && StringUtil.isExist(rowObj.get("preNumber")) && StringUtil.isExist(rowObj.get("finishNumber"))) {
|
||||||
if("add".equals(actionType)) {
|
if("add".equals(actionType)) {
|
||||||
//在新增模式进行状态赋值
|
//在新增模式进行状态赋值
|
||||||
BigDecimal preNumber = rowObj.getBigDecimal("preNumber");
|
BigDecimal preNumber = rowObj.getBigDecimal("preNumber");
|
||||||
@@ -567,9 +567,9 @@ public class DepotItemService {
|
|||||||
String currentSubType = depotHead.getSubType();
|
String currentSubType = depotHead.getSubType();
|
||||||
//在更新模式进行状态赋值
|
//在更新模式进行状态赋值
|
||||||
String unit = rowObj.get("unit").toString();
|
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);
|
BigDecimal realFinishNumber = getRealFinishNumber(currentSubType, depotItem.getMaterialExtendId(), depotItem.getLinkId(), preHeaderId, headerId, unitInfo, unit);
|
||||||
if(depotItem.getOperNumber().add(realFinishNumber).compareTo(preNumber)>0) {
|
if(depotItem.getOperNumber().add(realFinishNumber).compareTo(preNumber)>0) {
|
||||||
|
|||||||
Reference in New Issue
Block a user