Commit 30623c6d by 杨清松

岗位管理名称重复校验

parent 9629f741
...@@ -15,5 +15,7 @@ public interface PositionDao { ...@@ -15,5 +15,7 @@ public interface PositionDao {
List<KObject> queryPositionByDept(UUID uuid); List<KObject> queryPositionByDept(UUID uuid);
List<KObject> queryStaffByPosition(String id); List<KObject> queryStaffByPosition(String name, UUID uuid);
List<KObject> queryPositionByName(String name, UUID uuid);
} }
package com.xyst.dinas.biz.enumeration;
import com.beecode.inz.common.ErrorCode;
public enum BizErrorCodeEnum implements ErrorCode{
POSTITION_NAME_REPEATED("007019001", "岗位名称重复");
private String code;
private String description;
BizErrorCodeEnum(String code, String description) {
this.code = code;
this.description = description;
}
@Override
public String getCode() {
return code;
}
@Override
public String getDescription() {
return description;
}
}
...@@ -26,7 +26,7 @@ public class PositionDaoImpl implements PositionDao, PositionConstant { ...@@ -26,7 +26,7 @@ public class PositionDaoImpl implements PositionDao, PositionConstant {
@Override @Override
public KObject load(UUID id) { public KObject load(UUID id) {
return (KObject) template.load(ENTITY, id); return (KObject) template.get(ENTITY, id);
} }
@Override @Override
...@@ -48,13 +48,28 @@ public class PositionDaoImpl implements PositionDao, PositionConstant { ...@@ -48,13 +48,28 @@ public class PositionDaoImpl implements PositionDao, PositionConstant {
} }
@Override @Override
public List<KObject> queryStaffByPosition(String id) { public List<KObject> queryStaffByPosition(String name, UUID departmentId) {
return (List<KObject>)template.execute(new HibernateCallback<List<KObject>>() { return (List<KObject>)template.execute(new HibernateCallback<List<KObject>>() {
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
@Override @Override
public List<KObject> doInHibernate(Session session) throws HibernateException { public List<KObject> doInHibernate(Session session) throws HibernateException {
Query<KObject> query = session.createQuery("from " + STAFF + " where duty =:id", KObject.class); Query<KObject> query = session.createQuery("from " + STAFF + " where duty =:name and department.id=:departmentId ", KObject.class);
query.setParameter("id", id); query.setParameter("name", name);
query.setParameter("departmentId", departmentId);
return query.getResultList();
}
});
}
@Override
public List<KObject> queryPositionByName(String name, UUID deptId) {
return (List<KObject>)template.execute(new HibernateCallback<List<KObject>>() {
@SuppressWarnings("unchecked")
@Override
public List<KObject> doInHibernate(Session session) throws HibernateException {
Query<KObject> query = session.createQuery("from " + ENTITY + " where (discard is null or discard = 0) and name =:name and regionalCompany.id = :deptId ", KObject.class);
query.setParameter("name", name);
query.setParameter("deptId", deptId);
return query.getResultList(); return query.getResultList();
} }
}); });
......
...@@ -10,6 +10,7 @@ import org.springframework.beans.factory.annotation.Autowired; ...@@ -10,6 +10,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import com.beecode.amino.core.Amino; import com.beecode.amino.core.Amino;
import com.beecode.bap.staff.service.StaffService;
import com.beecode.bcp.core.context.AminoContextHolder; import com.beecode.bcp.core.context.AminoContextHolder;
import com.beecode.bcp.type.KClass; import com.beecode.bcp.type.KClass;
import com.beecode.bcp.type.KObject; import com.beecode.bcp.type.KObject;
...@@ -24,6 +25,9 @@ public class PositionServiceImpl implements PositionService, PositionConstant { ...@@ -24,6 +25,9 @@ public class PositionServiceImpl implements PositionService, PositionConstant {
@Autowired @Autowired
private PositionDao positionDao; private PositionDao positionDao;
@Autowired
private StaffService staffService;
@Override @Override
@Transactional @Transactional
public Object saveAndUpdate(JSONObject jsonObject) { public Object saveAndUpdate(JSONObject jsonObject) {
...@@ -44,6 +48,25 @@ public class PositionServiceImpl implements PositionService, PositionConstant { ...@@ -44,6 +48,25 @@ public class PositionServiceImpl implements PositionService, PositionConstant {
} else { } else {
//编辑 //编辑
KObject kObject = positionDao.load(UUID.fromString(jsonObject.getString("id"))); KObject kObject = positionDao.load(UUID.fromString(jsonObject.getString("id")));
//如果岗位名称更改,更改已经关联的岗位名称
if (!kObject.getString("name").equals(jsonObject.getString("name"))) {
List<KObject> allStaffByDeptList = staffService.getAllByDept(department.getUuid("id"));
if (allStaffByDeptList.size() > 0 && allStaffByDeptList != null) {
for (int i = 0; i < allStaffByDeptList.size(); i++) {
KObject staffByDept = allStaffByDeptList.get(i);
//如果岗位不为空
if (StringUtils.isNotEmpty(staffByDept.getString("name"))) {
if (kObject.getString("name").equals(staffByDept.getString("duty"))) {
//编辑员工岗位
staffByDept.set("duty", jsonObject.getString("name"));
staffService.modify(staffByDept);
}
}
}
}
}
kObject.set("modifyTime", new Date()); kObject.set("modifyTime", new Date());
kObject.set("modifier", staff); kObject.set("modifier", staff);
kObject.set("name", jsonObject.getString("name")); kObject.set("name", jsonObject.getString("name"));
...@@ -66,12 +89,26 @@ public class PositionServiceImpl implements PositionService, PositionConstant { ...@@ -66,12 +89,26 @@ public class PositionServiceImpl implements PositionService, PositionConstant {
} }
@Override @Override
public Object queryPositionIsUse(String id) { public Object queryPositionIsUse(String name) {
List<KObject> staffList = positionDao.queryStaffByPosition(id); KObject staff = AminoContextHolder.getContext().getStaff();
List<KObject> staffList = positionDao.queryStaffByPosition(name, staff.get("department").getUuid("id"));
if (staffList != null && staffList.size() > 0) { if (staffList != null && staffList.size() > 0) {
return ResponseObj.error("该岗位已经被使用,不支持删除操作"); return ResponseObj.error("该岗位已经被使用,不支持删除操作");
} }
return ResponseObj.success(); return ResponseObj.success();
} }
@Override
public Boolean verifyPositionName(String name) {
KObject staff = AminoContextHolder.getContext().getStaff();
//当前登录人所在区域公司
KObject department = staff.get("department");
List<KObject> list = positionDao.queryPositionByName(name, department.getUuid("id"));
Boolean flag = false;
if (list != null && list.size() > 0 ) {
flag = true;
}
return flag;
}
} }
...@@ -10,6 +10,8 @@ public interface PositionService { ...@@ -10,6 +10,8 @@ public interface PositionService {
Object queryPositionByDept(); Object queryPositionByDept();
Object queryPositionIsUse(String id); Object queryPositionIsUse(String name);
Boolean verifyPositionName(String name);
} }
...@@ -8,9 +8,13 @@ import org.springframework.web.bind.annotation.PathVariable; ...@@ -8,9 +8,13 @@ import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import com.beecode.inz.basis.team.pojo.ResponseObj;
import com.beecode.inz.common.exception.BusinessException;
import com.xyst.dinas.biz.enumeration.BizErrorCodeEnum;
import com.xyst.dinas.biz.service.PositionService; import com.xyst.dinas.biz.service.PositionService;
@RestController @RestController
...@@ -45,8 +49,27 @@ public class PositionController { ...@@ -45,8 +49,27 @@ public class PositionController {
* @throws * @throws
*/ */
@ResponseBody @ResponseBody
@RequestMapping(value = "/biz/position/queryPositionIsUse/{id}", method = RequestMethod.GET) @RequestMapping(value = "/biz/position/queryPositionIsUse/{name}", method = RequestMethod.GET)
public Object queryPositionIsUse(@PathVariable("id") String id) { public Object queryPositionIsUse(@PathVariable("name") String name) {
return positionService.queryPositionIsUse(id); return positionService.queryPositionIsUse(name);
}
/**
* @Description: 岗位名称校验重复
* @param id
* @return return_type
* @throws
*/
@ResponseBody
@RequestMapping(value = "/biz/position/verifyPositionName", method = RequestMethod.GET)
public Object verifyPositionName(@RequestParam("name") String name) {
Boolean flag = positionService.verifyPositionName(name);
if (flag) {
//throw new BusinessException("岗位名称重复", BizErrorCodeEnum.POSTITION_NAME_REPEATED);
//throw new RuntimeException("岗位名称重复");
return ResponseObj.error("岗位名称重复");
}
return null;
} }
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment