ContractPServiceImpl.java 9.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239
  1. package cn.com.lzt.contractp.service.impl;
  2. import cn.com.lzt.contractp.entity.ContractPEntity;
  3. import cn.com.lzt.contractp.service.ContractPServiceI;
  4. import cn.com.lzt.contractpitem.entity.ContractPItemEntity;
  5. import cn.com.lzt.contractppayrule.entity.ContractPPayruleEntity;
  6. import org.jeecgframework.core.common.exception.BusinessException;
  7. import org.jeecgframework.core.common.service.impl.CommonServiceImpl;
  8. import org.jeecgframework.core.constant.Globals;
  9. import org.jeecgframework.core.util.DateUtils;
  10. import org.jeecgframework.core.util.MyBeanUtils;
  11. import org.jeecgframework.core.util.StringUtil;
  12. import org.jeecgframework.core.util.oConvertUtils;
  13. import org.springframework.stereotype.Service;
  14. import org.springframework.transaction.annotation.Transactional;
  15. import java.util.Date;
  16. import java.util.List;
  17. import java.util.UUID;
  18. @Service("contractPService")
  19. @Transactional
  20. public class ContractPServiceImpl extends CommonServiceImpl implements ContractPServiceI {
  21. public <T> void delete(T entity) {
  22. super.delete(entity);
  23. //执行删除操作配置的sql增强
  24. this.doDelSql((ContractPEntity)entity);
  25. }
  26. public void addMain(ContractPEntity contract,
  27. List<ContractPPayruleEntity> contractPPayruleList,List<ContractPItemEntity> contractPItemList){
  28. //保存主信息
  29. this.save(contract);
  30. /**保存-支付条款*/
  31. for(ContractPPayruleEntity contractPayrule:contractPPayruleList){
  32. //外键设置
  33. contractPayrule.setContractid(contract.getId());
  34. this.save(contractPayrule);
  35. }
  36. /**保存-货品、服务明细*/
  37. for(ContractPItemEntity contractItem:contractPItemList){
  38. //外键设置
  39. contractItem.setContractid(contract.getId());
  40. this.save(contractItem);
  41. }
  42. //执行新增操作配置的sql增强
  43. this.doAddSql(contract);
  44. }
  45. public void updateMain(ContractPEntity contract,
  46. List<ContractPPayruleEntity> contractPPayruleList,List<ContractPItemEntity> contractPItemList) {
  47. //保存主表信息
  48. if(StringUtil.isNotEmpty(contract.getId())){
  49. try {
  50. ContractPEntity temp = findUniqueByProperty(ContractPEntity.class, "id", contract.getId());
  51. MyBeanUtils.copyBeanNotNull2Bean(contract, temp);
  52. this.saveOrUpdate(temp);
  53. } catch (Exception e) {
  54. e.printStackTrace();
  55. }
  56. }else{
  57. this.saveOrUpdate(contract);
  58. }
  59. //===================================================================================
  60. //获取参数
  61. Object id0 = contract.getId();
  62. Object id1 = contract.getId();
  63. //===================================================================================
  64. //1.查询出数据库的明细数据-支付条款
  65. String hql0 = "from ContractPPayruleEntity where 1 = 1 AND cONTRACTID =? ";
  66. List<ContractPPayruleEntity> contractPayruleOldList = this.findHql(hql0,id0);
  67. //2.筛选更新明细数据-支付条款
  68. if(contractPPayruleList!=null&&contractPPayruleList.size()>0){
  69. for(ContractPPayruleEntity oldE:contractPayruleOldList){
  70. boolean isUpdate = false;
  71. for(ContractPPayruleEntity sendE:contractPPayruleList){
  72. //需要更新的明细数据-支付条款
  73. if(oldE.getId().equals(sendE.getId())){
  74. try {
  75. MyBeanUtils.copyBeanNotNull2Bean(sendE,oldE);
  76. this.saveOrUpdate(oldE);
  77. } catch (Exception e) {
  78. e.printStackTrace();
  79. throw new BusinessException(e.getMessage());
  80. }
  81. isUpdate= true;
  82. break;
  83. }
  84. }
  85. if(!isUpdate){
  86. //如果数据库存在的明细,前台没有传递过来则是删除-支付条款
  87. super.delete(oldE);
  88. }
  89. }
  90. //3.持久化新增的数据-支付条款
  91. for(ContractPPayruleEntity contractPayrule:contractPPayruleList){
  92. if(oConvertUtils.isEmpty(contractPayrule.getId())){
  93. //支付期间、支付金额、支付比例都为空时,则此行不保存
  94. if(oConvertUtils.isEmpty(contractPayrule.getPayperiod())
  95. && oConvertUtils.getDou(contractPayrule.getAmount(),0) == 0
  96. && oConvertUtils.getDou(contractPayrule.getPercent(),0) == 0)
  97. continue;
  98. //外键设置
  99. contractPayrule.setContractid(contract.getId());
  100. this.save(contractPayrule);
  101. }
  102. }
  103. }
  104. //===================================================================================
  105. //1.查询出数据库的明细数据-货品、服务明细
  106. String hql1 = "from ContractPItemEntity where 1 = 1 AND cONTRACTID =? ";
  107. List<ContractPItemEntity> contractItemOldList = this.findHql(hql1,id1);
  108. //2.筛选更新明细数据-货品、服务明细
  109. if(contractPItemList!=null&&contractPItemList.size()>0){
  110. for(ContractPItemEntity oldE:contractItemOldList){
  111. boolean isUpdate = false;
  112. for(ContractPItemEntity sendE:contractPItemList){
  113. //需要更新的明细数据-货品、服务明细
  114. if(oldE.getId().equals(sendE.getId())){
  115. try {
  116. MyBeanUtils.copyBeanNotNull2Bean(sendE,oldE);
  117. this.saveOrUpdate(oldE);
  118. } catch (Exception e) {
  119. e.printStackTrace();
  120. throw new BusinessException(e.getMessage());
  121. }
  122. isUpdate= true;
  123. break;
  124. }
  125. }
  126. if(!isUpdate){
  127. //如果数据库存在的明细,前台没有传递过来则是删除-货品、服务明细
  128. super.delete(oldE);
  129. }
  130. }
  131. //3.持久化新增的数据-货品、服务明细
  132. for(ContractPItemEntity contractItem:contractPItemList){
  133. if(oConvertUtils.isEmpty(contractItem.getId())){
  134. //外键设置
  135. contractItem.setContractid(contract.getId());
  136. this.save(contractItem);
  137. }
  138. }
  139. }
  140. //执行更新操作配置的sql增强
  141. this.doUpdateSql(contract);
  142. }
  143. public void delMain(ContractPEntity contract) {
  144. //删除主表信息
  145. this.delete(contract);
  146. //===================================================================================
  147. //获取参数
  148. Object id0 = contract.getId();
  149. Object id1 = contract.getId();
  150. //===================================================================================
  151. //删除-支付条款
  152. String hql0 = "from ContractPPayruleEntity where 1 = 1 AND cONTRACTID =? ";
  153. List<ContractPPayruleEntity> contractPayruleOldList = this.findHql(hql0,id0);
  154. this.deleteAllEntitie(contractPayruleOldList);
  155. //===================================================================================
  156. //删除-货品、服务明细
  157. String hql1 = "from ContractPItemEntity where 1 = 1 AND cONTRACTID =? ";
  158. List<ContractPItemEntity> contractItemOldList = this.findHql(hql1,id1);
  159. this.deleteAllEntitie(contractItemOldList);
  160. }
  161. /**
  162. * 默认按钮-sql增强-新增操作
  163. * @param id
  164. * @return
  165. */
  166. public boolean doAddSql(ContractPEntity t){
  167. return true;
  168. }
  169. /**
  170. * 默认按钮-sql增强-更新操作
  171. * @param id
  172. * @return
  173. */
  174. public boolean doUpdateSql(ContractPEntity t){
  175. return true;
  176. }
  177. /**
  178. * 默认按钮-sql增强-删除操作
  179. * @param id
  180. * @return
  181. */
  182. public boolean doDelSql(ContractPEntity t){
  183. return true;
  184. }
  185. /**
  186. * 替换sql中的变量
  187. * @param sql
  188. * @return
  189. */
  190. public String replaceVal(String sql,ContractPEntity t){
  191. sql = sql.replace("#{id}",String.valueOf(t.getId()));
  192. sql = sql.replace("#{create_name}",String.valueOf(t.getCreateName()));
  193. sql = sql.replace("#{create_by}",String.valueOf(t.getCreateBy()));
  194. sql = sql.replace("#{create_date}",String.valueOf(t.getCreateDate()));
  195. sql = sql.replace("#{update_name}",String.valueOf(t.getUpdateName()));
  196. sql = sql.replace("#{update_by}",String.valueOf(t.getUpdateBy()));
  197. sql = sql.replace("#{update_date}",String.valueOf(t.getUpdateDate()));
  198. sql = sql.replace("#{sys_org_code}",String.valueOf(t.getSysOrgCode()));
  199. sql = sql.replace("#{bpm_status}",String.valueOf(t.getBpmStatus()));
  200. sql = sql.replace("#{type}",String.valueOf(t.getType()));
  201. sql = sql.replace("#{code}",String.valueOf(t.getCode()));
  202. sql = sql.replace("#{name}",String.valueOf(t.getName()));
  203. sql = sql.replace("#{signdate}",String.valueOf(t.getSigndate()));
  204. sql = sql.replace("#{description}",String.valueOf(t.getDescription()));
  205. sql = sql.replace("#{totalamount}",String.valueOf(t.getTotalamount()));
  206. sql = sql.replace("#{totalinvoice}",String.valueOf(t.getTotalinvoice()));
  207. sql = sql.replace("#{totalpayment}",String.valueOf(t.getTotalpayment()));
  208. sql = sql.replace("#{totalincome}",String.valueOf(t.getTotalincome()));
  209. sql = sql.replace("#{startdate}",String.valueOf(t.getStartdate()));
  210. sql = sql.replace("#{enddate}",String.valueOf(t.getEnddate()));
  211. sql = sql.replace("#{auditdate}",String.valueOf(t.getAuditdate()));
  212. sql = sql.replace("#{busstatus}",String.valueOf(t.getBusstatus()));
  213. sql = sql.replace("#{partnerid}",String.valueOf(t.getPartnerid()));
  214. sql = sql.replace("#{projectid}",String.valueOf(t.getProjectid()));
  215. sql = sql.replace("#{thirdpartner}",String.valueOf(t.getThirdpartner()));
  216. sql = sql.replace("#{UUID}",UUID.randomUUID().toString());
  217. return sql;
  218. }
  219. @Override
  220. public void doActive() {
  221. String doActiveSQL = "update t_b_contract_p set busstatus =? where left(startdate,10) <=? and busstatus = ? ";
  222. executeSql(doActiveSQL, Globals.CONTRACT_STATUS_ACTIVE,DateUtils.date_sdf.format(new Date()),Globals.CONTRACT_STATUS_SIGN);
  223. }
  224. }