package com.product.contract.service; import com.product.common.lang.StringUtils; import com.product.contract.config.CmnConst; import com.product.contract.service.ide.IContractInvoiceService; import com.product.core.dao.BaseDao; import com.product.core.entity.DataTableEntity; import com.product.core.entity.FieldSetEntity; import com.product.core.exception.BaseException; import com.product.core.permission.PermissionService; import com.product.core.service.support.AbstractBaseService; import com.product.core.service.support.QueryFilterService; import com.product.core.spring.context.SpringMVCContextHolder; import com.product.core.transfer.Transactional; import com.product.util.BaseUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import java.util.Date; /** * Copyright LX * @Title: ContractInvoiceService * @Project: product-server * @date: 2021-06-29 11:24 * @author: ZhouJie * @Description: 合同开票 */ @Component public class ContractInvoiceService extends AbstractBaseService implements IContractInvoiceService { @Autowired public BaseDao baseDao; @Autowired PermissionService permissionService; @Autowired QueryFilterService queryFilterService; /** * 保存合同开票 * @param fs * @return */ @Override @Transactional public String saveContractInvoice(FieldSetEntity fs) { if(StringUtils.isEmpty(fs.getString(CmnConst.UUID))){ fs.setValue("created_by", SpringMVCContextHolder.getCurrentUser().getUser_id()); fs.setValue("org_level_uuid", SpringMVCContextHolder.getCurrentUser().getOrg_level_uuid()); fs.setValue("created_utc_datetime",new Date()); String add = baseDao.add(fs, true); writeBackInvoice(fs); return add; } else { fs.setValue("updated_by", SpringMVCContextHolder.getCurrentUser().getUser_id()); fs.setValue("updated_utc_datetime",new Date()); baseDao.update(fs); writeBackInvoice(fs); return fs.getString(CmnConst.UUID); } } /** * 回写回款金额到合同 * @param fs */ private void writeBackInvoice(FieldSetEntity fs){ //按照条款回写到合同子表 DataTableEntity subDataTable = fs.getSubDataTable(CmnConst.LX_PROJECT_CONTRACT_INVOICE_INFO); for (int i = 0; i