Authored by caoyan

寄存转现货

... ... @@ -98,6 +98,9 @@ public interface StorageDepositMapper {
int updateNewOrderCode(@Param("newOrderCode")String newOrderCode, @Param("uid")int uid,
@Param("depositCode")String depositCode, @Param("status")Integer status);
StorageDeposit selectByNewOrderCode(@Param("depositCode")String depositCode, @Param("newOrderCode") Long newOrderCode);
int updateValidStatus(@Param("id")Integer id);
}
\ No newline at end of file
... ...
... ... @@ -266,4 +266,16 @@
AND status = #{status,jdbcType=INTEGER}
</update>
<select id="selectByNewOrderCode" resultMap="BaseResultMap">
select <include refid="Base_Column_List" /> from storage_deposit
where deposit_code =#{depositCode} and del_status=1 and new_order_code=#{newOrderCode}
limit 1
</select>
<update id="updateValidStatus" parameterType="java.lang.Integer">
update storage_deposit
set del_status=0, update_time = unix_timestamp(now())
where id=#{id} and del_status=1
</update>
</mapper>
\ No newline at end of file
... ...
... ... @@ -281,16 +281,4 @@ public class DepositController {
return new ApiResponse.ApiResponseBuilder().code(200).data(result).message("查询成功").build();
}
@RequestMapping(params = "method=ufo.deposit.update")
public ApiResponse update(@RequestParam("uid") Integer uid, @RequestParam("depositCode") String depositCode,
@RequestParam("orderCode") Long orderCode) {
LOG.info("ufo.deposit.count in. uid is {}", uid);
if(null == uid || 0 == uid.intValue()) {
return new ApiResponse.ApiResponseBuilder().code(400).message("uid不能为空").build();
}
int result = depositService.updateDepositWaitToPick(uid, depositCode, orderCode);
return new ApiResponse.ApiResponseBuilder().code(200).data(result).message("查询成功").build();
}
}
... ...
... ... @@ -841,21 +841,21 @@ public class DepositServiceImpl implements DepositService {
@Override
public boolean updateDepositAfterCancelBuy(Integer uid, String depositCode) {
boolean flag = false;
StorageDeposit deposit = storageDepositMapper.queryByDepositCode(uid, depositCode);
if(null == deposit) {
throw new UfoServiceException(400, "寄存商品不存在");
}
LOGGER.info("updateDepositAfterCancelBuy, uid is {}, depositCode is {}, old depositInfo is {}", uid, depositCode, deposit);
if(deposit.getStatus().equals(StorageDepositStatusEnum.HAS_IN.getCode())) {//在库,直接返回
flag = true;
}else if(deposit.getStatus().equals(StorageDepositStatusEnum.WAITING_QUERY.getCode())) {//待拣货-->在库
int num = storageDepositMapper.updateStorageStatusEx(depositCode, StorageDepositStatusEnum.HAS_IN.getCode(), StorageDepositStatusEnum.WAITING_QUERY.getCode(),
DepositOutTypeEnum.OUTTYPE_IN_DEPOSIT.getCode());
flag = num == 0 ? false : true;
//当前记录置为无效
int num = storageDepositMapper.updateDelStatusByCode(uid, depositCode, deposit.getStatus());
if(num > 0) {
//找到寄存转现货前的寄存记录
StorageDeposit oldDeposit = storageDepositMapper.selectByNewOrderCode(depositCode, deposit.getOrderCode());
//还原
num = storageDepositMapper.updateValidStatus(oldDeposit.getId());
}
return flag;
return num > 0 ? true : false;
}
private List<DepositDetailBo> convertDepositResp(List<StorageDeposit> list, List<Long> orderCodeList){
... ...