package cn.com.lzt.materialsusing.service.impl; import cn.com.lzt.materialsusing.dao.MaterialsUsingDao; import cn.com.lzt.materialsusing.entity.MaterialsUsingEntity; import cn.com.lzt.materialsusing.service.MaterialsUsingServiceI; import cn.com.lzt.materialsusingdetail.entity.MaterialsUsingDetailsEntity; import org.jeecgframework.core.common.exception.BusinessException; import org.jeecgframework.core.common.service.impl.CommonServiceImpl; import org.jeecgframework.core.util.MyBeanUtils; import org.jeecgframework.core.util.oConvertUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.HashMap; import java.util.List; import java.util.UUID; @Service("materialsUsingService") @Transactional public class MaterialsUsingServiceImpl extends CommonServiceImpl implements MaterialsUsingServiceI { @Autowired private MaterialsUsingDao materialsUsingDao; public void delete(T entity) { super.delete(entity); //执行删除操作配置的sql增强 this.doDelSql((MaterialsUsingEntity)entity); } public void addMain(MaterialsUsingEntity MaterialsUsing, List MaterialsUsingDetailsList){ //保存主信息 this.save(MaterialsUsing); /**保存-采购商品*/ for(MaterialsUsingDetailsEntity MaterialsUsingDetails:MaterialsUsingDetailsList){ //外键设置 MaterialsUsingDetails.setFkId(MaterialsUsing.getId()); this.save(MaterialsUsingDetails); } //执行新增操作配置的sql增强 this.doAddSql(MaterialsUsing); } public void updateMain(MaterialsUsingEntity materialsUsing, List materialsUsingDetailsList) { //保存主表信息 this.saveOrUpdate(materialsUsing); //=================================================================================== //获取参数 Object id0 = materialsUsing.getId(); //=================================================================================== //1.查询出数据库的明细数据-采购商品 String hql0 = "from MaterialsUsingDetailsEntity where 1 = 1 AND fK_ID =? "; List materialsUsingDetailsOldList = this.findHql(hql0,id0); //2.筛选更新明细数据-采购商品 if(materialsUsingDetailsList!=null&&materialsUsingDetailsList.size()>0){ for(MaterialsUsingDetailsEntity oldE:materialsUsingDetailsOldList){ boolean isUpdate = false; for(MaterialsUsingDetailsEntity sendE:materialsUsingDetailsList){ //需要更新的明细数据-采购商品 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(MaterialsUsingDetailsEntity materialsUsingDetails:materialsUsingDetailsList){ if(oConvertUtils.isEmpty(materialsUsingDetails.getId())){ //外键设置 materialsUsingDetails.setFkId(materialsUsing.getId()); this.save(materialsUsingDetails); } } } //执行更新操作配置的sql增强 this.doUpdateSql(materialsUsing); //TODO 回写申购单采购数量 //END 回写申购单采购数量 } public void delMain(MaterialsUsingEntity materialsUsing) { //获取参数 Object id0 = materialsUsing.getId(); //=================================================================================== //删除-商品 String hql0 = "from MaterialsUsingDetailsEntity where 1 = 1 AND fK_ID =? "; List materialsUsingDetailsOldList = this.findHql(hql0,id0); HashMap qgdCallbackValue = new HashMap(); /**保存-商品*/ this.deleteAllEntitie(materialsUsingDetailsOldList); this.delete(materialsUsing); //=================================================================================== } /** * 默认按钮-sql增强-新增操作 * @param id * @return */ public boolean doAddSql(MaterialsUsingEntity t){ return true; } /** * 默认按钮-sql增强-更新操作 * @param id * @return */ public boolean doUpdateSql(MaterialsUsingEntity t){ return true; } /** * 默认按钮-sql增强-删除操作 * @param id * @return */ public boolean doDelSql(MaterialsUsingEntity t){ return true; } /** * 替换sql中的变量 * @param sql * @return */ public String replaceVal(String sql,MaterialsUsingEntity 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("#{bpm_status}",String.valueOf(t.getBpmStatus())); sql = sql.replace("#{order_date}",String.valueOf(t.getOrderDate())); sql = sql.replace("#{order_onumber}",String.valueOf(t.getOrderOnumber())); sql = sql.replace("#{order_auditor}",String.valueOf(t.getOrderAuditor())); sql = sql.replace("#{total_money}",String.valueOf(t.getTotalMoney())); sql = sql.replace("#{order_status}",String.valueOf(t.getOrderStatus())); sql = sql.replace("#{warehouse_id}",String.valueOf(t.getWarehouseId())); sql = sql.replace("#{warehouse_name}",String.valueOf(t.getWarehouseName())); sql = sql.replace("#{audit_date}",String.valueOf(t.getAuditDate())); sql = sql.replace("#{UUID}",UUID.randomUUID().toString()); return sql; } }