Merge remote-tracking branch 'origin/main'
This commit is contained in:
commit
e890d08065
|
@ -71,23 +71,25 @@ public class GatheringbillEditSaveBatchBSAction extends BillUpdateBatchBSAction
|
|||
UFDouble changeMoney = money.sub(oriMoney);
|
||||
// 몽앴饋簡땐데id혼꿴璂饋簡땐데
|
||||
BaseDAO dao = new BaseDAO();
|
||||
String sql = "select nreceivedmny,ntotalorigmny from so_saleorder where dr = 0 and csaleorderid = '" + def3
|
||||
String sql = "select vbillcode,nreceivedmny,ntotalorigmny from so_saleorder where dr = 0 and csaleorderid = '" + def3
|
||||
+ "'";
|
||||
|
||||
Map saleMap = (Map) dao.executeQuery(sql, new MapProcessor());
|
||||
// 饋簡땐데송江북셕
|
||||
UFDouble ntotalorigmny = UFDouble.ZERO_DBL;
|
||||
// 饋簡땐데茄셥澗운쏜띨
|
||||
UFDouble nreceivedmny = UFDouble.ZERO_DBL;
|
||||
if (saleMap != null) {
|
||||
String vbillcode = "";
|
||||
if(saleMap != null) {
|
||||
nreceivedmny = new UFDouble(
|
||||
saleMap.get("nreceivedmny") == null ? "0" : saleMap.get("nreceivedmny").toString());
|
||||
ntotalorigmny = new UFDouble(
|
||||
saleMap.get("ntotalorigmny") == null ? "0" : saleMap.get("ntotalorigmny").toString());
|
||||
vbillcode = saleMap.get("vbillcode") == null ? "" : saleMap.get("vbillcode").toString();
|
||||
}
|
||||
|
||||
if (money.compareTo(ntotalorigmny) > 0) {
|
||||
UFDouble moreMoney = money.sub(ntotalorigmny);
|
||||
throw new BusinessException("【该笔收款已超销售订单" + moreMoney + "元,无法传输!请检查订单累计收款金额!】");
|
||||
throw new BusinessException("【该笔收款税收合计" + money + "已超销售订单 [" + vbillcode + "] " + moreMoney + "元,无法传输!请检查订单累计收款金额!】");
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -82,20 +82,22 @@ public class GatheringbillSaveBatchBSAction extends BillInsertBatchBSAction {
|
|||
|
||||
//몽앴饋簡땐데id혼꿴璂饋簡땐데
|
||||
BaseDAO dao = new BaseDAO();
|
||||
String sql = "select nreceivedmny,ntotalorigmny from so_saleorder where dr = 0 and csaleorderid = '" +def3+"'";
|
||||
String sql = "select vbillcode,nreceivedmny,ntotalorigmny from so_saleorder where dr = 0 and csaleorderid = '" +def3+"'";
|
||||
|
||||
Map saleMap = (Map)dao.executeQuery(sql, new MapProcessor());
|
||||
//饋簡땐데송江북셕
|
||||
UFDouble ntotalorigmny = UFDouble.ZERO_DBL;
|
||||
//饋簡땐데茄셥澗운쏜띨
|
||||
UFDouble nreceivedmny = UFDouble.ZERO_DBL;
|
||||
String vbillcode = "";
|
||||
if(saleMap != null) {
|
||||
nreceivedmny = new UFDouble(saleMap.get("nreceivedmny") == null ? "0" : saleMap.get("nreceivedmny").toString());
|
||||
ntotalorigmny = new UFDouble(saleMap.get("ntotalorigmny") == null ? "0" : saleMap.get("ntotalorigmny").toString());
|
||||
vbillcode = saleMap.get("vbillcode") == null ? "" : saleMap.get("vbillcode").toString();
|
||||
}
|
||||
if (money.compareTo(ntotalorigmny) > 0) {
|
||||
UFDouble moreMoney = money.sub(ntotalorigmny);
|
||||
throw new BusinessException("【该笔收款已超销售订单" + moreMoney + "元,无法传输!请检查订单累计收款金额!】");
|
||||
throw new BusinessException("【该笔收款税收合计" + money + "已超销售订单 [" + vbillcode + "] " + moreMoney + "元,无法传输!请检查订单累计收款金额!】");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -212,7 +212,7 @@ class ApplyRequest extends EInvoiceRequest implements IFactoryRequest {
|
|||
|
||||
motor.setHGZH(psd.getHgzh());
|
||||
motor.setFDJHM(psd.getFdjhm());
|
||||
motor.setDUWEI(psd.getDunwei());
|
||||
motor.setDUNWEI(psd.getDunwei());
|
||||
// ***********************************************************************
|
||||
ad.setDetailMotor(motor);
|
||||
}
|
||||
|
@ -1377,7 +1377,7 @@ class ApplyRequest extends EInvoiceRequest implements IFactoryRequest {
|
|||
|
||||
|
||||
//¶Öλ
|
||||
private String DUWEI;
|
||||
private String DUNWEI;
|
||||
|
||||
public String getHGZH() {
|
||||
return HGZH;
|
||||
|
@ -1395,12 +1395,12 @@ class ApplyRequest extends EInvoiceRequest implements IFactoryRequest {
|
|||
this.FDJHM = FDJHM;
|
||||
}
|
||||
|
||||
public String getDUWEI() {
|
||||
return DUWEI;
|
||||
public String getDUNWEI() {
|
||||
return DUNWEI;
|
||||
}
|
||||
|
||||
public void setDUWEI(String DUWEI) {
|
||||
this.DUWEI = DUWEI;
|
||||
public void setDUNWEI(String DUNWEI) {
|
||||
this.DUNWEI = DUNWEI;
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -8,7 +8,6 @@ package nc.bs.mmpac.pmo.pac0002.bp;
|
|||
import nc.bs.mmpac.pmo.pac0002.pluginpoint.PMOPluginPoint;
|
||||
import nc.bs.mmpac.pmo.pac0002.rule.PMOFilterBillStatusRule;
|
||||
import nc.bs.mmpac.pmo.pac0002.rule.PMOFinishAutoFinishPutPlanRule;
|
||||
import nc.bs.mmpac.pmo.pac0002.rule.PMOToFinishPickMRule;
|
||||
import nc.bs.mmpac.pmo.pac0002.rule.fill.PMOFillFinishValueRule;
|
||||
import nc.bs.mmpub.rule.MMVOSagaFrozenValidateRule;
|
||||
import nc.impl.pubapp.pattern.rule.IFilterRule;
|
||||
|
@ -43,9 +42,9 @@ public class PMOFinishBP {
|
|||
private void addFinishAfterRule(CompareAroundProcesser<PMOAggVO> processer) {
|
||||
IRule<PMOAggVO> finishPutPlanRule = new PMOFinishAutoFinishPutPlanRule();
|
||||
processer.addAfterRule(finishPutPlanRule);
|
||||
/** 同步修改备料计划完成(生产订单强制完工时) */
|
||||
IRule<PMOAggVO> pMOToFinishPickMRule = new PMOToFinishPickMRule();
|
||||
processer.addAfterRule(pMOToFinishPickMRule);
|
||||
// /** 同步修改备料计划完成(生产订单强制完工时) */
|
||||
// IRule<PMOAggVO> pMOToFinishPickMRule = new PMOToFinishPickMRule();
|
||||
// processer.addAfterRule(pMOToFinishPickMRule);
|
||||
}
|
||||
|
||||
public PMOAggVO[] finishCancel(PMOAggVO[] fullBills, PMOAggVO[] originBills) {
|
||||
|
|
|
@ -5,13 +5,16 @@
|
|||
|
||||
package nc.bs.mmpac.pmo.pac0002.bp;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import nc.bs.mmpac.pmo.pac0002.bp.service.PMOBPService;
|
||||
import nc.bs.mmpac.pmo.pac0002.bp.util.PMOBPUtil;
|
||||
import nc.bs.mmpac.pmo.pac0002.pluginpoint.PMOPluginPoint;
|
||||
import nc.bs.mmpac.pmo.pac0002.rule.PMOFilterBillStatusRule;
|
||||
import nc.bs.mmpac.pmo.pac0002.rule.PMOFilterRowStatusRule;
|
||||
import nc.bs.mmpac.pmo.pac0002.rule.PMOFinishAutoFinishPutPlanRule;
|
||||
import nc.bs.mmpac.pmo.pac0002.rule.PMOToFinishPickMRule;
|
||||
import nc.bs.mmpac.pmo.pac0002.rule.fill.PMOFillFinishValueRule;
|
||||
import nc.bs.mmpub.rule.MMVOSagaFrozenValidateRule;
|
||||
import nc.impl.pubapp.pattern.rule.IRule;
|
||||
|
@ -28,11 +31,6 @@ import nc.vo.pub.BusinessException;
|
|||
import nc.vo.pub.CircularlyAccessibleValueObject;
|
||||
import nc.vo.pubapp.pattern.exception.ExceptionUtils;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
public class PMORowFinishBP {
|
||||
public PMORowFinishBP() {
|
||||
}
|
||||
|
@ -88,10 +86,10 @@ public class PMORowFinishBP {
|
|||
returnvos[0].setChildrenVO((CircularlyAccessibleValueObject[])newitemMap.values().toArray(new PMOItemVO[0]));
|
||||
processer.after(returnvos, returnvos);
|
||||
|
||||
/** 同步修改备料计划完成(生产订单强制完工时) */
|
||||
IRule<PMOAggVO> pMOToFinishPickMRule = new PMOToFinishPickMRule();
|
||||
pMOToFinishPickMRule.process(newaggvos);
|
||||
/** ******************** */
|
||||
// /** 同步修改备料计划完成(生产订单强制完工时) */
|
||||
// IRule<PMOAggVO> pMOToFinishPickMRule = new PMOToFinishPickMRule();
|
||||
// pMOToFinishPickMRule.process(newaggvos);
|
||||
// /** ******************** */
|
||||
|
||||
PMOAggVO newaggvo = PMOBPService.getIPMOQueryService().queryByPk(vos[0].getParentVO().getCpmohid());
|
||||
return new PMOAggVO[]{newaggvo};
|
||||
|
|
|
@ -27,52 +27,53 @@ public class PMOToFinishPickMRule
|
|||
* 3.若为完工状态,则根据生产订单明细表中生产订单行查询备料计划
|
||||
* 4.修改备料计划为完成状态(3)
|
||||
*/
|
||||
for(int i = 0; i < vos.length; i++) {
|
||||
PMOAggVO vo = vos[i];
|
||||
PMOItemVO[] items = vo.getChildrenVO();
|
||||
//循环生产订单明细
|
||||
for(int j = 0; j < items.length; j++) {
|
||||
PMOItemVO item = items[j];
|
||||
//查看生产订单行状态是否为完工(2)
|
||||
int fitemStatus = item.getFitemstatus();
|
||||
if(fitemStatus != 2) {
|
||||
continue;
|
||||
}
|
||||
//根据生产订单行查询备料计划
|
||||
String cmoid = item.getCmoid();
|
||||
String whereSql = "nvl(mm_pickm.dr,0) = 0 and mm_pickm.vsourcemorowid = '" + cmoid + "'";
|
||||
IMDPersistenceQueryService aggvoQueryService = NCLocator.getInstance().lookup(IMDPersistenceQueryService.class);
|
||||
// 根据主键查询得到aggvo
|
||||
try {
|
||||
@SuppressWarnings("unchecked")
|
||||
ArrayList<AggPickmVO> aggVOs = (ArrayList<AggPickmVO>)aggvoQueryService.queryBillOfVOByCond(AggPickmVO.class, whereSql, true, false);
|
||||
if(aggVOs.size() <= 0) {
|
||||
continue;
|
||||
}
|
||||
//数组转换
|
||||
AggPickmVO[] aggVOsArr = new AggPickmVO[aggVOs.size()];
|
||||
boolean flag = false;
|
||||
for(int z=0; z<aggVOs.size(); z++) {
|
||||
AggPickmVO aggPickmVO = aggVOs.get(z);
|
||||
PickmHeadVO pickmHeadVO = aggPickmVO.getParentVO();
|
||||
Integer fbillstatus = pickmHeadVO.getFbillstatus();
|
||||
//已经位完工态的备料计划不修改
|
||||
if(fbillstatus != 2){
|
||||
aggVOsArr[z] =aggVOs.get(z);
|
||||
flag = true;
|
||||
}
|
||||
}
|
||||
if(flag) {
|
||||
//备料计划完工
|
||||
IPickmMaintainService ipickmMaintainService = NCLocator.getInstance().lookup(IPickmMaintainService.class);
|
||||
ipickmMaintainService.finishPickm(aggVOsArr);
|
||||
}
|
||||
}catch(BusinessException e) {
|
||||
// TODO Auto-generated catch block
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
//20250514弃用
|
||||
// for(int i = 0; i < vos.length; i++) {
|
||||
// PMOAggVO vo = vos[i];
|
||||
// PMOItemVO[] items = vo.getChildrenVO();
|
||||
// //循环生产订单明细
|
||||
// for(int j = 0; j < items.length; j++) {
|
||||
// PMOItemVO item = items[j];
|
||||
// //查看生产订单行状态是否为完工(2)
|
||||
// int fitemStatus = item.getFitemstatus();
|
||||
// if(fitemStatus != 2) {
|
||||
// continue;
|
||||
// }
|
||||
// //根据生产订单行查询备料计划
|
||||
// String cmoid = item.getCmoid();
|
||||
// String whereSql = "nvl(mm_pickm.dr,0) = 0 and mm_pickm.vsourcemorowid = '" + cmoid + "'";
|
||||
// IMDPersistenceQueryService aggvoQueryService = NCLocator.getInstance().lookup(IMDPersistenceQueryService.class);
|
||||
// // 根据主键查询得到aggvo
|
||||
// try {
|
||||
// @SuppressWarnings("unchecked")
|
||||
// ArrayList<AggPickmVO> aggVOs = (ArrayList<AggPickmVO>)aggvoQueryService.queryBillOfVOByCond(AggPickmVO.class, whereSql, true, false);
|
||||
// if(aggVOs.size() <= 0) {
|
||||
// continue;
|
||||
// }
|
||||
// //数组转换
|
||||
// AggPickmVO[] aggVOsArr = new AggPickmVO[aggVOs.size()];
|
||||
// boolean flag = false;
|
||||
// for(int z=0; z<aggVOs.size(); z++) {
|
||||
// AggPickmVO aggPickmVO = aggVOs.get(z);
|
||||
// PickmHeadVO pickmHeadVO = aggPickmVO.getParentVO();
|
||||
// Integer fbillstatus = pickmHeadVO.getFbillstatus();
|
||||
// //已经位完工态的备料计划不修改
|
||||
// if(fbillstatus != 2){
|
||||
// aggVOsArr[z] =aggVOs.get(z);
|
||||
// flag = true;
|
||||
// }
|
||||
// }
|
||||
// if(flag) {
|
||||
// //备料计划完工
|
||||
// IPickmMaintainService ipickmMaintainService = NCLocator.getInstance().lookup(IPickmMaintainService.class);
|
||||
// ipickmMaintainService.finishPickm(aggVOsArr);
|
||||
// }
|
||||
// }catch(BusinessException e) {
|
||||
// // TODO Auto-generated catch block
|
||||
// e.printStackTrace();
|
||||
// }
|
||||
//
|
||||
// }
|
||||
// }
|
||||
}
|
||||
}
|
||||
|
|
|
@ -5,8 +5,25 @@
|
|||
|
||||
package nc.bs.mmpac.wr.bp;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import nc.bs.mmpac.wr.plugin.WrPluginPoint;
|
||||
import nc.bs.mmpac.wr.rule.*;
|
||||
import nc.bs.mmpac.wr.rule.WrAuditAndApplyCheckRule;
|
||||
import nc.bs.mmpac.wr.rule.WrAuditAndProdInRule;
|
||||
import nc.bs.mmpac.wr.rule.WrCheckMaterialPermissionRule;
|
||||
import nc.bs.mmpac.wr.rule.WrCheckMoIsCloseRule;
|
||||
import nc.bs.mmpac.wr.rule.WrCheckTranstypeCodeRule;
|
||||
import nc.bs.mmpac.wr.rule.WrClearNullBodyRule;
|
||||
import nc.bs.mmpac.wr.rule.WrFillInsertDataRule;
|
||||
import nc.bs.mmpac.wr.rule.WrHeadNotNullRule;
|
||||
import nc.bs.mmpac.wr.rule.WrIsSaveAndApproveRule;
|
||||
import nc.bs.mmpac.wr.rule.WrNoneMainProductBomCheckRule;
|
||||
import nc.bs.mmpac.wr.rule.WrPickFilterRule;
|
||||
import nc.bs.mmpac.wr.rule.WrQualityFilterRule;
|
||||
import nc.bs.mmpac.wr.rule.WrRowNoRule;
|
||||
import nc.bs.mmpac.wr.rule.WrSetDefaultValueWhenInsertRule;
|
||||
import nc.bs.mmpac.wr.rule.WrSetItemDefaultValueRule;
|
||||
import nc.bs.mmpac.wr.rule.WrSetQualityVODefaultValueRule;
|
||||
import nc.bs.mmpac.wr.rule.batch.WrCreateBatProdRule;
|
||||
import nc.bs.mmpac.wr.rule.batch.WrCreateBatchCodeRule;
|
||||
import nc.bs.mmpac.wr.rule.check.WrNullRule;
|
||||
|
@ -17,7 +34,12 @@ import nc.bs.mmpac.wr.rule.mo.WrMORewriteRule;
|
|||
import nc.bs.mmpac.wr.rule.output.WrOutputNotNullRule;
|
||||
import nc.bs.mmpac.wr.rule.pick.WrPickNotNullRule;
|
||||
import nc.bs.mmpac.wr.rule.putplan.WrInsertRewriteWrNumForPutPlanRule;
|
||||
import nc.bs.mmpac.wr.rule.serialno.*;
|
||||
import nc.bs.mmpac.wr.rule.serialno.WrMoSerialNoMarkIRule;
|
||||
import nc.bs.mmpac.wr.rule.serialno.WrSerialNoAutoCreateBeforeRule;
|
||||
import nc.bs.mmpac.wr.rule.serialno.WrSerialNoCheckCodeRepeat;
|
||||
import nc.bs.mmpac.wr.rule.serialno.WrSerialNoCheckRule;
|
||||
import nc.bs.mmpac.wr.rule.serialno.WrSerialNoSaveRule;
|
||||
import nc.bs.mmpac.wr.rule.serialno.WrSnSynToQualtiyRule;
|
||||
import nc.bs.mmpub.rule.MMATOMaterialCheckRule;
|
||||
import nc.bs.mmpub.rule.MMAutoMaterialAssignRule;
|
||||
import nc.bs.pubapp.pub.rule.FieldLengthCheckRule;
|
||||
|
@ -30,10 +52,11 @@ import nc.util.mmf.busi.rule.MMBillCodeCheckAndTrantypeRule;
|
|||
import nc.util.mmf.busi.rule.MMCheckMaterialVirtualRule;
|
||||
import nc.util.mmf.busi.rule.MMCreateBillcodeAndTrantypecodeRule;
|
||||
import nc.util.mmf.framework.gc.GCInsertBPTemplate;
|
||||
import nc.vo.mmpac.wr.entity.*;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import nc.vo.mmpac.wr.entity.AggWrVO;
|
||||
import nc.vo.mmpac.wr.entity.WrItemVO;
|
||||
import nc.vo.mmpac.wr.entity.WrPickVO;
|
||||
import nc.vo.mmpac.wr.entity.WrQualityVO;
|
||||
import nc.vo.mmpac.wr.entity.WrVO;
|
||||
|
||||
public class WrInsertBP {
|
||||
private boolean isOnlyInsert = false;
|
||||
|
@ -130,10 +153,10 @@ public class WrInsertBP {
|
|||
processor.addAfterRule(moDiscadNumRewriteRule);
|
||||
IRule<AggWrVO> snSaveRule = new WrSerialNoSaveRule();
|
||||
processor.addAfterRule(snSaveRule);
|
||||
/** 同步修改备料计划完成 */
|
||||
IRule<AggWrVO> pickMFinishRule = new PickMFinishRule();
|
||||
processor.addAfterRule(pickMFinishRule);
|
||||
/** ******************** */
|
||||
// /** ͬ²½Ð޸ı¸Áϼƻ®Íê³É */
|
||||
// IRule<AggWrVO> pickMFinishRule = new PickMFinishRule();
|
||||
// processor.addAfterRule(pickMFinishRule);
|
||||
// /** ******************** */
|
||||
|
||||
if (!this.isOnlyInsert) {
|
||||
processor.addAfterRule(new WrIsSaveAndApproveRule());
|
||||
|
|
|
@ -27,69 +27,69 @@ public class PickMFinishRule extends Object implements IRule<AggWrVO> {
|
|||
* 业务逻辑: 1.根据生产报告子表中生产订单行查看生产订单明细表 2.查看生产订单明细行的状态是否为完工(2)
|
||||
* 3.若为完工状态,则根据生成报告子表中生产订单行查询备料计划 4.修改备料计划为完成状态(3)
|
||||
*/
|
||||
for (int i = 0; i < vos.length; i++) {
|
||||
AggWrVO vo = vos[i];
|
||||
WrItemVO[] items = vo.getChildrenVO();
|
||||
// 循环生产报告子表
|
||||
for (int j = 0; j < items.length; j++) {
|
||||
WrItemVO item = items[j];
|
||||
String cbmobid = item.getCbmobid();
|
||||
String[] keys = { cbmobid };
|
||||
// 生产订单行查询
|
||||
PMOItemVO[] pmoItemvos = (new PMOItemVOQueryBP()).getPMOItemVOsByids(keys);
|
||||
// 查看生产订单行状态是否为完工(2)
|
||||
if (pmoItemvos.length > 0) {
|
||||
PMOItemVO pmoItem = pmoItemvos[0];
|
||||
int fitemStatus = pmoItem.getFitemstatus();
|
||||
if (fitemStatus != 2) {
|
||||
continue;
|
||||
}
|
||||
// 根据生产订单行查询备料计划
|
||||
// BillQuery<AggPickmVO> query = new BillQuery<AggPickmVO>(AggPickmVO.class);
|
||||
// AggPickmVO[] aggVOs = (AggPickmVO[])query.query(keys);
|
||||
|
||||
String whereSql = "nvl(mm_pickm.dr,0) = 0 and mm_pickm.vsourcemorowid = '" + cbmobid + "'";
|
||||
IMDPersistenceQueryService aggvoQueryService = NCLocator.getInstance()
|
||||
.lookup(IMDPersistenceQueryService.class);
|
||||
// 根据主键查询得到aggvo
|
||||
try {
|
||||
@SuppressWarnings("unchecked")
|
||||
ArrayList<AggPickmVO> aggVOs = (ArrayList<AggPickmVO>) aggvoQueryService
|
||||
.queryBillOfVOByCond(AggPickmVO.class, whereSql, true, false);
|
||||
if (aggVOs.size() <= 0) {
|
||||
continue;
|
||||
}
|
||||
// 数组转换
|
||||
AggPickmVO[] aggVOsArr = new AggPickmVO[aggVOs.size()];
|
||||
boolean flag = false;
|
||||
for (int z = 0; z < aggVOs.size(); z++) {
|
||||
AggPickmVO aggPickmVO = aggVOs.get(z);
|
||||
PickmHeadVO pickmHeadVO = aggPickmVO.getParentVO();
|
||||
Integer fbillstatus = pickmHeadVO.getFbillstatus();
|
||||
if (fbillstatus != 2) {
|
||||
aggVOsArr[z] = aggVOs.get(z);
|
||||
flag = true;
|
||||
}
|
||||
|
||||
}
|
||||
if (flag) {
|
||||
// 备料计划完工
|
||||
IPickmMaintainService ipickmMaintainService = NCLocator.getInstance()
|
||||
.lookup(IPickmMaintainService.class);
|
||||
ipickmMaintainService.finishPickm(aggVOsArr);
|
||||
}
|
||||
} catch (BusinessException e) {
|
||||
// TODO Auto-generated catch block
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
AggWrChangeVO[] aggChangeVOs = WrBusiVOToChangeVO.changeOnlySerialNoVO(vos);
|
||||
|
||||
WrSerialNoDocInsertControl inSertControl = new WrSerialNoDocInsertControl();
|
||||
inSertControl.process(aggChangeVOs);
|
||||
// for (int i = 0; i < vos.length; i++) {
|
||||
// AggWrVO vo = vos[i];
|
||||
// WrItemVO[] items = vo.getChildrenVO();
|
||||
// // 循环生产报告子表
|
||||
// for (int j = 0; j < items.length; j++) {
|
||||
// WrItemVO item = items[j];
|
||||
// String cbmobid = item.getCbmobid();
|
||||
// String[] keys = { cbmobid };
|
||||
// // 生产订单行查询
|
||||
// PMOItemVO[] pmoItemvos = (new PMOItemVOQueryBP()).getPMOItemVOsByids(keys);
|
||||
// // 查看生产订单行状态是否为完工(2)
|
||||
// if (pmoItemvos.length > 0) {
|
||||
// PMOItemVO pmoItem = pmoItemvos[0];
|
||||
// int fitemStatus = pmoItem.getFitemstatus();
|
||||
// if (fitemStatus != 2) {
|
||||
// continue;
|
||||
// }
|
||||
// // 根据生产订单行查询备料计划
|
||||
//// BillQuery<AggPickmVO> query = new BillQuery<AggPickmVO>(AggPickmVO.class);
|
||||
//// AggPickmVO[] aggVOs = (AggPickmVO[])query.query(keys);
|
||||
//
|
||||
// String whereSql = "nvl(mm_pickm.dr,0) = 0 and mm_pickm.vsourcemorowid = '" + cbmobid + "'";
|
||||
// IMDPersistenceQueryService aggvoQueryService = NCLocator.getInstance()
|
||||
// .lookup(IMDPersistenceQueryService.class);
|
||||
// // 根据主键查询得到aggvo
|
||||
// try {
|
||||
// @SuppressWarnings("unchecked")
|
||||
// ArrayList<AggPickmVO> aggVOs = (ArrayList<AggPickmVO>) aggvoQueryService
|
||||
// .queryBillOfVOByCond(AggPickmVO.class, whereSql, true, false);
|
||||
// if (aggVOs.size() <= 0) {
|
||||
// continue;
|
||||
// }
|
||||
// // 数组转换
|
||||
// AggPickmVO[] aggVOsArr = new AggPickmVO[aggVOs.size()];
|
||||
// boolean flag = false;
|
||||
// for (int z = 0; z < aggVOs.size(); z++) {
|
||||
// AggPickmVO aggPickmVO = aggVOs.get(z);
|
||||
// PickmHeadVO pickmHeadVO = aggPickmVO.getParentVO();
|
||||
// Integer fbillstatus = pickmHeadVO.getFbillstatus();
|
||||
// if (fbillstatus != 2) {
|
||||
// aggVOsArr[z] = aggVOs.get(z);
|
||||
// flag = true;
|
||||
// }
|
||||
//
|
||||
// }
|
||||
// if (flag) {
|
||||
// // 备料计划完工
|
||||
// IPickmMaintainService ipickmMaintainService = NCLocator.getInstance()
|
||||
// .lookup(IPickmMaintainService.class);
|
||||
// ipickmMaintainService.finishPickm(aggVOsArr);
|
||||
// }
|
||||
// } catch (BusinessException e) {
|
||||
// // TODO Auto-generated catch block
|
||||
// e.printStackTrace();
|
||||
// }
|
||||
//
|
||||
// }
|
||||
//
|
||||
// }
|
||||
// }
|
||||
// AggWrChangeVO[] aggChangeVOs = WrBusiVOToChangeVO.changeOnlySerialNoVO(vos);
|
||||
//
|
||||
// WrSerialNoDocInsertControl inSertControl = new WrSerialNoDocInsertControl();
|
||||
// inSertControl.process(aggChangeVOs);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -32,129 +32,123 @@ import nc.vo.mmpac.pickm.entity.PickmItemVO;
|
|||
|
||||
public class PloProdDeptRule implements IRule<AggregatedPoVO> {
|
||||
|
||||
@Override
|
||||
public void process(AggregatedPoVO[] vos) {
|
||||
if (null == vos) {
|
||||
return;
|
||||
}
|
||||
Map<String, List<String>> map = new HashMap<String, List<String>>();
|
||||
ArrayList<String> vsrcbidList = new ArrayList<>();
|
||||
for (AggregatedPoVO agg : vos) {
|
||||
PoVO plo = agg.getParentVO();
|
||||
String vid = plo.getCmaterialvid();
|
||||
String stockorgid = plo.getCstockorgid();
|
||||
String stockorgvid = plo.getCstockorgvid();
|
||||
String prodDeptid = plo.getCproddeptid();
|
||||
String prodDeptvid = plo.getCproddeptvid();
|
||||
Integer posource = plo.getFposource();
|
||||
if (PoSourceEnum.COMPUT == posource && MMValueCheck.isEmpty(prodDeptid)
|
||||
&& MMValueCheck.isEmpty(prodDeptvid) && MMValueCheck.isNotEmpty(stockorgid)
|
||||
&& MMValueCheck.isNotEmpty(stockorgvid)) {
|
||||
List<String> vids = map.get(stockorgid);
|
||||
if (null == vids) {
|
||||
List<String> list = new ArrayList<String>();
|
||||
list.add(vid);
|
||||
map.put(stockorgid, list);
|
||||
}
|
||||
else {
|
||||
vids.add(vid);
|
||||
}
|
||||
}
|
||||
String vsrcbid = plo.getVsrcbid();//来源单据表体主键
|
||||
int fdemandbill = plo.getFdemandbill();//需求来源
|
||||
if (PoSourceEnum.COMPUT == posource && fdemandbill == 1) {
|
||||
vsrcbidList.add(vsrcbid);
|
||||
}
|
||||
}
|
||||
if (vsrcbidList != null && vsrcbidList.size() > 0) {
|
||||
String[] vsrcbids = vsrcbidList.toArray(new String[vsrcbidList.size()]);
|
||||
Map<String, AggPickmVO> pickmVOMap;
|
||||
try {
|
||||
pickmVOMap = NCLocator.getInstance().lookup(IPickmPubQueryService.class)
|
||||
.queryPickm4Issue(vsrcbids);
|
||||
} catch (BusinessException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
pickmVOMap.getClass();
|
||||
for (AggregatedPoVO agg : vos) {
|
||||
PoVO plo = agg.getParentVO();
|
||||
String vsrcbid = plo.getVsrcbid();//来源单据表体主键
|
||||
AggPickmVO aggPickmVOData = pickmVOMap.get(vsrcbid);
|
||||
if (aggPickmVOData != null) {
|
||||
PickmItemVO[] children = (PickmItemVO[]) aggPickmVOData.getChildren(PickmItemVO.class);
|
||||
String vbdef5 = "";//合同编号
|
||||
String vbdef6 = "";//合同销售订单号
|
||||
String vbdef7 = "";//标前项目号
|
||||
for (PickmItemVO pickmItemVO : children) {
|
||||
if (pickmItemVO.getCpickm_bid().equals(vsrcbid)) {
|
||||
vbdef5 = pickmItemVO.getVbdef5();//合同编号
|
||||
vbdef6 = pickmItemVO.getVbdef6();//合同销售订单号
|
||||
vbdef7 = pickmItemVO.getVbdef7();//标前项目号
|
||||
}
|
||||
}
|
||||
plo.setVdef2(vbdef5);//合同编号
|
||||
plo.setVdef3(vbdef6);//合同销售订单号
|
||||
plo.setVdef4(vbdef7);//标前项目号
|
||||
}
|
||||
}
|
||||
}
|
||||
Set<String> stockorgids = map.keySet();
|
||||
Iterator<String> i = stockorgids.iterator();
|
||||
while (i.hasNext()) {
|
||||
String key = i.next();
|
||||
List<String> vids = map.get(key);
|
||||
Map<String, MaterialProdVO> results =
|
||||
MaterialPubService.queryMaterialProduceInfoByPks(vids.toArray(new String[0]), key, new String[] {
|
||||
MaterialProdVO.PK_PRODEPTDOC
|
||||
});
|
||||
for (AggregatedPoVO agg : vos) {
|
||||
PoVO plo = agg.getParentVO();
|
||||
String vid = plo.getCmaterialvid();
|
||||
String stockorgid = plo.getCstockorgid();
|
||||
String stockorgvid = plo.getCstockorgvid();
|
||||
Integer posource = plo.getFposource();
|
||||
if (PoSourceEnum.COMPUT == posource && MMValueCheck.isNotEmpty(stockorgid)
|
||||
&& MMValueCheck.isNotEmpty(stockorgvid)) {
|
||||
if (null != results) {
|
||||
MaterialProdVO prodvo = results.get(vid);
|
||||
if (null != prodvo) {
|
||||
plo.setCproddeptid(prodvo.getPk_prodeptdoc());// 生产部门ID
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
// 根据生产部门ID查询设置VID
|
||||
List<String> proddeptids = new ArrayList<String>();
|
||||
for (AggregatedPoVO agg : vos) {
|
||||
PoVO plo = agg.getParentVO();
|
||||
String prodDeptid = plo.getCproddeptid();
|
||||
Integer posource = plo.getFposource();
|
||||
if (PoSourceEnum.COMPUT == posource && MMValueCheck.isNotEmpty(prodDeptid)) {
|
||||
proddeptids.add(prodDeptid);
|
||||
}
|
||||
}
|
||||
IDeptPubService deptPubService = this.getDeptPubService();
|
||||
try {
|
||||
HashMap<String, String> results = deptPubService.getLastVIDSByDeptIDS(proddeptids.toArray(new String[0]));
|
||||
if (null != results) {
|
||||
for (AggregatedPoVO agg : vos) {
|
||||
PoVO plo = agg.getParentVO();
|
||||
String prodDeptid = plo.getCproddeptid();
|
||||
Integer posource = plo.getFposource();
|
||||
if (PoSourceEnum.COMPUT == posource && MMValueCheck.isNotEmpty(prodDeptid)) {
|
||||
plo.setCproddeptvid(results.get(prodDeptid));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (BusinessException e) {
|
||||
ExceptionUtils.wrappException(e);
|
||||
}
|
||||
@Override
|
||||
public void process(AggregatedPoVO[] vos) {
|
||||
if (null == vos) {
|
||||
return;
|
||||
}
|
||||
Map<String, List<String>> map = new HashMap<String, List<String>>();
|
||||
ArrayList<String> vsrcbidList = new ArrayList<>();
|
||||
for (AggregatedPoVO agg : vos) {
|
||||
PoVO plo = agg.getParentVO();
|
||||
String vid = plo.getCmaterialvid();
|
||||
String stockorgid = plo.getCstockorgid();
|
||||
String stockorgvid = plo.getCstockorgvid();
|
||||
String prodDeptid = plo.getCproddeptid();
|
||||
String prodDeptvid = plo.getCproddeptvid();
|
||||
Integer posource = plo.getFposource();
|
||||
if (PoSourceEnum.COMPUT == posource && MMValueCheck.isEmpty(prodDeptid) && MMValueCheck.isEmpty(prodDeptvid)
|
||||
&& MMValueCheck.isNotEmpty(stockorgid) && MMValueCheck.isNotEmpty(stockorgvid)) {
|
||||
List<String> vids = map.get(stockorgid);
|
||||
if (null == vids) {
|
||||
List<String> list = new ArrayList<String>();
|
||||
list.add(vid);
|
||||
map.put(stockorgid, list);
|
||||
} else {
|
||||
vids.add(vid);
|
||||
}
|
||||
}
|
||||
String vsrcbid = plo.getVsrcbid();// 来源单据表体主键
|
||||
// 需求来源为备料计划的才回写
|
||||
if (PoSourceEnum.COMPUT == posource && plo.getFdemandbill() != null && plo.getFdemandbill() == 1) {
|
||||
vsrcbidList.add(vsrcbid);
|
||||
}
|
||||
}
|
||||
if (vsrcbidList != null && vsrcbidList.size() > 0) {
|
||||
String[] vsrcbids = vsrcbidList.toArray(new String[vsrcbidList.size()]);
|
||||
Map<String, AggPickmVO> pickmVOMap;
|
||||
try {
|
||||
pickmVOMap = NCLocator.getInstance().lookup(IPickmPubQueryService.class).queryPickm4Issue(vsrcbids);
|
||||
} catch (BusinessException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
pickmVOMap.getClass();
|
||||
for (AggregatedPoVO agg : vos) {
|
||||
PoVO plo = agg.getParentVO();
|
||||
String vsrcbid = plo.getVsrcbid();// 来源单据表体主键
|
||||
AggPickmVO aggPickmVOData = pickmVOMap.get(vsrcbid);
|
||||
if (aggPickmVOData != null) {
|
||||
PickmItemVO[] children = (PickmItemVO[]) aggPickmVOData.getChildren(PickmItemVO.class);
|
||||
String vbdef5 = "";// 合同编号
|
||||
String vbdef6 = "";// 合同销售订单号
|
||||
String vbdef7 = "";// 标前项目号
|
||||
for (PickmItemVO pickmItemVO : children) {
|
||||
if (pickmItemVO.getCpickm_bid().equals(vsrcbid)) {
|
||||
vbdef5 = pickmItemVO.getVbdef5();// 合同编号
|
||||
vbdef6 = pickmItemVO.getVbdef6();// 合同销售订单号
|
||||
vbdef7 = pickmItemVO.getVbdef7();// 标前项目号
|
||||
}
|
||||
}
|
||||
plo.setVdef2(vbdef5);// 合同编号
|
||||
plo.setVdef3(vbdef6);// 合同销售订单号
|
||||
plo.setVdef4(vbdef7);// 标前项目号
|
||||
}
|
||||
}
|
||||
}
|
||||
Set<String> stockorgids = map.keySet();
|
||||
Iterator<String> i = stockorgids.iterator();
|
||||
while (i.hasNext()) {
|
||||
String key = i.next();
|
||||
List<String> vids = map.get(key);
|
||||
Map<String, MaterialProdVO> results = MaterialPubService.queryMaterialProduceInfoByPks(
|
||||
vids.toArray(new String[0]), key, new String[] { MaterialProdVO.PK_PRODEPTDOC });
|
||||
for (AggregatedPoVO agg : vos) {
|
||||
PoVO plo = agg.getParentVO();
|
||||
String vid = plo.getCmaterialvid();
|
||||
String stockorgid = plo.getCstockorgid();
|
||||
String stockorgvid = plo.getCstockorgvid();
|
||||
Integer posource = plo.getFposource();
|
||||
if (PoSourceEnum.COMPUT == posource && MMValueCheck.isNotEmpty(stockorgid)
|
||||
&& MMValueCheck.isNotEmpty(stockorgvid)) {
|
||||
if (null != results) {
|
||||
MaterialProdVO prodvo = results.get(vid);
|
||||
if (null != prodvo) {
|
||||
plo.setCproddeptid(prodvo.getPk_prodeptdoc());// 生产部门ID
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
// 根据生产部门ID查询设置VID
|
||||
List<String> proddeptids = new ArrayList<String>();
|
||||
for (AggregatedPoVO agg : vos) {
|
||||
PoVO plo = agg.getParentVO();
|
||||
String prodDeptid = plo.getCproddeptid();
|
||||
Integer posource = plo.getFposource();
|
||||
if (PoSourceEnum.COMPUT == posource && MMValueCheck.isNotEmpty(prodDeptid)) {
|
||||
proddeptids.add(prodDeptid);
|
||||
}
|
||||
}
|
||||
IDeptPubService deptPubService = this.getDeptPubService();
|
||||
try {
|
||||
HashMap<String, String> results = deptPubService.getLastVIDSByDeptIDS(proddeptids.toArray(new String[0]));
|
||||
if (null != results) {
|
||||
for (AggregatedPoVO agg : vos) {
|
||||
PoVO plo = agg.getParentVO();
|
||||
String prodDeptid = plo.getCproddeptid();
|
||||
Integer posource = plo.getFposource();
|
||||
if (PoSourceEnum.COMPUT == posource && MMValueCheck.isNotEmpty(prodDeptid)) {
|
||||
plo.setCproddeptvid(results.get(prodDeptid));
|
||||
}
|
||||
}
|
||||
}
|
||||
} catch (BusinessException e) {
|
||||
ExceptionUtils.wrappException(e);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
private IDeptPubService getDeptPubService() {
|
||||
return NCLocator.getInstance().lookup(IDeptPubService.class);
|
||||
}
|
||||
private IDeptPubService getDeptPubService() {
|
||||
return NCLocator.getInstance().lookup(IDeptPubService.class);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -551,6 +551,18 @@ public class APISaleOrderMaitainImpl implements IAPISaleOrderMaitain {
|
|||
if (vtrantypecode != null && !vtrantypecode.isEmpty()) {
|
||||
targetHVO.setVtrantypecode(vtrantypecode);
|
||||
}
|
||||
//订单关联合同号
|
||||
|
||||
String vdef19 = sourceHVO.getVdef19();
|
||||
if (vdef19 != null && !vdef19.isEmpty()) {
|
||||
targetHVO.setVdef19(vdef19);
|
||||
}
|
||||
|
||||
// 工程名称
|
||||
String vdef20 = sourceHVO.getVdef20();
|
||||
if (vdef20 != null && !vdef20.isEmpty()) {
|
||||
targetHVO.setVdef20(vdef20);
|
||||
}
|
||||
|
||||
// ¸üРSaleOrderBVO ×Ö¶Î
|
||||
SaleOrderBVO[] targetBVOs = target.getChildrenVO();
|
||||
|
@ -692,12 +704,28 @@ public class APISaleOrderMaitainImpl implements IAPISaleOrderMaitain {
|
|||
defList.clear();
|
||||
defList = getDefList("BIP-ddh");
|
||||
targetBVO.setVbdef5(defList.getOrDefault(vbdef5, ""));
|
||||
targetBVO.setVbdef10(sourceBVO.getVbdef10());// 项目名称
|
||||
targetBVO.setVbdef13(sourceBVO.getVbdef13());// 国网行项目号
|
||||
// 新增字段的setter方法
|
||||
targetBVO.setVbdef10(sourceBVO.getVbdef10()); // 项目名称
|
||||
targetBVO.setVbdef13(sourceBVO.getVbdef13()); // 国网行项目号
|
||||
|
||||
|
||||
targetBVO.setVbdef18(sourceBVO.getVbdef18()); // 是否定制
|
||||
targetBVO.setVbdef19(sourceBVO.getVbdef19()); // 计划开工日期
|
||||
targetBVO.setVbdef20(sourceBVO.getVbdef20()); // 计划完工日期
|
||||
|
||||
// 更新日志输出(按需添加字段)
|
||||
NCCForUAPLogger.debug(String.format(
|
||||
"cmaterialvid = [%S], vbdef1 = [%S], vbdef5 = [%S], vbdef10 = [%S], vbdef13 = [%S]",
|
||||
cmaterialvid, targetBVO.getVbdef1(), targetBVO.getVbdef5(), targetBVO.getVbdef10(),
|
||||
targetBVO.getVbdef13()));
|
||||
"cmaterialvid = [%S], vbdef1 = [%S], vbdef5 = [%S], vbdef10 = [%S], vbdef13 = [%S], "
|
||||
+ " vbdef18 = [%S], vbdef19 = [%S], vbdef20 = [%S]",
|
||||
cmaterialvid,
|
||||
targetBVO.getVbdef1(),
|
||||
targetBVO.getVbdef5(),
|
||||
targetBVO.getVbdef10(),
|
||||
targetBVO.getVbdef13(),
|
||||
targetBVO.getVbdef18(), // 是否定制
|
||||
targetBVO.getVbdef19(), // 计划开工日期
|
||||
targetBVO.getVbdef20() // 计划完工日期
|
||||
));
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -7,6 +7,7 @@ import nc.bs.framework.common.InvocationInfoProxy;
|
|||
import nc.bs.framework.common.NCLocator;
|
||||
import nc.itf.bd.defdoc.IDefdocService;
|
||||
import nc.itf.pim.project.prv.IProject;
|
||||
import nc.jdbc.framework.SQLParameter;
|
||||
import nc.jdbc.framework.processor.ColumnListProcessor;
|
||||
import nc.jdbc.framework.processor.ColumnProcessor;
|
||||
import nc.jdbc.framework.processor.MapProcessor;
|
||||
|
@ -21,6 +22,8 @@ import nccloud.api.rest.utils.NCCRestUtils;
|
|||
import nccloud.api.rest.utils.ResultMessageUtil;
|
||||
import nccloud.api.so.m30.IAPISaleOrderMaitain;
|
||||
import nccloud.api.so.m30.IAPISaleOrderQuery;
|
||||
import nccloud.baseapp.core.log.NCCForUAPLogger;
|
||||
import nccloud.commons.lang.StringUtils;
|
||||
import nccloud.openapi.scmpub.pub.NCCPubRestResource;
|
||||
import nccloud.openapi.scmpub.pub.TransferCodeToPKTool;
|
||||
import nccloud.openapi.scmpub.pub.TransferMapToVOTool;
|
||||
|
@ -483,4 +486,45 @@ public class SaleOrderResource extends NCCPubRestResource {
|
|||
return ResultMessageUtil.exceptionToJSON(e);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 金慧软件修改BIP销售订单明细
|
||||
*
|
||||
* @author mzr
|
||||
* @date 2025/05/14
|
||||
*/
|
||||
@POST
|
||||
@Path("updateDef")
|
||||
@Consumes({"application/json"})
|
||||
@Produces({"application/json"})
|
||||
public JSONString updateDef(Map<String, Object> paramMap) {
|
||||
String csaleorderbid = (String) paramMap.get("csaleorderbid");
|
||||
if (StringUtils.isEmpty(csaleorderbid)) {
|
||||
return ResultMessageUtil.exceptionToJSON("传入参数为空,请检查", APIErrCodeEnum.BUSINESSEXCCODE.getCode());
|
||||
}
|
||||
try {
|
||||
StringBuilder sql = new StringBuilder("update so_saleorder_b set ");
|
||||
SQLParameter parameter = new SQLParameter();
|
||||
for (Map.Entry<String, Object> entry : paramMap.entrySet()) {
|
||||
if (!"csaleorderbid".equals(entry.getKey())) {
|
||||
sql.append(entry.getKey()).append(" = ?, ");
|
||||
parameter.addParam(entry.getValue());
|
||||
}
|
||||
}
|
||||
if (parameter.getCountParams() <= 0) {
|
||||
return ResultMessageUtil.toJSON("传入参数为空,请检查", APIErrCodeEnum.BUSINESSEXCCODE.getCode());
|
||||
}
|
||||
// 删除最后的", "
|
||||
sql.delete(sql.length() - 2, sql.length());
|
||||
sql.append(" where csaleorderbid = ?");
|
||||
NCCForUAPLogger.debug("updateDef-sql:" + sql);
|
||||
parameter.addParam(csaleorderbid);
|
||||
BaseDAO baseDAO = new BaseDAO();
|
||||
int num = baseDAO.executeUpdate(sql.toString(), parameter);
|
||||
return ResultMessageUtil.toJSON(num, "销售订单修改成功");
|
||||
} catch (BusinessException e) {
|
||||
return ResultMessageUtil.exceptionToJSON(e);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -0,0 +1,89 @@
|
|||
package nc.bs.sscivm.ivsale.util;
|
||||
|
||||
import nc.vo.sscivm.ivmpub.InvoiceTypeEnum;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 发票类型和特殊票种映射工具类
|
||||
* @author wangyl7
|
||||
*
|
||||
*/
|
||||
public class InvoiceTypeToTspzUtil {
|
||||
private final static Map<Integer,String> invoiceMap = new HashMap<Integer,String>();
|
||||
private final static Map<Integer,String> tspzMap = new HashMap<Integer,String>();
|
||||
static {
|
||||
invoiceMap.put(InvoiceTypeEnum.INVOICETYPE_ZYFP_JDC.toIntValue(), "4");
|
||||
invoiceMap.put(InvoiceTypeEnum.INVOICETYPE_DZPTFP_KCL.toIntValue(), "1");
|
||||
invoiceMap.put(InvoiceTypeEnum.INVOICETYPE_DZZYFP_KCL.toIntValue(), "2");
|
||||
invoiceMap.put(InvoiceTypeEnum.INVOICETYPE_PTFP_KCL.toIntValue(), "3");
|
||||
invoiceMap.put(InvoiceTypeEnum.INVOICETYPE_ZYFP_KCL.toIntValue(), "4");
|
||||
invoiceMap.put(InvoiceTypeEnum.INVOICETYPE_ESCTYFP.toIntValue(), "15");//二手车统一销售与机打重复
|
||||
invoiceMap.put(InvoiceTypeEnum.INVOICETYPE_DZPTFP_NCP.toIntValue(), "1");
|
||||
invoiceMap.put(InvoiceTypeEnum.INVOICETYPE_PTFP_NCP.toIntValue(), "3");
|
||||
|
||||
tspzMap.put(InvoiceTypeEnum.INVOICETYPE_ZYFP_JDC.toIntValue(), "12");
|
||||
tspzMap.put(InvoiceTypeEnum.INVOICETYPE_DZPTFP_KCL.toIntValue(), "16");
|
||||
tspzMap.put(InvoiceTypeEnum.INVOICETYPE_DZZYFP_KCL.toIntValue(), "16");
|
||||
tspzMap.put(InvoiceTypeEnum.INVOICETYPE_PTFP_KCL.toIntValue(), "16");
|
||||
tspzMap.put(InvoiceTypeEnum.INVOICETYPE_ZYFP_KCL.toIntValue(), "16");
|
||||
tspzMap.put(InvoiceTypeEnum.INVOICETYPE_DZPTFP_NCP.toIntValue(), "9");
|
||||
tspzMap.put(InvoiceTypeEnum.INVOICETYPE_PTFP_NCP.toIntValue(), "9");
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取真实的发票类型
|
||||
* @param fplx 发票类型
|
||||
* @return 真实的发票类型
|
||||
*/
|
||||
public static String getRealInvoicetype(Integer fplx){
|
||||
if (invoiceMap.containsKey(fplx)){
|
||||
return invoiceMap.get(fplx);
|
||||
}
|
||||
return String.valueOf(fplx);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取特殊票种
|
||||
* @param fplx 发票类型
|
||||
* @return 特殊票种
|
||||
*/
|
||||
public static String getTspz(Integer fplx){
|
||||
if (tspzMap.containsKey(fplx)){
|
||||
return tspzMap.get(fplx);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* 更具发票类型和特殊票种转发票类型
|
||||
* @param fplx
|
||||
* @param tspz
|
||||
* @return
|
||||
*/
|
||||
public static String getInvoicetypeByFplxAndTspz(String fplx, String tspz){
|
||||
//非特殊票种
|
||||
if (tspz == null || tspz.startsWith("E")){
|
||||
return fplx;
|
||||
}
|
||||
//全电发票不拼接
|
||||
if ("31".equals(fplx) || "32".equals(fplx) ||"33".equals(fplx) || "34".equals(fplx)){
|
||||
return fplx;
|
||||
}
|
||||
//增值税专用发票(机动车)
|
||||
if ("412".equals(fplx + tspz)){
|
||||
return InvoiceTypeEnum.INVOICETYPE_ZYFP_JDC.toStringValue();
|
||||
}
|
||||
//农产品收购
|
||||
if ("9".equals(tspz)) {
|
||||
return fplx + "0" + tspz;
|
||||
}
|
||||
//数电纸质发票(机动车销售统一发票
|
||||
if ("36".equals(fplx)){
|
||||
return fplx;
|
||||
}
|
||||
//其他特殊票种发票
|
||||
return fplx + tspz;
|
||||
}
|
||||
}
|
|
@ -88,6 +88,8 @@ public class APIBomBusinessServiceImpl implements IAPIBomBusinessService {
|
|||
|
||||
private static Map<String, Object> tsMap = new HashMap();
|
||||
|
||||
private String orgCodeFlag =null;
|
||||
|
||||
private static Map<String, Object> voMap = new HashMap();
|
||||
|
||||
private static Map<String, Set<String>> idsMap = new HashMap();
|
||||
|
@ -112,7 +114,11 @@ public class APIBomBusinessServiceImpl implements IAPIBomBusinessService {
|
|||
list.add(agg);
|
||||
}
|
||||
AggBomVO[] aggVOs = (AggBomVO[]) list.toArray(new AggBomVO[list.size()]);
|
||||
|
||||
if(aggVOs[0].getParentVO().getAttributeValue("pk_org")==null||aggVOs[0].getParentVO().getAttributeValue("pk_org")==""){
|
||||
ExceptionUtils.wrappBusinessException("请求参数pk_org为空,请检查!!!!");
|
||||
}else{
|
||||
this.orgCodeFlag=aggVOs[0].getParentVO().getAttributeValue("pk_org").toString();
|
||||
}
|
||||
BillFieldsCodeToPkUtil.doTranslateVOFields(aggVOs);
|
||||
IUifService iUifService = NCLocator.getInstance().lookup(IUifService.class);
|
||||
for (AggBomVO aggtwo : aggVOs) {
|
||||
|
@ -170,7 +176,7 @@ public class APIBomBusinessServiceImpl implements IAPIBomBusinessService {
|
|||
result = service.insertBom((AggBomVO[]) addAggvoList.toArray(new AggBomVO[0]));
|
||||
} else if (!commitAggvoList.isEmpty() && addAggvoList.isEmpty()) {
|
||||
List<AggBomVO> newAggVOList = new ArrayList<>();
|
||||
if ("gaoning".equals(userCode)) {
|
||||
if ("gaoning".equals(userCode)|| "C029".equals(orgCodeFlag)) {
|
||||
for (AggBomVO aggvo : commitAggvoList) {
|
||||
result = service.insertCommitBomWithParam(new AggBomVO[] { aggvo }, true, true);
|
||||
newAggVOList.add(result[0]);
|
||||
|
@ -720,7 +726,7 @@ public class APIBomBusinessServiceImpl implements IAPIBomBusinessService {
|
|||
if (VersionTypeEnum.AVAILABLE.equalsValue(head.getHfversiontype())
|
||||
&& !head.getCbomid().equals(headvo.getCbomid())) {
|
||||
// sdlizheng --添加独立判断--plm三方越过此校验
|
||||
if ("gaoning".equals(userCode) || "dlkght".equals(userCode)) {
|
||||
if ("gaoning".equals(userCode) || "dlkgsrm".equals(userCode)|| "C029".equals(this.orgCodeFlag)) {
|
||||
// AggBomVO afterVO = service.canceldefault(aggBomVO);
|
||||
} else {
|
||||
return UFBoolean.TRUE;
|
||||
|
@ -774,12 +780,17 @@ public class APIBomBusinessServiceImpl implements IAPIBomBusinessService {
|
|||
agg.getParent().setAttributeValue("fbillstatus", Integer.valueOf(-1));
|
||||
agg.getParent().setAttributeValue("hfbomsource", Integer.valueOf(1));
|
||||
agg.getParent().setAttributeValue("hfbomcategory", Integer.valueOf(1));
|
||||
if ("gaoning".equals(userCode) || "dlkght".equals(userCode)) {
|
||||
if ("gaoning".equals(userCode) || "dlkgsrm".equals(userCode)|| "C029".equals(this.orgCodeFlag)) {
|
||||
// sdlizheng
|
||||
// 1、对于之前不存在的BOM,新增时:如果是传自由态,不默认且无效,走标准逻辑,如果传的是审批态默认且有效。2025年4月11日16点28分 start
|
||||
if (fbillstatus != null && "1".equals(fbillstatus.toString())) {
|
||||
agg.getParent().setAttributeValue("hfversiontype", Integer.valueOf(1));
|
||||
agg.getParent().setAttributeValue("hbdefault", UFBoolean.TRUE);
|
||||
}else if(fbillstatus != null && "-1".equals(fbillstatus.toString())){
|
||||
if("gaoning".equals(userCode)|| "C029".equals(this.orgCodeFlag)){
|
||||
agg.getParent().setAttributeValue("hfversiontype", Integer.valueOf(1));
|
||||
agg.getParent().setAttributeValue("hbdefault", UFBoolean.TRUE);
|
||||
}
|
||||
}
|
||||
// sdlizheng 1、对于之前不存在的BOM,新增时:如果是传自由态,不默认且无效,如果传的是审批态默认且有效。2025年4月11日16点28分 end
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue