智慧保安后台管理-外网
Administrator
2022-01-04 bad78734354305e4f4b7ee207185204bb8892d89
src/main/java/org/springblade/modules/dispatcher/controller/DispatcherController.java
@@ -23,14 +23,18 @@
import lombok.AllArgsConstructor;
import javax.validation.Valid;
import org.apache.commons.lang3.StringUtils;
import org.springblade.core.log.exception.ServiceException;
import org.springblade.core.mp.support.Condition;
import org.springblade.core.mp.support.Query;
import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.Func;
import org.springblade.modules.FTP.FtpUtil;
import org.springblade.modules.dispatcher.entity.DispatcherUnit;
import org.springblade.modules.dispatcher.service.IDispatcherUnitService;
import org.springblade.modules.system.entity.User;
import org.springblade.modules.system.service.IUserService;
import org.springblade.modules.system.vo.UserVO;
import org.springframework.web.bind.annotation.*;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.springblade.modules.dispatcher.entity.Dispatcher;
@@ -39,6 +43,7 @@
import org.springblade.core.boot.ctrl.BladeController;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
@@ -276,13 +281,30 @@
      List<String> list = Arrays.asList(dispatcher.getIds().split(","));
      //修改状态
      AtomicBoolean status = new AtomicBoolean(false);
      AtomicBoolean errorStatus = new AtomicBoolean(true);
      //将不能导入的保安员账号存起来
      List<String> errorList = new ArrayList<>();
      if (list.size()>0) {
         //遍历
         list.forEach(id -> {
            dispatcher.setCreateTime(new Date());
            dispatcher.setStatus(0);
            dispatcher.setUserIds(id);
            //判断派遣单位类型,如果是医院,学校,银行等单位,则派遣人员年龄不应大于50岁
            DispatcherUnit dispatcherUnit = dispatcherUnitService.getById(dispatcher.getDispatcherUnitId());
            if (null!=dispatcherUnit.getDistrict() && !dispatcherUnit.getDistrict().equals("") && !dispatcherUnit.getDistrict().equals(-1)){
               //判断
               if (dispatcherUnit.getDistrict().equals(1) ||
                  dispatcherUnit.getDistrict().equals(2) ||
                  dispatcherUnit.getDistrict().equals(3)){
                  //查询保安员年龄
                  UserVO user1 = userService.getUserAgeById(Long.parseLong(dispatcher.getUserIds()));
                  if (user1.getAge()>50) {
                     errorStatus.set(false);
                     errorList.add(user1.getCardid());
                     //跳出本次循环
                     return;
                  }else {
            User user = new User();
            user.setId(Long.parseLong(id));
            user.setDispatch("0");
@@ -290,7 +312,6 @@
            //新增派遣记录
            status.set(dispatcherService.save(dispatcher));
            //数据同步
            String s1 =
               "insert into sys_dispatcher(id,dispatcherTime,dispatcherAddress,dispatcher_unit_id,user_ids,end_time,dept_id,jurisdiction,create_time,status) " +
@@ -307,8 +328,39 @@
               "update blade_user set dispatch = " + "'" + user.getDispatch() + "'" +
                  " " + "where id = " + "'" + user.getId() + "'";
            FtpUtil.sqlFileUpload(s1);
                  }
               }
            }else {
               User user = new User();
               user.setId(Long.parseLong(id));
               user.setDispatch("0");
               userService.updateById(user);
               //新增派遣记录
               status.set(dispatcherService.save(dispatcher));
               //数据同步
               String s1 =
                  "insert into sys_dispatcher(id,dispatcherTime,dispatcherAddress,dispatcher_unit_id,user_ids,end_time,dept_id,jurisdiction,create_time,status) " +
                     "values(" + "'" + dispatcher.getId() + "'" + "," +
                     "'" + new SimpleDateFormat("yyyy-MM-dd").format(dispatcher.getDispatchertime()) + "'" + "," +
                     "'" + dispatcher.getDispatcheraddress() + "'" + "," +
                     "'" + dispatcher.getDispatcherUnitId() + "'" + "," +
                     "'" + dispatcher.getUserIds() + "'" + "," +
                     "'" + new SimpleDateFormat("yyyy-MM-dd").format(dispatcher.getEndTime()) + "'" + "," +
                     "'" + dispatcher.getDeptId() + "'" + "," +
                     "'" + dispatcher.getJurisdiction() + "'" + "," +
                     "'" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(dispatcher.getCreateTime()) + "'" + "," +
                     "'" + dispatcher.getStatus() + "'" + ");" +
                  "update blade_user set dispatch = " + "'" + user.getDispatch() + "'" +
                     " " + "where id = " + "'" + user.getId() + "'";
               FtpUtil.sqlFileUpload(s1);
            }
         });
         if (!errorStatus.get()){
            String errorAccount = StringUtils.join(errorList, "\\\n");
            throw new ServiceException("保安员["+ errorAccount +"]派遣失败!派遣到学校,医院,银行的保安员年龄应不超过50周岁!");
         }
      }
      return R.status(status.get());
   }