From 4040856595952ea0b8f8b764ba2770d5c244c891 Mon Sep 17 00:00:00 2001 From: yanghui <2536613402@qq.com> Date: 星期五, 14 十月 2022 11:19:08 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/huacheng_test' into local_20221010 --- flower_city/src/main/java/com/dg/core/service/impl/GuideRepairOrderServiceImpl.java | 198 ++++++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 187 insertions(+), 11 deletions(-) diff --git a/flower_city/src/main/java/com/dg/core/service/impl/GuideRepairOrderServiceImpl.java b/flower_city/src/main/java/com/dg/core/service/impl/GuideRepairOrderServiceImpl.java index 2c72c98..388de7c 100644 --- a/flower_city/src/main/java/com/dg/core/service/impl/GuideRepairOrderServiceImpl.java +++ b/flower_city/src/main/java/com/dg/core/service/impl/GuideRepairOrderServiceImpl.java @@ -1,28 +1,41 @@ package com.dg.core.service.impl; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.dg.core.db.gen.entity.GuideRepairOrder; -import com.dg.core.db.gen.entity.GuideRepairOrderImage; -import com.dg.core.db.gen.entity.Slideshow; -import com.dg.core.db.gen.entity.TransactionEvent; -import com.dg.core.db.gen.mapper.GuideRepairOrderImageMapper; -import com.dg.core.db.gen.mapper.GuideRepairOrderMapper; -import com.dg.core.db.gen.mapper.TransactionEventMapper; +import com.dg.core.db.gen.entity.*; +import com.dg.core.db.gen.mapper.*; import com.dg.core.service.IGuideRepairOrderService; +import com.dg.core.util.SmsUtil; import com.dg.core.util.Snowflake; import org.springframework.stereotype.Service; import javax.annotation.Resource; +import java.time.LocalDateTime; +import java.util.ArrayList; +import java.util.List; @Service -public class GuideRepairOrderServiceImpl extends ServiceImpl<GuideRepairOrderMapper, GuideRepairOrder> implements IGuideRepairOrderService { +public class GuideRepairOrderServiceImpl extends ServiceImpl<GuideRepairOrderMapper, GuideRepairOrder> + implements IGuideRepairOrderService { @Resource private TransactionEventMapper transactionEventMapper; @Resource private GuideRepairOrderImageMapper guideRepairOrderImageMapper; + + @Resource + private SysUserMapper sysUserMapper; + + @Resource + private OrganizationChartMapper organizationChartMapper; + + @Resource + private GuideEvolveMapper guideEvolveMapper; + + @Resource + SmsUtil smsUtil; @Override public int addOrder(GuideRepairOrder guideRepairOrder){ @@ -33,23 +46,120 @@ guideRepairOrder.setMatterName(transactionEvent.getMatterName()); guideRepairOrder.setDepartmentId(transactionEvent.getDepartmentId()); guideRepairOrder.setClassifyId(transactionEvent.getClassifyId()); - guideRepairOrder.setState("1"); + List<String> departmentIds=new ArrayList<>(); + Boolean isAdd=true;//是否能够新建工单 + List<GuideRepairOrder> guideRepairOrders = baseMapper.selectList(new QueryWrapper<GuideRepairOrder>().lambda() + .eq(GuideRepairOrder::getMatterId, guideRepairOrder.getMatterId()) + .eq(GuideRepairOrder::getConsultContent, guideRepairOrder.getConsultContent())); + if (guideRepairOrders.size()==0){ + isAdd=true; + }else { + for (GuideRepairOrder guideRepair:guideRepairOrders) { + if (guideRepair.getState().equals("1")||guideRepair.getState().equals("2")||guideRepair.getState().equals("6")||guideRepair.getState().equals("7")){ + isAdd=false; + break; + } + } + } + if (isAdd) { + //自动分配业务代码开始 + List<OrganizationChartEntity> organizationChartEntities = organizationChartMapper.selectByCode(guideRepairOrder.getAreaCode()); + if (organizationChartEntities!=null){ + for (OrganizationChartEntity organizationChart:organizationChartEntities) { + departmentIds.add(organizationChart.getId().toString()); + } + List<SysUser> sysUsers = sysUserMapper.selectListByDepartmentId(departmentIds, "," + transactionEvent.getClassifyId(), transactionEvent.getClassifyId() + ",");//获取导半人员 + if (sysUsers.size()==0) {//如果此所属地区部门没有导半人员则看其下级地区有没有相关分类导办人员 + for (OrganizationChartEntity organizationChart:organizationChartEntities) { + //获取下级部门 + List<OrganizationChartEntity> organizationChartEntitiesUser = organizationChartMapper.selectList(new QueryWrapper<OrganizationChartEntity>().lambda() + .eq(OrganizationChartEntity::getParentId, organizationChart.getId().toString())); + if (organizationChartEntitiesUser!=null) + departmentIds=this.getDepartmentIds(organizationChartEntitiesUser,departmentIds); + } + sysUsers = sysUserMapper.selectListByDepartmentId(departmentIds, "," + transactionEvent.getClassifyId(), transactionEvent.getClassifyId() + ",");//获取导半人员 + if (sysUsers.size()==0){//如果其下级部门仍没有该分类的导半人员则查询所以该所属地区的导办人员 + sysUsers = sysUserMapper.selectListByDepartmentId(departmentIds,null,null);//获取导半人员 + if(sysUsers.size()==0)//如果该所属地区没有导办人员则为特殊单据需要手动分配 + guideRepairOrder.setState("1"); + } + } + if (sysUsers.size()>0){//系统分配导办人员 + SysUser sysUser = sysUsers.get(0);//因为sql用了升序排序所以第一条就是待办结最少的人员之一 + guideRepairOrder.setState("2"); + sysUser.setTransactionNum(sysUser.getTransactionNum()+1); + sysUserMapper.updateById(sysUser); + guideRepairOrder.setGuideUserId(sysUser.getUserId().toString()); + guideRepairOrder.setGuideDepartmentId(sysUser.getDepartmentId()); + //新增分配记录 + GuideEvolveEntity entity=new GuideEvolveEntity(); + entity.setCreateTime(LocalDateTime.now()); + entity.setUpdateTime(LocalDateTime.now()); + entity.setState("10"); + entity.setDepartmentalId(sysUser.getDepartmentId()); + entity.setToUserId(guideRepairOrder.getGuideUserId()+""); + entity.setFromUserId(guideRepairOrder.getSubmitUserId()); + entity.setFromDepartmentalId(guideRepairOrder.getGuideDepartmentId()); + entity.setGuidOrderNum(guideRepairOrder.getOrderNum()); +// smsUtil.sendSmsOvertime(sysUser.getPhonenumber(),guideRepairOrder.getMatterName()); + guideEvolveMapper.insertConfig(entity); + } + } + else{//如果该办事指南用户所选所属地区无导半部门则为特殊单据需要手动分配 + guideRepairOrder.setState("1"); + } + //自动分配业务代码结束 + guideRepairOrder.setCreateTime(LocalDateTime.now()); + guideRepairOrder.setUpdateTime(LocalDateTime.now()); transactionEvent.setTransactionNum(transactionEvent.getTransactionNum()+1); - String[] images = guideRepairOrder.getImages().split(","); - for (String image: images) { + //保存图片地址 + if (guideRepairOrder.getImages()!=null){ + String[] images = guideRepairOrder.getImages().split(","); + for (String image: images) { GuideRepairOrderImage guideRepairOrderImage = new GuideRepairOrderImage(); guideRepairOrderImage.setId(Snowflake.getId()); guideRepairOrderImage.setGuideRepairOrderId(guideRepairOrder.getOrderNum()); guideRepairOrderImage.setUrl(image); + guideRepairOrderImage.setCreateTime(LocalDateTime.now()); + guideRepairOrderImage.setType(1); + guideRepairOrderImageMapper.insert(guideRepairOrderImage); + } + } + //保存视频地址 + if (guideRepairOrder.getVideo()!=null){ + if (guideRepairOrder.getOrderNum()!=null){ + GuideRepairOrderImage guideRepairOrderImage = new GuideRepairOrderImage(); + guideRepairOrderImage.setId(Snowflake.getId()); + guideRepairOrderImage.setGuideRepairOrderId(guideRepairOrder.getOrderNum()); + guideRepairOrderImage.setUrl(guideRepairOrder.getVideo()); + guideRepairOrderImage.setCreateTime(LocalDateTime.now()); + guideRepairOrderImage.setType(2); guideRepairOrderImageMapper.insert(guideRepairOrderImage); } + } + int ans= baseMapper.insert(guideRepairOrder); int i = transactionEventMapper.updateById(transactionEvent); if (ans>0&&i>0) return 1; else return 0; + } + else { + return 0; + } + } + public List<String> getDepartmentIds( List<OrganizationChartEntity> organizationChartEntities,List<String> departmentIds){ + for (OrganizationChartEntity organizationChart:organizationChartEntities) { + departmentIds.add(organizationChart.getId().toString()); + List<OrganizationChartEntity> organizationChartEntitiesUser = organizationChartMapper.selectList(new QueryWrapper<OrganizationChartEntity>().lambda() + .eq(OrganizationChartEntity::getParentId, organizationChart.getId().toString())); + if (organizationChartEntitiesUser!=null) + departmentIds=this.getDepartmentIds(organizationChartEntitiesUser,departmentIds); + + } + return departmentIds; } @Override @@ -59,6 +169,72 @@ @Override public int updateConfig(GuideRepairOrder order) { + if ( order.getGuideUserId()!=null&&!order.getGuideUserId().equals("")) + { + SysUser sysUser = sysUserMapper.selectOne(new QueryWrapper<SysUser>().lambda().eq(SysUser::getUserId, order.getGuideUserId())); + order.setGuideUserPhone(sysUser.getPhonenumber()); + } return baseMapper.updateConfig(order); } + + @Override + public List<GuideRepairOrder> selectBySubmitId(String submitUserId) { + return baseMapper.selectBySubmitId(submitUserId); + } + + @Override + public List<GuideRepairOrder> selectConfigList(IPage<GuideRepairOrder> page, Integer state, String matterName,List<String> ids) { + return baseMapper.selectConfigList(page,state,matterName, ids); + } + + @Override + public int countConfigList(String matterName,List<String> ids) { + return baseMapper.countConfigList(matterName,ids); + } + + @Override + public int countUser(String userId, String state) { + return baseMapper.countUser(userId,state); + } + + @Override + public int updateSysUserOrderNum(GuideEvolveEntity order) { + if(order.getState().equals("13")){ + SysUser sysUser = sysUserMapper.selectOne(new QueryWrapper<SysUser>().lambda().eq(SysUser::getUserId, order.getToUserId())); + sysUser.setTransactionNum(sysUser.getTransactionNum()+1); + return sysUserMapper.updateById(sysUser); + }else if(order.getState().equals("12")){ + SysUser sysUserTo= sysUserMapper.selectOne(new QueryWrapper<SysUser>().lambda().eq(SysUser::getUserId, order.getToUserId())); + SysUser sysUserFrom= sysUserMapper.selectOne(new QueryWrapper<SysUser>().lambda().eq(SysUser::getUserId, order.getFromUserId())); + sysUserTo.setTransactionNum(sysUserTo.getTransactionNum()+1); + sysUserFrom.setTransactionNum(sysUserFrom.getTransactionNum()-1); + sysUserMapper.updateById(sysUserFrom); + return sysUserMapper.updateById(sysUserTo); + } + return 0; + } + + /** + * 1 今天 2昨天 3本月 4本年度 String time + * @param state + * @param ids + * @return + */ + @Override + public int countStatisticsNum(String state,List<String> ids,String time, + String isTimeout,String evaluateState,List<String> classifyIds) { + return baseMapper.countStatisticsNum(state,ids,time,isTimeout,evaluateState,classifyIds); + } + + @Override + public List<CountListNum> countListNum(String state, List<String> ids, Integer time) { + return baseMapper.countListNum(state, ids,time); + } + + @Override + public SysUser getSubmitUser(GuideRepairOrder guideRepairOrder){ + return sysUserMapper.selectOne(new QueryWrapper<SysUser>().lambda().eq(SysUser::getUserId,guideRepairOrder.getSubmitUserId())); + } + + } -- Gitblit v1.7.1