| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268 |
- package cn.com.lzt.maintainplan.service.impl;
- import cn.com.lzt.maintainplan.entity.MaintainPlanEntity;
- import cn.com.lzt.maintainplan.service.MaintainPlanServiceI;
- import cn.com.lzt.maintainplanprojserv.entity.MaintainPlanProjservEntity;
- import cn.com.lzt.maintainplantimes.entity.MaintainPlanTimesEntity;
- import org.apache.commons.collections.list.SetUniqueList;
- import org.apache.commons.lang.xwork.StringUtils;
- 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.MyBeanUtils;
- import org.jeecgframework.core.util.StringUtil;
- import org.jeecgframework.core.util.oConvertUtils;
- import org.jeecgframework.p3.core.common.utils.DateUtil;
- import org.springframework.stereotype.Service;
- import org.springframework.transaction.annotation.Transactional;
- import java.util.*;
- @Service("maintainPlanService")
- @Transactional
- public class MaintainPlanServiceImpl extends CommonServiceImpl implements MaintainPlanServiceI {
-
- public <T> void delete(T entity) {
- super.delete(entity);
- //执行删除操作配置的sql增强
- this.doDelSql((MaintainPlanEntity)entity);
- }
-
- public void addMain(MaintainPlanEntity maintainPlan,
- List<MaintainPlanProjservEntity> maintainPlanProjservList,List<MaintainPlanTimesEntity> maintainPlanTimesList){
- //保存主信息
- String code = com.xcgl.utils.OrderNumTools.generateNextBillCode(Globals.CODE_PREFIX_MAINTAINPLAN,"t_b_maintain_plan","code",4);
- maintainPlan.setCode(code);
- maintainPlan.setIsNotice(Globals.NO);
- setMaintainMonth(maintainPlan,maintainPlanTimesList);
- this.save(maintainPlan);
-
- /**保存-供方服务计划服务明细*/
- for(MaintainPlanProjservEntity maintainPlanProjserv:maintainPlanProjservList){
- //外键设置
- maintainPlanProjserv.setMaintainid(maintainPlan.getId());
- this.save(maintainPlanProjserv);
- }
- /**保存-供方服务计划时间明细*/
- for(MaintainPlanTimesEntity maintainPlanTimes:maintainPlanTimesList){
- //外键设置
- maintainPlanTimes.setMaintainplanid(maintainPlan.getId());
- maintainPlanTimes.setIsGenTask(Globals.NO);
- this.save(maintainPlanTimes);
- }
- //执行新增操作配置的sql增强
- this.doAddSql(maintainPlan);
- }
-
- public void updateMain(MaintainPlanEntity maintainPlan,
- List<MaintainPlanProjservEntity> maintainPlanProjservList,List<MaintainPlanTimesEntity> maintainPlanTimesList) {
- //保存主表信息
- if(StringUtil.isNotEmpty(maintainPlan.getId())){
- try {
- MaintainPlanEntity temp = findUniqueByProperty(MaintainPlanEntity.class, "id", maintainPlan.getId());
- MyBeanUtils.copyBeanNotNull2Bean(maintainPlan, temp);
- if(maintainPlan.getContractStartDate()==null){
- temp.setContractStartDate(null);
- }
- if(maintainPlan.getContractEndDate()==null){
- temp.setContractEndDate(null);
- }
- setMaintainMonth(temp,maintainPlanTimesList);
- this.saveOrUpdate(temp);
- } catch (Exception e) {
- e.printStackTrace();
- }
- }else{
- this.saveOrUpdate(maintainPlan);
- }
- //===================================================================================
- //获取参数
- Object id0 = maintainPlan.getId();
- Object id1 = maintainPlan.getId();
- //===================================================================================
- //1.查询出数据库的明细数据-供方服务计划服务明细
- String hql0 = "from MaintainPlanProjservEntity where 1 = 1 AND mAINTAINID =? ";
- List<MaintainPlanProjservEntity> maintainPlanProjservOldList = this.findHql(hql0,id0);
- //2.筛选更新明细数据-供方服务计划服务明细
- if(maintainPlanProjservList!=null&&maintainPlanProjservList.size()>0){
- for(MaintainPlanProjservEntity oldE:maintainPlanProjservOldList){
- boolean isUpdate = false;
- for(MaintainPlanProjservEntity sendE:maintainPlanProjservList){
- //需要更新的明细数据-供方服务计划服务明细
- 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(MaintainPlanProjservEntity maintainPlanProjserv:maintainPlanProjservList){
- if(oConvertUtils.isEmpty(maintainPlanProjserv.getId())){
- //外键设置
- maintainPlanProjserv.setMaintainid(maintainPlan.getId());
- this.save(maintainPlanProjserv);
- }
- }
- }
- //===================================================================================
- //1.查询出数据库的明细数据-供方服务计划时间明细
- String hql1 = "from MaintainPlanTimesEntity where 1 = 1 AND mAINTAINPLANID =? ";
- List<MaintainPlanTimesEntity> maintainPlanTimesOldList = this.findHql(hql1,id1);
- //2.筛选更新明细数据-供方服务计划时间明细
- if(maintainPlanTimesList!=null&&maintainPlanTimesList.size()>0){
- for(MaintainPlanTimesEntity oldE:maintainPlanTimesOldList){
- boolean isUpdate = false;
- for(MaintainPlanTimesEntity sendE:maintainPlanTimesList){
- //需要更新的明细数据-供方服务计划时间明细
- 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(MaintainPlanTimesEntity maintainPlanTimes:maintainPlanTimesList){
- if(oConvertUtils.isEmpty(maintainPlanTimes.getId())){
- //外键设置
- maintainPlanTimes.setMaintainplanid(maintainPlan.getId());
- maintainPlanTimes.setIsGenTask(Globals.NO);
- this.save(maintainPlanTimes);
- }
- }
- }
- //执行更新操作配置的sql增强
- this.doUpdateSql(maintainPlan);
- }
- public void delMain(MaintainPlanEntity maintainPlan) {
- //删除主表信息
- this.delete(maintainPlan);
- //===================================================================================
- //获取参数
- Object id0 = maintainPlan.getId();
- Object id1 = maintainPlan.getId();
- //===================================================================================
- //删除-供方服务计划服务明细
- String hql0 = "from MaintainPlanProjservEntity where 1 = 1 AND mAINTAINID =? ";
- List<MaintainPlanProjservEntity> maintainPlanProjservOldList = this.findHql(hql0,id0);
- this.deleteAllEntitie(maintainPlanProjservOldList);
- //===================================================================================
- //删除-供方服务计划时间明细
- String hql1 = "from MaintainPlanTimesEntity where 1 = 1 AND mAINTAINPLANID =? ";
- List<MaintainPlanTimesEntity> maintainPlanTimesOldList = this.findHql(hql1,id1);
- this.deleteAllEntitie(maintainPlanTimesOldList);
- }
-
-
- /**
- * 默认按钮-sql增强-新增操作
- * @return
- */
- public boolean doAddSql(MaintainPlanEntity t){
- return true;
- }
- /**
- * 默认按钮-sql增强-更新操作
- * @return
- */
- public boolean doUpdateSql(MaintainPlanEntity t){
- return true;
- }
- /**
- * 默认按钮-sql增强-删除操作
- * @return
- */
- public boolean doDelSql(MaintainPlanEntity t){
- return true;
- }
-
- /**
- * 替换sql中的变量
- * @param sql
- * @return
- */
- public String replaceVal(String sql,MaintainPlanEntity 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("#{sys_company_code}",String.valueOf(t.getSysCompanyCode()));
- sql = sql.replace("#{bpm_status}",String.valueOf(t.getBpmStatus()));
- sql = sql.replace("#{proc_inst_id}",String.valueOf(t.getProcInstId()));
- sql = sql.replace("#{step_name}",String.valueOf(t.getStepName()));
- sql = sql.replace("#{code}",String.valueOf(t.getCode()));
- sql = sql.replace("#{name}",String.valueOf(t.getName()));
- sql = sql.replace("#{servicetype}",String.valueOf(t.getServicetype()));
- sql = sql.replace("#{servicefrequ}",String.valueOf(t.getServicefrequ()));
- sql = sql.replace("#{relatedunitid}",String.valueOf(t.getRelatedunitid()));
- sql = sql.replace("#{relatedunitname}",String.valueOf(t.getRelatedunitname()));
- sql = sql.replace("#{daypermonth}",String.valueOf(t.getDaypermonth()));
- sql = sql.replace("#{dayperweek}",String.valueOf(t.getDayperweek()));
- sql = sql.replace("#{regulardate}",String.valueOf(t.getRegulardate()));
- sql = sql.replace("#{startdate}",String.valueOf(t.getStartdate()));
- sql = sql.replace("#{enddate}",String.valueOf(t.getEnddate()));
- sql = sql.replace("#{busistatus}",String.valueOf(t.getBusistatus()));
- sql = sql.replace("#{remark}",String.valueOf(t.getRemark()));
- sql = sql.replace("#{UUID}",UUID.randomUUID().toString());
- return sql;
- }
- @Override
- public void processEnd(String id) {
- }
- //设置维保年度 、维保月度
- private void setMaintainMonth(MaintainPlanEntity maintainPlan, List<MaintainPlanTimesEntity> maintainPlanTimesList) {
- List<String> years = SetUniqueList.decorate(new ArrayList());
- List<String> months = SetUniqueList.decorate(new ArrayList());
- for(MaintainPlanTimesEntity timesEntity : maintainPlanTimesList){
- Date start = timesEntity.getServicetimestart();
- Date end = timesEntity.getServicetimeend();
- Calendar c = Calendar.getInstance();
- c.setTime(start);
- c.set(Calendar.DAY_OF_MONTH,1);
- do{
- int year = c.get(Calendar.YEAR);
- years.add(String.valueOf(year));
- months.add(DateUtil.formatDateTime(c.getTime(),"yyyy-MM"));
- c.add(Calendar.MONTH,1);
- }while(c.getTime().getTime()<=end.getTime());
- }
- maintainPlan.setMaintainYear(StringUtils.join(years,","));
- maintainPlan.setMaintainMonth(StringUtils.join(months,","));
- maintainPlan.setContractId(StringUtils.trimToNull(maintainPlan.getContractId()));
- maintainPlan.setProjectServiceId(StringUtils.trimToNull(maintainPlan.getProjectServiceId()));
- }
- }
|