package com.lyms.talkonlineweb.controller;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.lyms.talkonlineweb.domain.LymsDepartill;
import com.lyms.talkonlineweb.domain.LymsDict;
import com.lyms.talkonlineweb.domain.LymsHdepart;
import com.lyms.talkonlineweb.domain.LymsHospital;
import com.lyms.talkonlineweb.result.BaseResponse;
import com.lyms.talkonlineweb.service.LymsDepartillService;
import com.lyms.talkonlineweb.service.LymsHdepartService;
import com.lyms.talkonlineweb.util.Constant;
import com.lyms.talkonlineweb.util.JwtUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.BindingResult;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* 科室管理
*/
@RestController
@RequestMapping("depart")
public class DepartController {
@Autowired
private LymsHdepartService lymsHdepartService;
@Autowired //科室所拥有的疾病
private LymsDepartillService lymsDepartillService;
/**
* 获取科室列表
* @param depart
* @param current
* @param size
* @return
*/
@GetMapping("sltDepartLst")
public BaseResponse sltDepartLst(LymsHdepart depart, int current, int size){
BaseResponse baseResponse=new BaseResponse();
Page<LymsHdepart> page=new Page<>(current,size);
Page<LymsHdepart> departPage=lymsHdepartService.page(page, Wrappers.query(depart).orderByDesc("updated_time","createdtime"));
baseResponse.setObject(departPage);
return baseResponse;
}
/**
* 保存或更新科室信息
* @param depart
* @return
*/
@PostMapping("saveDepart")
public BaseResponse saveDepart(@RequestBody LymsHdepart depart, BindingResult result){
BaseResponse baseResponse=new BaseResponse();
baseResponse.setErrormsg("");
if(depart.getDid()==null){
depart.setCreatedtime(new Date());
LymsHdepart depart2=new LymsHdepart();
}else{
depart.setUpdatedTime(new Date());
}
if(result.hasErrors()){
baseResponse.setErrorcode(1);
result.getAllErrors().forEach(e->{
baseResponse.setErrormsg(baseResponse.getErrormsg()+e.getDefaultMessage());
});
return baseResponse;
}
boolean f=lymsHdepartService.saveOrUpdate(depart);
Map param=new HashMap();
param.put("did",depart.getDid());
lymsDepartillService.removeByMap(param);
String[] iArr={};
if(depart.getIlls()!=null){
iArr=depart.getIlls().split(",");
}
for (int i = 0; i < iArr.length; i++) {
LymsDepartill departill=new LymsDepartill();
departill.setDid(depart.getDid());
departill.setIid(Integer.parseInt(iArr[i]));
lymsDepartillService.save(departill);
}
baseResponse.setErrorcode(f==true?0:1);
return baseResponse;
}
/**
* 删除科室
* @param did
* @return
*/
@GetMapping("delDepart")
public BaseResponse delHosp(int did){
BaseResponse baseResponse=new BaseResponse();
boolean f=lymsHdepartService.removeById(did);
baseResponse.setErrorcode(f==true?0:1);
return baseResponse;
}
/**
* 科室人员或者护士登录
* @param depart
* @return
*/
@PostMapping("loginDepart")
public BaseResponse loginDepart(LymsHdepart depart){
BaseResponse baseResponse=new BaseResponse();
List<LymsHdepart> dLst=lymsHdepartService.list(Wrappers.query(depart));
// if (dLst.size()>0) {
// depart=dLst.get(0);
// depart.setDpasswd(null);
// String jwt = JwtUtils.createJWT("1", depart.getDusername(), Constant.JWT_TTL);
// Map<String,Object> map=new HashMap<>();
// map.put("depart",depart);
// map.put("token",jwt);
// baseResponse.setObject(map);
// }
return baseResponse;
}
}