1.0.97 合同信息添加复制按钮(复制合同信息),添加客户名称检索。

dev
yinq 1 day ago
parent 08c7e7f07f
commit 261e584e1a

@ -122,6 +122,17 @@ public class ErpContractInfoController extends BaseController {
return R.ok(erpContractInfoService.contractSubmitAndFlowStart(bo)); return R.ok(erpContractInfoService.contractSubmitAndFlowStart(bo));
} }
/**
*
*/
@SaCheckPermission("oa/erp:contractInfo:update")
@Log(title = "合同信息", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping("/copy")
public R<ErpContractInfoVo> copy(@RequestBody ErpContractInfoBo bo) {
return R.ok(erpContractInfoService.copyContract(bo));
}
/** /**
* *
*/ */

@ -80,4 +80,12 @@ public interface IErpContractInfoService {
* @return WordMap * @return WordMap
*/ */
java.util.Map<String, Object> buildApprovalWordExportData(Long contractId); java.util.Map<String, Object> buildApprovalWordExportData(Long contractId);
/**
*
*
* @param bo
* @return
*/
ErpContractInfoVo copyContract(ErpContractInfoBo bo);
} }

@ -187,7 +187,6 @@ public class ErpContractInfoServiceImpl implements IErpContractInfoService {
} }
private MPJLambdaWrapper<ErpContractInfo> buildQueryWrapper(ErpContractInfoBo bo) { private MPJLambdaWrapper<ErpContractInfo> buildQueryWrapper(ErpContractInfoBo bo) {
Map<String, Object> params = bo.getParams();
MPJLambdaWrapper<ErpContractInfo> lqw = JoinWrappers.lambda(ErpContractInfo.class) MPJLambdaWrapper<ErpContractInfo> lqw = JoinWrappers.lambda(ErpContractInfo.class)
.selectAll(ErpContractInfo.class) .selectAll(ErpContractInfo.class)
.eq(StringUtils.isNotBlank(bo.getContractFlag()), ErpContractInfo::getContractFlag, .eq(StringUtils.isNotBlank(bo.getContractFlag()), ErpContractInfo::getContractFlag,
@ -206,6 +205,8 @@ public class ErpContractInfoServiceImpl implements IErpContractInfoService {
bo.getBusinessDirection()) bo.getBusinessDirection())
.eq(bo.getContractDeptId() != null, ErpContractInfo::getContractDeptId, bo.getContractDeptId()) .eq(bo.getContractDeptId() != null, ErpContractInfo::getContractDeptId, bo.getContractDeptId())
.eq(bo.getContractDate() != null, ErpContractInfo::getContractDate, bo.getContractDate()) .eq(bo.getContractDate() != null, ErpContractInfo::getContractDate, bo.getContractDate())
.apply(StringUtils.isNotBlank(bo.getOneCustomerName()),
"c1.customer_name LIKE CONCAT('%', {0}, '%')", bo.getOneCustomerName())
.eq(bo.getTotalPrice() != null, ErpContractInfo::getTotalPrice, bo.getTotalPrice()) .eq(bo.getTotalPrice() != null, ErpContractInfo::getTotalPrice, bo.getTotalPrice())
.eq(StringUtils.isNotBlank(bo.getContractStatus()), ErpContractInfo::getContractStatus, .eq(StringUtils.isNotBlank(bo.getContractStatus()), ErpContractInfo::getContractStatus,
bo.getContractStatus()) bo.getContractStatus())
@ -223,8 +224,8 @@ public class ErpContractInfoServiceImpl implements IErpContractInfoService {
.eq(StringUtils.isNotBlank(bo.getContractTemplateFlag()), ErpContractInfo::getContractTemplateFlag, .eq(StringUtils.isNotBlank(bo.getContractTemplateFlag()), ErpContractInfo::getContractTemplateFlag,
bo.getContractTemplateFlag()) bo.getContractTemplateFlag())
.eq("t.del_flag", "0") .eq("t.del_flag", "0")
.eq("t.active_flag", "1") .eq("t.active_flag", "1");
.orderByDesc(ErpContractInfo::getCreateTime); lqw.orderByDesc(ErpContractInfo::getCreateTime);
return lqw; return lqw;
} }
@ -263,6 +264,58 @@ public class ErpContractInfoServiceImpl implements IErpContractInfoService {
return MapstructUtils.convert(add, ErpContractInfoVo.class); return MapstructUtils.convert(add, ErpContractInfoVo.class);
} }
/**
*
*
* @param copyBo
* @return
*/
@Override
@Transactional(rollbackFor = Exception.class)
public ErpContractInfoVo copyContract(ErpContractInfoBo copyBo) {
Long sourceContractId = copyBo.getContractId();
String contractCode = copyBo.getContractCode().trim();
String contractName = copyBo.getContractName().trim();
ErpContractInfoVo src = queryById(sourceContractId);
if (src == null) {
throw new ServiceException("被复制合同不存在");
}
ErpContractInfoBo newBo = BeanUtil.copyProperties(src, ErpContractInfoBo.class,
"contractId", "contractMaterialList", "contractPaymentMethodList");
newBo.setContractCode(contractCode);
newBo.setContractName(contractName);
newBo.setContractStatus(OAStatusEnum.DRAFT.getStatus());
newBo.setFlowStatus(BusinessStatusEnum.DRAFT.getStatus());
newBo.setCustomerContractCode(null);
newBo.setSignatureAppendix(null);
newBo.setInternalContractCode(null);
newBo.setExternalContractCode(null);
newBo.setOrderContractCode(null);
newBo.setProjectContractCode(null);
newBo.setOriginalContractId(null);
List<ErpContractMaterial> materials = new ArrayList<>();
if (src.getContractMaterialList() != null) {
for (ErpContractMaterialVo mvo : src.getContractMaterialList()) {
ErpContractMaterial m = BeanUtil.copyProperties(mvo, ErpContractMaterial.class);
m.setContractMaterialId(null);
m.setContractId(null);
materials.add(m);
}
}
newBo.setContractMaterialList(materials);
List<ErpContractPaymentMethod> payments = new ArrayList<>();
if (src.getContractPaymentMethodList() != null) {
for (ErpContractPaymentMethodVo pvo : src.getContractPaymentMethodList()) {
ErpContractPaymentMethod p = BeanUtil.copyProperties(pvo, ErpContractPaymentMethod.class);
p.setPaymentMethodId(null);
p.setContractId(null);
payments.add(p);
}
}
newBo.setContractPaymentMethodList(payments);
return insertByBo(newBo);
}
/** /**
* *
* *

Loading…
Cancel
Save