|
@@ -0,0 +1,121 @@
|
|
|
|
+package com.persagy.dmp.rwd.edit.service;
|
|
|
|
+
|
|
|
|
+import com.fasterxml.jackson.databind.node.ObjectNode;
|
|
|
|
+import com.persagy.common.criteria.CriteriaUtils;
|
|
|
|
+import com.persagy.common.criteria.JacksonCriteria;
|
|
|
|
+import com.persagy.common.web.MapResponse;
|
|
|
|
+import com.persagy.common.web.PagedResponse;
|
|
|
|
+import com.persagy.dmp.rwd.edit.config.web.UserUtils;
|
|
|
|
+import com.persagy.dmp.rwd.edit.entity.ChangeRecord;
|
|
|
|
+import com.persagy.dmp.rwd.edit.entity.QChangeRecord;
|
|
|
|
+import com.persagy.dmp.rwd.edit.repository.ChangeRecordRepository;
|
|
|
|
+import com.querydsl.core.types.dsl.BooleanExpression;
|
|
|
|
+import lombok.extern.slf4j.Slf4j;
|
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
|
+import org.springframework.boot.actuate.endpoint.OperationType;
|
|
|
|
+import org.springframework.stereotype.Service;
|
|
|
|
+
|
|
|
|
+import javax.transaction.Transactional;
|
|
|
|
+import java.util.Arrays;
|
|
|
|
+import java.util.Date;
|
|
|
|
+import java.util.LinkedList;
|
|
|
|
+import java.util.List;
|
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
+
|
|
|
|
+@Slf4j
|
|
|
|
+@Service
|
|
|
|
+public class ChangeRecordService {
|
|
|
|
+
|
|
|
|
+ @Autowired
|
|
|
|
+ ChangeRecordRepository repository;
|
|
|
|
+
|
|
|
|
+ @Autowired
|
|
|
|
+ CriteriaUtils criteriaUtils;
|
|
|
|
+
|
|
|
|
+ private List<BooleanExpression> parse(ObjectNode object) {
|
|
|
|
+ List<BooleanExpression> list = new LinkedList<>();
|
|
|
|
+ QChangeRecord qt = QChangeRecord.changeRecord;
|
|
|
|
+ list.addAll(CriteriaUtils.parse(qt.id, object.get("id")));
|
|
|
|
+ list.addAll(CriteriaUtils.parse(qt.code, object.get("code")));
|
|
|
|
+ list.addAll(CriteriaUtils.parse(qt.infoCode, object.get("infoCode")));
|
|
|
|
+ list.addAll(CriteriaUtils.parse(qt.value, object.get("value")));
|
|
|
|
+ list.addAll(CriteriaUtils.parse(qt.operationType, object.get("operationType"), OperationType.class));
|
|
|
|
+ list.addAll(CriteriaUtils.parse(qt.operationUser, object.get("operationUser")));
|
|
|
|
+ list.addAll(CriteriaUtils.parse(qt.operationTime, object.get("operationTime")));
|
|
|
|
+ list.addAll(CriteriaUtils.parse(qt.confirmUser, object.get("confirmUser")));
|
|
|
|
+ list.addAll(CriteriaUtils.parse(qt.confirmTime, object.get("confirmTime")));
|
|
|
|
+ list.addAll(CriteriaUtils.parse(qt.publishUser, object.get("publishUser")));
|
|
|
|
+ list.addAll(CriteriaUtils.parse(qt.publishTime, object.get("publishTime")));
|
|
|
|
+ list.addAll(CriteriaUtils.parse(qt.finishTime, object.get("finishTime")));
|
|
|
|
+ list.addAll(CriteriaUtils.parse(qt.valid, object.get("valid")));
|
|
|
|
+ list.addAll(CriteriaUtils.parse(qt.state, object.get("state")));
|
|
|
|
+ return list;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public PagedResponse<ChangeRecord> query(JacksonCriteria criteria) {
|
|
|
|
+ PagedResponse<ChangeRecord> result = criteriaUtils.query(QChangeRecord.changeRecord, this::parse, criteria);
|
|
|
|
+ return result;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @Transactional
|
|
|
|
+ public MapResponse create(List<ChangeRecord> param) {
|
|
|
|
+ MapResponse response = new MapResponse();
|
|
|
|
+ param.forEach(item->{
|
|
|
|
+ item.setOperationUser(UserUtils.currentUserId() + "");
|
|
|
|
+ item.setOperationTime(new Date());
|
|
|
|
+ item.setValid(true);
|
|
|
|
+ item.setState(1);
|
|
|
|
+ });
|
|
|
|
+
|
|
|
|
+ List<ChangeRecord> list = repository.saveAll(param);
|
|
|
|
+ List<Integer> idList = list.stream().map(ChangeRecord::getId).collect(Collectors.toList());
|
|
|
|
+ response.add("id", idList);
|
|
|
|
+ return response;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @Transactional
|
|
|
|
+ public MapResponse update(ChangeRecord param) {
|
|
|
|
+ MapResponse response = new MapResponse();
|
|
|
|
+ if (param.getId() == null) {
|
|
|
|
+ response.setFail("id is required");
|
|
|
|
+ return response;
|
|
|
|
+ }
|
|
|
|
+ List<ChangeRecord> data = repository.findAllById(Arrays.asList(param.getId()));
|
|
|
|
+ if (data.size() == 0) {
|
|
|
|
+ response.setFail("id not exists");
|
|
|
|
+ return response;
|
|
|
|
+ }
|
|
|
|
+ ChangeRecord changeRecord = data.get(0);
|
|
|
|
+ if (param.getValue() != null) {
|
|
|
|
+ changeRecord.setValue(param.getValue());
|
|
|
|
+ }
|
|
|
|
+ if (param.getState() == 2) {
|
|
|
|
+ changeRecord.setState(param.getState());
|
|
|
|
+ changeRecord.setConfirmUser(UserUtils.currentUserId() + "");
|
|
|
|
+ changeRecord.setConfirmTime(new Date());
|
|
|
|
+ }
|
|
|
|
+ if (param.getState() == 3) {
|
|
|
|
+ changeRecord.setState(param.getState());
|
|
|
|
+ changeRecord.setPublishUser(UserUtils.currentUserId() + "");
|
|
|
|
+ changeRecord.setPublishTime(new Date());
|
|
|
|
+ }
|
|
|
|
+ if (param.getState() == 4) {
|
|
|
|
+ changeRecord.setState(param.getState());
|
|
|
|
+ changeRecord.setFinishTime(new Date());
|
|
|
|
+ }
|
|
|
|
+ repository.save(changeRecord);
|
|
|
|
+ response.add("id", param.getId());
|
|
|
|
+ return response;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @Transactional
|
|
|
|
+ public MapResponse delete(List<Integer> param) {
|
|
|
|
+ MapResponse response = new MapResponse();
|
|
|
|
+ List<ChangeRecord> list = repository.findAllById(param);
|
|
|
|
+ repository.deleteAll(list);
|
|
|
|
+ return response;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+}
|
|
|
|
+
|