Merge remote-tracking branch 'origin/main'

This commit is contained in:
lihao 2025-04-16 14:59:23 +08:00
commit 7c7792fe52
14 changed files with 582 additions and 103 deletions

View File

@ -99,8 +99,16 @@ public class GatheringbillRestResource extends ArapBaseRestResource {
// 税码
String ctaxcode = "";
BaseDAO dao = new BaseDAO();
// 销售订单号
// 销售订单号 从表体拿
String csaleorderid = "";
List<Map<String, Object>> itemMaps = (List) billMap.get("items");
List<GatheringBillItemVO> itemvos = new ArrayList<GatheringBillItemVO>();
if (itemMaps != null && itemMaps.size() > 0) {
for (Map<String, Object> item : itemMaps) {
GatheringBillItemVO itemvo = (GatheringBillItemVO) fromJsonToVO(item, GatheringBillItemVO.class);
csaleorderid = itemvo.getDef37();
}
}
try {
HYPubBO hybo = new HYPubBO();
headvo.setIsinit(new UFBoolean(false));
@ -113,10 +121,10 @@ public class GatheringbillRestResource extends ArapBaseRestResource {
// 往来对象0-客户 2-部门 3-业务员 默认客户
headvo.setObjtype(0);
// 销售订单号
csaleorderid = headvo.getDef3();
if (StringUtils.isEmpty(csaleorderid)) {
throw new BusinessException("销售订单不能为空");
// return ResultMessageUtil.exceptionToJSON("销售订单不能为空", APIErrCodeEnum.BUSINESSEXCCODE.getCode());
// return ResultMessageUtil.exceptionToJSON("销售订单不能为空",
// APIErrCodeEnum.BUSINESSEXCCODE.getCode());
}
// 客户
Object customerid = hybo.findColValue("so_saleorder", "ccustomerid",
@ -181,8 +189,6 @@ public class GatheringbillRestResource extends ArapBaseRestResource {
return ResultMessageUtil.exceptionToJSON(e);
}
List<Map<String, Object>> itemMaps = (List) billMap.get("items");
List<GatheringBillItemVO> itemvos = new ArrayList<GatheringBillItemVO>();
if (itemMaps != null && itemMaps.size() > 0) {
for (Map<String, Object> item : itemMaps) {
GatheringBillItemVO itemvo = (GatheringBillItemVO) fromJsonToVO(item, GatheringBillItemVO.class);

View File

@ -9,6 +9,8 @@ import nc.jdbc.framework.PersistenceManager;
import nc.jdbc.framework.exception.DbException;
import nc.jdbc.framework.processor.MapListProcessor;
import nc.jdbc.framework.processor.MapProcessor;
import nccloud.commons.lang.StringUtils;
import nccloud.framework.core.exception.ExceptionUtils;
import nccloud.framework.service.ServiceLocator;
import nccloud.framework.web.action.itf.ICommonAction;
import nccloud.framework.web.container.IRequest;
@ -188,18 +190,16 @@ public class myBtnClickAction extends InformerAction implements ICommonAction {
}
if ("撤回".equals(def01)) {
vmao.put("publishStatus", "再次发布");
} else {
vmao.put("publishStatus", "");
}
String pjlsh;
if (row.get("transerial") != null) {
pjlsh = row.get("transerial").toString();
pjlsh = row.get("transerial");
} else if (row.get("note_no") != null) {
pjlsh = row.get("note_no").toString();
pjlsh = row.get("note_no");
} else {
resultMap.put("flag", "false");
resultMap.put("message", "票据与流水号不可同时为空");
@ -218,13 +218,16 @@ public class myBtnClickAction extends InformerAction implements ICommonAction {
vmao.put("oppAccountName", row.get("oppunitname"));
vmao.put("oppBank", row.get("dfcode"));
vmao.put("oppBankName", row.get("dfname"));
vmao.put("description", "--");
if (StringUtils.isNotEmpty(row.get("memo"))) {
vmao.put("description", row.get("memo"));
}
vmao.put("bankTransactionNumber", pjlsh);
vmao.put("accountType", "默认类型");
vmao.put("orgCode", row.get("orgcode"));
vmao.put("billNumber", row.get("note_no"));
if (row.get("pk_balatype") != null && row.get("pk_balatype") != "" && row.get("pk_balatype") != "~") {
if (row.get("pk_balatype") != null && !Objects.equals(row.get("pk_balatype"), "") && !Objects.equals(row.get("pk_balatype"), "~")) {
vmao.put("paymentMethod", row.get("pk_balatype"));
} else {
vmao.put("paymentMethod", "10");
@ -238,6 +241,10 @@ public class myBtnClickAction extends InformerAction implements ICommonAction {
Map access_token = (Map) map.get("data");
String urls2 = urlpath + "/iuap-api-gateway/" + tenant + "/current_yonbip_default_sys/KKAPI/paymentNotice/addBatch?access_token=" + access_token.get("access_token");
Map mapjson = httpFW(urls2, jsonString1);
Logger.error("myBtnClickAction-mapjson = " + mapjson);
if (!"200".equals(mapjson.getOrDefault("code", "") + "")) {
throw new Exception(mapjson.getOrDefault("message", "ÍÆËÍʧ°Ü") + "");
}
Map datas = (Map) mapjson.get("data");
JSONArray faijsonist = (JSONArray) datas.get("failData");
@ -273,17 +280,13 @@ public class myBtnClickAction extends InformerAction implements ICommonAction {
String message = datas.get("successData") + "成功" + message1 + ",失败:" + failData;
resultMap.put("flag", "true");
resultMap.put("message", message);
// 调用服务工具类的deletePrcplInterest方法尝试删除利息计划
System.out.println("year" + mapjson);
ins.close();
} catch (Exception ex) {
// 捕获异常并记录错误日志
Logger.error("123" + ex.getMessage(), ex);
resultMap.put("flag", "0");
resultMap.put("message", ex.getMessage());
Logger.error("myBtnClickAction-exp:" + ex.getMessage(), ex);
ExceptionUtils.wrapBusinessException(ex.getMessage());
}
// 返回结果映射
return resultMap;
}
@ -300,7 +303,7 @@ public class myBtnClickAction extends InformerAction implements ICommonAction {
hmacSHA256.init(secretKey);
byte[] hashBytes = hmacSHA256.doFinal(data.getBytes());
String base64Hash = Base64.encodeBase64String(hashBytes);
return URLEncoder.encode(base64Hash, StandardCharsets.UTF_8.toString());
return URLEncoder.encode(base64Hash, StandardCharsets.UTF_8);
}

0
purp/META-INF/.gitkeep Normal file
View File

0
purp/METADATA/.gitkeep Normal file
View File

5
purp/component.xml Normal file
View File

@ -0,0 +1,5 @@
<?xml version="1.0" encoding='gb2312'?>
<module displayname="purp" name="purp">
<dependencies>
</dependencies>
</module>

0
purp/resources/.gitkeep Normal file
View File

0
purp/script/.gitkeep Normal file
View File

0
purp/src/client/.gitkeep Normal file
View File

View File

@ -0,0 +1,273 @@
//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by FernFlower decompiler)
//
package nc.impl.pp.supplierprice.rule;
import java.util.ArrayList;
import java.util.List;
import nc.vo.pp.report.entity.PurpReportTransMap;
import nc.vo.pp.report.util.PurpRptUtils;
import nc.vo.pp.supplierprice.entity.SupPriceRptConst;
import nc.vo.pp.util.StringUtils;
import nc.vo.pub.lang.UFDate;
import nc.vo.pub.query.ConditionVO;
import nc.vo.pubapp.AppContext;
import nc.vo.scmpub.util.ArrayUtil;
import nc.vo.util.CloneUtil;
/**
* ×îм۸ñ²éѯ
* 2005ÊÊÅä2312
*
* @author mzr
* @date 2025/04/16
*/
public class SupPriceQryRule {
public SupPriceQryRule() {
}
public String getWhereCtForHis(PurpReportTransMap tranMap, PurpRptUtils rptutils, String htablealias, String btablealias) {
ConditionVO[] convos = this.getInitQryCondVOs(tranMap, rptutils);
if (ArrayUtil.isEmpty(convos)) {
return "";
} else {
ConditionVO[] copyconvos = (ConditionVO[])CloneUtil.deepClone(convos);
List<ConditionVO> list = new ArrayList();
for(ConditionVO vo : copyconvos) {
if (vo.getFieldCode().equals("pk_supplier")) {
vo.setFieldCode(htablealias + ".cvendorid");
list.add(vo);
} else if (vo.getFieldCode().equals("tcreatetime")) {
if (vo.getDataType() == 3 && vo.getOperaCode().equalsIgnoreCase("=")) {
UFDate date = new UFDate(vo.getValue());
vo.setValue(date.toLocalString());
}
vo.setFieldCode(htablealias + ".creationtime");
list.add(vo);
} else if (!vo.getFieldCode().equals("fpricesrctype")) {
if (vo.getFieldCode().equals("dvaliddate")) {
if (vo.getDataType() == 3 && vo.getOperaCode().equalsIgnoreCase("=")) {
UFDate date = new UFDate(vo.getValue());
vo.setValue(date.toLocalString());
}
vo.setFieldCode(htablealias + ".dbilldate");
list.add(vo);
} else if (vo.getFieldCode().equals("dinvaliddate")) {
if (vo.getDataType() == 3 && vo.getOperaCode().equalsIgnoreCase("=")) {
UFDate date = new UFDate(vo.getValue());
vo.setValue(date.toLocalString());
}
} else {
vo.setFieldCode(htablealias + "." + vo.getFieldCode());
list.add(vo);
}
}
}
StringBuilder sql = new StringBuilder("");
sql.append((new ConditionVO()).getSQLStr((ConditionVO[])list.toArray(new ConditionVO[list.size()])));
this.addMarWhere(sql, tranMap, rptutils, btablealias);
return sql.toString();
}
}
public String getWhereCtForNew(PurpReportTransMap tranMap, PurpRptUtils rptutils, String htablealias, String btablealias) {
ConditionVO[] convos = this.getInitQryCondVOs(tranMap, rptutils);
if (ArrayUtil.isEmpty(convos)) {
return "";
} else {
ConditionVO[] copyconvos = (ConditionVO[])CloneUtil.deepClone(convos);
for(ConditionVO vo : copyconvos) {
if (vo.getFieldCode().equals(SupPriceRptConst.DBUSINESSDATE)) {
int month = Integer.valueOf(vo.getValue());
UFDate curdate = AppContext.getInstance().getBusiDate();
UFDate befdate = curdate.getDateBefore(month * 30);
vo.setFieldCode(htablealias + ".dbilldate");
vo.setOperaCode("between");
vo.setDataType(3);
String var10001 = befdate.toString();
vo.setValue(var10001 + " ," + curdate.toString() + " ");
} else if (vo.getFieldCode().equals("pk_supplier")) {
vo.setFieldCode(htablealias + ".cvendorid");
} else {
vo.setFieldCode(htablealias + "." + vo.getFieldCode());
}
}
StringBuilder sql = new StringBuilder("");
sql.append((new ConditionVO()).getSQLStr(copyconvos));
this.addMarWhere(sql, tranMap, rptutils, btablealias);
return sql.toString();
}
}
public String getWhereOrderForHis(PurpReportTransMap tranMap, PurpRptUtils rptutils, String htablealias, String btablealias) {
List<ConditionVO> list = new ArrayList();
ConditionVO[] convos = this.getInitQryCondVOs(tranMap, rptutils);
if (ArrayUtil.isEmpty(convos)) {
return "";
} else {
ConditionVO[] convosCt = (ConditionVO[])CloneUtil.deepClone(convos);
for(ConditionVO vo : convosCt) {
if (!vo.getFieldCode().equals("bsc") && !vo.getFieldCode().equals("fpricesrctype")) {
if (vo.getFieldCode().equals("dinvaliddate")) {
if (vo.getDataType() == 3 && vo.getOperaCode().equalsIgnoreCase("=")) {
UFDate date = new UFDate(vo.getValue());
vo.setValue(date.toLocalString());
}
} else if (vo.getFieldCode().equals("dvaliddate")) {
if (vo.getDataType() == 3 && vo.getOperaCode().equalsIgnoreCase("=")) {
UFDate date = new UFDate(vo.getValue());
vo.setValue(date.toLocalString());
}
} else if (vo.getFieldCode().equals("tcreatetime")) {
vo.setFieldCode(htablealias + ".creationtime");
if (vo.getDataType() == 3 && vo.getOperaCode().equalsIgnoreCase("=")) {
UFDate date = new UFDate(vo.getValue());
vo.setValue(date.toLocalString());
}
list.add(vo);
} else {
vo.setFieldCode(htablealias + "." + vo.getFieldCode());
list.add(vo);
}
}
}
StringBuilder sql = new StringBuilder("");
sql.append((new ConditionVO()).getSQLStr((ConditionVO[])list.toArray(new ConditionVO[list.size()])));
this.addMarWhere(sql, tranMap, rptutils, btablealias);
return sql.toString();
}
}
public String getWhereOrderForNew(PurpReportTransMap tranMap, PurpRptUtils rptutils, String htablealias, String btablealias) {
List<ConditionVO> list = new ArrayList();
ConditionVO[] convos = this.getInitQryCondVOs(tranMap, rptutils);
ConditionVO[] convosCt = (ConditionVO[])CloneUtil.deepClone(convos);
if (convosCt != null && convosCt.length > 0) {
for(ConditionVO vo : convosCt) {
if (vo.getFieldCode().equals(SupPriceRptConst.DBUSINESSDATE)) {
int month = Integer.valueOf(vo.getValue());
UFDate curdate = AppContext.getInstance().getBusiDate();
UFDate befdate = curdate.getDateBefore(month * 30);
vo.setFieldCode(htablealias + ".dbilldate");
vo.setOperaCode("between");
vo.setDataType(3);
String var10001 = befdate.toString();
vo.setValue(var10001 + " ," + curdate.toString() + " ");
list.add(vo);
} else if (!vo.getFieldCode().equals("bsc")) {
vo.setFieldCode(htablealias + "." + vo.getFieldCode());
list.add(vo);
}
}
}
StringBuilder sql = new StringBuilder("");
sql.append((new ConditionVO()).getSQLStr((ConditionVO[])list.toArray(new ConditionVO[list.size()])));
this.addMarWhere(sql, tranMap, rptutils, btablealias);
return sql.toString();
}
public String getWhereSupPrice(PurpReportTransMap tranMap, PurpRptUtils rptutils, String tablealias) {
ConditionVO[] convos = this.getInitQryCondVOs(tranMap, rptutils);
if (ArrayUtil.isEmpty(convos)) {
return "";
} else {
ConditionVO[] copyconvos = (ConditionVO[])CloneUtil.deepClone(convos);
for(ConditionVO vo : copyconvos) {
if (vo.getFieldCode().equals(SupPriceRptConst.DBUSINESSDATE)) {
int month = Integer.valueOf(vo.getValue());
UFDate curdate = AppContext.getInstance().getBusiDate();
UFDate befdate = curdate.getDateBefore(month * 30);
vo.setFieldCode(tablealias + ".dvaliddate");
vo.setOperaCode("between");
vo.setDataType(3);
String var10001 = befdate.toString();
vo.setValue(var10001 + " ," + curdate.toString() + " ");
} else if (vo.getDataType() == 3 && vo.getOperaCode().equalsIgnoreCase("=")) {
UFDate date = new UFDate(vo.getValue());
vo.setValue(date.toLocalString());
vo.setFieldCode(tablealias + "." + vo.getFieldCode());
} else {
vo.setFieldCode(tablealias + "." + vo.getFieldCode());
}
}
StringBuilder sql = new StringBuilder("");
sql.append((new ConditionVO()).getSQLStr(copyconvos));
this.addMarWhere(sql, tranMap, rptutils, tablealias);
return sql.toString();
}
}
public String getWhereSupPriceNew(PurpReportTransMap tranMap, PurpRptUtils rptutils, String tablealias) {
ConditionVO[] convos = this.getInitQryCondVOs(tranMap, rptutils);
if (ArrayUtil.isEmpty(convos)) {
return "";
} else {
ConditionVO[] copyconvos = (ConditionVO[])CloneUtil.deepClone(convos);
List<ConditionVO> list = new ArrayList();
for(ConditionVO vo : copyconvos) {
if (vo.getFieldCode().equals(SupPriceRptConst.DBUSINESSDATE)) {
int month = Integer.valueOf(vo.getValue());
UFDate curdate = AppContext.getInstance().getBusiDate();
UFDate befdate = curdate.getDateBefore(month * 30);
vo.setFieldCode(tablealias + ".dinvaliddate");
vo.setOperaCode("between");
vo.setDataType(3);
String var10001 = befdate.toString();
vo.setValue(var10001 + " ," + curdate.toString() + " ");
ConditionVO newvo = new ConditionVO();
newvo.setLogic(false);
newvo.setFieldCode(tablealias + ".dvaliddate");
newvo.setOperaCode("between");
newvo.setDataType(3);
var10001 = befdate.toString();
newvo.setValue(var10001 + " ," + curdate.toString() + " ");
list.add(vo);
list.add(newvo);
} else if (vo.getDataType() == 3 && vo.getOperaCode().equalsIgnoreCase("=")) {
UFDate date = new UFDate(vo.getValue());
vo.setValue(date.toLocalString());
vo.setFieldCode(tablealias + "." + vo.getFieldCode());
list.add(vo);
} else {
vo.setFieldCode(tablealias + "." + vo.getFieldCode());
list.add(vo);
}
}
StringBuilder sql = new StringBuilder("");
sql.append((new ConditionVO()).getSQLStr((ConditionVO[])list.toArray(new ConditionVO[0])));
this.addMarWhere(sql, tranMap, rptutils, tablealias);
return sql.toString();
}
}
private void addMarWhere(StringBuilder sql, PurpReportTransMap tranMap, PurpRptUtils rptutils, String btablealias) {
String[] marQryKeys = new String[]{SupPriceRptConst.MARBASCLASS, SupPriceRptConst.MATERIALCODE, SupPriceRptConst.MARTERIALNAME};
String marwhere = rptutils.getWhereForMar(tranMap, btablealias, marQryKeys);
if (!StringUtils.isEmpty(marwhere)) {
sql.append(" and " + marwhere);
}
}
private ConditionVO[] getInitQryCondVOs(PurpReportTransMap tranMap, PurpRptUtils rptutils) {
ConditionVO[] generalvos = tranMap.getConditionVOs(SupPriceRptConst.SUPPRICE_GENERALCOND);
ConditionVO[] logicalvos = tranMap.getConditionVOs(SupPriceRptConst.SUPPRICE_LOGICALCOND);
return rptutils.combineCondVOs(generalvos, logicalvos);
}
}

View File

@ -0,0 +1,175 @@
//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by FernFlower decompiler)
//
package nc.vo.pp.report.util;
import java.util.HashMap;
import java.util.Map;
import nc.bs.ic.icreport.pub.RPMetaDataUtil;
import nc.bs.pubapp.report.ReportPermissionUtils;
import nc.pub.smart.context.SmartContext;
import nc.pub.smart.data.DataSet;
import nc.pub.smart.metadata.MetaData;
import nc.vo.ml.MultiLangUtil;
import nc.vo.ml.NCLangRes4VoTransl;
import nc.vo.pp.report.entity.PurpReportTransMap;
import nc.vo.pub.ISuperVO;
import nc.vo.pub.query.ConditionVO;
import nc.vo.pubapp.pattern.model.entity.view.AbstractDataView;
import nc.vo.pubapp.pattern.model.meta.entity.view.IDataViewMeta;
import nc.vo.scmbd.pub.SCMESAPI;
import nc.vo.scmpub.util.ArrayUtil;
/**
* ×îм۸ñ²éѯ
* 2005ÊÊÅä2312
*
* @author mzr
* @date 2025/04/16
*/
public class PurpRptUtils {
public static final int UFDATEDATATIMETYPE = 8;
public static final int UFDATEDATATYPE = 3;
public PurpRptUtils() {
}
public ConditionVO[] combineCondVOs(ConditionVO[] generalvos, ConditionVO[] logicalvos) {
ConditionVO[] endvos = null;
if (!ArrayUtil.isEmpty(generalvos)) {
endvos = generalvos;
}
if (!ArrayUtil.isEmpty(logicalvos) && ArrayUtil.isEmpty(endvos)) {
endvos = logicalvos;
} else if (!ArrayUtil.isEmpty(logicalvos) && endvos != null && endvos.length > 0) {
System.arraycopy(logicalvos, 0, endvos, endvos.length, logicalvos.length);
}
return endvos;
}
public DataSet convertDataSet(IDataViewMeta md, AbstractDataView[] vos) {
String[] fields = md.getAttributeNames();
MetaData mtd = new MetaData();
RPMetaDataUtil.addVOMetaFieldByKeys(mtd, md, fields);
if (vos != null && vos.length > 0) {
Object[][] datas = new Object[vos.length][fields.length];
for(int i = 0; i < vos.length; ++i) {
if (vos[i] != null) {
for(int k = 0; k < fields.length; ++k) {
datas[i][k] = vos[i].getAttributeValue(fields[k]);
}
}
}
return new DataSet(mtd, datas);
} else {
DataSet ds = new DataSet();
ds.setMetaData(mtd);
return ds;
}
}
public String getChnNo() {
return NCLangRes4VoTransl.getNCLangRes().getStrByID("40050004", "1400500040031");
}
public String getChnYes() {
return NCLangRes4VoTransl.getNCLangRes().getStrByID("40050004", "1400500040030");
}
public String getPermisionInnerJoin(SmartContext context, Class<? extends ISuperVO> marclass, String btablealias) {
ReportPermissionUtils utils = new ReportPermissionUtils(context);
Map<Class<? extends ISuperVO>, String> beanMap = new HashMap();
beanMap.put(marclass, btablealias);
return utils.getPermissionSQL(beanMap);
}
public String getWhereForMar(PurpReportTransMap tranMap, String btablealias, String[] marQryKeys) {
String marclassKey = marQryKeys[0];
String marcodeKey = marQryKeys[1];
String marnameKey = marQryKeys[2];
ConditionVO codeVO = this.getMarCondVO(tranMap, marcodeKey);
ConditionVO nameVO = this.getMarCondVO(tranMap, marnameKey);
ConditionVO classVO = this.getMarCondVO(tranMap, marclassKey);
if (null == codeVO && null == nameVO && null == classVO) {
return "";
} else {
StringBuilder wheresql = new StringBuilder();
wheresql.append(btablealias + ".pk_material in ( select bd_material.pk_material from bd_material bd_material where bd_material.dr=0 ");
if (codeVO != null) {
wheresql.append(" and ");
this.setMarWhere(codeVO, "bd_material.code", wheresql);
}
if (nameVO != null) {
String langseq = MultiLangUtil.getCurrentLangSeqSuffix();
wheresql.append(" and ");
this.setMarWhere(nameVO, "bd_material.name" + langseq, wheresql);
}
if (classVO != null) {
wheresql.append(" and ");
this.setMarWhere(classVO, "bd_material.pk_marbasclass", wheresql);
}
wheresql.append(" ) ");
return wheresql.toString();
}
}
public ConditionVO updUFDateCondVO(ConditionVO condvo, String qryDlgWhereSql, String dateField) {
if (!qryDlgWhereSql.contains(dateField)) {
return null;
} else {
String[] conds = qryDlgWhereSql.split(dateField);
StringBuilder valueBuilder = new StringBuilder();
String first = conds[1].split("'")[1];
if (condvo.getOperaCode().equalsIgnoreCase("between")) {
if (condvo.getValue().toLowerCase().contains("isnull")) {
if (condvo.getValue().toLowerCase().startsWith("isnull")) {
valueBuilder.append(first);
condvo.setOperaCode("<=");
} else {
valueBuilder.append(first);
condvo.setOperaCode(">=");
}
condvo.setValue(valueBuilder.toString());
return condvo;
}
String end = conds[2].split("'")[1];
valueBuilder.append(first);
valueBuilder.append(",");
valueBuilder.append(end);
} else {
valueBuilder.append(first);
}
condvo.setValue(valueBuilder.toString());
return condvo;
}
}
private ConditionVO getMarCondVO(PurpReportTransMap tranMap, String key) {
ConditionVO[] tempvos = tranMap.getConditionVOs(key);
return ArrayUtil.isEmpty(tempvos) ? null : tempvos[0];
}
private void setMarWhere(ConditionVO condvo, String field, StringBuilder wheresql) {
if (condvo.getOperaCode().equals("in")) {
wheresql.append(field + " in " + condvo.getValue());
} else if (condvo.getOperaCode().equals("=")) {
wheresql.append(field + " = '" + SCMESAPI.sqlEncodeGeneral(condvo.getValue()) + "' ");
} else if (condvo.getOperaCode().equals("left like")) {
String value = condvo.getValue().replaceAll("\\(", "").replaceAll("\\)", "");
wheresql.append(field + " like '" + SCMESAPI.sqlEncodeGeneral(value) + "%' ");
}
}
}

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding='gb2312'?>
<module>
<rest>
<resource classname="nc.vo.so.m32.saleinvoice.operator.billSaveAction" exinfo="销售发票及其下游单据开票申请修改红冲逻辑"/>
<resource classname="nccloud.api.so.saleinvoice.operator.BillSaveAction" exinfo="销售发票及其下游单据开票申请修改红冲逻辑"/>
</rest>
</module>

View File

@ -60,7 +60,9 @@ public class SyncBipBillRuleForDelete implements IRule<SaleInvoiceVO> {
appKey = bipParamMap.get("appKey");
appSecret = bipParamMap.get("appSecret");
toBipUrl = bipParamMap.get("updateInvoice");
NCCForUAPLogger.debug(String.format("SyncBipBillRuleForDelete-baseUrl = [%s],appKey1 = [%s],appSecret = [%s],",
NCCForUAPLogger.debug(String.format("SyncBipBillRuleForDelete-baseUrl = [%s],appKey = [%s],appSecret = [%s],",
baseUrl, appKey, appSecret));
Logger.error(String.format("SyncBipBillRuleForDelete-baseUrl = [%s],appKey = [%s],appSecret = [%s],",
baseUrl, appKey, appSecret));
String access_token = getAccessToken();
for (SaleInvoiceVO invoiceVO : vos) {
@ -132,6 +134,7 @@ public class SyncBipBillRuleForDelete implements IRule<SaleInvoiceVO> {
String signature = URLEncoder.encode(base64String, "UTF-8");
params.put("signature", signature);
String responseString = doGet(baseUrl + tokenUrl, params);
Logger.error("SyncBipBillRuleForDelete-responseString = " + responseString);
Gson gson = new Gson();
Map result = gson.fromJson(responseString, Map.class);
if (StringUtils.equals("00000", result.getOrDefault("code", "") + "")) {

View File

@ -1,4 +1,4 @@
package nc.vo.so.m32.saleinvoice.operator;
package nccloud.api.so.saleinvoice.operator;
import com.alibaba.fastjson.JSONObject;
import nc.bs.framework.common.NCLocator;
@ -40,13 +40,14 @@ import java.util.List;
*
* @author lj
* @date 2025/03/14
* @update 20250415 mzr修改
*/
@Path("so/saleinvoice/operator")
public class billSaveAction extends AbstractNCCRestResource {
public class BillSaveAction extends AbstractNCCRestResource {
public static String fplxStr = "";// 开票申请发票类型
public billSaveAction() {
public BillSaveAction() {
}
@ -84,13 +85,14 @@ public class billSaveAction extends AbstractNCCRestResource {
if (bject == null) {
return ResultMessageUtil.exceptionToJSON(new NullPointerException("billhead:null"));
}
String csaleinvoiceid = bject.getString("csaleinvoiceid"); // 销售发票id
// 销售发票id
String csaleinvoiceid = bject.getString("vdef40");
// 根据销售发票主实体id查询销售发票
String[] ids = {csaleinvoiceid};
SaleInvoiceVO[] saleInvoiceVOs = NCLocator.getInstance().lookup(ISaleinvoiceQueryAPI.class)
.queryVOByIDs(ids);
if (saleInvoiceVOs.length <= 0) {
return ResultMessageUtil.exceptionToJSON(new NullPointerException("查询到Erp对应的销售发票"));
if (saleInvoiceVOs == null || saleInvoiceVOs.length <= 0) {
return ResultMessageUtil.exceptionToJSON(new NullPointerException("在系统中查询到对应的销售发票"));
}
try {
// 调用函数根据原销售发票组装新红冲发票
@ -109,7 +111,7 @@ public class billSaveAction extends AbstractNCCRestResource {
context.setBillVos(returnSaveSaleInvoiceVOs);
context.setActionName("APPROVE");
SaleInvoiceVO[] returnApproveSaleInvoiceVOs = (SaleInvoiceVO[]) flowService.exeScriptPFlow(context);
if (returnApproveSaleInvoiceVOs == null && returnApproveSaleInvoiceVOs.length <= 0) {
if (returnApproveSaleInvoiceVOs == null || returnApproveSaleInvoiceVOs.length <= 0) {
throw new BusinessException("生成销售发票审核失败");
}
/**
@ -144,8 +146,8 @@ public class billSaveAction extends AbstractNCCRestResource {
Exception e = new Exception("接口调用失败");
return ResultMessageUtil.exceptionToJSON(e);
}
} catch (BusinessException e) {
Logger.error("writeBack Error: ", e);
} catch (Exception e) {
Logger.error("billSaveRp-exp: ", e);
return ResultMessageUtil.exceptionToJSON(e);
}
}
@ -153,17 +155,25 @@ public class billSaveAction extends AbstractNCCRestResource {
/**
* 构造红冲发票VO
*
* @param originalSaleInvoiceVO
* @param originalVO
* @param bject
* @return
* @throws Exception
*/
public static SaleInvoiceVO makeNewRedRushSaleInvoice(SaleInvoiceVO originalSaleInvoiceVO, JSONObject bject) throws Exception {
public static SaleInvoiceVO makeNewRedRushSaleInvoice(SaleInvoiceVO originalVO, JSONObject bject) throws Exception {
try {
SaleInvoiceVO saleInvoiceVO = new SaleInvoiceVO();
SaleInvoiceHVO saleInvoiceHVO = originalSaleInvoiceVO.getParentVO(); // 主实体
SaleInvoiceBVO[] saleInvoiceBVOs = originalSaleInvoiceVO.getChildrenVO(); // 子实体
SaleInvoiceHVO newSaleInvoiceHVO = new SaleInvoiceHVO(); // 新主实体
// 发票主实体
SaleInvoiceHVO saleInvoiceHVO = originalVO.getParentVO();
// 发票子实体数组
SaleInvoiceBVO[] saleInvoiceBVOs = originalVO.getChildrenVO();
// 发票新主实体
SaleInvoiceHVO newSaleInvoiceHVO = new SaleInvoiceHVO();
// 单据日期
UFDate dbilldate = new UFDate(bject.getString("dbilldate"));
// 制单日期
UFDate dmakedate = new UFDate(bject.getString("creationtime"));
// 子实体属性赋值
UFDouble sumNum = new UFDouble(); // 合计数量
@ -172,48 +182,48 @@ public class billSaveAction extends AbstractNCCRestResource {
UFDouble sumNorigmny = new UFDouble(); // 合计无税金额
UFDouble sumNorigtaxmny = new UFDouble(); // 合计价税合计
int i = 0;
com.alibaba.fastjson.JSONArray paramsSaleInvoiceBVOsJSA = (com.alibaba.fastjson.JSONArray) bject.get("SaleInvoiceBVOs"); // 参数子实体数组
List<JSONObject> paramsSaleInvoiceBVOs = paramsSaleInvoiceBVOsJSA.toJavaList(JSONObject.class);
SaleInvoiceBVO[] newSaleInvoiceBVOs = new SaleInvoiceBVO[paramsSaleInvoiceBVOs.size()]; // 新子实体
// 参数子实体数组
com.alibaba.fastjson.JSONArray bvoJsonArr = (com.alibaba.fastjson.JSONArray) bject.get("csaleinvoicebid");
List<JSONObject> bvoList = bvoJsonArr.toJavaList(JSONObject.class);
SaleInvoiceBVO[] newSaleInvoiceBVOs = new SaleInvoiceBVO[bvoList.size()]; // 新子实体
for (SaleInvoiceBVO saleInvoiceBVO : saleInvoiceBVOs) {
String csaleinvoicebid = saleInvoiceBVO.getCsaleinvoicebid(); // 子表id
// 筛选参数红冲的子表集合
List<JSONObject> newParamsSaleInvoiceBVOs = paramsSaleInvoiceBVOs.stream().filter(item -> {
String parCsaleinvoicebid = item.getString("csaleinvoicebid") + "";
List<JSONObject> newBvoArr = bvoList.stream().filter(item -> {
String parCsaleinvoicebid = item.getString("vbdef15") + ""; // 子表id
return csaleinvoicebid.equals(parCsaleinvoicebid);
}).toList();
if (newParamsSaleInvoiceBVOs.size() <= 0) {
if (newBvoArr.size() <= 0) {
continue;
}
JSONObject paramSaleInvoiceBVO = newParamsSaleInvoiceBVOs.get(0); // 参数子表
SaleInvoiceBVO newSaleInvoiceBVO = new SaleInvoiceBVO();
// BeanUtil.copyProperties(saleInvoiceBVO,newSaleInvoiceBVO);
JSONObject bipBvoJson = newBvoArr.get(0); // 参数子表
SaleInvoiceBVO newInvBVO = new SaleInvoiceBVO();
// 克隆取值原子表销售发票
newSaleInvoiceBVO = (SaleInvoiceBVO) CloneUtil.depthClone(saleInvoiceBVO);
newInvBVO = (SaleInvoiceBVO) CloneUtil.depthClone(saleInvoiceBVO);
// 赋值之后修改子实体红冲时字段
newSaleInvoiceBVO.setCsaleinvoicebid(null); // 发票子实体id
newSaleInvoiceBVO.setDbilldate(newSaleInvoiceHVO.getDbilldate()); // 开票日期
newSaleInvoiceBVO.setNastnum(new UFDouble(paramSaleInvoiceBVO.getString("nastnum"))); // 数量
newSaleInvoiceBVO.setNnum(new UFDouble(paramSaleInvoiceBVO.getString("nnum"))); // 主数量
newSaleInvoiceBVO.setNtax(new UFDouble(paramSaleInvoiceBVO.getString("ntax"))); // 税额
newSaleInvoiceBVO.setNmny(new UFDouble(paramSaleInvoiceBVO.getString("nmny"))); // 本币无税金额
newSaleInvoiceBVO.setNtaxmny(new UFDouble(paramSaleInvoiceBVO.getString("ntaxmny"))); // 本币价税合计
newSaleInvoiceBVO.setNcaltaxmny(new UFDouble(paramSaleInvoiceBVO.getString("ncaltaxmny"))); // 计税金额
newSaleInvoiceBVO.setNorigmny(new UFDouble(paramSaleInvoiceBVO.getString("norigmny"))); // 无税金额
newSaleInvoiceBVO.setNorigtaxmny(new UFDouble(paramSaleInvoiceBVO.getString("norigtaxmny"))); // 价税合计
newSaleInvoiceBVO.setCopposesrcbid(paramSaleInvoiceBVO.getString("csaleinvoicebid")); // 对冲来源子表id
newSaleInvoiceBVO.setNqtunitnum(null); // 报价数量
newSaleInvoiceBVO.setCsaleinvoiceid(null); // 发票关联主表id
newSaleInvoiceBVO.setNtotalcostnum(null); // 累计成本结算数量
newSaleInvoiceBVO.setNtotalincomemny(null); // 累计确认应收金额
newSaleInvoiceBVO.setNtotalincomenum(null); // 累计确认应收数量
newSaleInvoiceBVO.setVchangerate("1.00/1.00"); // 换算率
newSaleInvoiceBVOs[i++] = newSaleInvoiceBVO;
sumNum = sumNum.add(new UFDouble(paramSaleInvoiceBVO.getString("nnum")));
sumNtax = sumNtax.add(new UFDouble(paramSaleInvoiceBVO.getString("ntax")));
sumNcaltaxmny = sumNcaltaxmny.add(new UFDouble(paramSaleInvoiceBVO.getString("ncaltaxmny")));
sumNorigmny = sumNorigmny.add(new UFDouble(paramSaleInvoiceBVO.getString("norigmny")));
sumNorigtaxmny = sumNorigtaxmny.add(new UFDouble(paramSaleInvoiceBVO.getString("norigtaxmny")));
newInvBVO.setCsaleinvoicebid(null); // 发票子实体id
newInvBVO.setDbilldate(dbilldate); // 开票日期
newInvBVO.setNastnum(new UFDouble(bipBvoJson.getString("nastnum"))); // 数量
newInvBVO.setNnum(new UFDouble(bipBvoJson.getString("nnum"))); // 主数量
newInvBVO.setNtax(new UFDouble(bipBvoJson.getString("ntax"))); // 税额
newInvBVO.setNmny(new UFDouble(bipBvoJson.getString("nmny"))); // 本币无税金额
newInvBVO.setNtaxmny(new UFDouble(bipBvoJson.getString("ntaxmny"))); // 本币价税合计
newInvBVO.setNcaltaxmny(new UFDouble(bipBvoJson.getString("ncaltaxmny"))); // 计税金额
newInvBVO.setNorigmny(new UFDouble(bipBvoJson.getString("norigmny"))); // 无税金额
newInvBVO.setNorigtaxmny(new UFDouble(bipBvoJson.getString("norigtaxmny"))); // 价税合计
newInvBVO.setCopposesrcbid(bipBvoJson.getString("vbdef15")); // 对冲来源子表id
newInvBVO.setNqtunitnum(null); // 报价数量
newInvBVO.setCsaleinvoiceid(null); // 发票关联主表id
newInvBVO.setNtotalcostnum(null); // 累计成本结算数量
newInvBVO.setNtotalincomemny(null); // 累计确认应收金额
newInvBVO.setNtotalincomenum(null); // 累计确认应收数量
newInvBVO.setVchangerate("1.00/1.00"); // 换算率
newSaleInvoiceBVOs[i++] = newInvBVO;
sumNum = sumNum.add(new UFDouble(bipBvoJson.getString("nnum")));
sumNtax = sumNtax.add(new UFDouble(bipBvoJson.getString("ntax")));
sumNcaltaxmny = sumNcaltaxmny.add(new UFDouble(bipBvoJson.getString("ncaltaxmny")));
sumNorigmny = sumNorigmny.add(new UFDouble(bipBvoJson.getString("norigmny")));
sumNorigtaxmny = sumNorigtaxmny.add(new UFDouble(bipBvoJson.getString("norigtaxmny")));
}
// 克隆取值原子表销售发票
@ -221,8 +231,8 @@ public class billSaveAction extends AbstractNCCRestResource {
// 赋值之后修改主实体红冲时字段
newSaleInvoiceHVO.setCsaleinvoiceid(null); // 发票主实体id
newSaleInvoiceHVO.setVbillcode(null); // 发票号
newSaleInvoiceHVO.setDbilldate(new UFDate()); // 开票日期
newSaleInvoiceHVO.setDmakedate(new UFDate()); // 制单日期
newSaleInvoiceHVO.setDbilldate(dbilldate); // 开票日期
newSaleInvoiceHVO.setDmakedate(dmakedate); // 制单日期
newSaleInvoiceHVO.setBsubunitflag(UFBoolean.TRUE); // 冲抵标记
newSaleInvoiceHVO.setFopposeflag(2); // 对冲标记 2对冲生成
newSaleInvoiceHVO.setFstatusflag(1); // 单据状态 1自由态
@ -246,16 +256,16 @@ public class billSaveAction extends AbstractNCCRestResource {
/**
* 构造红冲开票申请VO
*
* @param ivApplicationHeadVO 原开票申请主实体
* @param applyHeadVO 原开票申请主实体
* @param ivApplicationBodyVOS 原开票申请子实体
* @param bject bip参数
* @param returnApproveSaleInvoiceVOs 新生成的红冲销售发票实体
* @return
* @throws Exception
*/
public static IVApplicationAggVO makeNewRedRushIVApplicationAggVO(IVApplicationHeadVO ivApplicationHeadVO, IVApplicationBodyVO[] ivApplicationBodyVOS, JSONObject bject, SaleInvoiceVO[] returnApproveSaleInvoiceVOs) throws Exception {
public static IVApplicationAggVO makeNewRedRushIVApplicationAggVO(IVApplicationHeadVO applyHeadVO, IVApplicationBodyVO[] ivApplicationBodyVOS, JSONObject bject, SaleInvoiceVO[] returnApproveSaleInvoiceVOs) throws Exception {
try {
IVApplicationAggVO ivApplicationAggVO = new IVApplicationAggVO();
IVApplicationAggVO applicationAggVO = new IVApplicationAggVO();
IVApplicationHeadVO newivApplicationHeadVO = new IVApplicationHeadVO(); // 新主实体
// 取新生成红冲发票的主实体数据
@ -266,13 +276,12 @@ public class billSaveAction extends AbstractNCCRestResource {
SaleInvoiceHVO rpSaleInvoiceHVO = rpSaleInvoiceVOs[0].getParentVO();
// 主实体属性赋值
// BeanUtil.copyProperties(ivApplicationHeadVO,newivApplicationHeadVO, CopyOptions.create().setIgnoreNullValue(true));
// 克隆取值原子表开票申请
newivApplicationHeadVO = (IVApplicationHeadVO) CloneUtil.depthClone(ivApplicationHeadVO);
newivApplicationHeadVO = (IVApplicationHeadVO) CloneUtil.depthClone(applyHeadVO);
// 根据参数判断是否为部分红冲
boolean isPartHCFlag = false;
UFDouble paramNtotalorigmny = new UFDouble(bject.getString("ntotalorigmny")); // 参数价税合计主表红冲金额
UFDouble ntotalorigmny = ivApplicationHeadVO.getJshj(); // 原开票申请主表价税合计
UFDouble ntotalorigmny = applyHeadVO.getJshj(); // 原开票申请主表价税合计
// 红冲金额与开票申请源价税合计比较如果和值大于零则为部分红冲
if (ntotalorigmny.add(paramNtotalorigmny).compareTo(UFDouble.ZERO_DBL) > 0) {
isPartHCFlag = true;
@ -284,20 +293,21 @@ public class billSaveAction extends AbstractNCCRestResource {
UFDouble sumSe = new UFDouble(); // 合计税额
// 子实体属性赋值
int i = 0;
com.alibaba.fastjson.JSONArray paramsSaleInvoiceBVOsJSA = (com.alibaba.fastjson.JSONArray) bject.get("SaleInvoiceBVOs"); // 参数子实体数组
List<JSONObject> paramsSaleInvoiceBVOs = paramsSaleInvoiceBVOsJSA.toJavaList(JSONObject.class);
IVApplicationBodyVO[] newivApplicationBodyVOS = new IVApplicationBodyVO[paramsSaleInvoiceBVOs.size()]; // 新子实体
// 参数子实体数组
com.alibaba.fastjson.JSONArray bvoJsonArr = (com.alibaba.fastjson.JSONArray) bject.get("csaleinvoicebid");
List<JSONObject> bvoList = bvoJsonArr.toJavaList(JSONObject.class);
IVApplicationBodyVO[] newivApplicationBodyVOS = new IVApplicationBodyVO[bvoList.size()]; // 新子实体
for (IVApplicationBodyVO ivApplicationBodyVO : ivApplicationBodyVOS) {
String src_pkdetail = ivApplicationBodyVO.getSrc_pkdetail(); // 来源单据行id
// 筛选参数红冲的子表集合
List<JSONObject> newParamsSaleInvoiceBVOs = paramsSaleInvoiceBVOs.stream().filter(item -> {
String parCsaleinvoicebid = item.getString("csaleinvoicebid") + "";
List<JSONObject> newBvoArr = bvoList.stream().filter(item -> {
String parCsaleinvoicebid = item.getString("vbdef15") + ""; // 子表id
return src_pkdetail.equals(parCsaleinvoicebid);
}).toList();
if (newParamsSaleInvoiceBVOs.size() <= 0) {
if (newBvoArr.size() <= 0) {
continue;
}
JSONObject paramSaleInvoiceBVO = newParamsSaleInvoiceBVOs.get(0); // 参数子表
JSONObject bipBvoJson = newBvoArr.get(0); // 参数子表
IVApplicationBodyVO newivApplicationBodyVO = new IVApplicationBodyVO();
// BeanUtil.copyProperties(ivApplicationBodyVO,newivApplicationBodyVO, CopyOptions.create().setIgnoreNullValue(true));
// 克隆取值原子表开票申请
@ -305,22 +315,23 @@ public class billSaveAction extends AbstractNCCRestResource {
// 赋值之后修改子实体红冲时字段
newivApplicationBodyVO.setPk_ivappdetail(null); // 开票申请子实体id
newivApplicationBodyVO.setBillno(null); // 开票申请子实体单据号
newivApplicationBodyVO.setSe(new UFDouble(paramSaleInvoiceBVO.getString("ntax"))); // 税额
newivApplicationBodyVO.setXmsl(new UFDouble(paramSaleInvoiceBVO.getString("nnum"))); // 数量
newivApplicationBodyVO.setXmje(new UFDouble(paramSaleInvoiceBVO.getString("norigmny"))); // 金额
newivApplicationBodyVO.setXmjshj(new UFDouble(paramSaleInvoiceBVO.getString("norigtaxmny"))); // 价税合计
newivApplicationBodyVO.setBchcje(new UFDouble(paramSaleInvoiceBVO.getString("norigtaxmny")).multiply(new UFDouble(-1))); // 本次红冲金额 = 本次参数红冲金额
newivApplicationBodyVO.setSe(new UFDouble(bipBvoJson.getString("ntax"))); // 税额
newivApplicationBodyVO.setXmsl(new UFDouble(bipBvoJson.getString("nnum"))); // 数量
newivApplicationBodyVO.setXmje(new UFDouble(bipBvoJson.getString("norigmny"))); // 金额
newivApplicationBodyVO.setXmjshj(new UFDouble(bipBvoJson.getString("norigtaxmny"))); // 价税合计
// 本次红冲金额 = 本次参数红冲金额
newivApplicationBodyVO.setBchcje(new UFDouble(bipBvoJson.getString("norigtaxmny")).multiply(new UFDouble(-1)));
newivApplicationBodyVOS[i++] = newivApplicationBodyVO;
sumSe = sumSe.add(new UFDouble(paramSaleInvoiceBVO.getString("ntax")));
sumXmsl = sumXmsl.add(new UFDouble(paramSaleInvoiceBVO.getString("nnum")));
sumXmje = sumXmje.add(new UFDouble(paramSaleInvoiceBVO.getString("norigmny")));
sumXmjshj = sumXmjshj.add(new UFDouble(paramSaleInvoiceBVO.getString("norigtaxmny")));
sumBchcje = sumBchcje.add(new UFDouble(paramSaleInvoiceBVO.getString("norigtaxmny")).multiply(new UFDouble(-1)));
sumSe = sumSe.add(new UFDouble(bipBvoJson.getString("ntax")));
sumXmsl = sumXmsl.add(new UFDouble(bipBvoJson.getString("nnum")));
sumXmje = sumXmje.add(new UFDouble(bipBvoJson.getString("norigmny")));
sumXmjshj = sumXmjshj.add(new UFDouble(bipBvoJson.getString("norigtaxmny")));
sumBchcje = sumBchcje.add(new UFDouble(bipBvoJson.getString("norigtaxmny")).multiply(new UFDouble(-1)));
}
// 赋值之后修改主实体红冲时字段
newivApplicationHeadVO.setPk_ivapplication(null); // 开票申请单主实体id
newivApplicationHeadVO.setBillno(null); // 单据号
newivApplicationHeadVO.setPreparedate(new UFDate()); // 单据日期
newivApplicationHeadVO.setPreparedate(new UFDate(bject.getString("dbilldate"))); // 单据日期
newivApplicationHeadVO.setJshj(sumXmjshj); // 价税合计
newivApplicationHeadVO.setHjje(sumXmje); // 合计金额
newivApplicationHeadVO.setHjse(sumSe); // 合计税额
@ -334,9 +345,9 @@ public class billSaveAction extends AbstractNCCRestResource {
newivApplicationHeadVO.setHcyy("2"); // 红冲原因2开票有误
// 组装VO
ivApplicationAggVO.setParentVO(newivApplicationHeadVO);
ivApplicationAggVO.setChildrenVO(newivApplicationBodyVOS);
return ivApplicationAggVO;
applicationAggVO.setParentVO(newivApplicationHeadVO);
applicationAggVO.setChildrenVO(newivApplicationBodyVOS);
return applicationAggVO;
} catch (Exception e) {
throw new BusinessException(e.getMessage());
}

View File

@ -195,10 +195,13 @@ public class APIBomBusinessServiceImpl implements IAPIBomBusinessService {
mapInit(original);
AggBomVO agg = aggInit(paramMap);
//2025年4月11日14点35分 --重新赋值上制单人创建人 --start
//2025年4月11日14点35分 --重新赋值上制单人创建人+默认 --start
agg.getParentVO().setAttributeValue("billmaker", original.getParent().getAttributeValue("billmaker"));
agg.getParentVO().setAttributeValue("creator", original.getParent().getAttributeValue("creator"));
//2025年4月11日14点35分 --重新赋值上制单人创建人 --end
if(bom.get("hbdefault")==null){
agg.getParentVO().setAttributeValue("hbdefault", original.getParent().getAttributeValue("hbdefault"));
}
//2025年4月11日14点35分 --重新赋值上制单人创建人+默认 --end
JSONString checkInfo = requiredCheck(agg);
if (checkInfo != null) {
return checkInfo;
@ -645,7 +648,7 @@ public class APIBomBusinessServiceImpl implements IAPIBomBusinessService {
if (VersionTypeEnum.AVAILABLE.equalsValue(head.getHfversiontype())
&& !head.getCbomid().equals(headvo.getCbomid())) {
//sdlizheng --添加独立判断--plm三方越过此校验
if ("plm".equals(userCode)) {
if ("plm".equals(userCode)||"dlkght".equals(userCode)) {
// AggBomVO afterVO = service.canceldefault(aggBomVO);
} else {
return UFBoolean.TRUE;
@ -699,7 +702,7 @@ 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 ("plm".equals(userCode)) {
if ("plm".equals(userCode)||"dlkght".equals(userCode)) {
//sdlizheng 1对于之前不存在的BOM新增时如果是传自由态不默认且无效走标准逻辑如果传的是审批态默认且有效2025年4月11日16点28分 start
if (fbillstatus != null && "1".equals(fbillstatus.toString())) {
agg.getParent().setAttributeValue("hfversiontype", Integer.valueOf(1));