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