智慧保安后台管理-外网-验收版本
zengh
2021-12-04 18f0b4fc281b608acf0e27263c0ffbd8384a5993
src/main/java/org/springblade/modules/dispatcher/controller/DispatcherController.java
@@ -23,16 +23,26 @@
import lombok.AllArgsConstructor;
import javax.validation.Valid;
import org.springblade.common.utils.arg;
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.service.IDispatcherUnitService;
import org.springblade.modules.system.entity.User;
import org.springblade.modules.system.service.IUserService;
import org.springframework.web.bind.annotation.*;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.springblade.modules.dispatcher.entity.Dispatcher;
import org.springblade.modules.dispatcher.vo.DispatcherVO;
import org.springblade.modules.dispatcher.service.IDispatcherService;
import org.springblade.core.boot.ctrl.BladeController;
import java.text.SimpleDateFormat;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
/**
 *  控制器
@@ -47,6 +57,10 @@
public class DispatcherController extends BladeController {
   private final IDispatcherService dispatcherService;
   private final IDispatcherUnitService dispatcherUnitService;
   private final IUserService userService;
   /**
    * 详情
@@ -82,12 +96,28 @@
   }
   /**
    * APP-从业单位查询(派遣单位)
    */
   @GetMapping("/queryDispatcher")
   @ApiOperationSupport(order = 3)
   @ApiOperation(value = "分页", notes = "传入dispatcher")
   public R<IPage<DispatcherVO>> queryDispatcher(DispatcherVO dispatcher, Query query) {
      IPage<DispatcherVO> pages = dispatcherService.queryDispatcher(Condition.getPage(query), dispatcher);
      return R.data(pages);
   }
   /**
    * 新增
    */
   @PostMapping("/save")
   @ApiOperationSupport(order = 4)
   @ApiOperation(value = "新增", notes = "传入dispatcher")
   public R save(@Valid @RequestBody Dispatcher dispatcher) {
      if (null != dispatcher.getUserIds() && dispatcher.getUserIds() != "") {
         //计算派遣人数
//         dispatcher.setNum(Arrays.asList(dispatcher.getUserIds().split(",")).size());
         //查询派遣单位的信息,设置行政区
      }
      return R.status(dispatcherService.save(dispatcher));
   }
@@ -101,6 +131,43 @@
      return R.status(dispatcherService.updateById(dispatcher));
   }
   /**
    * 结束派遣
    * @param dispatcher
    */
   @PostMapping("/over-dispatcher")
   public R overDispatcher(@Valid @RequestBody Dispatcher dispatcher) {
      dispatcher.setStatus(1);
      Boolean status = dispatcherService.updateById(dispatcher);
      //查询当前用户的派遣记录,是否存在多条未结束派遣的
      Dispatcher dispatcher1 = new Dispatcher();
      dispatcher1.setUserIds(dispatcher.getUserIds());
      List<Dispatcher> dispatcherList = dispatcherService.list(Condition.getQueryWrapper(dispatcher1));
      User user = new User();
      if (dispatcherList.size()<1){
         //用户状态改变
         user.setDispatch("1");
      }else {
         //用户状态改变
         user.setDispatch("0");
      }
      user.setId(Long.parseLong(dispatcher.getUserIds()));
      userService.updateById(user);
      //内网同步
      String s1 =
         "update sys_dispatcher set status = " + "'" + dispatcher.getStatus() + "'" +
            ",update_time = " + "'" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()) + "'" +
            " " +"where id = " + "'" + dispatcher.getId() + "';"+
            "update blade_user set dispatch = " + "'" + user.getDispatch() + "'" +
            " " +"where id = " + "'" + user.getId() + "'";
      FtpUtil.sqlFileUpload(s1);
      return R.status(status);
   }
   /**
    * 新增或修改
    */
