9 changed files with 371 additions and 3 deletions
@ -0,0 +1,17 @@ |
|||
package com.qs.serve.modules.oms.common.constants; |
|||
|
|||
/** |
|||
* @author YenHex |
|||
* @since 2025/6/9 |
|||
*/ |
|||
public interface OmsPromGitStatus { |
|||
|
|||
int STATUS_0_Save = 0; |
|||
int STATUS_1_Checking = 1; |
|||
int STATUS_2_Finished = 2; |
|||
int STATUS_3_Back = 3; |
|||
int STATUS_4_Stop = 4; |
|||
int STATUS_5_Abandon = 5; |
|||
int STATUS_6_Cancel = 6; |
|||
|
|||
} |
@ -0,0 +1,17 @@ |
|||
package com.qs.serve.modules.oms.entity.dto; |
|||
|
|||
import lombok.Data; |
|||
|
|||
import java.util.Map; |
|||
|
|||
/** |
|||
* 搭赠通案DTO |
|||
* @author YenHex |
|||
* @since 2025/6/9 |
|||
*/ |
|||
@Data |
|||
public class PromotionGiftDTO { |
|||
|
|||
Map<String, Object> mainTableData; |
|||
|
|||
} |
@ -0,0 +1,115 @@ |
|||
package com.qs.serve.modules.oms.controller; |
|||
|
|||
import com.qs.serve.common.annotation.LimitSubmit; |
|||
import com.qs.serve.common.annotation.SysLog; |
|||
import com.qs.serve.common.enums.BizType; |
|||
import com.qs.serve.common.enums.SystemModule; |
|||
import com.qs.serve.framework.base.model.PageVo; |
|||
import com.qs.serve.framework.base.model.R; |
|||
import com.qs.serve.modules.oms.entity.OmsPromotionGift; |
|||
import com.qs.serve.modules.oms.service.OmsPromotionGiftOptionsService; |
|||
import com.qs.serve.modules.oms.service.OmsPromotionGiftService; |
|||
import com.qs.serve.modules.seeyon.entity.CtpAffairQo; |
|||
import com.qs.serve.modules.seeyon.entity.bo.CtpAddNodeParam; |
|||
import com.qs.serve.modules.tbs.entity.bo.TbsAffairCommitBo; |
|||
import com.qs.serve.modules.tbs.entity.vo.CtpAffairVo; |
|||
import lombok.AllArgsConstructor; |
|||
import lombok.extern.slf4j.Slf4j; |
|||
import org.springframework.security.access.prepost.PreAuthorize; |
|||
import org.springframework.web.bind.annotation.*; |
|||
|
|||
import javax.validation.Valid; |
|||
import java.util.List; |
|||
|
|||
/** |
|||
* 订单模块 搭赠方案(审批) |
|||
* @author YenHex |
|||
* @since 2025-06-05 |
|||
*/ |
|||
@Slf4j |
|||
@AllArgsConstructor |
|||
@RestController |
|||
@RequestMapping("oms/promotionGift/check") |
|||
public class OmsPromotionGiftCheckController { |
|||
|
|||
private OmsPromotionGiftOptionsService omsPromotionGiftOptionsService; |
|||
private OmsPromotionGiftService omsPromotionGiftService; |
|||
|
|||
/** |
|||
* 提交审批 |
|||
* @param id 搭赠通案id |
|||
* @return |
|||
*/ |
|||
@PostMapping("/submit/{id}") |
|||
@SysLog(module = SystemModule.ORDER, title = "搭赠提交", biz = BizType.SUBMIT) |
|||
public R<?> save(@PathVariable("id") String id){ |
|||
omsPromotionGiftOptionsService.submit(id); |
|||
return R.ok(); |
|||
} |
|||
|
|||
/** |
|||
* 审批列表(用于详情页) |
|||
* @param targetId |
|||
* @return |
|||
*/ |
|||
@GetMapping("/ListAffairs") |
|||
public R<List<CtpAffairVo>> pageAffair(String targetId){ |
|||
OmsPromotionGift entity = omsPromotionGiftService.getById(targetId); |
|||
return omsPromotionGiftOptionsService.pageAffairV2(targetId,entity.getGiftCode()); |
|||
} |
|||
|
|||
/** |
|||
* 审批列表(翻页) |
|||
* @param param |
|||
* @return |
|||
*/ |
|||
@GetMapping("/pageMemberAffair") |
|||
public R<PageVo<CtpAffairVo>> pageMemberAffair(CtpAffairQo param){ |
|||
return omsPromotionGiftOptionsService.pageMemberAffair(param); |
|||
} |
|||
|
|||
/** |
|||
* 提交审批节点 |
|||
* @return |
|||
*/ |
|||
@LimitSubmit |
|||
@PostMapping("/commitAffair") |
|||
@SysLog(module = SystemModule.ORDER, title = "搭赠审批", biz = BizType.SUBMIT) |
|||
@PreAuthorize("hasRole('tbs:costApply:commit')") |
|||
public R<?> commitAffair(@RequestBody @Valid TbsAffairCommitBo affairCommit){ |
|||
return omsPromotionGiftOptionsService.commitAffair(affairCommit); |
|||
} |
|||
|
|||
/** |
|||
* 加签 |
|||
* @param param |
|||
* @return |
|||
*/ |
|||
@PostMapping("/addNode") |
|||
@SysLog(module = SystemModule.ORDER, title = "搭赠加签", biz = BizType.SUBMIT) |
|||
public R<String> addNode(@RequestBody CtpAddNodeParam param){ |
|||
return omsPromotionGiftOptionsService.addNode(param); |
|||
} |
|||
|
|||
|
|||
/** |
|||
* 获取未完成审批统计(个人) |
|||
* @return |
|||
*/ |
|||
@PostMapping("/getAffairUnfinished") |
|||
public R<Long> getUnfinished(){ |
|||
return omsPromotionGiftOptionsService.getUnfinished(); |
|||
} |
|||
|
|||
/** |
|||
* 补偿按钮 |
|||
* @param id |
|||
* @return |
|||
*/ |
|||
@PostMapping("/compensate/{id}") |
|||
public R<?> compensate(@PathVariable("id") String id){ |
|||
return omsPromotionGiftOptionsService.runCompensate(id); |
|||
} |
|||
|
|||
} |
|||
|
@ -0,0 +1,19 @@ |
|||
package com.qs.serve.modules.oms.service; |
|||
|
|||
import com.baomidou.mybatisplus.extension.service.IService; |
|||
import com.qs.serve.modules.oms.entity.OmsPromotionGift; |
|||
import com.qs.serve.modules.oms.entity.bo.OmsPromotionGiftBo; |
|||
import com.qs.serve.modules.seeyon.service.SeeYonBaseService; |
|||
import com.qs.serve.modules.seeyon.service.SeeYonOperationService; |
|||
|
|||
/** |
|||
* 搭赠方案 服务接口 |
|||
* @author YenHex |
|||
* @date 2025-06-05 |
|||
*/ |
|||
public interface OmsPromotionGiftOptionsService extends SeeYonOperationService { |
|||
|
|||
Object submit(String giftId); |
|||
|
|||
} |
|||
|
@ -0,0 +1,194 @@ |
|||
package com.qs.serve.modules.oms.service.impl; |
|||
|
|||
import com.alibaba.fastjson.JSON; |
|||
import com.alibaba.fastjson.JSONObject; |
|||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
|||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
|||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; |
|||
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; |
|||
import com.qs.serve.common.exception.Assert; |
|||
import com.qs.serve.framework.base.model.R; |
|||
import com.qs.serve.framework.base.model.oa.OaFormMainProcess; |
|||
import com.qs.serve.framework.base.util.DateUtils; |
|||
import com.qs.serve.framework.base.util.model.DateFormatString; |
|||
import com.qs.serve.modules.oms.common.OmsOrderCheckState; |
|||
import com.qs.serve.modules.oms.common.constants.OmsPromGitStatus; |
|||
import com.qs.serve.modules.oms.entity.OmsPromotionGift; |
|||
import com.qs.serve.modules.oms.entity.dto.PromotionGiftDTO; |
|||
import com.qs.serve.modules.oms.service.OmsPromotionGiftOptionsService; |
|||
import com.qs.serve.modules.oms.service.OmsPromotionGiftService; |
|||
import com.qs.serve.modules.seeyon.entity.BaseCreateCallbackBo; |
|||
import com.qs.serve.modules.seeyon.service.SeeYonRequestService; |
|||
import com.qs.serve.modules.seeyon.service.impl.SeeYonRequestBaseService; |
|||
import com.qs.serve.modules.sys.common.AuthContextUtils; |
|||
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 com.qs.serve.modules.tbs.entity.TbsCostApply; |
|||
import com.qs.serve.modules.tbs.entity.bo.TbsAffairCommitBo; |
|||
import lombok.RequiredArgsConstructor; |
|||
import lombok.extern.slf4j.Slf4j; |
|||
import org.springframework.stereotype.Service; |
|||
|
|||
import java.time.LocalDateTime; |
|||
import java.util.ArrayList; |
|||
import java.util.HashMap; |
|||
import java.util.Map; |
|||
|
|||
/** |
|||
* @author YenHex |
|||
* @since 2025/6/6 |
|||
*/ |
|||
@Slf4j |
|||
@Service |
|||
@RequiredArgsConstructor |
|||
public class OmsPromotionGiftOptionsServiceImpl implements OmsPromotionGiftOptionsService { |
|||
|
|||
private final SysUserService sysUserService; |
|||
private OmsPromotionGiftService omsPromotionGiftService; |
|||
private final SeeYonRequestService seeYonService; |
|||
private final SeeYonRequestBaseService seeYonRequestBaseService; |
|||
|
|||
@Override |
|||
public Object submit(String giftId) { |
|||
String userId = AuthContextUtils.getSysUserId(); |
|||
SysUser sysUser = sysUserService.getById(userId); |
|||
String templateCode = this.getTemplateCode(); |
|||
|
|||
String mainTableCode = "formmain_2206"; |
|||
|
|||
PromotionGiftDTO promotionGiftDTO = validAndBuildDTO(giftId,sysUser); |
|||
|
|||
Map<String, Object> mainTableData = promotionGiftDTO.getMainTableData(); |
|||
|
|||
Map<String, Object> newWayData = new HashMap<>(); |
|||
newWayData.put(mainTableCode,mainTableData); |
|||
|
|||
OaFormMainProcess mainProcess = new OaFormMainProcess(); |
|||
mainProcess.setTargetId(giftId); |
|||
mainProcess.setUploadFiles(new ArrayList<>()); |
|||
mainProcess.setTableName(mainTableCode); |
|||
mainProcess.setData(newWayData); |
|||
mainProcess.setTemplateCode(templateCode); |
|||
mainProcess.setUserId(sysUser.getId()); |
|||
mainProcess.setSenderLoginName(sysUser.getAccount()); |
|||
R flowIdResult = seeYonService.newCreateProcess(mainProcess); |
|||
|
|||
if(flowIdResult==null||flowIdResult.getStatus()!=200){ |
|||
assert flowIdResult != null; |
|||
Assert.throwEx("远程服务调用失败:"+flowIdResult.getMsg()); |
|||
} |
|||
if(flowIdResult.getMsg()!=null && flowIdResult.getMsg().length()>45){ |
|||
log.error(flowIdResult.getMsg()); |
|||
JSONObject object = JSON.parseObject(flowIdResult.getMsg()); |
|||
if(!object.get("code").toString().equals("0")){ |
|||
Assert.throwEx("流程发起被拦截了"); |
|||
} |
|||
} |
|||
String formId = null; |
|||
R<String> formIdResult = seeYonService.getFormId(templateCode,Long.parseLong(giftId)); |
|||
if(formIdResult.getStatus()==200){ |
|||
formId = formIdResult.getData(); |
|||
} |
|||
// 更新主表专题
|
|||
OmsPromotionGift uploadStatusEntity = new OmsPromotionGift(); |
|||
uploadStatusEntity.setSyFormId(formId); |
|||
uploadStatusEntity.setGiftStatus(OmsPromGitStatus.STATUS_1_Checking); |
|||
uploadStatusEntity.setSubmitTime(LocalDateTime.now()); |
|||
omsPromotionGiftService.updateById(uploadStatusEntity); |
|||
|
|||
BaseCreateCallbackBo callbackBo = new BaseCreateCallbackBo(templateCode,giftId); |
|||
seeYonService.createCallbackStatus(callbackBo); |
|||
return null; |
|||
} |
|||
|
|||
public PromotionGiftDTO validAndBuildDTO(String mainId, SysUser sysUser){ |
|||
Map<String, Object> data = new HashMap<>(); |
|||
// data.put("orgId", omsOrder.getId());
|
|||
// data.put("targetId", omsOrder.getId());
|
|||
// data.put("targetCode", omsOrder.getOrderSn());
|
|||
// data.put("applyUserCode", sysUser.getCode());
|
|||
// data.put("applyUserName", sysUser.getName());
|
|||
// data.put("supplierName", supplier.getName());
|
|||
// data.put("supplierCode", supplier.getCode());
|
|||
// data.put("exsp1", templateCode);
|
|||
// data.put("exsp2", bizBizNames);
|
|||
// data.put("exsp3", saleBizNames);
|
|||
// // title
|
|||
// data.put("exsp4", "临期订单-"+omsOrder.getOrderSn());
|
|||
// //添加跳转地址业务
|
|||
// String baseJumpUrl = "https://shop.gdjsl.com/pcOrder/#/";
|
|||
// data.put("cmsLink",baseJumpUrl);
|
|||
// data.put("rowDate", DateUtils.format(LocalDateTime.now(), DateFormatString.DATE_TIME));
|
|||
// data.put("rowState","00");
|
|||
// data.put("ext1", omsOrder.getOaRateId());
|
|||
|
|||
return null; |
|||
} |
|||
|
|||
@Override |
|||
public String getTemplateCode() { |
|||
return TbsSeeYonConst.GitApplyConf.Code(); |
|||
} |
|||
|
|||
@Override |
|||
public boolean checkSyFormIdIsNotNull(String targetId) { |
|||
OmsPromotionGift entity = omsPromotionGiftService.getById(targetId); |
|||
if(entity!=null&&entity.getSyFormId()!=null){ |
|||
return true; |
|||
} |
|||
return false; |
|||
} |
|||
|
|||
@Override |
|||
public void doCommitBacked(String targetId) { |
|||
|
|||
} |
|||
|
|||
@Override |
|||
public String getSyFormIdByTargetInfo(TbsAffairCommitBo affairCommit) { |
|||
OmsPromotionGift entity = omsPromotionGiftService.getById(affairCommit.getTargetId()); |
|||
if(entity!=null&&entity.getSyFormId()!=null){ |
|||
if (!entity.getGiftStatus().equals(OmsPromGitStatus.STATUS_0_Save) |
|||
&&!entity.getGiftStatus().equals(OmsPromGitStatus.STATUS_3_Back)){ |
|||
Assert.throwEx("单据状态已更新,请刷新当前页面"); |
|||
} |
|||
return entity.getSyFormId(); |
|||
} |
|||
return null; |
|||
} |
|||
|
|||
@Override |
|||
public Object doBacked(TbsAffairCommitBo param) { |
|||
if (param.getTargetId()==null){ |
|||
omsPromotionGiftService.update(new LambdaUpdateWrapper<OmsPromotionGift>() |
|||
.eq(OmsPromotionGift::getId,param.getTargetId()) |
|||
.set(OmsPromotionGift::getGiftStatus, OmsPromGitStatus.STATUS_3_Back) |
|||
); |
|||
} |
|||
return null; |
|||
} |
|||
|
|||
@Override |
|||
public Object doFinished(TbsAffairCommitBo param) { |
|||
if (param.getTargetId()==null){ |
|||
omsPromotionGiftService.update(new LambdaUpdateWrapper<OmsPromotionGift>() |
|||
.eq(OmsPromotionGift::getId,param.getTargetId()) |
|||
.set(OmsPromotionGift::getGiftStatus,OmsPromGitStatus.STATUS_2_Finished) |
|||
); |
|||
} |
|||
return null; |
|||
} |
|||
|
|||
@Override |
|||
public Object doRefuse(TbsAffairCommitBo param) { |
|||
if (param.getTargetId()==null){ |
|||
omsPromotionGiftService.update(new LambdaUpdateWrapper<OmsPromotionGift>() |
|||
.eq(OmsPromotionGift::getId,param.getTargetId()) |
|||
.set(OmsPromotionGift::getGiftStatus,OmsPromGitStatus.STATUS_4_Stop) |
|||
); |
|||
} |
|||
return null; |
|||
} |
|||
|
|||
} |
Loading…
Reference in new issue