| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244 |
- package cn.com.lzt.contract.service.impl;
- import cn.com.lzt.contract.entity.ContractEntity;
- import cn.com.lzt.contract.service.ContractServiceI;
- import cn.com.lzt.contractitem.entity.ContractItemEntity;
- import cn.com.lzt.contractpayrule.entity.ContractPayruleEntity;
- import org.jeecgframework.core.common.exception.BusinessException;
- import org.jeecgframework.core.common.service.impl.CommonServiceImpl;
- import org.jeecgframework.core.constant.Globals;
- import org.jeecgframework.core.util.DateUtils;
- import org.jeecgframework.core.util.MyBeanUtils;
- import org.jeecgframework.core.util.StringUtil;
- import org.jeecgframework.core.util.oConvertUtils;
- import org.springframework.stereotype.Service;
- import org.springframework.transaction.annotation.Transactional;
- import java.util.Date;
- import java.util.List;
- import java.util.UUID;
- @Service("contractService")
- @Transactional
- public class ContractServiceImpl extends CommonServiceImpl implements ContractServiceI {
-
- public <T> void delete(T entity) {
- super.delete(entity);
- //执行删除操作配置的sql增强
- this.doDelSql((ContractEntity)entity);
- }
-
- public void addMain(ContractEntity contract,
- List<ContractPayruleEntity> contractPayruleList,List<ContractItemEntity> contractItemList){
- //保存主信息
- this.save(contract);
-
- /**保存-支付条款*/
- for(ContractPayruleEntity contractPayrule:contractPayruleList){
- contractPayrule.setId(null);
- //外键设置
- contractPayrule.setContractid(contract.getId());
- this.save(contractPayrule);
- }
- /**保存-货品、服务明细*/
- for(ContractItemEntity contractItem:contractItemList){
- contractItem.setId(null);
- //外键设置
- contractItem.setContractid(contract.getId());
- this.save(contractItem);
- }
- //执行新增操作配置的sql增强
- this.doAddSql(contract);
- }
-
- public void updateMain(ContractEntity contract,
- List<ContractPayruleEntity> contractPayruleList,List<ContractItemEntity> contractItemList) {
- //保存主表信息
- if(StringUtil.isNotEmpty(contract.getId())){
- try {
- ContractEntity temp = findUniqueByProperty(ContractEntity.class, "id", contract.getId());
- MyBeanUtils.copyBeanNotNull2Bean(contract, temp);
- this.saveOrUpdate(temp);
- } catch (Exception e) {
- e.printStackTrace();
- }
- }else{
- this.saveOrUpdate(contract);
- }
- //===================================================================================
- //获取参数
- Object id0 = contract.getId();
- Object id1 = contract.getId();
- //===================================================================================
- //1.查询出数据库的明细数据-支付条款
- String hql0 = "from ContractPayruleEntity where 1 = 1 AND cONTRACTID =? ";
- List<ContractPayruleEntity> contractPayruleOldList = this.findHql(hql0,id0);
- //2.筛选更新明细数据-支付条款
- if(contractPayruleList!=null&&contractPayruleList.size()>0){
- for(ContractPayruleEntity oldE:contractPayruleOldList){
- boolean isUpdate = false;
- for(ContractPayruleEntity sendE:contractPayruleList){
- //需要更新的明细数据-支付条款
- if(oldE.getId().equals(sendE.getId())){
- try {
- MyBeanUtils.copyBeanNotNull2Bean(sendE,oldE);
- this.saveOrUpdate(oldE);
- } catch (Exception e) {
- e.printStackTrace();
- throw new BusinessException(e.getMessage());
- }
- isUpdate= true;
- break;
- }
- }
- if(!isUpdate){
- //如果数据库存在的明细,前台没有传递过来则是删除-支付条款
- super.delete(oldE);
- }
-
- }
- //3.持久化新增的数据-支付条款
- for(ContractPayruleEntity contractPayrule:contractPayruleList){
- if(oConvertUtils.isEmpty(contractPayrule.getId())){
- //支付期间、支付金额、支付比例都为空时,则此行不保存
- if(oConvertUtils.isEmpty(contractPayrule.getPayperiod())
- && oConvertUtils.getDou(contractPayrule.getAmount(),0) == 0
- && oConvertUtils.getDou(contractPayrule.getPercent(),0) == 0)
- continue;
- //外键设置
- contractPayrule.setContractid(contract.getId());
- this.save(contractPayrule);
- }
- }
- }
- //===================================================================================
- //1.查询出数据库的明细数据-货品、服务明细
- String hql1 = "from ContractItemEntity where 1 = 1 AND cONTRACTID =? ";
- List<ContractItemEntity> contractItemOldList = this.findHql(hql1,id1);
- //2.筛选更新明细数据-货品、服务明细
- if(contractItemList!=null&&contractItemList.size()>0){
- for(ContractItemEntity oldE:contractItemOldList){
- boolean isUpdate = false;
- for(ContractItemEntity sendE:contractItemList){
- //需要更新的明细数据-货品、服务明细
- if(oldE.getId().equals(sendE.getId())){
- try {
- MyBeanUtils.copyBeanNotNull2Bean(sendE,oldE);
- this.saveOrUpdate(oldE);
- } catch (Exception e) {
- e.printStackTrace();
- throw new BusinessException(e.getMessage());
- }
- isUpdate= true;
- break;
- }
- }
- if(!isUpdate){
- //如果数据库存在的明细,前台没有传递过来则是删除-货品、服务明细
- super.delete(oldE);
- }
-
- }
- //3.持久化新增的数据-货品、服务明细
- for(ContractItemEntity contractItem:contractItemList){
- if(oConvertUtils.isEmpty(contractItem.getId())){
- //外键设置
- contractItem.setContractid(contract.getId());
- this.save(contractItem);
- }
- }
- }
- //执行更新操作配置的sql增强
- this.doUpdateSql(contract);
- }
-
- public void delMain(ContractEntity contract) {
- //删除主表信息
- this.delete(contract);
- //===================================================================================
- //获取参数
- Object id0 = contract.getId();
- Object id1 = contract.getId();
- //===================================================================================
- //删除-支付条款
- String hql0 = "from ContractPayruleEntity where 1 = 1 AND cONTRACTID =? ";
- List<ContractPayruleEntity> contractPayruleOldList = this.findHql(hql0,id0);
- this.deleteAllEntitie(contractPayruleOldList);
- //===================================================================================
- //删除-货品、服务明细
- String hql1 = "from ContractItemEntity where 1 = 1 AND cONTRACTID =? ";
- List<ContractItemEntity> contractItemOldList = this.findHql(hql1,id1);
- this.deleteAllEntitie(contractItemOldList);
- }
-
-
- /**
- * 默认按钮-sql增强-新增操作
- * @param id
- * @return
- */
- public boolean doAddSql(ContractEntity t){
- return true;
- }
- /**
- * 默认按钮-sql增强-更新操作
- * @param id
- * @return
- */
- public boolean doUpdateSql(ContractEntity t){
- return true;
- }
- /**
- * 默认按钮-sql增强-删除操作
- * @param id
- * @return
- */
- public boolean doDelSql(ContractEntity t){
- return true;
- }
-
- /**
- * 替换sql中的变量
- * @param sql
- * @return
- */
- public String replaceVal(String sql,ContractEntity t){
- sql = sql.replace("#{id}",String.valueOf(t.getId()));
- sql = sql.replace("#{create_name}",String.valueOf(t.getCreateName()));
- sql = sql.replace("#{create_by}",String.valueOf(t.getCreateBy()));
- sql = sql.replace("#{create_date}",String.valueOf(t.getCreateDate()));
- sql = sql.replace("#{update_name}",String.valueOf(t.getUpdateName()));
- sql = sql.replace("#{update_by}",String.valueOf(t.getUpdateBy()));
- sql = sql.replace("#{update_date}",String.valueOf(t.getUpdateDate()));
- sql = sql.replace("#{sys_org_code}",String.valueOf(t.getSysOrgCode()));
- sql = sql.replace("#{bpm_status}",String.valueOf(t.getBpmStatus()));
- sql = sql.replace("#{type}",String.valueOf(t.getType()));
- sql = sql.replace("#{code}",String.valueOf(t.getCode()));
- sql = sql.replace("#{name}",String.valueOf(t.getName()));
- sql = sql.replace("#{signdate}",String.valueOf(t.getSigndate()));
- sql = sql.replace("#{description}",String.valueOf(t.getDescription()));
- sql = sql.replace("#{totalamount}",String.valueOf(t.getTotalamount()));
- sql = sql.replace("#{totalinvoice}",String.valueOf(t.getTotalinvoice()));
- sql = sql.replace("#{totalpayment}",String.valueOf(t.getTotalpayment()));
- sql = sql.replace("#{totalincome}",String.valueOf(t.getTotalincome()));
- sql = sql.replace("#{startdate}",String.valueOf(t.getStartdate()));
- sql = sql.replace("#{enddate}",String.valueOf(t.getEnddate()));
- sql = sql.replace("#{auditdate}",String.valueOf(t.getAuditdate()));
- sql = sql.replace("#{busstatus}",String.valueOf(t.getBusstatus()));
- sql = sql.replace("#{partnerid}",String.valueOf(t.getPartnerid()));
- sql = sql.replace("#{projectid}",String.valueOf(t.getProjectid()));
- sql = sql.replace("#{thirdpartner}",String.valueOf(t.getThirdpartner()));
- sql = sql.replace("#{UUID}",UUID.randomUUID().toString());
- return sql;
- }
- @Override
- public void doActive() {
- String doActiveSQL = "update t_b_contract set busstatus =? where left(startdate,10) <=? and busstatus = ? ";
- executeSql(doActiveSQL, Globals.CONTRACT_STATUS_ACTIVE,DateUtils.date_sdf.format(new Date()),Globals.CONTRACT_STATUS_SIGN);
- String doUnActiveSQL = "update t_b_contract set busstatus =? where left(enddate,10) <=? and busstatus = ? ";
- executeSql(doUnActiveSQL, Globals.CONTRACT_STATUS_EXPIRY,DateUtils.date_sdf.format(new Date()),Globals.CONTRACT_STATUS_ACTIVE);
- }
- }
|