|
@@ -7,8 +7,8 @@ import com.uas.kanban.dao.KanbanDao;
|
|
|
import com.uas.kanban.dao.PanelDao;
|
|
import com.uas.kanban.dao.PanelDao;
|
|
|
import com.uas.kanban.exception.OperationException;
|
|
import com.uas.kanban.exception.OperationException;
|
|
|
import com.uas.kanban.model.Kanban;
|
|
import com.uas.kanban.model.Kanban;
|
|
|
|
|
+import com.uas.kanban.service.KanbanHistoryService;
|
|
|
import com.uas.kanban.service.KanbanService;
|
|
import com.uas.kanban.service.KanbanService;
|
|
|
-import com.uas.kanban.util.StringUtils;
|
|
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
|
@@ -30,6 +30,9 @@ public class KanbanServiceImpl extends BaseService<Kanban> implements KanbanServ
|
|
|
@Autowired
|
|
@Autowired
|
|
|
private PanelDao panelDao;
|
|
private PanelDao panelDao;
|
|
|
|
|
|
|
|
|
|
+ @Autowired
|
|
|
|
|
+ private KanbanHistoryService kanbanHistoryService;
|
|
|
|
|
+
|
|
|
@Override
|
|
@Override
|
|
|
public Kanban save(@NotEmpty("json") String json) {
|
|
public Kanban save(@NotEmpty("json") String json) {
|
|
|
// TODO update related Panel and PanelInstance
|
|
// TODO update related Panel and PanelInstance
|
|
@@ -49,30 +52,39 @@ public class KanbanServiceImpl extends BaseService<Kanban> implements KanbanServ
|
|
|
@Override
|
|
@Override
|
|
|
public int update(@NotEmpty("json") String json) throws IllegalArgumentException, OperationException {
|
|
public int update(@NotEmpty("json") String json) throws IllegalArgumentException, OperationException {
|
|
|
// TODO update related Panel and PanelInstance (old and new)
|
|
// TODO update related Panel and PanelInstance (old and new)
|
|
|
- processPanel(json);
|
|
|
|
|
|
|
+ Kanban kanban = JSONObject.parseObject(json, Kanban.class);
|
|
|
|
|
+ processPanel(kanban);
|
|
|
|
|
+ kanbanHistoryService.backup(kanban.codeNotEmpty(), null, true);
|
|
|
return super.update(json);
|
|
return super.update(json);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
@Override
|
|
|
public int updatePart(@NotEmpty("json") String json) throws IllegalArgumentException, OperationException {
|
|
public int updatePart(@NotEmpty("json") String json) throws IllegalArgumentException, OperationException {
|
|
|
// TODO update related Panel and PanelInstance (old and new)
|
|
// TODO update related Panel and PanelInstance (old and new)
|
|
|
- processPanel(json);
|
|
|
|
|
|
|
+ Kanban kanban = JSONObject.parseObject(json, Kanban.class);
|
|
|
|
|
+ processPanel(kanban);
|
|
|
|
|
+ kanbanHistoryService.backup(kanban.codeNotEmpty(), null, true);
|
|
|
return super.updatePart(json);
|
|
return super.updatePart(json);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ @Override
|
|
|
|
|
+ public int update(@NotEmpty("kanban") Kanban kanban, Boolean backup) throws OperationException {
|
|
|
|
|
+ processPanel(kanban);
|
|
|
|
|
+ if (backup != null && backup) {
|
|
|
|
|
+ kanbanHistoryService.backup(kanban.codeNotEmpty(), null, true);
|
|
|
|
|
+ }
|
|
|
|
|
+ return kanbanDao.update(kanban);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
/**
|
|
/**
|
|
|
* 处理看板关联的面板,包括检查 panelCode 是否被修改,更新面板版本等
|
|
* 处理看板关联的面板,包括检查 panelCode 是否被修改,更新面板版本等
|
|
|
*
|
|
*
|
|
|
- * @param json 看板
|
|
|
|
|
|
|
+ * @param kanban 看板
|
|
|
* @throws OperationException panelCode 是否被修改
|
|
* @throws OperationException panelCode 是否被修改
|
|
|
*/
|
|
*/
|
|
|
- private void processPanel(@NotEmpty("json") String json) throws OperationException {
|
|
|
|
|
- JSONObject jsonObject = JSONObject.parseObject(json);
|
|
|
|
|
- String code = jsonObject.getString("code");
|
|
|
|
|
- if (StringUtils.isEmpty(code)) {
|
|
|
|
|
- throw new IllegalArgumentException("未指定 code");
|
|
|
|
|
- }
|
|
|
|
|
- String panelCode = jsonObject.getString("panelCode");
|
|
|
|
|
|
|
+ private void processPanel(@NotEmpty("kanban") Kanban kanban) throws OperationException {
|
|
|
|
|
+ String code = kanban.codeNotEmpty();
|
|
|
|
|
+ String panelCode = kanban.getPanelCode();
|
|
|
String oldPanelCode = kanbanDao.findPanelCode(code);
|
|
String oldPanelCode = kanbanDao.findPanelCode(code);
|
|
|
if (panelCode != null && !panelCode.equals(oldPanelCode)) {
|
|
if (panelCode != null && !panelCode.equals(oldPanelCode)) {
|
|
|
throw new OperationException("不可修改 panelCode");
|
|
throw new OperationException("不可修改 panelCode");
|
|
@@ -91,6 +103,8 @@ public class KanbanServiceImpl extends BaseService<Kanban> implements KanbanServ
|
|
|
public int deleteOne(@NotEmpty("code") String code) throws OperationException {
|
|
public int deleteOne(@NotEmpty("code") String code) throws OperationException {
|
|
|
// TODO update related Panel and PanelInstance
|
|
// TODO update related Panel and PanelInstance
|
|
|
panelDao.incVersion(kanbanDao.findPanelCodes(Collections.singletonList(code)));
|
|
panelDao.incVersion(kanbanDao.findPanelCodes(Collections.singletonList(code)));
|
|
|
|
|
+ // 删除看板历史记录
|
|
|
|
|
+ kanbanHistoryService.deleteByKanbanCodes(Collections.singletonList(code));
|
|
|
return super.deleteOne(code);
|
|
return super.deleteOne(code);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -98,6 +112,7 @@ public class KanbanServiceImpl extends BaseService<Kanban> implements KanbanServ
|
|
|
public int delete(@NotEmpty("codes") List<String> codes) throws OperationException {
|
|
public int delete(@NotEmpty("codes") List<String> codes) throws OperationException {
|
|
|
// TODO update related Panel and PanelInstance
|
|
// TODO update related Panel and PanelInstance
|
|
|
panelDao.incVersion(kanbanDao.findPanelCodes(codes));
|
|
panelDao.incVersion(kanbanDao.findPanelCodes(codes));
|
|
|
|
|
+ kanbanHistoryService.deleteByKanbanCodes(codes);
|
|
|
return super.delete(codes);
|
|
return super.delete(codes);
|
|
|
}
|
|
}
|
|
|
|
|
|