Merge branch 'refs/heads/dev' into test

This commit is contained in:
liss
2025-10-11 17:37:39 +08:00
11 changed files with 236 additions and 253 deletions

View File

@@ -1,46 +0,0 @@
package com.zt.plat.module.contractorder.enums.contract;
/**
* 合同审核结果
*/
public enum AuditResultEnum {
/**
* 合同状态-草稿
*/
PASS("通过","PASS", null),
/**
* 合同状态-正在审核
*/
REJECT("驳回","REJECT",null);
AuditResultEnum(String label, String code, String remark) {
this.label = label;
this.code = code;
this.remark = remark;
}
/**
* 标签
*/
private final String label;
/**
* 编码
*/
private final String code;
/**
* 备注
*/
private final String remark;
public String getLabel() {
return label;
}
public String getCode() {
return code;
}
public String getRemark() {
return remark;
}
}

View File

@@ -1,67 +0,0 @@
package com.zt.plat.module.contractorder.enums.contract;
/**
* 合同状态枚举
*/
public enum ContractStatusEnum {
/**
* 合同状态-草稿
*/
DRAFT("草稿","DRAFT","可以删除"),
/**
* 合同状态-正在审核
*/
UNDER_REVIEW("正在审核","UNDER_REVIEW","不允许任何操作"),
/**
* 合同状态-执行中
*/
IN_PROGRESS("执行中","IN_PROGRESS","可以终止、归档"),
/**
* 合同状态-已驳回
*/
REJECTED("已驳回","REJECTED","可以删除"),
/**
* 合同状态-已终止
*/
TERMINATED("已终止","TERMINATED","只允许归档"),
/**
* 合同状态-已归档
*/
ARCHIVED("已归档","ARCHIVED","不允许任何操作"),
/**
* 合同状态-已删除
*/
DELETED("已删除","DELETED","不允许任何操作");
ContractStatusEnum(String label, String code, String remark) {
this.label = label;
this.code = code;
this.remark = remark;
}
/**
* 字典标签
*/
private final String label;
/**
* 字典编码
*/
private final String code;
/**
* 备注
*/
private final String remark;
public String getLabel() {
return label;
}
public String getCode() {
return code;
}
public String getRemark() {
return remark;
}
}

View File

@@ -1,55 +0,0 @@
package com.zt.plat.module.contractorder.enums.contract;
/**
* 合同类型枚举
*/
public enum ContractTypeEnum {
/**
* 采购
*/
PRCH("采购","PRCH",null),
/**
* 销售
*/
SALE("销售","SALE",null),
/**
* 委托加工
*/
ENTT("委托加工","ENTT",null),
/**
* 来料加工
*/
MKE("来料加工","MKE",null);
ContractTypeEnum(String label, String code, String remark) {
this.label = label;
this.code = code;
this.remark = remark;
}
/**
* 字典标签
*/
private final String label;
/**
* 字典编码
*/
private final String code;
/**
* 备注
*/
private final String remark;
public String getLabel() {
return label;
}
public String getCode() {
return code;
}
public String getRemark() {
return remark;
}
}

View File

@@ -0,0 +1,73 @@
package com.zt.plat.module.contractorder.enums.contract;
/**
* 字典枚举
*/
public enum DictEnum {
/** ERP收支方向 */
// 支出
ERP_RCV_DLVY_EXPENSES("支出","2","对应采购"),
// 收入
ERP_RCV_DLVY_INCOME("收入","1","对应销售"),
/** ERP是否 */
// 是
ERP_CTRT_YN_YES("","1",null),
// 否
ERP_CTRT_YN_NO("","0",null),
/** 合同状态 */
// 草稿
BSE_CTRT_STS_DRAFT("草稿","DRAFT","可以删除"),
// 正在审核
BSE_CTRT_STS_UNDER_REVIEW("正在审核","UNDER_REVIEW","不允许任何操作"),
// 已驳回
BSE_CTRT_STS_REJECTED("已驳回","REJECTED","可以删除"),
// 待推送
BSE_CTRT_STS_WAIT_PUSH("待推送","WAIT_PUSH",null),
// 推送失败
BSE_CTRT_STS_PUSH_ERROR("推送失败","PUSH_ERROR",null),
// 执行中
BSE_CTRT_STS_IN_PROGRESS("执行中","IN_PROGRESS","可以终止、归档"),
// 已删除
BSE_CTRT_STS_DELETED("已删除","DELETED","不允许任何操作"),
// 已归档
BSE_CTRT_STS_ARCHIVED("已归档","ARCHIVED","不允许任何操作"),
// 已完结
BSE_CTRT_STS_TERMINATED("已完结","TERMINATED","只允许归档"),
// 待审核
BSE_CTRT_STS_WAIT_AUDIT("待审核","WAIT_AUDIT",null),
// 已作废
BSE_CTRT_STS_VOID("已作废","VOID",null);
DictEnum(String label, String code, String remark) {
this.label = label;
this.code = code;
this.remark = remark;
}
/**
* 字典标签
*/
private final String label;
/**
* 字典编码
*/
private final String code;
/**
* 备注
*/
private final String remark;
public String getLabel() {
return label;
}
public String getCode() {
return code;
}
public String getRemark() {
return remark;
}
}

View File

@@ -1,47 +0,0 @@
package com.zt.plat.module.contractorder.enums.contract;
/**
* ERP是否枚举
*/
public enum ErpCtrtYesNoEnum {
/**
* 是
*/
YES("","1",null),
/**
* 否
*/
NO("","0",null);
ErpCtrtYesNoEnum(String label, String code, String remark) {
this.label = label;
this.code = code;
this.remark = remark;
}
/**
* 字典标签
*/
private final String label;
/**
* 字典编码
*/
private final String code;
/**
* 备注
*/
private final String remark;
public String getLabel() {
return label;
}
public String getCode() {
return code;
}
public String getRemark() {
return remark;
}
}

View File

@@ -148,6 +148,7 @@ public class ContractController implements BusinessControllerMarker {
@PostMapping("/submit/erp") @PostMapping("/submit/erp")
@Operation(summary = "提交ERP") @Operation(summary = "提交ERP")
@PreAuthorize("@ss.hasPermission('base:contract:erp')") @PreAuthorize("@ss.hasPermission('base:contract:erp')")
public void submitErp() { public void submitErp(@RequestBody List<Long> ids) {
contractService.submitErp(ids);
} }
} }

View File

@@ -94,4 +94,12 @@ public interface ContractService {
* @return 结算条款数据 * @return 结算条款数据
*/ */
List<ContractFormulaRespDTO> getFormulasByPaperNumber(String contractPaperNumber); List<ContractFormulaRespDTO> getFormulasByPaperNumber(String contractPaperNumber);
/**
* 提交ERP
*
* @param ids 合同ID集合
* @return
*/
void submitErp(List<Long> ids);
} }

View File

