diff --git a/src/main/java/com/qs/serve/common/util/model/QsJsonLocalDateTimeDeserializer.java b/src/main/java/com/qs/serve/common/util/model/QsJsonLocalDateTimeDeserializer.java new file mode 100644 index 00000000..ad46dfb6 --- /dev/null +++ b/src/main/java/com/qs/serve/common/util/model/QsJsonLocalDateTimeDeserializer.java @@ -0,0 +1,28 @@ +package com.qs.serve.common.util.model; + +import com.fasterxml.jackson.core.JacksonException; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; + +import java.io.IOException; +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; + +/** + * @author YenHex + * @since 2023/7/25 + */ +public class QsJsonLocalDateTimeDeserializer extends JsonDeserializer { + + final DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); + + @Override + public LocalDateTime deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JacksonException { + String val = jsonParser.getText(); + if (val==null||val.isEmpty()){ + return null; + } + return LocalDateTime.parse(val,df); + } +} diff --git a/src/main/java/com/qs/serve/modules/seeyon/SeeYonController.java b/src/main/java/com/qs/serve/modules/seeyon/SeeYonController.java new file mode 100644 index 00000000..73e09bbd --- /dev/null +++ b/src/main/java/com/qs/serve/modules/seeyon/SeeYonController.java @@ -0,0 +1,82 @@ +package com.qs.serve.modules.seeyon; + +import com.qs.serve.common.model.dto.PageVo; +import com.qs.serve.common.model.dto.R; +import com.qs.serve.common.util.AuthContextUtils; +import com.qs.serve.common.util.CollectionUtil; +import com.qs.serve.common.util.JsonUtil; +import com.qs.serve.modules.seeyon.entity.CtpAffair; +import com.qs.serve.modules.seeyon.entity.bo.SeeYonApproveQuery; +import com.qs.serve.modules.seeyon.entity.vo.SeeYonApproveDataVo; +import com.qs.serve.modules.seeyon.service.impl.SeeYonRequestBaseService; +import com.qs.serve.modules.sys.entity.SysUser; +import com.qs.serve.modules.sys.service.SysUserService; +import com.qs.serve.modules.tbs.common.TbsSeeYonConst; +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.ArrayList; +import java.util.List; +/** + * 致远通用服务 + * @author YenHex + * @since 2023/7/24 + */ +@Slf4j +@AllArgsConstructor +@RestController +@RequestMapping("seeyon") +public class SeeYonController { + + private SeeYonRequestBaseService seeYonRequestBaseService; + private SysUserService sysUserService; + + /** + * 我的审批列表 + * @param query + * @return + */ + @GetMapping("listMyCheck") + public R> listMyCheck(SeeYonApproveQuery query){ + String userId = AuthContextUtils.getSysUserId(); + SysUser sysUser = sysUserService.getById(userId); + sysUser.checkSyAccount(); + query.setMemberId(sysUser.getSyUserId()); + return listAllCha(query); + } + + /** + * 所有审批 + * @param query + * @return + */ + @GetMapping("listCheckList") + public R> listAllCha(SeeYonApproveQuery query){ + R result = seeYonRequestBaseService.postBase(TbsSeeYonConst.API_LIST_CHECK,query,""); + if(result.getStatus()==200){ + PageVo pageVo = JsonUtil.jsonToPojo(result.getData(),PageVo.class); + List affairList = new ArrayList<>(); + if(CollectionUtil.isNotEmpty(pageVo.getList())){ + for (Object o : pageVo.getList()) { + String json = JsonUtil.objectToJson(o); + SeeYonApproveDataVo obj = JsonUtil.jsonToPojo(json,SeeYonApproveDataVo.class); + if(obj!=null&&obj.getTargetCode()!=null){ + //tempCode不参与业务。统一类型重新赋值,方便前端跳转 + String tempCode = obj.getTemplateCode().replace("_Test",""); + tempCode = tempCode.replace("contractApply","CostBill"); + obj.setTemplateCode(tempCode); + + affairList.add(obj); + } + } + } + PageVo resultVo = PageVo.initNewList(pageVo,affairList); + return R.ok(resultVo); + } + return null; + } + +} diff --git a/src/main/java/com/qs/serve/modules/seeyon/entity/bo/SeeYonApproveQuery.java b/src/main/java/com/qs/serve/modules/seeyon/entity/bo/SeeYonApproveQuery.java new file mode 100644 index 00000000..5231965a --- /dev/null +++ b/src/main/java/com/qs/serve/modules/seeyon/entity/bo/SeeYonApproveQuery.java @@ -0,0 +1,81 @@ +package com.qs.serve.modules.seeyon.entity.bo; + +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import java.time.LocalDate; + +/** + * @author YenHex + * @since 2023/7/24 + */ +@Data +public class SeeYonApproveQuery { + + /** + * OA的员工iD + */ + private String memberId; + + /** + * 模板编码 + */ + private String templateCode; + + + private String targetId; + + /** + * 标题 + */ + private String targetTitle; + + /** + * 编码 + */ + private String targetCode; + + /** + * 申请人信息 + */ + private String applyUserCode; + private String applyUserName; + + /** + * 客户 + */ + private String supplierCode; + private String supplierName; + + /** + * 区域 + */ + private String bizRegion; + private String saleRegion; + + /** + * 状态:3-待审批;4->已审 + */ + private Integer affairState; + + /** + * 申请开始时间 + */ + @DateTimeFormat(pattern = "yyyy-MM-dd") + private LocalDate applyStartDate; + @DateTimeFormat(pattern = "yyyy-MM-dd") + private LocalDate applyEndDate; + + /** + * 评论结束时间 + */ + @DateTimeFormat(pattern = "yyyy-MM-dd") + private LocalDate commitEndDate; + @DateTimeFormat(pattern = "yyyy-MM-dd") + private LocalDate commitStartDate; + + private Integer pageNum; + + private Integer pageSize; + +} diff --git a/src/main/java/com/qs/serve/modules/seeyon/entity/vo/SeeYonApproveDataVo.java b/src/main/java/com/qs/serve/modules/seeyon/entity/vo/SeeYonApproveDataVo.java new file mode 100644 index 00000000..4a5f645f --- /dev/null +++ b/src/main/java/com/qs/serve/modules/seeyon/entity/vo/SeeYonApproveDataVo.java @@ -0,0 +1,68 @@ +package com.qs.serve.modules.seeyon.entity.vo; + +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.qs.serve.common.util.model.QsJsonLocalDateTimeDeserializer; +import lombok.Data; + +import java.time.LocalDateTime; + +/** + * @author YenHex + * @since 2023/7/24 + */ +@Data +public class SeeYonApproveDataVo { + + private String templateCode; + + /** + * 标题 + */ + private String targetTitle; + + /** + * 编码 + */ + private String targetCode; + + private String targetId; + + /** + * 申请人信息 + */ + private String applyUserCode; + private String applyUserName; + + /** + * 客户 + */ + private String supplierCode; + private String supplierName; + + /** + * 区域 + */ + private String bizRegion; + private String saleRegion; + + /** + * 状态:0-待审批;1->已审 + */ + private String affairState; + private String affairId; + + private String memberId; + + /** + * 申请时间 + */ + @JsonDeserialize(using = QsJsonLocalDateTimeDeserializer.class) + private LocalDateTime applyTime; + + /** + * 评论时间 + */ + @JsonDeserialize(using = QsJsonLocalDateTimeDeserializer.class) + private LocalDateTime commitTime; + +} diff --git a/src/main/java/com/qs/serve/modules/tbs/common/TbsSeeYonConst.java b/src/main/java/com/qs/serve/modules/tbs/common/TbsSeeYonConst.java index 7d373232..d75ccb76 100644 --- a/src/main/java/com/qs/serve/modules/tbs/common/TbsSeeYonConst.java +++ b/src/main/java/com/qs/serve/modules/tbs/common/TbsSeeYonConst.java @@ -43,6 +43,7 @@ public interface TbsSeeYonConst { String API_PAGE_AFFAIR = "/process/pageMemberAffair"; String API_CHECK_AFFAIR = "/process/checkAffair"; String API_LIST_AFFAIR = "/process/listFormAffair"; + String API_LIST_CHECK = "/process/getCheckList"; String API_ADD_NODE = "/process/addNode"; String API_COUNT_NOT_OK = "/process/countUnfinished"; String API_CHECK_SUMMERY = "/process/checkAffairSummery";