Showing
8 changed files
with
108 additions
and
0 deletions
| @@ -26,6 +26,12 @@ public class GetRequestCarTicketBo extends BaseBo<RequestCarTicket> { | @@ -26,6 +26,12 @@ public class GetRequestCarTicketBo extends BaseBo<RequestCarTicket> { | ||
| 26 | private String id; | 26 | private String id; |
| 27 | 27 | ||
| 28 | /** | 28 | /** |
| 29 | + * 订货单ID | ||
| 30 | + */ | ||
| 31 | + @ApiModelProperty("订货单ID") | ||
| 32 | + private String purchaseOrderId; | ||
| 33 | + | ||
| 34 | + /** | ||
| 29 | * 要车日期 | 35 | * 要车日期 |
| 30 | */ | 36 | */ |
| 31 | @ApiModelProperty("要车日期") | 37 | @ApiModelProperty("要车日期") |
| @@ -8,6 +8,7 @@ import java.time.LocalDateTime; | @@ -8,6 +8,7 @@ import java.time.LocalDateTime; | ||
| 8 | import com.baomidou.mybatisplus.annotation.FieldFill; | 8 | import com.baomidou.mybatisplus.annotation.FieldFill; |
| 9 | import com.lframework.starter.web.core.entity.BaseEntity; | 9 | import com.lframework.starter.web.core.entity.BaseEntity; |
| 10 | import com.baomidou.mybatisplus.annotation.TableField; | 10 | import com.baomidou.mybatisplus.annotation.TableField; |
| 11 | +import io.swagger.annotations.ApiModelProperty; | ||
| 11 | import lombok.Data; | 12 | import lombok.Data; |
| 12 | 13 | ||
| 13 | /** | 14 | /** |
| @@ -30,6 +31,11 @@ public class RequestCarTicket extends BaseEntity implements BaseDto { | @@ -30,6 +31,11 @@ public class RequestCarTicket extends BaseEntity implements BaseDto { | ||
| 30 | private String id; | 31 | private String id; |
| 31 | 32 | ||
| 32 | /** | 33 | /** |
| 34 | + * 订货单ID | ||
| 35 | + */ | ||
| 36 | + private String purchaseOrderId; | ||
| 37 | + | ||
| 38 | + /** | ||
| 33 | * 要车日期 | 39 | * 要车日期 |
| 34 | */ | 40 | */ |
| 35 | private LocalDate requestCarData; | 41 | private LocalDate requestCarData; |
| @@ -5,6 +5,7 @@ import com.lframework.starter.bpm.enums.FlowInstanceStatus; | @@ -5,6 +5,7 @@ import com.lframework.starter.bpm.enums.FlowInstanceStatus; | ||
| 5 | import com.lframework.starter.bpm.service.BusinessDataHandlerService; | 5 | import com.lframework.starter.bpm.service.BusinessDataHandlerService; |
| 6 | import com.lframework.starter.mq.core.service.MqProducerService; | 6 | import com.lframework.starter.mq.core.service.MqProducerService; |
| 7 | import com.lframework.starter.web.core.components.redis.RedisHandler; | 7 | import com.lframework.starter.web.core.components.redis.RedisHandler; |
| 8 | +import com.lframework.starter.web.core.components.security.SecurityUtil; | ||
| 8 | import com.lframework.starter.web.core.utils.IdUtil; | 9 | import com.lframework.starter.web.core.utils.IdUtil; |
| 9 | import com.lframework.starter.web.core.utils.JsonUtil; | 10 | import com.lframework.starter.web.core.utils.JsonUtil; |
| 10 | import com.lframework.starter.web.inner.dto.message.SysSiteMessageDto; | 11 | import com.lframework.starter.web.inner.dto.message.SysSiteMessageDto; |
| @@ -17,6 +18,7 @@ import com.lframework.xingyun.sc.service.customer.CustomerCreditHistoryService; | @@ -17,6 +18,7 @@ import com.lframework.xingyun.sc.service.customer.CustomerCreditHistoryService; | ||
| 17 | import com.lframework.xingyun.sc.service.customer.CustomerCreditService; | 18 | import com.lframework.xingyun.sc.service.customer.CustomerCreditService; |
| 18 | import com.lframework.xingyun.sc.service.customer.CustomerDevelopPlanService; | 19 | import com.lframework.xingyun.sc.service.customer.CustomerDevelopPlanService; |
| 19 | import com.lframework.xingyun.sc.service.order.*; | 20 | import com.lframework.xingyun.sc.service.order.*; |
| 21 | +import com.lframework.xingyun.sc.service.shipments.car.RequestCarTicketService; | ||
| 20 | import com.lframework.xingyun.sc.vo.customer.credit.QueryCorePersonnelHistoryVo; | 22 | import com.lframework.xingyun.sc.vo.customer.credit.QueryCorePersonnelHistoryVo; |
| 21 | import com.lframework.xingyun.sc.vo.customer.credit.UpdateCustomerCreditVo; | 23 | import com.lframework.xingyun.sc.vo.customer.credit.UpdateCustomerCreditVo; |
| 22 | import com.lframework.xingyun.sc.vo.order.QueryPurchaseOrderLineVo; | 24 | import com.lframework.xingyun.sc.vo.order.QueryPurchaseOrderLineVo; |
| @@ -69,6 +71,8 @@ public class BusinessDataHandlerServiceImpl implements BusinessDataHandlerServic | @@ -69,6 +71,8 @@ public class BusinessDataHandlerServiceImpl implements BusinessDataHandlerServic | ||
| 69 | private TransactorHandler transactorHandler; | 71 | private TransactorHandler transactorHandler; |
| 70 | @Resource | 72 | @Resource |
| 71 | private SpecLockDelayApplicationService specLockDelayApplicationService; | 73 | private SpecLockDelayApplicationService specLockDelayApplicationService; |
| 74 | + @Resource | ||
| 75 | + private RequestCarTicketService requestCarTicketService; | ||
| 72 | 76 | ||
| 73 | 77 | ||
| 74 | /** | 78 | /** |
| @@ -124,6 +128,9 @@ public class BusinessDataHandlerServiceImpl implements BusinessDataHandlerServic | @@ -124,6 +128,9 @@ public class BusinessDataHandlerServiceImpl implements BusinessDataHandlerServic | ||
| 124 | case "SPEC_LOCK_DELAY": | 128 | case "SPEC_LOCK_DELAY": |
| 125 | handleSpecLockDelayAuditData(flowStatus, businessId); | 129 | handleSpecLockDelayAuditData(flowStatus, businessId); |
| 126 | break; | 130 | break; |
| 131 | + case "REQUEST_CAR_TICKET": | ||
| 132 | + handleRequestCarTicketData(flowStatus, businessId); | ||
| 133 | + break; | ||
| 127 | default: | 134 | default: |
| 128 | break; | 135 | break; |
| 129 | } | 136 | } |
| @@ -383,4 +390,24 @@ public class BusinessDataHandlerServiceImpl implements BusinessDataHandlerServic | @@ -383,4 +390,24 @@ public class BusinessDataHandlerServiceImpl implements BusinessDataHandlerServic | ||
| 383 | orderChangeRecordService.updateStatus(businessId, "REFUSE"); | 390 | orderChangeRecordService.updateStatus(businessId, "REFUSE"); |
| 384 | } | 391 | } |
| 385 | } | 392 | } |
| 393 | + | ||
| 394 | + /** | ||
| 395 | + * 发货计划-草稿要车单业务数据处理 | ||
| 396 | + * | ||
| 397 | + * @param businessId 业务ID | ||
| 398 | + */ | ||
| 399 | + private void handleRequestCarTicketData(String flowStatus, String businessId) { | ||
| 400 | + if (FlowInstanceStatus.APPROVE_PASS.getCode().equals(flowStatus) | ||
| 401 | + || FlowInstanceStatus.FINISH.getCode().equals(flowStatus)) { | ||
| 402 | + requestCarTicketService.updateStatus(businessId, "PASS"); | ||
| 403 | + //更新外办审核人 | ||
| 404 | + requestCarTicketService.updateExamineUser(businessId, SecurityUtil.getCurrentUser().getId(), null, null); | ||
| 405 | + } else if (FlowInstanceStatus.REVOKE.getCode().equals(flowStatus) | ||
| 406 | + || FlowInstanceStatus.REFUSE.getCode().equals(flowStatus) | ||
| 407 | + || FlowInstanceStatus.TERMINATION.getCode().equals(flowStatus)) { | ||
| 408 | + requestCarTicketService.updateStatus(businessId, "REFUSE"); | ||
| 409 | + //更新外办审核人 | ||
| 410 | + requestCarTicketService.updateExamineUser(businessId, SecurityUtil.getCurrentUser().getId(), null, null); | ||
| 411 | + } | ||
| 412 | + } | ||
| 386 | } | 413 | } |
| @@ -3,6 +3,8 @@ package com.lframework.xingyun.sc.impl.shipments.car; | @@ -3,6 +3,8 @@ package com.lframework.xingyun.sc.impl.shipments.car; | ||
| 3 | import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; | 3 | import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; |
| 4 | import com.baomidou.mybatisplus.core.toolkit.Wrappers; | 4 | import com.baomidou.mybatisplus.core.toolkit.Wrappers; |
| 5 | import com.github.pagehelper.PageInfo; | 5 | import com.github.pagehelper.PageInfo; |
| 6 | +import com.lframework.starter.bpm.service.FlowInstanceWrapperService; | ||
| 7 | +import com.lframework.starter.web.core.components.security.SecurityUtil; | ||
| 6 | import com.lframework.starter.web.core.impl.BaseMpServiceImpl; | 8 | import com.lframework.starter.web.core.impl.BaseMpServiceImpl; |
| 7 | import com.lframework.starter.web.core.utils.PageResultUtil; | 9 | import com.lframework.starter.web.core.utils.PageResultUtil; |
| 8 | import com.lframework.starter.web.core.components.resp.PageResult; | 10 | import com.lframework.starter.web.core.components.resp.PageResult; |
| @@ -26,10 +28,14 @@ import org.apache.commons.lang3.StringUtils; | @@ -26,10 +28,14 @@ import org.apache.commons.lang3.StringUtils; | ||
| 26 | import org.springframework.transaction.annotation.Transactional; | 28 | import org.springframework.transaction.annotation.Transactional; |
| 27 | import org.springframework.stereotype.Service; | 29 | import org.springframework.stereotype.Service; |
| 28 | 30 | ||
| 31 | +import javax.annotation.Resource; | ||
| 29 | import java.util.List; | 32 | import java.util.List; |
| 30 | 33 | ||
| 31 | @Service | 34 | @Service |
| 32 | public class RequestCarTicketServiceImpl extends BaseMpServiceImpl<RequestCarTicketMapper, RequestCarTicket> implements RequestCarTicketService { | 35 | public class RequestCarTicketServiceImpl extends BaseMpServiceImpl<RequestCarTicketMapper, RequestCarTicket> implements RequestCarTicketService { |
| 36 | + private static final String BPM_FLAG = "REQUEST_CAR_TICKET"; | ||
| 37 | + @Resource | ||
| 38 | + private FlowInstanceWrapperService flowInstanceWrapperService; | ||
| 33 | 39 | ||
| 34 | @Override | 40 | @Override |
| 35 | public PageResult<RequestCarTicket> query(Integer pageIndex, Integer pageSize, QueryRequestCarTicketVo vo) { | 41 | public PageResult<RequestCarTicket> query(Integer pageIndex, Integer pageSize, QueryRequestCarTicketVo vo) { |
| @@ -62,6 +68,9 @@ public class RequestCarTicketServiceImpl extends BaseMpServiceImpl<RequestCarTic | @@ -62,6 +68,9 @@ public class RequestCarTicketServiceImpl extends BaseMpServiceImpl<RequestCarTic | ||
| 62 | 68 | ||
| 63 | RequestCarTicket data = new RequestCarTicket(); | 69 | RequestCarTicket data = new RequestCarTicket(); |
| 64 | data.setId(IdUtil.getId()); | 70 | data.setId(IdUtil.getId()); |
| 71 | + if (!StringUtil.isBlank(vo.getPurchaseOrderId())) { | ||
| 72 | + data.setPurchaseOrderId(vo.getPurchaseOrderId()); | ||
| 73 | + } | ||
| 65 | if (vo.getRequestCarData() != null) { | 74 | if (vo.getRequestCarData() != null) { |
| 66 | data.setRequestCarData(vo.getRequestCarData()); | 75 | data.setRequestCarData(vo.getRequestCarData()); |
| 67 | } | 76 | } |
| @@ -121,6 +130,9 @@ public class RequestCarTicketServiceImpl extends BaseMpServiceImpl<RequestCarTic | @@ -121,6 +130,9 @@ public class RequestCarTicketServiceImpl extends BaseMpServiceImpl<RequestCarTic | ||
| 121 | 130 | ||
| 122 | OpLogUtil.setVariable("id", data.getId()); | 131 | OpLogUtil.setVariable("id", data.getId()); |
| 123 | OpLogUtil.setExtra(vo); | 132 | OpLogUtil.setExtra(vo); |
| 133 | + //开启审核 | ||
| 134 | + data.setUpdateById(SecurityUtil.getCurrentUser().getId()); | ||
| 135 | + flowInstanceWrapperService.startInstance(BPM_FLAG, data.getId(), BPM_FLAG, data); | ||
| 124 | 136 | ||
| 125 | return data.getId(); | 137 | return data.getId(); |
| 126 | } | 138 | } |
| @@ -136,6 +148,7 @@ public class RequestCarTicketServiceImpl extends BaseMpServiceImpl<RequestCarTic | @@ -136,6 +148,7 @@ public class RequestCarTicketServiceImpl extends BaseMpServiceImpl<RequestCarTic | ||
| 136 | } | 148 | } |
| 137 | 149 | ||
| 138 | LambdaUpdateWrapper<RequestCarTicket> updateWrapper = Wrappers.lambdaUpdate(RequestCarTicket.class) | 150 | LambdaUpdateWrapper<RequestCarTicket> updateWrapper = Wrappers.lambdaUpdate(RequestCarTicket.class) |
| 151 | + .set(RequestCarTicket::getPurchaseOrderId, StringUtil.isBlank(vo.getPurchaseOrderId()) ? null : vo.getPurchaseOrderId()) | ||
| 139 | .set(RequestCarTicket::getRequestCarData, vo.getRequestCarData() == null ? null : vo.getRequestCarData()) | 152 | .set(RequestCarTicket::getRequestCarData, vo.getRequestCarData() == null ? null : vo.getRequestCarData()) |
| 140 | .set(RequestCarTicket::getDeptId, StringUtil.isBlank(vo.getDeptId()) ? null : vo.getDeptId()) | 153 | .set(RequestCarTicket::getDeptId, StringUtil.isBlank(vo.getDeptId()) ? null : vo.getDeptId()) |
| 141 | .set(RequestCarTicket::getDeliveryDate, vo.getDeliveryDate() == null ? null : vo.getDeliveryDate()) | 154 | .set(RequestCarTicket::getDeliveryDate, vo.getDeliveryDate() == null ? null : vo.getDeliveryDate()) |
| @@ -160,6 +173,9 @@ public class RequestCarTicketServiceImpl extends BaseMpServiceImpl<RequestCarTic | @@ -160,6 +173,9 @@ public class RequestCarTicketServiceImpl extends BaseMpServiceImpl<RequestCarTic | ||
| 160 | 173 | ||
| 161 | OpLogUtil.setVariable("id", data.getId()); | 174 | OpLogUtil.setVariable("id", data.getId()); |
| 162 | OpLogUtil.setExtra(vo); | 175 | OpLogUtil.setExtra(vo); |
| 176 | + //开启审核 | ||
| 177 | + RequestCarTicket requestCarTicket = getBaseMapper().selectById(vo.getId()); | ||
| 178 | + flowInstanceWrapperService.startInstance(BPM_FLAG, requestCarTicket.getId(), BPM_FLAG, requestCarTicket); | ||
| 163 | } | 179 | } |
| 164 | 180 | ||
| 165 | @OpLog(type = OtherOpLogType.class, name = "修改草稿要车单状态,ID:{}", params = {"#id"}) | 181 | @OpLog(type = OtherOpLogType.class, name = "修改草稿要车单状态,ID:{}", params = {"#id"}) |
| @@ -183,6 +199,35 @@ public class RequestCarTicketServiceImpl extends BaseMpServiceImpl<RequestCarTic | @@ -183,6 +199,35 @@ public class RequestCarTicketServiceImpl extends BaseMpServiceImpl<RequestCarTic | ||
| 183 | OpLogUtil.setExtra(id); | 199 | OpLogUtil.setExtra(id); |
| 184 | } | 200 | } |
| 185 | 201 | ||
| 202 | + @OpLog(type = OtherOpLogType.class, name = "更新草稿要车单审核人,ID:{}", params = {"#id"}) | ||
| 203 | + @Transactional(rollbackFor = Exception.class) | ||
| 204 | + @Override | ||
| 205 | + public void updateExamineUser(String id, String externalAuditor, String businessOfficeAuditor, String operationsDepartmentAuditor) { | ||
| 206 | + if (StringUtils.isBlank(id)) { | ||
| 207 | + return; | ||
| 208 | + } | ||
| 209 | + RequestCarTicket data = getBaseMapper().findById(id); | ||
| 210 | + if (ObjectUtil.isNull(data)) { | ||
| 211 | + throw new DefaultClientException("草稿要车单不存在!"); | ||
| 212 | + } | ||
| 213 | + LambdaUpdateWrapper<RequestCarTicket> updateWrapper = Wrappers.lambdaUpdate(RequestCarTicket.class) | ||
| 214 | + .eq(RequestCarTicket::getId, id); | ||
| 215 | + if (externalAuditor != null) { | ||
| 216 | + updateWrapper.set(RequestCarTicket::getExternalAuditor, externalAuditor); | ||
| 217 | + } | ||
| 218 | + if (businessOfficeAuditor != null) { | ||
| 219 | + updateWrapper.set(RequestCarTicket::getBusinessOfficeAuditor, businessOfficeAuditor); | ||
| 220 | + } | ||
| 221 | + if (operationsDepartmentAuditor != null) { | ||
| 222 | + updateWrapper.set(RequestCarTicket::getOperationsDepartmentAuditor, operationsDepartmentAuditor); | ||
| 223 | + } | ||
| 224 | + | ||
| 225 | + getBaseMapper().update(updateWrapper); | ||
| 226 | + | ||
| 227 | + OpLogUtil.setVariable("id", data.getId()); | ||
| 228 | + OpLogUtil.setExtra(id); | ||
| 229 | + } | ||
| 230 | + | ||
| 186 | @OpLog(type = OtherOpLogType.class, name = "删除要车单表,ID:{}", params = {"#id"}) | 231 | @OpLog(type = OtherOpLogType.class, name = "删除要车单表,ID:{}", params = {"#id"}) |
| 187 | @Transactional(rollbackFor = Exception.class) | 232 | @Transactional(rollbackFor = Exception.class) |
| 188 | @Override | 233 | @Override |
| @@ -55,6 +55,16 @@ public interface RequestCarTicketService extends BaseMpService<RequestCarTicket> | @@ -55,6 +55,16 @@ public interface RequestCarTicketService extends BaseMpService<RequestCarTicket> | ||
| 55 | void updateStatus(String id, String status); | 55 | void updateStatus(String id, String status); |
| 56 | 56 | ||
| 57 | /** | 57 | /** |
| 58 | + * 更新审核人 | ||
| 59 | + * | ||
| 60 | + * @param id 主键 | ||
| 61 | + * @param externalAuditor 外办审核人 | ||
| 62 | + * @param businessOfficeAuditor 经营办审核人 | ||
| 63 | + * @param operationsDepartmentAuditor 运作科审核人 | ||
| 64 | + */ | ||
| 65 | + void updateExamineUser(String id, String externalAuditor, String businessOfficeAuditor, String operationsDepartmentAuditor); | ||
| 66 | + | ||
| 67 | + /** | ||
| 58 | * 根据ID删除 | 68 | * 根据ID删除 |
| 59 | * @param id | 69 | * @param id |
| 60 | * @return | 70 | * @return |
| @@ -16,6 +16,12 @@ public class CreateRequestCarTicketVo implements BaseVo, Serializable { | @@ -16,6 +16,12 @@ public class CreateRequestCarTicketVo implements BaseVo, Serializable { | ||
| 16 | private static final long serialVersionUID = 1L; | 16 | private static final long serialVersionUID = 1L; |
| 17 | 17 | ||
| 18 | /** | 18 | /** |
| 19 | + * 订货单ID | ||
| 20 | + */ | ||
| 21 | + @ApiModelProperty("订货单ID") | ||
| 22 | + private String purchaseOrderId; | ||
| 23 | + | ||
| 24 | + /** | ||
| 19 | * 要车日期 | 25 | * 要车日期 |
| 20 | */ | 26 | */ |
| 21 | @ApiModelProperty("要车日期") | 27 | @ApiModelProperty("要车日期") |
| @@ -24,6 +24,12 @@ public class UpdateRequestCarTicketVo implements BaseVo, Serializable { | @@ -24,6 +24,12 @@ public class UpdateRequestCarTicketVo implements BaseVo, Serializable { | ||
| 24 | private String id; | 24 | private String id; |
| 25 | 25 | ||
| 26 | /** | 26 | /** |
| 27 | + * 订货单ID | ||
| 28 | + */ | ||
| 29 | + @ApiModelProperty("订货单ID") | ||
| 30 | + private String purchaseOrderId; | ||
| 31 | + | ||
| 32 | + /** | ||
| 27 | * 要车日期 | 33 | * 要车日期 |
| 28 | */ | 34 | */ |
| 29 | @ApiModelProperty("要车日期") | 35 | @ApiModelProperty("要车日期") |
| @@ -4,6 +4,7 @@ | @@ -4,6 +4,7 @@ | ||
| 4 | 4 | ||
| 5 | <resultMap id="RequestCarTicket" type="com.lframework.xingyun.sc.entity.RequestCarTicket"> | 5 | <resultMap id="RequestCarTicket" type="com.lframework.xingyun.sc.entity.RequestCarTicket"> |
| 6 | <id column="id" property="id"/> | 6 | <id column="id" property="id"/> |
| 7 | + <result column="purchase_order_id" property="purchaseOrderId"/> | ||
| 7 | <result column="request_car_data" property="requestCarData"/> | 8 | <result column="request_car_data" property="requestCarData"/> |
| 8 | <result column="dept_id" property="deptId"/> | 9 | <result column="dept_id" property="deptId"/> |
| 9 | <result column="dept_name" property="deptName"/> | 10 | <result column="dept_name" property="deptName"/> |
| @@ -38,6 +39,7 @@ | @@ -38,6 +39,7 @@ | ||
| 38 | <sql id="RequestCarTicket_sql"> | 39 | <sql id="RequestCarTicket_sql"> |
| 39 | SELECT | 40 | SELECT |
| 40 | tb.id, | 41 | tb.id, |
| 42 | + tb.purchase_order_id, | ||
| 41 | tb.request_car_data, | 43 | tb.request_car_data, |
| 42 | tb.dept_id, | 44 | tb.dept_id, |
| 43 | sd.name AS dept_name, | 45 | sd.name AS dept_name, |