@@ -108,7 +175,89 @@
   @ApiOperationSupport(order = 6)
   @ApiOperation(value = "新增或修改", notes = "传入dispatcher")
   public R submit(@Valid @RequestBody Dispatcher dispatcher) {
      return R.status(dispatcherService.saveOrUpdate(dispatcher));
      //List<String> list = Arrays.asList(dispatcher.getUserIds().split(","));
      //计算派遣人数
      //dispatcher.setNum(list.size());
      boolean status = false;
      if (dispatcher.getId()==null){
         dispatcher.setCreateTime(new Date());
         dispatcher.setStatus(0);
         User user = new User();
         user.setId(Long.parseLong(dispatcher.getUserIds()));
         user.setDispatch("0");
         userService.updateById(user);
         //新增派遣记录
         status = dispatcherService.save(dispatcher);
         //数据同步
         String s1 =
            "insert into sys_dispatcher(id,dispatcherTime,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.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);
      }else {
            dispatcher.setUpdateTime(new Date());
            //查询当前派遣记录
            Dispatcher dispatcher1 = dispatcherService.getById(dispatcher.getId());
            if (!dispatcher1.getUserIds().equals(dispatcher.getUserIds())){
               //修改原保安人员的派遣状态
               //查询原保安人员的派遣记录,是否存在多条未结束派遣的
               Dispatcher dispatcher2 = new Dispatcher();
               dispatcher2.setUserIds(dispatcher1.getUserIds());
               dispatcher2.setStatus(0);
               List<Dispatcher> dispatcherList = dispatcherService.list(Condition.getQueryWrapper(dispatcher2));
               User user = new User();
               user.setId(Long.parseLong(dispatcher1.getUserIds()));
               if (dispatcherList.size()<1){
                  //用户状态改变
                  user.setDispatch("1");
               }else {
                  user.setDispatch("0");
               }
               //修改原保安人员用户信息
               userService.updateById(user);
               //修改当前保安人员的派遣状态
               User user1 = new User();
               user1.setId(Long.parseLong(dispatcher.getUserIds()));
               user1.setDispatch("0");
               userService.updateById(user1);
               //修改
               status = dispatcherService.updateById(dispatcher);
               //内网同步
               String s1 =
                  "update blade_user set dispatch = " + "'" + user.getDispatch() + "'" +
                     " " +"where id = " + "'" + user.getId() + "';" +
                  "update sys_dispatcher set dispatcherTime = " + "'" + new SimpleDateFormat("yyyy-MM-dd").format(dispatcher.getDispatchertime()) + "'" +
                     ",dispatcher_unit_id = " + "'" + dispatcher.getDispatcherUnitId() + "'" +
                     ",user_ids = " + "'" + dispatcher.getUserIds() + "'" +
                     ",end_time = " + "'" + new SimpleDateFormat("yyyy-MM-dd").format(dispatcher.getEndTime()) + "'" +
                     ",update_time = " + "'" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(dispatcher.getUpdateTime()) + "'" +
                     ",dept_id = " + "'" + dispatcher.getDeptId() + "'" +
                     ",jurisdiction = " + "'" + dispatcher.getJurisdiction() + "'" +
                     " " +"where id = " + "'" + user.getId() + "';"+
                  "update blade_user set dispatch = " + "'" + user1.getDispatch() + "'" +
                     " " +"where id = " + "'" + user1.getId() + "'";
               FtpUtil.sqlFileUpload(s1);
            }
      }
      return R.status(status);
   }
@@ -119,6 +268,13 @@
   @ApiOperationSupport(order = 8)
   @ApiOperation(value = "删除", notes = "传入ids")
   public R remove(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) {
      //内网删除
      List<Long> list = Func.toLongList(ids);
      list.forEach(id ->{
         //内网同步
         String s1 = "delete from sys_dispatcher where id = " + "'" + id + "'";
         FtpUtil.sqlFileUpload(s1);
      });
      return R.status(dispatcherService.removeByIds(Func.toLongList(ids)));
   }