@@ -25,8 +25,8 @@ import com.zt.plat.module.contractorder.enums.ApiConstants;
import com.zt.plat.module.contractorder.enums.DateConstants; import com.zt.plat.module.contractorder.enums.DateConstants;
import com.zt.plat.module.contractorder.enums.ProcessConstants; import com.zt.plat.module.contractorder.enums.ProcessConstants;
import com.zt.plat.module.contractorder.enums.TableFieldConstants; import com.zt.plat.module.contractorder.enums.TableFieldConstants;
import com.zt.plat.module.contractorder.enums.contract.ContractStatusEnum; import com.zt.plat.module.contractorder.enums.contract.DictEnum;
import com.zt.plat.module.contractorder.enums.contract.ErpCtrtYesNoEnum; import com.zt.plat.module.erp.dal.dataobject.erp.ErpContractDO;
import com.zt.plat.module.erp.service.erp.ErpCompanyService; import com.zt.plat.module.erp.service.erp.ErpCompanyService;
import com.zt.plat.module.system.api.user.AdminUserApi; import com.zt.plat.module.system.api.user.AdminUserApi;
import com.zt.plat.module.system.api.user.dto.AdminUserRespDTO; import com.zt.plat.module.system.api.user.dto.AdminUserRespDTO;
@@ -134,7 +134,7 @@ public class ContractServiceImpl implements ContractService {
// 合同主信息 // 合同主信息
ContractMainDO contractMainDO = BeanUtils.toBean(reqVO, ContractMainDO.class); ContractMainDO contractMainDO = BeanUtils.toBean(reqVO, ContractMainDO.class);
// 合同状态保存为草稿 // 合同状态保存为草稿
contractMainDO.setStatus(ContractStatusEnum.DRAFT.getCode()); contractMainDO.setStatus(DictEnum.BSE_CTRT_STS_DRAFT.getCode());
// 生成系统合同编号 // 生成系统合同编号
contractMainDO.setSystemContractNumber(generateSystemContractNumber(reqVO.getCategory())); contractMainDO.setSystemContractNumber(generateSystemContractNumber(reqVO.getCategory()));
@@ -400,14 +400,14 @@ public class ContractServiceImpl implements ContractService {
} }
// 合同状态校验 // 合同状态校验
if (ContractStatusEnum.DELETED.getCode().equals(oldContractMainDO.getStatus()) if (DictEnum.BSE_CTRT_STS_DELETED.getCode().equals(oldContractMainDO.getStatus())
|| ContractStatusEnum.ARCHIVED.getCode().equals(oldContractMainDO.getStatus()) || DictEnum.BSE_CTRT_STS_ARCHIVED.getCode().equals(oldContractMainDO.getStatus())
|| ContractStatusEnum.TERMINATED.getCode().equals(oldContractMainDO.getStatus()) || DictEnum.BSE_CTRT_STS_TERMINATED.getCode().equals(oldContractMainDO.getStatus())
|| ContractStatusEnum.IN_PROGRESS.getCode().equals(oldContractMainDO.getStatus()) || DictEnum.BSE_CTRT_STS_IN_PROGRESS.getCode().equals(oldContractMainDO.getStatus())
|| ContractStatusEnum.UNDER_REVIEW.getCode().equals(oldContractMainDO.getStatus())) { || DictEnum.BSE_CTRT_STS_UNDER_REVIEW.getCode().equals(oldContractMainDO.getStatus())) {
throw exception(CONTRACT_STATUS_NOT_UPDATE, throw exception(CONTRACT_STATUS_NOT_UPDATE,
ContractStatusEnum.valueOf(oldContractMainDO.getStatus()).getLabel()); DictEnum.valueOf(oldContractMainDO.getStatus()).getLabel());
} }
// 请求更新的合同信息 // 请求更新的合同信息
@@ -606,14 +606,14 @@ public class ContractServiceImpl implements ContractService {
} }
// 合同状态校验 // 合同状态校验
if (ContractStatusEnum.UNDER_REVIEW.getCode().equals(contractMainDO.getStatus()) if (DictEnum.BSE_CTRT_STS_UNDER_REVIEW.getCode().equals(contractMainDO.getStatus())
|| ContractStatusEnum.IN_PROGRESS.getCode().equals(contractMainDO.getStatus()) || DictEnum.BSE_CTRT_STS_IN_PROGRESS.getCode().equals(contractMainDO.getStatus())
|| ContractStatusEnum.TERMINATED.getCode().equals(contractMainDO.getStatus()) || DictEnum.BSE_CTRT_STS_TERMINATED.getCode().equals(contractMainDO.getStatus())
|| ContractStatusEnum.ARCHIVED.getCode().equals(contractMainDO.getStatus()) || DictEnum.BSE_CTRT_STS_ARCHIVED.getCode().equals(contractMainDO.getStatus())
|| ContractStatusEnum.DELETED.getCode().equals(contractMainDO.getStatus())) { || DictEnum.BSE_CTRT_STS_DELETED.getCode().equals(contractMainDO.getStatus())) {
throw exception(CONTRACT_STATUS_NOT_SUBMIT_APPROVAL, throw exception(CONTRACT_STATUS_NOT_SUBMIT_APPROVAL,
ContractStatusEnum.valueOf(contractMainDO.getStatus()).getLabel()); DictEnum.valueOf(contractMainDO.getStatus()).getLabel());
} }
// 合同内容校验 // 合同内容校验
@@ -644,7 +644,7 @@ public class ContractServiceImpl implements ContractService {
BpmTaskRespDTO undoTask = taskList.get(taskList.size() - 1); BpmTaskRespDTO undoTask = taskList.get(taskList.size() - 1);
contractMainDO.setTaskNodeId(undoTask.getId()); contractMainDO.setTaskNodeId(undoTask.getId());
} }
contractMainDO.setStatus(ContractStatusEnum.UNDER_REVIEW.getCode()); contractMainDO.setStatus(DictEnum.BSE_CTRT_STS_UNDER_REVIEW.getCode());
contractMainMapper.updateById(contractMainDO); contractMainMapper.updateById(contractMainDO);
return "提交审批成功"; return "提交审批成功";
} }
@@ -671,20 +671,27 @@ public class ContractServiceImpl implements ContractService {
} }
// 合同状态校验 // 合同状态校验
if (ContractStatusEnum.DRAFT.getCode().equals(contractMainDO.getStatus()) if (DictEnum.BSE_CTRT_STS_DRAFT.getCode().equals(contractMainDO.getStatus())
|| ContractStatusEnum.IN_PROGRESS.getCode().equals(contractMainDO.getStatus()) || DictEnum.BSE_CTRT_STS_IN_PROGRESS.getCode().equals(contractMainDO.getStatus())
|| ContractStatusEnum.REJECTED.getCode().equals(contractMainDO.getStatus()) || DictEnum.BSE_CTRT_STS_REJECTED.getCode().equals(contractMainDO.getStatus())
|| ContractStatusEnum.TERMINATED.getCode().equals(contractMainDO.getStatus()) || DictEnum.BSE_CTRT_STS_TERMINATED.getCode().equals(contractMainDO.getStatus())
|| ContractStatusEnum.ARCHIVED.getCode().equals(contractMainDO.getStatus()) || DictEnum.BSE_CTRT_STS_ARCHIVED.getCode().equals(contractMainDO.getStatus())
|| ContractStatusEnum.DELETED.getCode().equals(contractMainDO.getStatus())) { || DictEnum.BSE_CTRT_STS_DELETED.getCode().equals(contractMainDO.getStatus())) {
throw exception(CONTRACT_STATUS_NOT_APPROVAL, throw exception(CONTRACT_STATUS_NOT_APPROVAL,
ContractStatusEnum.valueOf(contractMainDO.getStatus()).getLabel()); DictEnum.valueOf(contractMainDO.getStatus()).getLabel());
} }
return ""; return "";
} }
/**
* 获取合同ID集合
*
* @param contractName 合同名称
* @param contractPaperNumber 合同编号
* @return 合同ID集合
*/
private List<Long> getContractIds(String contractName, String contractPaperNumber) { private List<Long> getContractIds(String contractName, String contractPaperNumber) {
List<Long> contractIds = new ArrayList<>(); List<Long> contractIds = new ArrayList<>();
List<ContractMainDO> contractMainDOS = contractMainMapper.selectList(new LambdaQueryWrapperX<ContractMainDO>() List<ContractMainDO> contractMainDOS = contractMainMapper.selectList(new LambdaQueryWrapperX<ContractMainDO>()
@@ -782,6 +789,115 @@ public class ContractServiceImpl implements ContractService {
return formulas; return formulas;
} }
@Override
public void submitErp(List<Long> ids) {
// 遍历合同ID集合
ids.forEach(id -> {
// 查询合同信息
ContractMainDO contractMainDO = contractMainMapper.selectById(id);
if (contractMainDO != null) {
// 生成ERP合同映射表
ErpContractDO erpContractDO = new ErpContractDO();
// 合同主信息表主键:BSE_CTRT_MAIN
erpContractDO.setContractMainId(id);
// 操作标识:OPTN_ID TODO
/*
1、先调用009ERP接口查询合同信息
2、如果009接口返回值中“合同编号”字段存在值并且与传入的相同则OPTN_ID值为“1”
3、如果009接口返回值中“合同编号”字段不存在值根据合同主键查询映射表中是否存在没有删除的数据如果有值为“1”如果没有值为“0”
*/
// 合同编号:CTRT_PPR_NUM
erpContractDO.setContractPaperNumber(contractMainDO.getContractPaperNumber());
// 合同名称:CTRT_NAME
erpContractDO.setContractName(contractMainDO.getContractName());
// 合同类型编号:CTRT_TP_NUM
erpContractDO.setContractTypeNumber(contractMainDO.getConstructionTypeNumber());
// 合同类型名称:CTRT_TP_NAME
erpContractDO.setContractTypeName(contractMainDO.getConstructionTypeName());
// 合同类别:CTRT_CTGR
erpContractDO.setContractCategory(contractMainDO.getCategory());
// 是否虚拟合同:IS_VRTL_CTRT
erpContractDO.setIsVirtualContract(contractMainDO.getContractVirtual());
// 客商编号:SPLR_NUM 根据合同主表的收支方向判断如果为“支出”值为“ERP乙方公司编码”反之为“ERP甲方公司编码”
// erpContractDO.setSupplierNumber();
// 客商名称:SPLR_NAME 根据合同主表的收支方向判断如果为“支出”值为“ERP乙方公司名称”反之为“ERP甲方公司名称”
// erpContractDO.setSupplierName();
// 代理方:AGT
erpContractDO.setAgent(contractMainDO.getAgent());
// 合同实施主体编号:CTRT_IMPL_NUM 根据合同主表的收支方向判断如果为“支出”值为“ERP甲方公司编码”反之为“ERP乙方公司编码”
// erpContractDO.setContractImplementNumber();
// 合同签订主体编号:CTRT_SGN_NUM 根据合同主表的收支方向判断如果为“支出”值为“ERP甲方公司名称”反之为“ERP乙方公司名称”
// erpContractDO.setContractSignNumber();
// 合同签订日期:SGN_DT
if (contractMainDO.getSignDate() != null) {
erpContractDO.setSignDate(contractMainDO.getSignDate().toLocalDate());
}
// 合同起始日期:STRT_DT
if (contractMainDO.getStartDate() != null) {
erpContractDO.setStartDate(contractMainDO.getStartDate().toLocalDate());
}
// 合同终止日期:STOP_DT
if (contractMainDO.getEndDate() != null) {
erpContractDO.setStopDate(contractMainDO.getEndDate().toLocalDate());
}
// 币种编号:CUR
erpContractDO.setCurrency(contractMainDO.getCurrency());
// 合同总金额(原币-含税):SRC_AMT
erpContractDO.setSourceAmount(contractMainDO.getCooAmount());
// 合同总金额(本位币-含税):BSC_AMT
erpContractDO.setBasicAmount(contractMainDO.getBasicAmount());
// 变更后合同总金额(原币-含税):CHG_SRC_AMT
erpContractDO.setChangeSourceAmount(contractMainDO.getChangeCooAmount());
// 变更后合同总金额(本位币-含税):CHG_BSC_AMT
erpContractDO.setChangeBasicAmount(contractMainDO.getChangeBasicAmount());
// 合同状态编号:STS_NUM 参照060接口
// erpContractDO.setStatusNumber();
// 合同状态名称:STS_NAME 参照060接口
// erpContractDO.setStatusName();
// 是否有预付款:IS_PPYM
erpContractDO.setIsPrepayment(contractMainDO.getHasPrepayment());
// 预付款比例:PPYM_RTIO
erpContractDO.setPrepaymentRatio(contractMainDO.getPrepaymentRatio());
// 预付款金额:PPYM_AMT
erpContractDO.setPrepaymentAmount(contractMainDO.getPrepaymentAmount());
// 履约保证金-变更前(原币):SRC_BFR_BND
erpContractDO.setSourceBeforeBond(contractMainDO.getChangeCooAmountDeposit());
// 履约保证金-变更前(本位币):BSC_BFR_BND
erpContractDO.setBasicBeforeBond(contractMainDO.getChangeBasicAmountDeposit());
// 履约保证金-变更后(原币):SRC_AFT_BND
erpContractDO.setSourceAfterBond(contractMainDO.getChangeCooAmountDeposit());
// 履约保证金-变更后(本位币):BSC_AFT_BND
erpContractDO.setBasicAfterBond(contractMainDO.getChangeBasicAmountDeposit());
// 是否含质保金:IS_QUA_AMT
erpContractDO.setIsQualityassuranceAmount(contractMainDO.getHasQualityAmount());
// 质保金比例:QUA_RTIO
erpContractDO.setQualityassuranceRatio(contractMainDO.getQualityRatio());
// 质保金金额:QUA_AMT
erpContractDO.setQualityassuranceAmount(contractMainDO.getQualityAmount());
// 是否内部企业:IS_INTL
erpContractDO.setIsInternal(contractMainDO.getIsInternal());
// 收支性质:NTR
erpContractDO.setNature(contractMainDO.getDirection());
// 备注信息:RMK
erpContractDO.setRemark(contractMainDO.getRemark());
// 是否框架合同:IS_FMWK
erpContractDO.setIsFramework(contractMainDO.getIsFramework());
// 境内/境外:IS_DOM
erpContractDO.setIsDomestic(contractMainDO.getIsDomestic());
// 达到收款条件金额:PYEE_CND_AMT
erpContractDO.setPayeeConditionAmount(contractMainDO.getPayeeConditionAmount());
// 建筑服务发生地:ARCH_SVC_PLCE
erpContractDO.setArchitectureServicePlace(contractMainDO.getArchitectureServicePlace());
// 调用ERP模块
}
});
}
/** /**
* 校验合同内容 * 校验合同内容
* *
@@ -873,7 +989,7 @@ public class ContractServiceImpl implements ContractService {
throw exception(CONTRACT_DATA_NOT_EXISTS, TableFieldConstants.BSE_CTRT_MAIN_HS_DPST_LABEL); throw exception(CONTRACT_DATA_NOT_EXISTS, TableFieldConstants.BSE_CTRT_MAIN_HS_DPST_LABEL);
} }
// 是否有履约保证金为是的情况 // 是否有履约保证金为是的情况
if (ErpCtrtYesNoEnum.YES.getCode().equals(contract.getHasDeposit())) { if (DictEnum.ERP_CTRT_YN_YES.getCode().equals(contract.getHasDeposit())) {
// 原币履约保证金不能为空 // 原币履约保证金不能为空
if (contract.getCooAmountDeposit() == null) { if (contract.getCooAmountDeposit() == null) {
throw exception(CONTRACT_DATA_NOT_EXISTS, TableFieldConstants.BSE_CTRT_MAIN_COO_AMT_DPST_LABEL); throw exception(CONTRACT_DATA_NOT_EXISTS, TableFieldConstants.BSE_CTRT_MAIN_COO_AMT_DPST_LABEL);
@@ -888,7 +1004,7 @@ public class ContractServiceImpl implements ContractService {
throw exception(CONTRACT_DATA_NOT_EXISTS, TableFieldConstants.BSE_CTRT_MAIN_HS_PPYM_LABEL); throw exception(CONTRACT_DATA_NOT_EXISTS, TableFieldConstants.BSE_CTRT_MAIN_HS_PPYM_LABEL);
} }
// 是否有预付款为是的情况 // 是否有预付款为是的情况
if (ErpCtrtYesNoEnum.YES.getCode().equals(contract.getHasPrepayment())) { if (DictEnum.ERP_CTRT_YN_YES.getCode().equals(contract.getHasPrepayment())) {
// 预付款比例不能为空 // 预付款比例不能为空
if (contract.getPrepaymentRatio() == null) { if (contract.getPrepaymentRatio() == null) {
throw exception(CONTRACT_DATA_NOT_EXISTS, TableFieldConstants.BSE_CTRT_MAIN_PPYM_RTIO_LABEL); throw exception(CONTRACT_DATA_NOT_EXISTS, TableFieldConstants.BSE_CTRT_MAIN_PPYM_RTIO_LABEL);
@@ -903,7 +1019,7 @@ public class ContractServiceImpl implements ContractService {
throw exception(CONTRACT_DATA_NOT_EXISTS, TableFieldConstants.BSE_CTRT_MAIN_HS_QLT_AMT_LABEL); throw exception(CONTRACT_DATA_NOT_EXISTS, TableFieldConstants.BSE_CTRT_MAIN_HS_QLT_AMT_LABEL);
} }
// 是否有质保金为是的情况 // 是否有质保金为是的情况
if (ErpCtrtYesNoEnum.YES.getCode().equals(contract.getHasPrepayment())) { if (DictEnum.ERP_CTRT_YN_YES.getCode().equals(contract.getHasPrepayment())) {
// 质保金比例不能为空 // 质保金比例不能为空
if (contract.getQualityRatio() == null) { if (contract.getQualityRatio() == null) {
throw exception(CONTRACT_DATA_NOT_EXISTS, TableFieldConstants.BSE_CTRT_MAIN_QLT_RTIO_LABEL); throw exception(CONTRACT_DATA_NOT_EXISTS, TableFieldConstants.BSE_CTRT_MAIN_QLT_RTIO_LABEL);

View File

@@ -56,8 +56,8 @@ public class ErpWarehouseServiceImpl implements ErpWarehouseService {
// 插入 // 插入
ErpWarehouseDO warehouse = BeanUtils.toBean(createReqVO, ErpWarehouseDO.class); ErpWarehouseDO warehouse = BeanUtils.toBean(createReqVO, ErpWarehouseDO.class);
// 库位编码自动生成,格式 KW-0001,依次新增 // 库位编码自动生成,格式 KW-0001,依次新增
String maxCode = erpWarehouseMapper.selectMaxCode(); if (warehouse.getNumber() == null) {
if (warehouse.getNumber() == null){ String maxCode = erpWarehouseMapper.selectMaxCode();
if (maxCode == null) { if (maxCode == null) {
warehouse.setNumber("KW-0001"); warehouse.setNumber("KW-0001");
} else { } else {
@@ -81,9 +81,9 @@ public class ErpWarehouseServiceImpl implements ErpWarehouseService {
validateErpWarehouseExists(updateReqVO.getId()); validateErpWarehouseExists(updateReqVO.getId());
// 更新 // 更新
ErpWarehouseDO updateObj = BeanUtils.toBean(updateReqVO, ErpWarehouseDO.class); ErpWarehouseDO updateObj = BeanUtils.toBean(updateReqVO, ErpWarehouseDO.class);
if (updateObj.getType().equals("SPLY")&&updateObj.getIsEnable().equals("0")){ if (updateObj.getType().equals("SPLY") && updateObj.getIsEnable().equals("0")) {
erpWarehouseMapper.updateById(updateObj); erpWarehouseMapper.updateById(updateObj);
}else { } else {
throw exception(ERP_WAREHOUSE_NOT_ALLOW_UPDATE); throw exception(ERP_WAREHOUSE_NOT_ALLOW_UPDATE);
} }
} }
@@ -135,7 +135,7 @@ public class ErpWarehouseServiceImpl implements ErpWarehouseService {
@Override @Override
public void enableWarehouseList(List<ErpWarehouseSaveReqVO> saveReqVOS) { public void enableWarehouseList(List<ErpWarehouseSaveReqVO> saveReqVOS) {
List<ErpWarehouseDO> updateObj = BeanUtils.toBean(saveReqVOS, ErpWarehouseDO.class); List<ErpWarehouseDO> updateObj = BeanUtils.toBean(saveReqVOS, ErpWarehouseDO.class);
List<BatchResult> count = erpWarehouseMapper.updateById(updateObj); List<BatchResult> count = erpWarehouseMapper.updateById(updateObj);
if (CollUtil.isEmpty(count)) { if (CollUtil.isEmpty(count)) {
throw exception(ERP_WAREHOUSE_NOT_EXISTS); throw exception(ERP_WAREHOUSE_NOT_EXISTS);
} }
@@ -203,7 +203,7 @@ public class ErpWarehouseServiceImpl implements ErpWarehouseService {
} }
dataArrayALL.addAll(dataArray); dataArrayALL.addAll(dataArray);
} }
if (dataArrayALL.isEmpty()){ if (dataArrayALL.isEmpty()) {
throw exception(ERP_WAREHOUSE_NOT_EXISTS); throw exception(ERP_WAREHOUSE_NOT_EXISTS);
} }
@@ -252,7 +252,7 @@ public class ErpWarehouseServiceImpl implements ErpWarehouseService {
Map<String, Long> deleteNumbers = new HashMap<>(); Map<String, Long> deleteNumbers = new HashMap<>();
for (String number : numbers.keySet()) { for (String number : numbers.keySet()) {
if (!dataArrayNumbers.contains(number)) { if (!dataArrayNumbers.contains(number)) {
deleteNumbers.put(number,numbers.get(number)); deleteNumbers.put(number, numbers.get(number));
} }
} }
@@ -274,7 +274,7 @@ public class ErpWarehouseServiceImpl implements ErpWarehouseService {
); );
Map<String, Long> numberIdMap = insertedRecords.stream() Map<String, Long> numberIdMap = insertedRecords.stream()
.collect(Collectors.toMap(asset -> asset.getFactoryNumber() + "-" + asset.getNumber(), ErpWarehouseDO::getId)); .collect(Collectors.toMap(asset -> asset.getFactoryNumber() + "-" + asset.getNumber(), ErpWarehouseDO::getId));
myRedisConfig.addRedisCacheMap(result.key,numberIdMap); myRedisConfig.addRedisCacheMap(result.key, numberIdMap);
} }
if (!result.toUpdate.isEmpty()) { if (!result.toUpdate.isEmpty()) {
erpWarehouseMapper.updateBatch(result.toUpdate); erpWarehouseMapper.updateBatch(result.toUpdate);

View File

@@ -28,7 +28,7 @@
and f.NUM like concat('%', #{number}, '%') and f.NUM like concat('%', #{number}, '%')
</if> </if>
<if test="erpCompanyNumber != null"> <if test="erpCompanyNumber != null">
and f.CPN_ID = like concat('%', #{erpCompanyNumber}, '%') and f.CPN_ID like concat('%', #{erpCompanyNumber}, '%')
</if> </if>
<if test="erpCompanyName != null"> <if test="erpCompanyName != null">
and c.NAME like concat('%', #{erpCompanyName}, '%') and c.NAME like concat('%', #{erpCompanyName}, '%')

View File

@@ -23,7 +23,7 @@
f.IS_ENB as isEnable, f.IS_ENB as isEnable,
f.FACT_NUM as factoryNumber, f.FACT_NUM as factoryNumber,
c.NAME as factoryName c.NAME as factoryName
from sply_erp_wrh f left join sply_erp_fact c on f.FACT_NUM = c.NUM; from sply_erp_wrh f left join sply_erp_fact c on f.FACT_NUM = c.NUM
where f.DELETED = 0 where f.DELETED = 0
<if test="name != null"> <if test="name != null">
and f.NAME like concat('%', #{name}, '%') and f.NAME like concat('%', #{name}, '%')
@@ -32,7 +32,7 @@
and f.NUM like concat('%', #{number}, '%') and f.NUM like concat('%', #{number}, '%')
</if> </if>
<if test="factoryNumber != null"> <if test="factoryNumber != null">
and f.FACT_NUM = like concat('%', #{factoryNumber}, '%') and f.FACT_NUM like concat('%', #{factoryNumber}, '%')
</if> </if>
<if test="factoryName != null"> <if test="factoryName != null">
and c.NAME like concat('%', #{factoryName}, '%') and c.NAME like concat('%', #{factoryName}, '%')