MaterialsUsingServiceImpl.java 6.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167
  1. package cn.com.lzt.materialsusing.service.impl;
  2. import cn.com.lzt.materialsusing.dao.MaterialsUsingDao;
  3. import cn.com.lzt.materialsusing.entity.MaterialsUsingEntity;
  4. import cn.com.lzt.materialsusing.service.MaterialsUsingServiceI;
  5. import cn.com.lzt.materialsusingdetail.entity.MaterialsUsingDetailsEntity;
  6. import org.jeecgframework.core.common.exception.BusinessException;
  7. import org.jeecgframework.core.common.service.impl.CommonServiceImpl;
  8. import org.jeecgframework.core.util.MyBeanUtils;
  9. import org.jeecgframework.core.util.oConvertUtils;
  10. import org.springframework.beans.factory.annotation.Autowired;
  11. import org.springframework.stereotype.Service;
  12. import org.springframework.transaction.annotation.Transactional;
  13. import java.util.HashMap;
  14. import java.util.List;
  15. import java.util.UUID;
  16. @Service("materialsUsingService")
  17. @Transactional
  18. public class MaterialsUsingServiceImpl extends CommonServiceImpl implements MaterialsUsingServiceI {
  19. @Autowired
  20. private MaterialsUsingDao materialsUsingDao;
  21. public <T> void delete(T entity) {
  22. super.delete(entity);
  23. //执行删除操作配置的sql增强
  24. this.doDelSql((MaterialsUsingEntity)entity);
  25. }
  26. public void addMain(MaterialsUsingEntity MaterialsUsing,
  27. List<MaterialsUsingDetailsEntity> MaterialsUsingDetailsList){
  28. //保存主信息
  29. this.save(MaterialsUsing);
  30. /**保存-采购商品*/
  31. for(MaterialsUsingDetailsEntity MaterialsUsingDetails:MaterialsUsingDetailsList){
  32. //外键设置
  33. MaterialsUsingDetails.setFkId(MaterialsUsing.getId());
  34. this.save(MaterialsUsingDetails);
  35. }
  36. //执行新增操作配置的sql增强
  37. this.doAddSql(MaterialsUsing);
  38. }
  39. public void updateMain(MaterialsUsingEntity materialsUsing,
  40. List<MaterialsUsingDetailsEntity> materialsUsingDetailsList) {
  41. //保存主表信息
  42. this.saveOrUpdate(materialsUsing);
  43. //===================================================================================
  44. //获取参数
  45. Object id0 = materialsUsing.getId();
  46. //===================================================================================
  47. //1.查询出数据库的明细数据-采购商品
  48. String hql0 = "from MaterialsUsingDetailsEntity where 1 = 1 AND fK_ID =? ";
  49. List<MaterialsUsingDetailsEntity> materialsUsingDetailsOldList = this.findHql(hql0,id0);
  50. //2.筛选更新明细数据-采购商品
  51. if(materialsUsingDetailsList!=null&&materialsUsingDetailsList.size()>0){
  52. for(MaterialsUsingDetailsEntity oldE:materialsUsingDetailsOldList){
  53. boolean isUpdate = false;
  54. for(MaterialsUsingDetailsEntity sendE:materialsUsingDetailsList){
  55. //需要更新的明细数据-采购商品
  56. if(oldE.getId().equals(sendE.getId())){
  57. try {
  58. MyBeanUtils.copyBeanNotNull2Bean(sendE,oldE);
  59. this.saveOrUpdate(oldE);
  60. } catch (Exception e) {
  61. e.printStackTrace();
  62. throw new BusinessException(e.getMessage());
  63. }
  64. isUpdate= true;
  65. break;
  66. }
  67. }
  68. if(!isUpdate){
  69. //如果数据库存在的明细,前台没有传递过来则是删除-采购商品
  70. super.delete(oldE);
  71. }
  72. }
  73. //3.持久化新增的数据-采购商品
  74. for(MaterialsUsingDetailsEntity materialsUsingDetails:materialsUsingDetailsList){
  75. if(oConvertUtils.isEmpty(materialsUsingDetails.getId())){
  76. //外键设置
  77. materialsUsingDetails.setFkId(materialsUsing.getId());
  78. this.save(materialsUsingDetails);
  79. }
  80. }
  81. }
  82. //执行更新操作配置的sql增强
  83. this.doUpdateSql(materialsUsing);
  84. //TODO 回写申购单采购数量
  85. //END 回写申购单采购数量
  86. }
  87. public void delMain(MaterialsUsingEntity materialsUsing) {
  88. //获取参数
  89. Object id0 = materialsUsing.getId();
  90. //===================================================================================
  91. //删除-商品
  92. String hql0 = "from MaterialsUsingDetailsEntity where 1 = 1 AND fK_ID =? ";
  93. List<MaterialsUsingDetailsEntity> materialsUsingDetailsOldList = this.findHql(hql0,id0);
  94. HashMap<String,Double> qgdCallbackValue = new HashMap<String,Double>();
  95. /**保存-商品*/
  96. this.deleteAllEntitie(materialsUsingDetailsOldList);
  97. this.delete(materialsUsing);
  98. //===================================================================================
  99. }
  100. /**
  101. * 默认按钮-sql增强-新增操作
  102. * @param id
  103. * @return
  104. */
  105. public boolean doAddSql(MaterialsUsingEntity t){
  106. return true;
  107. }
  108. /**
  109. * 默认按钮-sql增强-更新操作
  110. * @param id
  111. * @return
  112. */
  113. public boolean doUpdateSql(MaterialsUsingEntity t){
  114. return true;
  115. }
  116. /**
  117. * 默认按钮-sql增强-删除操作
  118. * @param id
  119. * @return
  120. */
  121. public boolean doDelSql(MaterialsUsingEntity t){
  122. return true;
  123. }
  124. /**
  125. * 替换sql中的变量
  126. * @param sql
  127. * @return
  128. */
  129. public String replaceVal(String sql,MaterialsUsingEntity t){
  130. sql = sql.replace("#{id}",String.valueOf(t.getId()));
  131. sql = sql.replace("#{create_name}",String.valueOf(t.getCreateName()));
  132. sql = sql.replace("#{create_by}",String.valueOf(t.getCreateBy()));
  133. sql = sql.replace("#{create_date}",String.valueOf(t.getCreateDate()));
  134. sql = sql.replace("#{update_name}",String.valueOf(t.getUpdateName()));
  135. sql = sql.replace("#{update_by}",String.valueOf(t.getUpdateBy()));
  136. sql = sql.replace("#{update_date}",String.valueOf(t.getUpdateDate()));
  137. sql = sql.replace("#{bpm_status}",String.valueOf(t.getBpmStatus()));
  138. sql = sql.replace("#{order_date}",String.valueOf(t.getOrderDate()));
  139. sql = sql.replace("#{order_onumber}",String.valueOf(t.getOrderOnumber()));
  140. sql = sql.replace("#{order_auditor}",String.valueOf(t.getOrderAuditor()));
  141. sql = sql.replace("#{total_money}",String.valueOf(t.getTotalMoney()));
  142. sql = sql.replace("#{order_status}",String.valueOf(t.getOrderStatus()));
  143. sql = sql.replace("#{warehouse_id}",String.valueOf(t.getWarehouseId()));
  144. sql = sql.replace("#{warehouse_name}",String.valueOf(t.getWarehouseName()));
  145. sql = sql.replace("#{audit_date}",String.valueOf(t.getAuditDate()));
  146. sql = sql.replace("#{UUID}",UUID.randomUUID().toString());
  147. return sql;
  148. }
  149. }