|
|
@@ -5,10 +5,13 @@ import com.java110.core.annotation.Java110Cmd;
|
|
|
import com.java110.core.context.ICmdDataFlowContext;
|
|
|
import com.java110.core.event.cmd.Cmd;
|
|
|
import com.java110.core.event.cmd.CmdEvent;
|
|
|
+import com.java110.dto.purchaseApply.PurchaseApplyDto;
|
|
|
import com.java110.dto.purchase.PurchaseApplyDto;
|
|
|
+import com.java110.intf.common.IOaWorkflowActivitiInnerServiceSMO;
|
|
|
import com.java110.intf.common.IPurchaseApplyUserInnerServiceSMO;
|
|
|
import com.java110.intf.store.IPurchaseApplyInnerServiceSMO;
|
|
|
import com.java110.intf.store.IPurchaseApplyV1InnerServiceSMO;
|
|
|
+import com.java110.po.purchaseApply.PurchaseApplyPo;
|
|
|
import com.java110.po.purchase.PurchaseApplyPo;
|
|
|
import com.java110.utils.exception.CmdException;
|
|
|
import com.java110.utils.util.Assert;
|
|
|
@@ -32,97 +35,65 @@ public class AuditApplyOrderCmd extends Cmd {
|
|
|
@Autowired
|
|
|
private IPurchaseApplyV1InnerServiceSMO purchaseApplyV1InnerServiceSMOImpl;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private IOaWorkflowActivitiInnerServiceSMO oaWorkflowUserInnerServiceSMOImpl;
|
|
|
+
|
|
|
@Override
|
|
|
public void validate(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException {
|
|
|
- Assert.hasKeyAndValue(reqJson, "applyOrderId", "订单号不能为空");
|
|
|
- Assert.hasKeyAndValue(reqJson, "taskId", "必填,请填写任务ID");
|
|
|
- Assert.hasKeyAndValue(reqJson, "state", "必填,请填写审核状态");
|
|
|
- Assert.hasKeyAndValue(reqJson, "remark", "必填,请填写批注");
|
|
|
+
|
|
|
+ Assert.hasKeyAndValue(reqJson, "taskId", "未包含任务");
|
|
|
+ Assert.hasKeyAndValue(reqJson, "id", "订单号不能为空");
|
|
|
+ Assert.hasKeyAndValue(reqJson, "auditCode", "未包含状态");
|
|
|
+ Assert.hasKeyAndValue(reqJson, "auditMessage", "未包含状态说明");
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
public void doCmd(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException, ParseException {
|
|
|
+
|
|
|
+ String storeId = context.getReqHeaders().get("store-id");
|
|
|
+
|
|
|
PurchaseApplyDto purchaseApplyDto = new PurchaseApplyDto();
|
|
|
- purchaseApplyDto.setTaskId(reqJson.getString("taskId"));
|
|
|
- purchaseApplyDto.setApplyOrderId(reqJson.getString("applyOrderId"));
|
|
|
- purchaseApplyDto.setStoreId(reqJson.getString("storeId"));
|
|
|
- purchaseApplyDto.setAuditCode(reqJson.getString("state"));
|
|
|
- purchaseApplyDto.setNoticeState(reqJson.getString("noticeState"));
|
|
|
- purchaseApplyDto.setAuditMessage(reqJson.getString("remark"));
|
|
|
- purchaseApplyDto.setCurrentUserId(reqJson.getString("userId"));
|
|
|
- purchaseApplyDto.setCommunityId(reqJson.getString("communityId"));
|
|
|
- purchaseApplyDto.setNextStaffId(reqJson.getString("nextUserId"));
|
|
|
- PurchaseApplyDto tmpPurchaseApplyDto = new PurchaseApplyDto();
|
|
|
- tmpPurchaseApplyDto.setApplyOrderId(reqJson.getString("applyOrderId"));
|
|
|
- tmpPurchaseApplyDto.setStoreId(reqJson.getString("storeId"));
|
|
|
- List<PurchaseApplyDto> purchaseApplyDtos = purchaseApplyInnerServiceSMOImpl.queryPurchaseApplys(tmpPurchaseApplyDto);
|
|
|
- Assert.listOnlyOne(purchaseApplyDtos, "采购申请单存在多条");
|
|
|
- purchaseApplyDto.setStartUserId(purchaseApplyDtos.get(0).getUserId());
|
|
|
- purchaseApplyDto.setResOrderType(purchaseApplyDtos.get(0).getResOrderType());
|
|
|
- purchaseApplyDto.setNextStaffId(reqJson.getString("nextUserId"));
|
|
|
- if (purchaseApplyDtos.get(0).getState().equals(purchaseApplyDto.STATE_WAIT_DEAL) && reqJson.getString("state").equals("1100")) { //如果状态是未审核 并且是审核通过,就变成审核中
|
|
|
- PurchaseApplyPo purchaseApplyPo = new PurchaseApplyPo();
|
|
|
- purchaseApplyPo.setApplyOrderId(purchaseApplyDtos.get(0).getApplyOrderId());
|
|
|
- purchaseApplyPo.setState(purchaseApplyDto.STATE_DEALING);
|
|
|
- int flag = purchaseApplyV1InnerServiceSMOImpl.updatePurchaseApply(purchaseApplyPo);
|
|
|
-
|
|
|
- if (flag < 1) {
|
|
|
- throw new CmdException("更新数据失败");
|
|
|
- }
|
|
|
- } else if ((purchaseApplyDtos.get(0).getState().equals(purchaseApplyDto.STATE_DEALING) || purchaseApplyDtos.get(0).getState().equals(purchaseApplyDto.STATE_AUDITED))
|
|
|
- && reqJson.getString("state").equals("1100")) { //如果状态是审核中 并且是审核通过,
|
|
|
- PurchaseApplyPo purchaseApplyPo = new PurchaseApplyPo();
|
|
|
- purchaseApplyPo.setApplyOrderId(purchaseApplyDtos.get(0).getApplyOrderId());
|
|
|
- int flag = purchaseApplyV1InnerServiceSMOImpl.updatePurchaseApply(purchaseApplyPo);
|
|
|
-
|
|
|
- if (flag < 1) {
|
|
|
- throw new CmdException("更新数据失败");
|
|
|
- }
|
|
|
- } else if (purchaseApplyDtos.get(0).getState().equals(purchaseApplyDto.STATE_NOT_PASS) && reqJson.getString("state").equals("1200")) { //如果状态未通过 并且是结束,
|
|
|
- PurchaseApplyPo purchaseApplyPo = new PurchaseApplyPo();
|
|
|
- purchaseApplyPo.setApplyOrderId(purchaseApplyDtos.get(0).getApplyOrderId());
|
|
|
- int flag = purchaseApplyV1InnerServiceSMOImpl.updatePurchaseApply(purchaseApplyPo);
|
|
|
+ purchaseApplyDto.setApplyOrderId(reqJson.getString("id"));
|
|
|
+ List<PurchaseApplyDto> purchaseApplyDtos = purchaseApplyV1InnerServiceSMOImpl.queryPurchaseApplys(purchaseApplyDto);
|
|
|
|
|
|
- if (flag < 1) {
|
|
|
- throw new CmdException("更新数据失败");
|
|
|
- }
|
|
|
- }
|
|
|
+ Assert.listOnlyOne(purchaseApplyDtos, "采购申请不存在");
|
|
|
|
|
|
- boolean isLastTask = purchaseApplyUserInnerServiceSMOImpl.completeTask(purchaseApplyDto);
|
|
|
- ResponseEntity<String> responseEntity = new ResponseEntity<String>("成功", HttpStatus.OK);
|
|
|
- if (isLastTask && purchaseApplyDtos.get(0).getState().equals(purchaseApplyDto.STATE_AUDITED)) {//已经是已审核入库完成的状态进行更新状态
|
|
|
- updatePurchaseApply(reqJson);
|
|
|
- }
|
|
|
- if (reqJson.getString("state").equals("1200") && !isLastTask) {//审核拒绝时,状态变为拒绝状态
|
|
|
- PurchaseApplyPo purchaseApplyPo = new PurchaseApplyPo();
|
|
|
- purchaseApplyPo.setApplyOrderId(purchaseApplyDtos.get(0).getApplyOrderId());
|
|
|
- purchaseApplyPo.setState(purchaseApplyDto.STATE_NOT_PASS);
|
|
|
- int flag = purchaseApplyV1InnerServiceSMOImpl.updatePurchaseApply(purchaseApplyPo);
|
|
|
-
|
|
|
- if (flag < 1) {
|
|
|
- throw new CmdException("更新数据失败");
|
|
|
+ //状态 W待审核 D 审核中 C 审核完成 D 审核失败
|
|
|
+ PurchaseApplyPo purchaseApplyPo = new PurchaseApplyPo();
|
|
|
+ purchaseApplyPo.setApplyOrderId(purchaseApplyDtos.get(0).getApplyOrderId());
|
|
|
+ reqJson.put("id", reqJson.getString("id"));
|
|
|
+ reqJson.put("storeId", storeId);
|
|
|
+
|
|
|
+
|
|
|
+ //业务办理
|
|
|
+ if ("1100".equals(reqJson.getString("auditCode"))
|
|
|
+ || "1500".equals(reqJson.getString("auditCode"))) { //办理操作
|
|
|
+ reqJson.put("nextUserId", reqJson.getString("staffId"));
|
|
|
+ boolean isLastTask = oaWorkflowUserInnerServiceSMOImpl.completeTask(reqJson);
|
|
|
+ if (isLastTask) {
|
|
|
+ purchaseApplyPo.setState(PurchaseApplyDto.STATE_END);
|
|
|
+ } else {
|
|
|
+ purchaseApplyPo.setState(PurchaseApplyDto.STATE_DEALING);
|
|
|
}
|
|
|
+ purchaseApplyV1InnerServiceSMOImpl.updatePurchaseApply(purchaseApplyPo);
|
|
|
+ //完成当前流程 插入下一处理人
|
|
|
+ } else if ("1300".equals(reqJson.getString("auditCode"))) { //转单操作
|
|
|
+ reqJson.put("nextUserId", reqJson.getString("staffId"));
|
|
|
+ oaWorkflowUserInnerServiceSMOImpl.changeTaskToOtherUser(reqJson);
|
|
|
+ //reqJson.put("state", "1004"); //工单转单
|
|
|
+ purchaseApplyPo.setState(PurchaseApplyDto.STATE_DEALING);
|
|
|
+ purchaseApplyV1InnerServiceSMOImpl.updatePurchaseApply(purchaseApplyPo);
|
|
|
+ } else if ("1200".equals(reqJson.getString("auditCode"))
|
|
|
+ || "1400".equals(reqJson.getString("auditCode"))
|
|
|
+ ) { //退回操作
|
|
|
+ oaWorkflowUserInnerServiceSMOImpl.goBackTask(reqJson);
|
|
|
+ //reqJson.put("state", "1003"); //工单退单
|
|
|
+ purchaseApplyPo.setState(PurchaseApplyDto.STATE_NOT_PASS);
|
|
|
+ purchaseApplyV1InnerServiceSMOImpl.updatePurchaseApply(purchaseApplyPo);
|
|
|
+ } else {
|
|
|
+ throw new IllegalArgumentException("不支持的类型");
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- /**
|
|
|
- * @param paramInJson 接口调用放传入入参
|
|
|
- * @return 订单服务能够接受的报文
|
|
|
- */
|
|
|
- private void updatePurchaseApply(JSONObject paramInJson) {
|
|
|
- PurchaseApplyDto purchaseApplyDto = new PurchaseApplyDto();
|
|
|
- purchaseApplyDto.setStoreId(paramInJson.getString("storeId"));
|
|
|
- purchaseApplyDto.setApplyOrderId(paramInJson.getString("applyOrderId"));
|
|
|
- List<PurchaseApplyDto> purchaseApplyDtos = purchaseApplyInnerServiceSMOImpl.queryPurchaseApplys(purchaseApplyDto);
|
|
|
- Assert.listOnlyOne(purchaseApplyDtos, "存在多条记录,或不存在数据" + purchaseApplyDto.getApplyOrderId());
|
|
|
- JSONObject businessComplaint = new JSONObject();
|
|
|
- businessComplaint.putAll(BeanConvertUtil.beanCovertMap(purchaseApplyDtos.get(0)));
|
|
|
- PurchaseApplyPo purchaseApplyPo = BeanConvertUtil.covertBean(businessComplaint, PurchaseApplyPo.class);
|
|
|
- purchaseApplyPo.setState(purchaseApplyDto.STATE_END);
|
|
|
- int flag = purchaseApplyV1InnerServiceSMOImpl.updatePurchaseApply(purchaseApplyPo);
|
|
|
-
|
|
|
- if (flag < 1) {
|
|
|
- throw new CmdException("更新数据失败");
|
|
|
- }
|
|
|
- }
|
|
|
+
|
|
|
}
|