import cn.com.taiji.common.manager.ManagerException; | import cn.com.taiji.common.manager.ManagerException; | ||||
import cn.com.taiji.core.entity.dict.basic.CardType; | import cn.com.taiji.core.entity.dict.basic.CardType; | ||||
import cn.com.taiji.core.entity.dict.basic.DeviceVersion; | |||||
import cn.com.taiji.core.entity.dict.basic.ObuType; | import cn.com.taiji.core.entity.dict.basic.ObuType; | ||||
import cn.com.taiji.core.entity.dict.invw.InventoryType; | import cn.com.taiji.core.entity.dict.invw.InventoryType; | ||||
import cn.com.taiji.core.entity.dict.invw.OwnType; | |||||
import cn.com.taiji.core.dto.AbstractStaffBizRequestDTO; | import cn.com.taiji.core.dto.AbstractStaffBizRequestDTO; | ||||
import cn.com.taiji.invw.model.enter.EnterApplyDetailModel; | import cn.com.taiji.invw.model.enter.EnterApplyDetailModel; | ||||
import io.swagger.annotations.ApiModel; | import io.swagger.annotations.ApiModel; | ||||
import javax.persistence.EnumType; | import javax.persistence.EnumType; | ||||
import javax.persistence.Enumerated; | import javax.persistence.Enumerated; | ||||
import javax.validation.constraints.NotBlank; | |||||
import javax.validation.constraints.NotNull; | import javax.validation.constraints.NotNull; | ||||
import java.math.BigInteger; | import java.math.BigInteger; | ||||
import java.util.List; | import java.util.List; |
package cn.com.taiji.invw.dto.enter; | package cn.com.taiji.invw.dto.enter; | ||||
import cn.com.taiji.common.manager.ManagerException; | |||||
import cn.com.taiji.core.entity.dict.basic.CardType; | |||||
import cn.com.taiji.core.entity.dict.basic.DeviceVersion; | |||||
import cn.com.taiji.core.entity.dict.basic.ObuType; | |||||
import cn.com.taiji.core.entity.dict.invw.InventoryType; | |||||
import cn.com.taiji.core.entity.dict.invw.OwnType; | |||||
import cn.com.taiji.core.dto.AbstractStaffBizRequestDTO; | import cn.com.taiji.core.dto.AbstractStaffBizRequestDTO; | ||||
import cn.com.taiji.invw.model.enter.EnterApplyDetailModel; | |||||
import io.swagger.annotations.ApiModel; | import io.swagger.annotations.ApiModel; | ||||
import io.swagger.annotations.ApiModelProperty; | import io.swagger.annotations.ApiModelProperty; | ||||
import lombok.Getter; | import lombok.Getter; | ||||
import lombok.Setter; | import lombok.Setter; | ||||
import org.apache.commons.lang3.StringUtils; | |||||
import javax.validation.constraints.NotBlank; | import javax.validation.constraints.NotBlank; | ||||
import javax.validation.constraints.NotNull; | |||||
import java.util.List; | |||||
/** | /** | ||||
* @Auther: humh | * @Auther: humh |
import cn.com.taiji.core.entity.dict.invw.InvApplyStatus; | import cn.com.taiji.core.entity.dict.invw.InvApplyStatus; | ||||
import cn.com.taiji.core.entity.dict.invw.InventoryType; | import cn.com.taiji.core.entity.dict.invw.InventoryType; | ||||
import cn.com.taiji.core.dto.AbstractStaffBizPageRequestDTO; | import cn.com.taiji.core.dto.AbstractStaffBizPageRequestDTO; | ||||
import io.swagger.annotations.Api; | |||||
import io.swagger.annotations.ApiModel; | import io.swagger.annotations.ApiModel; | ||||
import io.swagger.annotations.ApiModelProperty; | import io.swagger.annotations.ApiModelProperty; | ||||
import lombok.Getter; | import lombok.Getter; |
package cn.com.taiji.invw.dto.enter; | package cn.com.taiji.invw.dto.enter; | ||||
import cn.com.taiji.common.manager.ManagerException; | |||||
import cn.com.taiji.core.entity.dict.basic.CardType; | |||||
import cn.com.taiji.core.entity.dict.basic.DeviceVersion; | |||||
import cn.com.taiji.core.entity.dict.basic.ObuType; | |||||
import cn.com.taiji.core.entity.dict.invw.InventoryType; | |||||
import cn.com.taiji.core.entity.dict.invw.OwnType; | |||||
import cn.com.taiji.core.dto.AbstractStaffBizRequestDTO; | import cn.com.taiji.core.dto.AbstractStaffBizRequestDTO; | ||||
import cn.com.taiji.invw.model.enter.EnterApplyDetailModel; | |||||
import io.swagger.annotations.ApiModel; | import io.swagger.annotations.ApiModel; | ||||
import io.swagger.annotations.ApiModelProperty; | import io.swagger.annotations.ApiModelProperty; | ||||
import lombok.Getter; | import lombok.Getter; | ||||
import lombok.Setter; | import lombok.Setter; | ||||
import org.apache.commons.lang3.StringUtils; | |||||
import javax.validation.constraints.NotBlank; | |||||
import javax.validation.constraints.NotNull; | |||||
import java.util.List; | |||||
/** | /** | ||||
* @Auther: humh | * @Auther: humh |
import java.io.IOException; | import java.io.IOException; | ||||
import java.util.concurrent.Callable; | import java.util.concurrent.Callable; | ||||
import cn.com.taiji.core.manager.cache.RedisCacheManager; | |||||
import cn.com.taiji.invw.manager.FieldMsgConvertor; | import cn.com.taiji.invw.manager.FieldMsgConvertor; | ||||
import feign.RetryableException; | import feign.RetryableException; | ||||
import org.apache.http.NoHttpResponseException; | import org.apache.http.NoHttpResponseException; | ||||
import cn.com.taiji.core.model.comm.protocol.valid.FieldMsgBuilder; | import cn.com.taiji.core.model.comm.protocol.valid.FieldMsgBuilder; | ||||
import cn.com.taiji.core.model.comm.protocol.valid.GlyServiceError; | import cn.com.taiji.core.model.comm.protocol.valid.GlyServiceError; | ||||
public abstract class AbstractCommManager extends AbstractManager { | |||||
public abstract class AbstractCommManager extends RedisCacheManager { | |||||
@Autowired | @Autowired | ||||
protected FeignClientManager feignClientManager; | protected FeignClientManager feignClientManager; |
package cn.com.taiji.invw.manager.enter; | package cn.com.taiji.invw.manager.enter; | ||||
import cn.com.taiji.common.manager.ManagerException; | import cn.com.taiji.common.manager.ManagerException; | ||||
import cn.com.taiji.common.manager.net.http.ServiceHandleException; | |||||
import cn.com.taiji.common.model.dao.Pagination; | import cn.com.taiji.common.model.dao.Pagination; | ||||
import cn.com.taiji.invw.dto.enter.*; | import cn.com.taiji.invw.dto.enter.*; | ||||
InvwEnterApplyViewResponseDTO view(InvwEnterApplyViewRequestDTO dto); | InvwEnterApplyViewResponseDTO view(InvwEnterApplyViewRequestDTO dto); | ||||
InvwEnterApplyCancelResponseDTO cancel(InvwEnterApplyCancelRequestDTO dto); | |||||
InvwEnterApplyCancelResponseDTO cancel(InvwEnterApplyCancelRequestDTO dto) throws ServiceHandleException; | |||||
InvwEnterApplyCodeValidResponseDTO codeValid(InvwEnterApplyCodeValidRequestDTO dto) throws ManagerException; | InvwEnterApplyCodeValidResponseDTO codeValid(InvwEnterApplyCodeValidRequestDTO dto) throws ManagerException; | ||||
package cn.com.taiji.invw.manager.enter; | package cn.com.taiji.invw.manager.enter; | ||||
import cn.com.taiji.common.manager.ManagerException; | import cn.com.taiji.common.manager.ManagerException; | ||||
import cn.com.taiji.common.manager.net.http.ServiceHandleException; | |||||
import cn.com.taiji.common.model.dao.Pagination; | import cn.com.taiji.common.model.dao.Pagination; | ||||
import cn.com.taiji.common.pub.BeanTools; | import cn.com.taiji.common.pub.BeanTools; | ||||
import cn.com.taiji.common.pub.CollectionTools; | import cn.com.taiji.common.pub.CollectionTools; | ||||
repo.save(enterApply); | repo.save(enterApply); | ||||
//插入明细表,通过代理对象调用子方法,确保事务拦截器生效(避免同类内部调用绕过代理的问题) | //插入明细表,通过代理对象调用子方法,确保事务拦截器生效(避免同类内部调用绕过代理的问题) | ||||
addInventoryApplyDetail(dto.getEnterApplyDetailModels(), enterApply); | addInventoryApplyDetail(dto.getEnterApplyDetailModels(), enterApply); | ||||
persistOperateLog(OperateType.ENTER_APPLY, enterApply.getId(), dto.getOrderSource(), dto.getOpenId(), "入库申请"); | |||||
persistOperateLog(OperateType.ENTER_APPLY, enterApply.getId(), dto.getOrderSource(), findOpenIdByToken(dto.getAccessToken()), "入库申请"); | |||||
return new InvwEnterApplyAddResponseDTO(enterApply.getId()); | return new InvwEnterApplyAddResponseDTO(enterApply.getId()); | ||||
} | } | ||||
repo.merge(enterApply); | repo.merge(enterApply); | ||||
//插入明细表及检查结果表,通过代理对象调用子方法,确保事务拦截器生效(避免同类内部调用绕过代理的问题) | //插入明细表及检查结果表,通过代理对象调用子方法,确保事务拦截器生效(避免同类内部调用绕过代理的问题) | ||||
updateInventoryApplyDetail(dto.getEnterApplyDetailModels(), enterApply); | updateInventoryApplyDetail(dto.getEnterApplyDetailModels(), enterApply); | ||||
persistOperateLog(OperateType.UPDATE_ENTER_APPLY, enterApply.getId(), dto.getOrderSource(), dto.getOpenId(), "入库申请修改"); | |||||
persistOperateLog(OperateType.UPDATE_ENTER_APPLY, enterApply.getId(), dto.getOrderSource(), findOpenIdByToken(dto.getAccessToken()), "入库申请修改"); | |||||
return new InvwEnterApplyUpdateResponseDTO(enterApply.getId()); | return new InvwEnterApplyUpdateResponseDTO(enterApply.getId()); | ||||
} | } | ||||
enterApply.setSureTime(now); | enterApply.setSureTime(now); | ||||
enterApply.setApplyStatus(InvApplyStatus.COMFIRE); | enterApply.setApplyStatus(InvApplyStatus.COMFIRE); | ||||
repo.merge(enterApply); | repo.merge(enterApply); | ||||
persistOperateLog(OperateType.CONFIRM_ENTER_APPLY, enterApply.getId(), dto.getOrderSource(), dto.getOpenId(), "确认入库"); | |||||
persistOperateLog(OperateType.CONFIRM_ENTER_APPLY, enterApply.getId(), dto.getOrderSource(), findOpenIdByToken(dto.getAccessToken()), "确认入库"); | |||||
return new InvwEnterApplyConfirmResponseDTO(dto.getId()); | return new InvwEnterApplyConfirmResponseDTO(dto.getId()); | ||||
} | } | ||||
@Override | @Override | ||||
@Transactional(rollbackFor = Exception.class) | @Transactional(rollbackFor = Exception.class) | ||||
public InvwEnterApplyCancelResponseDTO cancel(InvwEnterApplyCancelRequestDTO dto) { | |||||
public InvwEnterApplyCancelResponseDTO cancel(InvwEnterApplyCancelRequestDTO dto) throws ServiceHandleException { | |||||
InvwEnterApply enterApply = repo.findById(dto.getId()).orElse(null); | InvwEnterApply enterApply = repo.findById(dto.getId()).orElse(null); | ||||
enterApply.setApplyStatus(InvApplyStatus.REJECT); | enterApply.setApplyStatus(InvApplyStatus.REJECT); | ||||
enterApply.setReason(dto.getReason()); | enterApply.setReason(dto.getReason()); | ||||
repo.merge(enterApply); | repo.merge(enterApply); | ||||
persistOperateLog(OperateType.CANCEL_ENTER_APPLY, enterApply.getId(), dto.getOrderSource(), dto.getOpenId(), "取消入库"); | |||||
persistOperateLog(OperateType.CANCEL_ENTER_APPLY, enterApply.getId(), dto.getOrderSource(), findOpenIdByToken(dto.getAccessToken()), "取消入库"); | |||||
return new InvwEnterApplyCancelResponseDTO(dto.getId()); | return new InvwEnterApplyCancelResponseDTO(dto.getId()); | ||||
} | } | ||||
} | } | ||||
apply.setApplyStatus(InvApplyStatus.COMFIRE); | apply.setApplyStatus(InvApplyStatus.COMFIRE); | ||||
apply.setReceiveTime(LocalDateTime.now()); | apply.setReceiveTime(LocalDateTime.now()); | ||||
apply.setReceiverId(req.getOpenId()); | |||||
apply.setReceiverId(findOpenIdByToken(req.getAccessToken())); | |||||
} | } | ||||
throw new ManagerException("库存更新失败"); | throw new ManagerException("库存更新失败"); | ||||
} | } | ||||
transferApply.setReceiverId(req.getOpenId()); | |||||
transferApply.setReceiverId(findOpenIdByToken(req.getAccessToken())); | |||||
transferApply.setReceiveTime(LocalDateTime.now()); | transferApply.setReceiveTime(LocalDateTime.now()); | ||||
transferApply.setApplyStatus(InvApplyStatus.COMFIRE); | transferApply.setApplyStatus(InvApplyStatus.COMFIRE); | ||||
transferApplyRepo.saveAndFlush(transferApply); | transferApplyRepo.saveAndFlush(transferApply); | ||||
String applyNo = GenerateNoUtil.generateApplyNo(); | String applyNo = GenerateNoUtil.generateApplyNo(); | ||||
transferApply.setApplyNo(applyNo); | transferApply.setApplyNo(applyNo); | ||||
transferApply.setApplyTime(now); | transferApply.setApplyTime(now); | ||||
transferApply.setOpenId(addReq.getOpenId()); | |||||
transferApply.setOpenId(findOpenIdByToken(addReq.getAccessToken())); | |||||
transferApply.setApplyStatus(InvApplyStatus.NEW); | transferApply.setApplyStatus(InvApplyStatus.NEW); | ||||
transferApply.setInsertTime(now); | transferApply.setInsertTime(now); | ||||
throw new ManagerException("调拨id不能为空"); | throw new ManagerException("调拨id不能为空"); | ||||
} | } | ||||
transferApply.setOpenId(editReq.getOpenId()); | |||||
transferApply.setOpenId(findOpenIdByToken(editReq.getAccessToken())); | |||||
//设置申请单信息 | //设置申请单信息 | ||||
setupTransfer(transferApply, transferApplyModel); | setupTransfer(transferApply, transferApplyModel); | ||||
//处理仓库信息 | //处理仓库信息 |